Модератор форума: comador  
Форум настоящего сталкера » S.T.A.L.K.E.R. Тень Чернобыля » Теория модостроения » Школа модинга (Помощь в модифицировании игры S.T.A.L.K.E.R.: Тень Чернобыля)
Школа модинга
# 1
Пятница, 23.11.2012, 11:42:44

Ранг: Прибывший
Сообщений: 1665
Награды: 95
Репутация: 4016 Регистрация: 03.03.2011  

______________________________________________________________________

Тема создана для помощи в модифицировании игры S.T.A.L.K.E.R.: Тень Чернобыля.

______________________________________________________________________
Правила топика


"Правильно заданный вопрос – половина ответа".
______________________________________________________________________
Полезные ссылки

______________________________________________________________________


Правленный файл _g.script (спасибо Artos) для вывода в лог "обширной" информации.

Все "спасибо" в личку пользователю.
За не чтение шапки темы, а так же не соблюдение ПФ, авторы постов будут наказаны.


Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд)
# 1001
Понедельник, 10.03.2014, 17:03:26

Ранг: Новичок
Сообщений: 37
Награды: 0
Репутация: 0 Регистрация: 17.11.2013 Город: Курган    

comador, я спавнил уазик... ну да ладно.


НАТО - это слово которое обозначает: Америка говно, а Россия лучшая страна в мире потому что русский воин победит любого!
# 1002
Четверг, 13.03.2014, 09:12:15

Ранг: Разведчик
Сообщений: 162
Награды: 5
Репутация: 0 Регистрация: 11.03.2013  

Такое дело: добыл, вроде бы, функцию, предназначенную для убийства НПС через скрипт (НЕ через диалог, это важно). А именно:



Придумал вроде бы не сам, но тем не менее, при срабатвании следует вылет, согласно логу которого, игра не знает, что такое object.

Не подскажете, как сия функция должна выглядеть, чтобы работала?


Сообщение отредактировал Georgiy_Fedorov - Четверг, 13.03.2014, 10:08:07
# 1003
Четверг, 13.03.2014, 09:44:32

Ранг: Мастер
Сообщений: 599
Награды: 19
Репутация: 508 Регистрация: 25.06.2012 Город: Елизово    

Попробуй эту функцию.
Код
function kill_stalker(actor, npc)
      npc:kill(npc)   
end


Последний «неуд» ставит пуля© Полковник войск спецназа С.В. Бреславский



Сообщение отредактировал Сахар - Четверг, 13.03.2014, 09:49:14
# 1004
Четверг, 13.03.2014, 10:07:41

Ранг: Разведчик
Сообщений: 162
Награды: 5
Репутация: 0 Регистрация: 11.03.2013  

Цитата Сахар ()
Попробуй эту функцию


Я так понимаю, это для убийства через диалог, т.к. никакого указания на нпс-цель нет?

Если да, то с этим все понятно, но мне надо убить НПС просто по выдаче инфопоршня. Он, по задуманному мной моменту, в это время со мной не говорит, а даже вполне бегает за мной с автоматом.


Сообщение отредактировал Georgiy_Fedorov - Четверг, 13.03.2014, 10:09:42
# 1005
Четверг, 13.03.2014, 10:22:01

Ранг: Мастер
Сообщений: 599
Награды: 19
Репутация: 508 Регистрация: 25.06.2012 Город: Елизово    

Georgiy_Fedorov,
Попробуй так
Код
function kill_stalker(actor, npc)
     local obj = alife():story_object( 6 )  and - - 6 это сид из game_story_ids
        npc:kill(npc)     
end

Правда, не факт что будет работать, так что отпишись.


Последний «неуд» ставит пуля© Полковник войск спецназа С.В. Бреславский



Сообщение отредактировал Сахар - Четверг, 13.03.2014, 10:25:19
# 1006
Четверг, 13.03.2014, 10:38:45

Ранг: Разведчик
Сообщений: 162
Награды: 5
Репутация: 0 Регистрация: 11.03.2013  

Цитата Сахар ()
не факт что будет работать, так что отпишись


Безлоговый вылет

Ладно, смотрю, лучше не выделываться, а прибегнуть к схеме "уборка нпс/спаун его трупа"


Сообщение отредактировал Georgiy_Fedorov - Четверг, 13.03.2014, 11:24:46
# 1007
Четверг, 13.03.2014, 13:03:12

Ранг: Прибывший
Сообщений: 1665
Награды: 95
Репутация: 4016 Регистрация: 03.03.2011  

Georgiy_Fedorov,
Код
function kill_npc()
local npc = level_object_by_sid(здесь пишешь ID НПС)
if npc == nil or npc:alive () == false then
return
end
npc:kill(npc)
end


Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд)
# 1008
Четверг, 13.03.2014, 15:36:48

Ранг: Разведчик
Сообщений: 162
Награды: 5
Репутация: 0 Регистрация: 11.03.2013  

Добавлено (13.03.2014, 15:36:48)
---------------------------------------------
P.S. А story_id можно задать только при спауне через олл.спаун?

# 1009
Четверг, 13.03.2014, 16:48:56

Ранг: Прибывший
Сообщений: 1665
Награды: 95
Репутация: 4016 Регистрация: 03.03.2011  

Georgiy_Fedorov, story_id можно задать и при спавне через скрипт. Есть два способа: первый - нетпакеты, второй - функции АМК.
Вот пример с использованием функций АМК
Код
function npc_spawn()  
local obj = alife():create("профильное_имя_нпс",vector():set(x,y,z),level_vertex,game_vertex) -- координаты
local tbl = amk.read_stalker_params(obj)
tbl.sid = 97120 -- ID - любое число, но оно не должно повторятся с уже существующими (см. файл: game_story_ids в конфигах)
amk.write_stalker_params(tbl, obj)
end

