Перейти к контенту

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

[SoC] Ковыряемся в файлах


Рекомендуемые сообщения

Ты объясни что именно тебе нужно. Делаешь конфиг на базе АК74 (если ствол правозатворный, то анимку от Sin!а бери). В файле weapons.ltx инклудом регистрируешь свою пушку (#include "название конфига.ltx"). Затем в файле mp_ranks.ltx прописываешь свой ствол чтобы не было случайного вылета с логом типа Can't find rank for wpn_название_оружия.

Изменено пользователем кровоSTALKER

Да блин не надо ничо прописывать, ибо повтор ствола будет. Короче вот разьясню. Нужно ак-74 оригинал левозатворный заменить на ак-74 правозатворный без всяких новых добавлекий а просто напросто заменить, точнее поставить затвор наместо. как это сделать?

ЯДиск папка с крутым схроном!

Сразу бы так. В конфиге находишь строку

 

visual = dynamics\weapons\wpn_название папки с моделью\wpn_модель.ogf - это раз

 

А потом в секции wpn_ak74_hud находишь это

 

item_visual = dynamics\weapons\wpn_название папки с моделью пушки\wpn_имя пушки_hud.ogf

 

И в той же секции с худом пишешь

 

anm_reload = ak74_reload_right

и

anm_reload_g = или ak74_reload_right_w_gl или ak74_reload_right_w_gl_rot или ak74_reload_right_w_rot

 

Предварительно скачав это http://narod.ru/disk/16670472000/wpn_ak74.zip.html Вот кажись и всё...

 

 

кровоSTALKER, очень смешно!) Я имею ввиду никто не сделал партикл для модели АК-74 с нормальным затвором? Изменено пользователем Mars

А какой смысл его делать если гильза летит в право и собсна ее не будет видно?

А кто-нибудь знает как пользоваться функцией SetHeading() в lua?

она вроде должна поворачивать окно на заданный угол....но у меня ничего не происходит, пробовал значения 90 180 40

i-igroman.ru - Мой, принципиально новый сайт о компьютерных играх

lekzd-у

 

SetHeading() - проимер из рабочего скрипта.

 

1. Должен быть конфиг статика с параметром heading="1".

вроде такого:

<hud_compass_arrow x="512" y="484" width="137" height="137" stretch="1" heading="1" complex_mode="1" alignment="c">

<texture>текстура</texture>

</hud_compass_arrow>

 

2. Создаёшь этот статик.

примерно так:

compass_arrow = hud:AddCustomStatic("hud_compass_arrow"):wnd()

 

3. И вращаешь:

compass_arrow:SetHeading(значение в радианах).

всё легко

Real Wolf,

parent_id предмета совпадает с id ящика.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Хотел поставить на последнюю солянку фонарик на левое плечо. Прописал в items.ltx

 

attach_angle_offset = 0, 0, -1.6

attach_position_offset = 0.115, 0.00, -0.03

attach_bone_name = bip01_L_clavicle

 

Игра запускается, но сам фонарик пропал. Что еще сделать надо?

Real Wolf, получаешь содержимое через нет_пакет, распарсиваешь табличку, и сверяешь с секционным именем. И если не изменяет память через скрипт, и тоже сравниваешь с именем секции.

А вот если нужен оригинальный именной по иду, то тогда только по сравнению с идом.

 

P.S. Так как вопрос был задан "как?", предвижу рецидив, и отвечу. Иди читай статьи, а по лс не отвечу, далее здесь можно продолжить обществу задавать вопросы. Но с вопросами как и зачем не очень рекомендую, здесь ведуют один не очень адекватный и нормальный модер n6260, так что... Забанить может в раз.

Ой ну надо-же я наверно нарушил какой-то пункт плавающего правила.

 

Сообщение от модератора n6260
Ой, меня получается несколько за раз? :lol:
А конкретней?

Это вопрос к моему ответу про ящики? Если так, то не знаю, что добавить. Мой ответ и так конкретней некуда. Или о чём другом речь?

 

получаешь содержимое через нет_пакет, распарсиваешь табличку, и сверяешь с секционным именем. И если не изменяет память через скрипт, и тоже сравниваешь с именем секции.

Чтобы определить, что предмет в ящике? А чем по parent_id не устраивает? Вообще, нетпакеты - это последний аргумент. По возможности лучше избегать.

 

здесь ведуют один не очень адекватный и нормальный модер ... Забанить может в раз.
Какое самодостаточное наблюдение =)
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Real Wolf

передаешь в функцию юзердату объекта

function get_parent_id(obj)

if obj then

local sobj = alife():object(obj.id)

if sobj and sobj.parent_id then

return sobj.parent_id

end

end

end

на выходе получаешь его парент ид.

далее сравниваешь этот ид с идом конкретного ящика. Если совпадает - значит предмет в ящике.

в общем это дело не совсем для новичков - тут надо все нужные данные в таблички писать - если умеешь работать с таблицами Lua то поймешь как и что.

 

кровоSTALKER огромное спасибо за поучение, но только я чтот не видел папки dynamics и в конфигах калаша item_visual, может ты имел ввиду это всё для ЧН или ЗП, в тч такого нету просто. в принцепе я итак понял что ты имел ввиду, мировая модель и модель в руках, а вот про последее, чёт не дошло "И в той же секции с худом пишешь

 

anm_reload = ak74_reload_right

и

anm_reload_g = или ak74_reload_right_w_gl или ak74_reload_right_w_gl_rot или ak74_reload_right_w_rot"

 

Поясни, по конкретней что за?

ЯДиск папка с крутым схроном!

Garry_Galler,

избыточный код. Зачем так сложно? У тебя по коду на входе функции и так подразумевается серверный объект. Зачем по нему получать серверный ещё раз? Ничего другого не получишь, уж точно =)

Этого достаточно:

function get_parent_id(obj)
    if obj then
        return sobj.parent_id
    end
end

И потом, с точки зрения безопасности и надёжности проверка if obj then ... на самом деле ничего не даёт. Ну проверил, что объекта на самом деле нет, а дальше что? Функция в этом случае возвращает nil. Хуже всего, что этот nil в последствие приводит к непредсказуемым результатам (и не обязательно сразу к вылету). И в итоге ты получаешь отложенную ошибку, которая естественно приведёт к сбою, но совсем не там, где надо, не там где можно понять её источник.

На самом деле эту проверку надо делать до вызова этой функции. Именно то место, где вызывается подобная функция - это место, где можно принять решение, что делать с этой ошибкой. Так что без всяких функций:

if obj then
    --делать что-то с obj.parent_id
else
    --обрабатывать ошибку
end

В современных языках программирования эти вопросы решаются с использованием механизма исключений: ошибка выявляется в одном месте, а механизм исключений переправляет её обработку в вышестоящий уровень, где имеются полномочия для принятия решения. В Lua исключений в явном виде нет (хотя некое подобие в виде pcall есть), так что придётся по старинке, самому выявлять нужное место обработки ошибки.

Изменено пользователем malandrinus
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

malandrinus, вот кстати чисто на практике nil как 0 не интерпритируется обычно...

(то есть постоянно идут ошибки типа compare with nil и подобное)

Изменено пользователем Monnoroch

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...