Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: denis2000, FantomICW  
Модостроение. Общие вопросы и ответы
denis2000Дата: Сб, 15.06.2013, 11:51 | Сообщение # 1
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Помощь тем кто хочет знать больше о игре и модах

Если у вас появились вопросы по модостроению в игре 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]
 
КошелевДата: Чт, 14.07.2016, 21:23 | Сообщение # 1996
Гражданский
Пользователи
Сообщений: 19
Награды: 0
Репутация: [ 0 ]

asd123, Не соглашусь
Код
-- Медуза в рюкзаке
function wolf_medusa_to_actor_done(first_speaker, second_speaker)
    return first_speaker:object("af_medusa") ~= nil
end

-- Медуза отсутствует
function wolf_medusa_to_actor_none(first_speaker, second_speaker)
    return first_speaker:object("af_medusa") == nil
end


Обе функции имеются и работают как часы.

Добавлено (14.07.2016, 21:23)
---------------------------------------------
Проблему исправил. Вернемся к началу. Квест после сдачи обновляется и снова выдается на поиск артефакта. Как решить все таки эту проблему?

 
asd123Дата: Пт, 15.07.2016, 07:49 | Сообщение # 1997
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

Всем добрый день happy Скачал с этого сайта и добавил Припять из ТЧ в СГМ 2.2 в config и all_spawn. Теперь хочу узнать как туда попасть чтобы снять координаты. У меня в наличии были пустые way_ и alife_ файлы. Добавил её по анологии КМБ урока(7 или 8.. точно не помню). Теперь вот не знаю как её настроить под СГМ 2.2 sad

У мутантов тоже есть группировки. © Движок X-Ray




Сообщение отредактировал asd123 - Пт, 15.07.2016, 07:51
 
denis2000Дата: Пт, 15.07.2016, 08:00 | Сообщение # 1998
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата Кошелев ()
Квест после сдачи обновляется и снова выдается на поиск артефакта.

Не выдается инфопорция закрытия квеста.


Цитата asd123 ()
Теперь вот не знаю как её настроить под СГМ 2.2

А что вы хотите настроить?


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
asd123Дата: Пт, 15.07.2016, 13:33 | Сообщение # 1999
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

denis2000, заселение, но для этого я туда хочу попасть, а не знаю как.

Добавлено (15.07.2016, 13:33)
---------------------------------------------
denis2000, я ранее задавал вопросы. Знаете что-нибуть по ним? smile


У мутантов тоже есть группировки. © Движок X-Ray


 
КошелевДата: Пт, 15.07.2016, 14:16 | Сообщение # 2000
Гражданский
Пользователи
Сообщений: 19
Награды: 0
Репутация: [ 0 ]

Код
-- Волк отдает Медузу
function wolf_medusa_to_actor(first_speaker, second_speaker)
       dialogs.relocate_item_section(second_speaker, "af_medusa", "in")
       task_manager.get_task_manager():give_task("wolf_dolg_sidor")
end


Имеется такая функция, она, судя по всему, не правильная, прошу поправить. Суть такова: при проверке, что в рюкзаке ГГ имеется медуза, выдаем следующее задание.

Добавлено (15.07.2016, 13:51)
---------------------------------------------
Вопрос исчерпан.

Добавлено (15.07.2016, 14:16)
---------------------------------------------
denis2000, Я понял, что не выдается поршень, хотя он прописан. Почему такое происходит?

 
denis2000Дата: Пт, 15.07.2016, 14:57 | Сообщение # 2001
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

asd123, Попробуйте вместо ваших нерабочих костылей раскоментировать строку --self.heli_fire:update_enemy_state() в функции heli_move:update( delta ) скрипта heli_move.script
Цитата asd123 ()
но для этого я туда хочу попасть, а не знаю как.

Измените координаты спавна ГГ на новую локацию.

spawn_object(pri_a28_earth_helli_1:pri_a28_heli_landing_way_1:0:215)
pri_a28_earth_helli_1 - кого спавнить
pri_a28_heli_landing_way_1 - имя пути где спавнить
0 - индекс точки пути, где спавнить
215 - поворот по оси Y


Цитата denis2000 ()
Почему такое происходит?

Или инфопорции имеют разное написание, или фраза <phrase id="5"> вообще не срабатывает или из-за сбоя в функции dialogs_escape.wolf_dolg_sidor_money_to_actor не срабатывает выдача инфопорций.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
КошелевДата: Пт, 15.07.2016, 15:00 | Сообщение # 2002
Гражданский
Пользователи
Сообщений: 19
Награды: 0
Репутация: [ 0 ]

denis2000, Решил сделать по другому, но не могу найти функцию на проверку взятия предмета. Нашел эту, но она для ТЧ и в ЗП, видимо, не работает