Только нужно после этого сделать снйв/лоад, чтобы начать использовать story_id НПС в своих функциях.
Или воспользоваться проектом X-Ray Extension, где
Цитата
сделали правку, при помощи которой можно присваивать story_id любому объекту при спавне, при этом махинации с переводом объекта в оффлайн-онлайн не нужны, т.е. story_id начинает отрабатывать сразу.


Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд)
# 1010
Четверг, 13.03.2014, 17:32:38

Ранг: Разведчик
Сообщений: 162
Награды: 5
Репутация: 0 Регистрация: 11.03.2013  

Еще раз благодарю. Будем смотреть
# 1011
Суббота, 15.03.2014, 01:34:05

Ранг: Прибывший
Сообщений: 2
Награды: 0
Репутация: 0 Регистрация: 15.08.2010 Город: киреевск    

Подскажите, как сделать дверь с кодовым замком, такую как в х-10. В all.spawn всё понятно, но я так понимаю она должна быть где-то прописана в скрипте или ещё где?
# 1012
Суббота, 15.03.2014, 11:31:53

Ранг: Новичок
Сообщений: 57
Награды: 0
Репутация: 2 Регистрация: 05.10.2013 Город: Гомель    

Всем доброго дня.
Подключаю новую локацию, и решил создать на ней новых NPS, для простоты поиска решил создать новый файл character_desc (в моем случае character_desc_red_forest). Но в итоге информация из этого файла не читается (т.к. NPS-ы таки спавнятся, но с не теми характеристиками, на работоспособность других файлов не жалуюсь). Я понимаю, что гораздо проще запихнуть это всё в любой другой character_desc, но всёже вопрос: в каком файле перечислены ссылки на все character_desc игры?


Божа ты скінуў іх нам як дары
І мы славім мудрасьць тваю
Бо яны нас будзяць яшчэ да зары
І рана заснуць не даюць
# 1013
Суббота, 15.03.2014, 16:29:43

Ранг: Прибывший
Сообщений: 1665
Награды: 95
Репутация: 4016 Регистрация: 03.03.2011  

spartac_71, для таких объектов используется логика. Она может быть прописана или в отдельном файле, или в секции объекта в спавне.

Han_Viachko, файлы с профилями НПС должны быть зарегистрированы в system.ltx.


Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд)
# 1014
Пятница, 21.03.2014, 01:57:47

Ранг: Новичок
Сообщений: 57
Награды: 0
Репутация: 2 Регистрация: 05.10.2013 Город: Гомель    

Доброго вечера дорогие форумчане. Спасибо comador за предыдущий ответ, но к делу. В папке gamedata/config/text/rus естьфайлы типа "stable_dialogs_названиелокации.xml". Вопрос: если я хочу добавить новый файл stable_dialogs, какой файл необходимо править? (в смысле в каком файле лежат перечень файлов типа stable_dialogs?)


Божа ты скінуў іх нам як дары
І мы славім мудрасьць тваю
Бо яны нас будзяць яшчэ да зары
І рана заснуць не даюць
# 1015
Пятница, 21.03.2014, 11:36:10

Ранг: Прибывший
Сообщений: 1665
Награды: 95
Репутация: 4016 Регистрация: 03.03.2011  

Han_Viachko, смотри localization.ltx.


Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд)
# 1016
Вторник, 25.03.2014, 23:08:38

Ранг: Разведчик
Сообщений: 162
Награды: 5
Репутация: 0 Регистрация: 11.03.2013  

Доброго всем времени суток.

Такой вопрос: возможно ли сделать так, чтобы НПС после спауна не реагировал на н-ное число валяющихся в окрестностях дохлых мутантов?

no_move = true и [danger_ignore]ignore_distance = 2.0

в логике не помогают в полной мере, есть вероятность, что начинает паниковать.
# 1017
Среда, 26.03.2014, 01:02:49

Ранг: Прибывший
Сообщений: 1665
Награды: 95
Репутация: 4016 Регистрация: 03.03.2011  

Georgiy_Fedorov, внимательно прочти статьи о логике. Обрати внимания на секции threshold и Danger.


Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд)
# 1018
Понедельник, 31.03.2014, 23:41:50

Ранг: Разведчик
Сообщений: 162
Награды: 5
Репутация: 0 Регистрация: 11.03.2013  

Доброго времени суток.

Такой вопрос: нужно условие выполнения квеста: получен инфопоршень ХХХ и НЕ получен инфопоршень УУУ

Это так должно выглядеть?

# 1019
Понедельник, 31.03.2014, 23:55:51

Ранг: Мастер
Сообщений: 1485
Награды: 139
Репутация: 2940 Регистрация: 13.07.2011 Город: Ново-Николаевскъ    

Цитата Georgiy_Fedorov ()
Это так должно выглядеть?
Вполне работоспособно :)


# 1020
Вторник, 01.04.2014, 00:02:52

Ранг: Разведчик
Сообщений: 162
Награды: 5
Репутация: 0 Регистрация: 11.03.2013  

Я просто на всякий случай, чтобы потом не трепать себе нервы и не т***ать мозги здесь присуствующим :)
Форум настоящего сталкера » S.T.A.L.K.E.R. Тень Чернобыля » Теория модостроения » Школа модинга (Помощь в модифицировании игры S.T.A.L.K.E.R.: Тень Чернобыля)
Поиск:
Вверх
Правила чата
Мини-чат
+Мини-чат
0