Модостроение. Общие вопросы и ответы
|
|
denis2000 | Дата: Сб, 15.06.2013, 11:51 | Сообщение # 1 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Помощь тем кто хочет знать больше о игре и модах Если у вас появились вопросы по модостроению в игре S.T.A.L.K.E.R. Задавайте их в этой теме - умные головы, модосторители и просто разбирающиеся в программировании люди вам ответят.
Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7
Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML [cut noguest=Если у вас не открывается файл CHM]Если у вас не открывается файл: 1. Запустите [Пуск]=>[Выполнить] (либо хот-кей [WIN]+[R]) 2. Введите команду (без кавычек) "regsvr32 %windir%\system32\hhctrl.ocx" 3. Если вылезло окно об успешном завершении вы все сделали правильно и можете перезагружать компьютер (а может и не надо) Также: файлы МОГУТ не открываться если в пути к файлу есть: символы кириллицы, "_", "#" Также: есть не стандартные программы-просмоторщики CHM файлов. Например: FBReader[/cut] [cut=Где найти лог игры после вылета]Что такое LOG ошибки, и как мне его найти? Это система отладки происходивших вылетов, которая подается игрой в форме текста, хотя не всегда. Для того чтоб найти LOG необходимо зайти вот сюда:
В Win хр лог находится:
C:\Documents and Settings\All Users\Документы\S.T.A.L.K.E.R. - Зов Припяти\logs
Затем открываете первый файл в формате TXT, и в нем отбираете с низу 25 строчек. После кидаете эти 25 строчек в сообщение на форум.
В Win7 лог находится C:\Users\Public\Documents\S.T.A.L.K.E.R. - Зов Припяти\logs
Путь к папке с логом можно найти открыв файл fsgame.ltx который находится в корневой директории ЗП, за это отвечает строка: ... $app_data_root$ = true | false| $fs_root$| users\(тут мы указываем что папка пользователя, будет хранится рядом с Fsgame.ltx) ... $logs$ = true| false| $app_data_root$| logs\(а тут мы указываем что в папке пользователя, в подпапке Logs будут храниться наши логи) ... [/cut][cut=Получение более подробной информации о вылете (ХОВАН)] Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...) Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так: Код function abort(fmt, ...) local reason = string.format(fmt, ...) error_log(reason) end Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией
Первый: Код Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil) Второй: Код Expression : 0 Function : ErrorLog File : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp Line : 49 Description : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic' [/cut]
Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы, статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца", возможно Ваш вопрос уже рассматривался.
Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки. Помните чем подробнее вопрос, тем точнее ответ.
Посты, для которых есть свои категории, из этой темы будут удаляться или перемещаться в соответсвующую тему. Персональных извещений в ЛС о переносе\удалении поста не будет, ищите сами. Учитывайте, что в системах Ucoz тема не обновляется в статистике при переносе поста. Посты, написанные здесь-же после переноса, будут расцениваться как кросспостинг, со всеми вытекающими
[cut noguest=Первый юбилей нашей темы] Здравствуйте господа модостроители, и все так или иначе причастные к этому. Нашей теме исполнился 1 год. От души поздравляю Всех Вас дорогие друзья, творческих успехов. Хочу так же выразить отдельную благодарность denis2000 и ХОВАН. tracker 23.06.11
[/cut]
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
denis2000 | Дата: Пн, 28.11.2016, 10:02 | Сообщение # 2191 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Shyr, all.spawn выложите.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Shyr | Дата: Пн, 28.11.2016, 19:57 | Сообщение # 2192 |
Отмычка
Пользователи
Сообщений: 38
| denis2000, ссылка на all.spawn
denis2000, простите, что я вам не сказал сразу, но это all.spawn не от чистого SGM 2.2, а от модификации S.t.a.l.k.e.r. S.n.i.p.e.r. . Возможно это внесет ясность в суть дела....
Сообщение отредактировал Shyr - Пн, 28.11.2016, 21:40 |
|
|
Эти 0 пользователя(ей) поблагодарили Shyr за это полезное сообщение: |
|
|
tan4ik75 | Дата: Вт, 29.11.2016, 11:47 | Сообщение # 2193 |
Гражданский
Пользователи
Сообщений: 8
| Цитата denis2000 ( ) denis2000 Здарова твой скрипт на использование предметов от зп в чн закатит [cut noguest=Скрипт]--[[ --------------------------------------------- File : mod_use_callback.script Description: Колбеки на использование предметов Author : denis2000#sigerous.ru -------------------------------------------------]]
local active_slot = nil local active_item_name = nil local binoc_in_slot = nil local name_binoc = nil --------------------------------------------------------------------------- --Вызов колбеков использования предметов инвентаря --------------------------------------------------------------------------- function use_inventory_item(section,self) local item_name=section:section() active_slot=db.actor:active_slot() binoc_in_slot=db.actor:item_in_slot(5) if binoc_in_slot ~= nil then name_binoc = binoc_in_slot:section() end
--Использован предмет Хлеб, в данный момент не используется другой анимационный предмет if item_name=="bread" and db.actor:has_info("actor_use_anm_item") == false then --Удалить бинокль у ГГ if name_binoc == "wpn_binoc" then alife():release(alife() bject(db.actor bject("wpn_binoc"):id())) end --Дать анимационный объект Хлеб alife():create("anm_bread",db.actor osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) --Проверка, что ГГ назодиться в зоне без оружия if self.weapon_hide == true then --Позволить достать оружие self.object:restore_weapon() -- и выставить флаг, что по оканчании анимации оружие спрятать db.actor:give_info_portion("use_item_need_hide_weapon") end --Сделать слот с Хлебом активным db.actor:activate_slot(5) --Проиграть звук использования Хлеба с задержкой. snd = sound_object([[interface\inv_food]]) snd lay_at_pos(db.actor, vector():set(0,0,0), 2, sound_object.s2d) --Третий параметр время задержки воспроизведения в сек --Задать интервал времени и установить флаги используем Хлеб и используем анимационный предмет db.actor:give_info_portion("actor_use_anm_bread") db.actor:give_info_portion("actor_use_anm_item") --Установить засечку начала анимации предмета start_time_use_item = game.get_game_time() end --Использован предмет Аптечка, в данный момент не используется другой анимационный предмет if string.find(item_name,"medkit") and db.actor:has_info("actor_use_anm_item") == false then if name_binoc == "wpn_binoc" then alife():release(alife() bject(db.actor bject("wpn_binoc"):id())) end --Проверка типа аптечки if item_name=="medkit" then alife():create("anm_medkit",db.actor osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) elseif item_name=="medkit_army" then alife():create("anm_medkit_army",db.actor osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) elseif item_name=="medkit_scientic" then alife():create("anm_medkit_scientic",db.actor osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) end if self.weapon_hide == true then self.object:restore_weapon() db.actor:give_info_portion("use_item_need_hide_weapon") end db.actor:activate_slot(5) snd = sound_object([[interface\inv_medkit]]) snd lay_at_pos(db.actor, vector():set(0,0,0), 2, sound_object.s2d) --Третий параметр время задержки воспроизведения в сек db.actor:give_info_portion("actor_use_anm_medkit") db.actor:give_info_portion("actor_use_anm_item") start_time_use_item = game.get_game_time() end --Использован предмет Колбаса, в данный момент не используется другой анимационный предмет if item_name=="kolbasa" and db.actor:has_info("actor_use_anm_item") == false then if name_binoc == "wpn_binoc" then alife():release(alife() bject(db.actor bject("wpn_binoc"):id())) end alife():create("anm_kolbasa",db.actor osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) if self.weapon_hide == true then self.object:restore_weapon() db.actor:give_info_portion("use_item_need_hide_weapon") end db.actor:activate_slot(5) snd = sound_object([[interface\inv_food]]) snd lay_at_pos(db.actor, vector():set(0,0,0), 2, sound_object.s2d) --Третий параметр время задержки воспроизведения в сек db.actor:give_info_portion("actor_use_anm_kolbasa") db.actor:give_info_portion("actor_use_anm_item") start_time_use_item = game.get_game_time() end --Использован предмет Энергетик, в данный момент не используется другой анимационный предмет if item_name=="energy_drink" and db.actor:has_info("actor_use_anm_item") == false then if name_binoc == "wpn_binoc" then alife():release(alife() bject(db.actor bject("wpn_binoc"):id())) end alife():create("anm_energy_drink",db.actor osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) if self.weapon_hide == true then self.object:restore_weapon() db.actor:give_info_portion("use_item_need_hide_weapon") end db.actor:activate_slot(5) snd = sound_object([[interface\inv_softdrink]]) snd lay_at_pos(db.actor, vector():set(0,0,0), 2, sound_object.s2d) --Третий параметр время задержки воспроизведения в сек db.actor:give_info_portion("actor_use_anm_energy_drink") db.actor:give_info_portion("actor_use_anm_item") start_time_use_item = game.get_game_time() end --Использован предмет Тушенка, в данный момент не используется другой анимационный предмет if item_name=="conserva" and db.actor:has_info("actor_use_anm_item") == false then if name_binoc == "wpn_binoc" then alife():release(alife() bject(db.actor bject("wpn_binoc"):id())) end alife():create("anm_conserva",db.actor osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) if self.weapon_hide == true then self.object:restore_weapon() db.actor:give_info_portion("use_item_need_hide_weapon") end db.actor:activate_slot(5) snd = sound_object([[interface\inv_food]]) snd lay_at_pos(db.actor, vector():set(0,0,0), 2, sound_object.s2d) --Третий параметр время задержки воспроизведения в сек db.actor:give_info_portion("actor_use_anm_conserva") db.actor:give_info_portion("actor_use_anm_item") start_time_use_item = game.get_game_time() end --Использован предмет Вакцина, в данный момент не используется другой анимационный предмет if item_name=="antirad" and db.actor:has_info("actor_use_anm_item") == false then if name_binoc == "wpn_binoc" then alife():release(alife() bject(db.actor bject("wpn_binoc"):id())) end alife():create("anm_antirad",db.actor osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) if self.weapon_hide == true then self.object:restore_weapon() db.actor:give_info_portion("use_item_need_hide_weapon") end db.actor:activate_slot(5) snd = sound_object([[interface\inv_pills]]) snd lay_at_pos(db.actor, vector():set(0,0,0), 2, sound_object.s2d) --Третий параметр время задержки воспроизведения в сек db.actor:give_info_portion("actor_use_anm_antirad") db.actor:give_info_portion("actor_use_anm_item") start_time_use_item = game.get_game_time() end --Использован предмет Водка, в данный момент не используется другой анимационный предмет if item_name=="vodka" and db.actor:has_info("actor_use_anm_item") == false then if name_binoc == "wpn_binoc" then alife():release(alife() bject(db.actor bject("wpn_binoc"):id())) end alife():create("anm_vodka",db.actor osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) if self.weapon_hide == true then self.object:restore_weapon() db.actor:give_info_portion("use_item_need_hide_weapon") end db.actor:activate_slot(5) snd = sound_object([[interface\inv_vodka]]) snd lay_at_pos(db.actor, vector():set(0,0,0), 2, sound_object.s2d) --Третий параметр время задержки воспроизведения в сек db.actor:give_info_portion("actor_use_anm_vodka") db.actor:give_info_portion("actor_use_anm_item") start_time_use_item = game.get_game_time() end --Использован предмет Вода, в данный момент не используется другой анимационный предмет if item_name=="voda" and db.actor:has_info("actor_use_anm_item") == false then if name_binoc == "wpn_binoc" then alife():release(alife() bject(db.actor bject("wpn_binoc"):id())) end alife():create("anm_voda",db.actor osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) if self.weapon_hide == true then self.object:restore_weapon() db.actor:give_info_portion("use_item_need_hide_weapon") end db.actor:activate_slot(5) snd = sound_object([[interface\inv_vodka]]) snd lay_at_pos(db.actor, vector():set(0,0,0), 2, sound_object.s2d) --Третий параметр время задержки воспроизведения в сек db.actor:give_info_portion("actor_use_anm_voda") db.actor:give_info_portion("actor_use_anm_item") start_time_use_item = game.get_game_time() end
end
--------------------------------------------------------------------------- --Отработка таймеров использования предметов --------------------------------------------------------------------------- function timer_use_item(self) local time_to_use_bread = 23 --Игровые секунды, время использования предмета Хлеб local time_to_use_medkit = 23 --Игровые секунды, время использования предмета Аптечка local time_to_use_kolbasa = 30 --Игровые секунды, время использования предмета Колбаса local time_to_use_energy_drink = 25 --Игровые секунды, время использования предмета Энергетик local time_to_use_conserva = 35 --Игровые секунды, время использования предмета Тушенка local time_to_use_antirad = 30 --Игровые секунды, время использования предмета Антирад local time_to_use_vodka = 30 --Игровые секунды, время использования предмета Водка local time_to_use_voda = 30 --Игровые секунды, время использования предмета Вода local time_to_relax = 10 --Игровые секунды, время переключения после использования предмета local release_item = nil --Отработка таймеров использования предметов if db.actor:has_info("actor_use_anm_item") then --Отработка таймера для Хлеба if db.actor:has_info("actor_use_anm_bread") and (start_time_use_item == nil or game.get_game_time():diffSec(start_time_use_item) >= time_to_use_bread) then --Переключиться на старый слот db.actor:activate_slot(active_slot) --Установить флаг таймаута после использования предмета db.actor:give_info_portion("use_item_relax") --Снять флаг используем Хлеб db.actor:disable_info_portion("actor_use_anm_bread") --Если нужно снова прятать оружие if db.actor:has_info("use_item_need_hide_weapon") and self.weapon_hide == true then --Прячем его с установкой переменных self.object:hide_weapon() self.weapon_hide = true end --Cбросо флага "по оканчании анимации оружие спрятать" db.actor:disable_info_portion("use_item_need_hide_weapon") --Установить засечку начала таймаута после использования предмета start_time_relax = game.get_game_time() end --Отработка таймера для Аптечки if db.actor:has_info("actor_use_anm_medkit") and (start_time_use_item == nil or game.get_game_time():diffSec(start_time_use_item) >= time_to_use_medkit) then db.actor:activate_slot(active_slot) db.actor:give_info_portion("use_item_relax") db.actor:disable_info_portion("actor_use_anm_medkit") if db.actor:has_info("use_item_need_hide_weapon") and self.weapon_hide == true then self.object:hide_weapon() self.weapon_hide = true end db.actor:disable_info_portion("use_item_need_hide_weapon") start_time_relax = game.get_game_time() end --Отработка таймера для Колбаса if db.actor:has_info("actor_use_anm_kolbasa") and (start_time_use_item == nil or game.get_game_time():diffSec(start_time_use_item) >= time_to_use_kolbasa) then db.actor:activate_slot(active_slot) db.actor:give_info_portion("use_item_relax") db.actor:disable_info_portion("actor_use_anm_kolbasa") if db.actor:has_info("use_item_need_hide_weapon") and self.weapon_hide == true then self.object:hide_weapon() self.weapon_hide = true end db.actor:disable_info_portion("use_item_need_hide_weapon") start_time_relax = game.get_game_time() end --Отработка таймера для Энергетик if db.actor:has_info("actor_use_anm_energy_drink") and (start_time_use_item == nil or game.get_game_time():diffSec(start_time_use_item) >= time_to_use_energy_drink) then db.actor:activate_slot(active_slot) db.actor:give_info_portion("use_item_relax") db.actor:disable_info_portion("actor_use_anm_energy_drink") if db.actor:has_info("use_item_need_hide_weapon") and self.weapon_hide == true then self.object:hide_weapon() self.weapon_hide = true end db.actor:disable_info_portion("use_item_need_hide_weapon") start_time_relax = game.get_game_time() end --Отработка таймера для Тушенка if db.actor:has_info("actor_use_anm_conserva") and (start_time_use_item == nil or game.get_game_time():diffSec(start_time_use_item) >= time_to_use_conserva) then db.actor:activate_slot(active_slot) db.actor:give_info_portion("use_item_relax") db.actor:disable_info_portion("actor_use_anm_conserva") if db.actor:has_info("use_item_need_hide_weapon") and self.weapon_hide == true then self.object:hide_weapon() self.weapon_hide = true end db.actor:disable_info_portion("use_item_need_hide_weapon") start_time_relax = game.get_game_time() end --Отработка таймера для Антирад if db.actor:has_info("actor_use_anm_antirad") and (start_time_use_item == nil or game.get_game_time():diffSec(start_time_use_item) >= time_to_use_antirad) then db.actor:activate_slot(active_slot) db.actor:give_info_portion("use_item_relax") db.actor:disable_info_portion("actor_use_anm_antirad") if db.actor:has_info("use_item_need_hide_weapon") and self.weapon_hide == true then self.object:hide_weapon() self.weapon_hide = true end db.actor:disable_info_portion("use_item_need_hide_weapon") start_time_relax = game.get_game_time() end --Отработка таймера для Водка if db.actor:has_info("actor_use_anm_vodka") and (start_time_use_item == nil or game.get_game_time():diffSec(start_time_use_item) >= time_to_use_vodka) then db.actor:activate_slot(active_slot) db.actor:give_info_portion("use_item_relax") db.actor:disable_info_portion("actor_use_anm_vodka") if db.actor:has_info("use_item_need_hide_weapon") and self.weapon_hide == true then self.object:hide_weapon() self.weapon_hide = true end db.actor:disable_info_portion("use_item_need_hide_weapon") start_time_relax = game.get_game_time() end --Отработка таймера для Вода if db.actor:has_info("actor_use_anm_voda") and (start_time_use_item == nil or game.get_game_time():diffSec(start_time_use_item) >= time_to_use_voda) then db.actor:activate_slot(active_slot) db.actor:give_info_portion("use_item_relax") db.actor:disable_info_portion("actor_use_anm_voda") if db.actor:has_info("use_item_need_hide_weapon") and self.weapon_hide == true then self.object:hide_weapon() self.weapon_hide = true end db.actor:disable_info_portion("use_item_need_hide_weapon") start_time_relax = game.get_game_time() end --Отработка таймеров таймаута после использования предметов if db.actor:has_info("use_item_relax") and (start_time_relax == nil or game.get_game_time():diffSec(start_time_relax) >= time_to_relax) then --Убрать из инвентаря анимационный предмет, каким бы он ни был db.actor:iterate_inventory(function (dummy, item) if string.find(item:section(), "anm_") then release_item = item:section() end end, nil) alife():release(alife() bject(db.actor bject(release_item):id())) --Вернуть бинокль в инвентарь --[[if binoc_in_slot ~= nil and name_binoc ~= nil then if db.actor bject(name_binoc) == nil then alife():create(name_binoc,db.actor osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) end end]] if db.actor bject("wpn_binoc") == nil then alife():create("wpn_binoc",db.actor osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) end --Сбросить флаги использования предметов и таймаута после использования предмета db.actor:disable_info_portion("use_item_relax") db.actor:disable_info_portion("actor_use_anm_item") end end --Обработка взрывчатки local time_to_use_explosive_charge = 10 --Игровые секунды, время использования предмета взрывчатка local time_to_use_explosive_control = 20 --Игровые секунды, время использования предмета ДУ local actor_pos=db.actor osition() --Устанавливаем одину и только одну взрывчатку if db.actor:has_info("actor_set_remote_explosive_charge") and db.actor:has_info("actor_set_one_remote_explosive_charge") == false then if (start_time_explosive_charge == nil or game.get_game_time():diffSec(start_time_explosive_charge) >= time_to_use_explosive_charge) then --Установить взывающийся объект mod_functions.create_explosive_on_level("remote_charge",actor_pos.x,actor_pos.y,actor_pos.z+0.01,db.actor:level_vertex_id(),db.actor:game_vertex_id()) --Удалить заряд из инвентаря alife():release(alife() bject(db.actor bject("anm_remote_explosive_charge"):id())) --Выдать инфопорцию о том что один заряд заложен db.actor:give_info_portion("actor_set_one_remote_explosive_charge") end end --Взорвать установленную взрывчатку if db.actor:has_info("actor_activate_remote_explosive_control") then if (start_time_explosive_control == nil or game.get_game_time():diffSec(start_time_explosive_control) >= time_to_use_explosive_control) then --Взорвать взывающийся объект mod_functions.detonate_explosive(mod_functions.read_variable("remote_charge_id")) mod_functions.write_variable("remote_charge_id",0) --Удалить ДУ-актив из инвентаря alife():release(alife() bject(db.actor bject("anm_remote_explosive_control"):id())) --Забрать инфопорцию о включении ДУ db.actor:disable_info_portion("actor_activate_remote_explosive_control") --Забрать инфопорцию о установке заряда взрывчатки db.actor:disable_info_portion("actor_set_remote_explosive_charge") --Забрать инфопорцию о том что один заряд заложен db.actor:disable_info_portion("actor_set_one_remote_explosive_charge") end end end
--------------------------------------------------------------------------------------------------------------------------------- --Вызов колбеков на отсутствие патронов интерактивные предметы --------------------------------------------------------------------------------------------------------------------------------- function weapon_no_ammo() active_slot = db.actor:active_slot() active_item_name = db.actor:item_in_slot(active_slot):section() --news_manager.send_tip(db.actor, "Активный слот "..tostring(active_slot).." Активный предмет "..tostring(active_item_name), nil, nil, nil, nil) --Нажата кнопка при использовании заряда взрывчатки if active_item_name == "anm_remote_explosive_charge" then --Если у ГГ есть ДУ-неакт или нет уже установленной взрывчатки или ДУ уже включено if db.actor bject("ammo_remote_explosive_charge") ~= nil and db.actor:has_info("actor_set_remote_explosive_charge") == false and db.actor:has_info("actor_activate_remote_explosive_control") == false and db.actor:has_info("actor_set_one_remote_explosive_charge") == false then --Удалить ДУ-Неактивированный alife():release(alife() bject(db.actor bject("ammo_remote_explosive_charge"):id())) --Дать анимационный объект ДУ-активированный alife():create("anm_remote_explosive_control",db.actor osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) --Выдать инфопорцию о установке заряда взрывчатки db.actor:give_info_portion("actor_set_remote_explosive_charge") --Установить засечку начала анимации установки взрывчатки start_time_explosive_charge = game.get_game_time() else get_hud():HideActorMenu() get_hud():HidePdaMenu() game.start_tutorial("about_actor_no_explosive_charge") --Установить активный слот 5 db.actor:activate_slot(5) end end if active_item_name == "anm_remote_explosive_control" then --Если у ГГ есть батарея для ДУ или ДУ уже включено if db.actor bject("ammo_remote_explosive_control") ~= nil and db.actor:has_info("actor_activate_remote_explosive_control") == false then --Удалить Батарею для ДУ alife():release(alife() bject(db.actor bject("ammo_remote_explosive_control"):id())) --Выдать инфопорцию о включении ДУ db.actor:give_info_portion("actor_activate_remote_explosive_control") --Установить засечку начала анимации включения ДУ start_time_explosive_control = game.get_game_time() else get_hud():HideActorMenu() get_hud():HidePdaMenu() game.start_tutorial("about_actor_no_explosive_control") --Установить активный слот 5 db.actor:activate_slot(5) end end end[/cut]
Цитата Shyr ( ) Shyr Скинь конфиг мода
tan4ik75
|
|
|
Эти 0 пользователя(ей) поблагодарили tan4ik75 за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 29.11.2016, 12:38 | Сообщение # 2194 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Shyr, Ну не знаю у меня комплектным ACDC из SGM2.2 все прекрасно декомпилировалось. Только подправить распределение графов по локациям (в Снайпере их на три больше) и все нормально.
Цитата tan4ik75 ( ) Здарова твой скрипт на использование предметов от зп в чн закатит Да должен работать, даже в ТЧ заработает при корректировке номеров слотов.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
tan4ik75 | Дата: Вт, 29.11.2016, 16:24 | Сообщение # 2195 |
Гражданский
Пользователи
Сообщений: 8
| Цитата denis2000 ( ) denis2000 Как не печально, но не пашет я вроде правильно регал функции. [cut noguest=Скрины] [/cut]
[cut noguest=Видос][/cut]
tan4ik75
Сообщение отредактировал tan4ik75 - Вт, 29.11.2016, 16:25 |
|
|
Эти 0 пользователя(ей) поблагодарили tan4ik75 за это полезное сообщение: |
|
|
Shyr | Дата: Вт, 29.11.2016, 17:29 | Сообщение # 2196 |
Отмычка
Пользователи
Сообщений: 38
| tan4ik75, простите, я немного чайник: что имеется в виду под "конфиг", папку configs?
Добавлено (29.11.2016, 17:29) --------------------------------------------- denis2000, а можно пару нескромных вопросов? Не могли-бы вы мне сказать, какая версия ActivePerl у вас стоит и какая у вас операционка?
Сообщение отредактировал Shyr - Вт, 29.11.2016, 17:34 |
|
|
Эти 0 пользователя(ей) поблагодарили Shyr за это полезное сообщение: |
|
|
tan4ik75 | Дата: Вт, 29.11.2016, 17:45 | Сообщение # 2197 |
Гражданский
Пользователи
Сообщений: 8
| Цитата Shyr ( ) Shyr да
tan4ik75
|
|
|
Эти 0 пользователя(ей) поблагодарили tan4ik75 за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 29.11.2016, 18:22 | Сообщение # 2198 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| tan4ik75, Два замечания: 1. В ЧН зачехление оружия на базах может работать чуть по другому нежели в ЗП, поэтому для начала проверяйте работу вне базы. 2. Слоты в ЧН таки отличаются (точнее нумерация), поэтому в скрипте mod_use_callback.script вместо 5-го слота поставьте 4, везде где это требуется.
Shyr, ActivePerl 5.16.1 Build 1601 (64-bit) Windows 7 64-bit.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Glomar | Дата: Ср, 30.11.2016, 01:30 | Сообщение # 2199 |
Хозяин Зоны
Пользователи
Сообщений: 23464
| Всем привет! Решил пройти СВ2. Как восстановить окно торговли ЗП в моде(чтобы была возможность видеть в торговца иконки предметов, а не только их описание)?
|
|
|
Эти 0 пользователя(ей) поблагодарили Glomar за это полезное сообщение: |
|
|
tan4ik75 | Дата: Чт, 01.12.2016, 21:46 | Сообщение # 2200 |
Гражданский
Пользователи
Сообщений: 8
| Цитата denis2000 ( ) denis2000 Привет выручай какую логику нужно прописать что бы они остались в этом положение что на скрине.
[cut noguest=Скрин][/cut]
tan4ik75
|
|
|
Эти 0 пользователя(ей) поблагодарили tan4ik75 за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 02.12.2016, 09:47 | Сообщение # 2201 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| tan4ik75, Логика animpoint, в точке создается smart_cover с анимацией animpoint_stay_table
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
tan4ik75 | Дата: Пт, 02.12.2016, 11:44 | Сообщение # 2202 |
Гражданский
Пользователи
Сообщений: 8
| Цитата denis2000 ( ) denis2000 Прикол в том что в чн его нету animpoint_stay_table) я от и спрашую как зафиксировать, я спавнил чисто нпс, а включал анимку в настройках нпс, а в игре тупо стоят. [cut noguest=Настройка][/cut]
tan4ik75
Сообщение отредактировал tan4ik75 - Пт, 02.12.2016, 11:49 |
|
|
Эти 0 пользователя(ей) поблагодарили tan4ik75 за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 02.12.2016, 18:13 | Сообщение # 2203 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата tan4ik75 ( ) рикол в том что в чн его нету animpoint_stay_table Значит есть что-то аналогичное.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Voland-777 | Дата: Сб, 10.12.2016, 17:58 | Сообщение # 2204 |
Эмиссар
Пользователи
Сообщений: 1702
| Доброго времени суток! Я решил снова поковыряться в играх, и на этот раз решил вскрыть all.spawn сборки Lost Soul. Вместо распаковки получил два вылета. [cut noguest=Лог 1]E:\S.T.A.L.K.E.R. Call of Pripyat888 - копия\gamedata\spawns>perl universal_acdc .pl -d all.spawn -out la -scan configs/ -sort complex log inited: console Universal ACDC v.1.38 checking version of all.spawn... This is a spawn of S.T.A.L.K.E.R. Call Of Pripyat (any patch) scanning configs... problems occured while scanning configs. Try again... done! opening all.spawn... reading header... reading alife objects...
FATAL ERROR! Function: stkutils::scan::get_class Line: 1919 Description: cannot find clsid for class sgm_gravitational_field_average[/cut]
[cut noguest=Лог 2]E:\S.T.A.L.K.E.R. Call of Pripyat888 - копия\gamedata\spawns>perl universal_acdc .pl -d all.spawn -out la -scan configs/ -sort complex log inited: console Universal ACDC v.1.38 checking version of all.spawn... This is a spawn of S.T.A.L.K.E.R. Call Of Pripyat (any patch) scanning configs... problems occured while scanning configs. Try again... done! opening all.spawn... reading header... reading alife objects...
E:\S.T.A.L.K.E.R. Call of Pripyat888 - копия\gamedata\spawns>perl universal_acdc .pl -d all.spawn -out la -scan configs/ -sort complex log inited: console Universal ACDC v.1.38 checking version of all.spawn... This is a spawn of S.T.A.L.K.E.R. Call Of Pripyat (any patch) scanning configs... problems occured while scanning configs. Try again... done! opening all.spawn... reading header... reading alife objects...
FATAL ERROR! Function: main Line: 1448 Description: cannot open config\[/cut] В чем причина, не понимаю. Возможно, первый вылет - ругань на секции мода? И это при том, что папку с конфигами я взял. Второй - неясно.
Сообщение отредактировал Voland-777 - Сб, 10.12.2016, 18:00 |
|
|
Эти 0 пользователя(ей) поблагодарили Voland-777 за это полезное сообщение: |
|
|
denis2000 | Дата: Сб, 10.12.2016, 22:43 | Сообщение # 2205 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| ЦитатаVoland-777 ( ) cannot find clsid for class sgm_gravitational_field_average Неизвестный ид-класса объектов sgm_gravitational_field_average, нужно добавить его в файл (читайте инструкцию к программе).
ЦитатаVoland-777 ( ) cannot open config\ Программа не может обратиться к файлам из папки config (по вопросам правильного применения ключа -scan читайте инструкцию к используемой программе).
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
|