Код
Код
<function_complete>файл.функция</function_complete>
Код
function search_weapon_complete1(actor, npc)
if db.actor ~= nil then
if db.actor:object("ПРЕДМЕТ") then
db.actor:give_info_portion("ПОРШЕНЬ")
return true
end
end
return false
end
 
denis2000Дата: Пт, 15.07.2016, 15:03 | Сообщение # 2003
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата Кошелев ()
Нашел эту, но она для ТЧ и в ЗП, видимо, не работает

Прекрасно работает.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
КошелевДата: Пт, 15.07.2016, 15:56 | Сообщение # 2004
Гражданский
Пользователи
Сообщений: 19
Награды: 0
Репутация: [ 0 ]

denis2000, В таком случае, она у меня в этом виде
Код
function af_medusa_to_actor_inv(actor, npc)
if db.actor ~= nil then
if db.actor:object("af_medusa") then
db.actor:give_info_portion("af_medusa_to_actor_inv")
return true
end
end
return false
end


Соответственно название "af_medusa_to_actor_inv". Но как мне эту функцию выдать именно в tm_моялокация?

Добавлено (15.07.2016, 15:13)
---------------------------------------------
То есть, нужно чтобы при поднятии медузы, задание выполнялось.

Добавлено (15.07.2016, 15:56)
---------------------------------------------
Вопрос решен. Выдал функцию через биндер.
Другой вопрос: Сидоровичу присвоен story_id, но метка в задании на него не ставится.

 
asd123Дата: Пт, 15.07.2016, 16:15 | Сообщение # 2005
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

Цитата denis2000 ()
Измените координаты спавна ГГ на новую локацию.

Так ведь, я не могу туда попасть.. Я level и game вертексы не знаю от неё. Я поставил вообще рандомные числа(в том же количестве, что на других локациях) но меня то на Болота закинуло, то в Тёмную долину... Где можно посмотреть level и game вертексы новой локации?

Добавлено (15.07.2016, 16:10)
---------------------------------------------

Цитата denis2000 ()
asd123, Попробуйте вместо ваших нерабочих костылей раскоментировать строку --self.heli_fire:update_enemy_state() в функции heli_move:update( delta ) скрипта heli_move.script

АААААА, РАБОТАЕТ!!!!!!!!!!!!!!!!!! Он даже стал реагировать если я по нему стреляю(делает меня врагом)! НАКОНЕЦ-ТО. ОГРОМЕННОЕ СПАСИБО, ДЕНИС.
Простите за такой всплеск эмоций.. Признаюсь, вертолёты - мой любимый вид техники(машины не люблю, а вот вертолёты - это да), причём взялось это именно от сталкерского вертолёта. Всегда хотел на нём полетать в игре, и настроить его на атаку всего живого. И вот, наконец, эта бестолочь работает так как надо!!!

Добавлено (15.07.2016, 16:15)
---------------------------------------------
denis2000, подскажите(если знаете) - можно ли вертолёту настроить радиус выбора цели? А то, я стою за ним(под его хвостом) а он меня назначает целью, хотя по сути он меня не видит.


У мутантов тоже есть группировки. © Движок X-Ray


 
denis2000Дата: Пт, 15.07.2016, 18:47 | Сообщение # 2006
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата asd123 ()
Где можно посмотреть level и game вертексы новой локации?

game вертекс ggtool подскажет, а левел вертекс и координаты вы должны знать из alife_ваша локация.ltx
Цитата asd123 ()
можно ли вертолёту настроить радиус выбора цели?

По сути он у него есть:
Код
function heli_fire:update_enemy_arr()
...
local min_dist2D = 65000


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
asd123Дата: Пт, 15.07.2016, 19:22 | Сообщение # 2007
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

denis2000, а, спасибо smile Заметил, что он мутантов не берёт в цель. Где бы это подправить?

У мутантов тоже есть группировки. © Движок X-Ray


 
КошелевДата: Пт, 15.07.2016, 20:33 | Сообщение # 2008
Гражданский
Пользователи
Сообщений: 19
Награды: 0
Репутация: [ 0 ]

Код
Другой вопрос: Сидоровичу присвоен story_id, но метка в задании на него не ставится.


Так что, мужики?
 
denis2000Дата: Пт, 15.07.2016, 21:41 | Сообщение # 2009
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

asd123, Пробуйте в скрипт bind_monster.script в функцию generic_object_binder:net_spawn после:
Код
db.add_obj(self.object)

добавить:
Код
db.add_enemy(self.object)


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
asd123Дата: Пт, 15.07.2016, 22:50 | Сообщение # 2010
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

asd123, и это теперь тоже работает clap

У мутантов тоже есть группировки. © Движок X-Ray


 
Поиск: