Правила сайта FAQ Мини-чат
Для добавления необходима авторизация!
15.11.2024, Пятница, 14:49


Модератор форума: romale  
Разборочная комната ТЧ
Сообщение #1
Вы задаёте интересующий вас вопрос и тот, кто может вам на него ответить, пишет свой ответ. Правила темы:

1. Прежде чем задать вопрос, желательно прочитать все предыдущие страницы темы. Даже если вы не найдете там нужного ответа - я уверен, вы узнаете много нового. Второй вариант - воспользоваться поиском по ключевому слову.

2. Вы можете задавать вопросы, только непосредственно касающиеся создания модификаций и редактирования файлов игры

3. Личные вопросы не допускаются

4. Отвечать на вопросы желательно достаточно развернуто, задевая все аспекты касающиеся конкретного вопроса

5. Отвечать вы можете только в том случае если уверены в правильности ответа, если не знаете - просто не отвечайте. Авторы неправильных, вводящих в заблуждение ответов будут наказываться.

6.Соблюдайте грамотность и правильность построения вопросов и ответов, во избежание их удаления. "Спасибо / пожалуйста / не знаю" и прочие односложные и
не несущие смысловой нагрузки сообщения, будут удаляться немедленно, а их авторы - наказываться.

Основная цель темы - помочь новичкам-модостроителям, второстепенная - свести на нет тенденцию создания новых тем по каждому интересующему новичков вопросу.

Уважение: 133
Награды: 32
Сообщение #721
Уточню, что combat_ignore нужно прописывать во всех секциях логики, где НПС должен оставаться "нейтральным".
Также нужно указать саму секцию combat_ignore:
Код
[combat_ignore]
combat_ignore_cond = always

В данном случае, always означает, что НПС никогда не будет атаковать.
Можно прописать секцию on_hit и переход на новую секции логики, где не указан combat_ignore. Получится что НПС не атакует до тех пор, пока не атаковали его.
Можно еще проще, с помощью условий - combat_ignore_cond = {+info –info =func}
В условии указать наличие/отсутствие поршня/выполнение функции.

Ну и не стоит забывать секцию danger. Без нее не выйдет, НПС будет срываться в бой.
Указываем во всех нужных секциях логики - danger = danger_condition
И прописываем саму секцию danger:
Код
[danger_condition]
ignore_distance = 0


Упс, невнимательно прочитал пост Андрея.

Уважение: 650
Награды: 97
Облучение: 0%
Сообщение #722
Пипл помготи пожалуйста мне!я хочу что бы оружие w_walther_wa2000 стало стрелять очередями,но у меня почему то не получается его сделать таковым,буду признателен тем,кто сможет его исправить,либо поставить на фн2000 прицел как у этой пушки...всмысле с автозахватом.
народная солянка dmx mod 135
[romale]Я тебе уже отвечал в теме "поделок": http://stalker-gamers.ru/forum/23-110-30377-16-1379351436
Повторю еще раз - это никак не правится, особенность движка игры.
Соответственно, если приделать прицел с автозахватом к FN-2000, то она тоже станет стрелять только одиночными.
Тебе оно нужно?
Кстати, FN -2000 "Палач" с автозахватом (снайперский), можно достать у Акима.[/romale]


xz

Уважение: 0
Награды: 0
Облучение: 0%
Сообщение #723
Такой вопрос: -Накатил новую погоду на "Вариант Омега 3.0" и при запуске игры, получаю вылет:

Код
[error]Expression    : fatal error
[error]Function        : CInifile::r_section
[error]File                : E:\stalker\sources\trunk\xrCore\Xr_ini.cpp
[error]Line               : 342
[error]Description    : <no expression>
[error]Arguments     : Can't open section 'weather_indoor_x18'


Подскажите что нужно прописать, или пропишите в файл "weather_indoor" нужные строки. Вот weather_indoor Спасибо!


Windows 7 Максимальная 64-bit SP1, Intel Core i7 CPU 860 @2.80 GHz, 16 GB RAM, AMD Radeon HD 7700 Series
Сибиряк
Уважение: 160
Награды: 30
Облучение: 0%
Сообщение #724
Цитата (Вспышка)
Подскажите что нужно прописать,

По ходу пьесы данной секции вообще нет в данном файле, хотя в чистом ТЧ есть вот такие строки:

Попробуй добавить их в конец своего файлика weather_indoor.ltx
Не ручаюсь, что что-то ещё надо добавить (мож, ещё и надо что-то делать с твоим environment.ltx), но попытайся.

Сообщение отредактировал Korpus - Четверг, 19.09.2013, 14:27


Уважение: 169
Награды: 31
Облучение: 0%
Сообщение #725
Друзья, всем добрый вечер. Возникла проблемка. Добавил монстров, каких только можно. И волка, и когтя, ну и всех остальных. Тестирование прошло успешно, все работает, но есть одна проблема с тушканчиками. При убийстве главным героем тушканчика получаю вылет:

Сами по себе от аномалий или других НПС-ов тушканчики дохнут нормально.

Уважение: 31
Награды: 3
Облучение: 0%
Сообщение #726
butrikA, по логу вылета не понятно в чем "прикол". Косяк может быть в чем угодно.
Встречный вопрос: откель брал конфиги тушканов, иконки, модельки?
Просто у нас в моде (малость лепим своё) с тушканами как раз и не было никаких проблем никогда - это самые ответственные, исправно отрабатывающие себя монстрики.
Для информации: http://stalker-gamers.ru/forum/16-39-5464-16-1344423603



Такой как есть
Уважение: 596
Награды: 67
Сообщение #727
IMAGINE, В том и дело, что не помню откуда взял этих тушканчиков. Монстров брал с разных модов... За инфу спасибо, попробую разобраться. Больше боялся, что будут проблемы с волками и когтями, а тут на тебе - тушканчики... %)

Уважение: 31
Награды: 3
Облучение: 0%
Сообщение #728
Андрей, если сильно не горит, то на днях мне отдадут из ремонта комп с модами и я тебе скину тушканов, которых мы используем - на 100% рабочие.



Такой как есть
Уважение: 596
Награды: 67
Сообщение #729
С добрым утром! Друзья кто нибудь работал с иконками НПС? С иконками оружия и предметов я разобрался как переносить и вычислять координаты в иконэдиторе. А как работают иконки неписей? Написано просто направление например - ui_npc_dyak, я по началу копировал иконки в свой ui_npc, затем поменял на соляночный, но вылетает по текстуре ui_npc. Ежеле поставить направление на обычного сталкера или бандита, то все нормально работает.
Да и еще, что означает вот это в характере непися <map_icon x="..." y="..."></map_icon>

Уважение: 31
Награды: 3
Облучение: 0%
Сообщение #730
Цитата (butrikA)
но вылетает по текстуре ui_npc.

Потому, что на полотне ui_npc нет изображения с координатами которые указаны за ui_npc_dyak, не с чего брать.
Есть "промежуточные файлы" между тем, что указывается в character_desc_локация.xml, m_звери.ltx, tasks_локация.xml и подобными, и файлами иконок (портретов, фотографий, значков в заданиях и прочей красявости).
Например, для файла иконок с нпс ui_npc_unique.dds в ТЧ существует файл ui_npc_unique.xml, в котором указан идентификатор иконки, например:
Код
    <texture id="ui_npc_u_stalker_bandit_3" x="0" y="540" width="165" height="108" />

(он и прописывается character_desc и прочем) и явно указаны координаты нужных участков графического полотна файла с иконками (от верхнего левого угла) и ширина-высота нужного участка в пикселях(!)

Цитата (butrikA)
что означает вот это в характере непися <map_icon x="..." y="..."></map_icon>

Это тип иконки для отображения нпс на карте (всякие рожицы), можно увидеть в ранних билдах ТЧ, не используется - позже это реализовано через установку меток на конкретного нпс или предмет.

Сообщение отредактировал Korpus - Вторник, 24.09.2013, 11:11


Уважение: 169
Награды: 31
Облучение: 0%
Сообщение #731
Всем добрый вечер. Попробовал собрать логику по посту написанному выше. Все работает непись враг, но не стреляет. Что еще нужно добавить в логику нпс, чтобы при нападении монстров он защищался а не стоял, и при этом не трогал гг. Кто знает подскажите пожалуйста.



И второй вопрос.

Пробовал удалить нпс, с помощью этого кода произошел вылет. Испытывал на нпс из алл.спавна и спавненого через скрипт .В обоих случаях один и тотже вылет , (ругается на какую то глобальную функцию) лог не сохранил.

Сообщение отредактировал Giznyhvatit - Четверг, 26.09.2013, 19:55

Сообщение #732
Giznyhvatit,
Активной схемой должен быть walker, а не remark.
Для начала, по идее, должно получиться вот это:

Тогда непись будет орентироваться на местности так, как ему прописано в вее аллспавна, и после срыва на монстра или ещё какой тревоги будет возвращаться в исходную позицию. Опять же - это для начала. Про остальное подскажут.

Цитата (Giznyhvatit)
И второй вопрос.
код function remove_freaks() remove_obj("object") end

А что или кого ты тут удалять пытаешься таким образом?

Вот функция удаления нпс по ID

Вот функция удаления нпс по его системному имени (скриптового нпс, например, "grom") и не только неписей, но и объектов - телепортов, аномалий, предметов, нычек и пр.

И в догонку - через диалог с удаляемым нпс его же удалять напрямую нельзя (!) - получишь вылет. Т.е можно и через диалог, в совокупность с "брейк-диалогом" запускать хотя бы, например, таймер на отработку функции удаления, что бы окно диалога успело закрыться. Способов хватает.
ЗЫ Вообще-то, эти вопросы, как и предыдущие, уже выходят за рамки топика и больше подходят для тем по модингу.

Сообщение отредактировал Korpus - Четверг, 26.09.2013, 20:47


Уважение: 169
Награды: 31
Облучение: 0%
Сообщение #733
Цитата (Korpus)

Активной схемой должен быть walker, а не remark.

Дело в том что этот непись стоит на месте, так задумано... Он враг, говорит с гг становится нейтралом. Но мне нужно, чтобы он защищал себя от монстров. Поэтому я и спросил что еще добавить в логику этому нпс(у). 2) я создал непися, когда он поболтает с гг то должен исчезнуть, по задумке)), как думаешь такое возможно сотворить? спасибо что откликнулся.
Сообщение #734
Цитата (Giznyhvatit)
Пробовал удалить нпс

а что такое "object"? Возможно я что-то недопонял, но нужно игре "разжевать" что нужно удалить. Если из аллспавна, попробуйте эту функцию:
Код
function del_chto-to()
local se_obj = alife():object("имя_секции_в_аллспавне")
if se_obj then
alife():release(se_obj, true)
end
end
Веселый Роджер
Уважение: 936
Награды: 112
Сообщение #735
Цитата (Giznyhvatit)
поболтает с гг то должен исчезнуть, по задумке))

можно еще такую функцию попробовать(если создан уник со стори-айди)
Код
function del_nps()
local sim = alife()
local se_obj = sim:story_object(888)  --номер обьекта в game_stori_ids
if se_obj then
sim:release(se_obj, true)
end
end

единственное о чем хочу предупредить - все эти функции нельзя вызывать из диалога с НПС которого хотим удалить.
Веселый Роджер
Уважение: 936
Награды: 112
Сообщение #736
Цитата (Giznyhvatit)
Вот этот непись, из (спавн секции).

Ну, пробуйте тогда функцию удаления предложенную Korpus, а именно:
Код
function del_nps()
for a=10,65634,1 do
local obj=alife():object(a)
if obj and string.find(obj:name(),"grom") then          ---имя секции спавна
alife():release(obj,true)
end
end
end
Веселый Роджер
Уважение: 936
Награды: 112
Сообщение #737
Спасибо за помощь сейчас гляну что выйдет))))

Добавлено (26.09.2013, 22:02)
---------------------------------------------
Разбор полетов: вобщем ни 1, ни 2 код ничего не дал...
может я что-то упустил, ни где больше ничего прописать не нужно? может есть у кого рабочий пример?!
Спасибо всем кто откликнулся!

Сообщение отредактировал Giznyhvatit - Четверг, 26.09.2013, 22:16

Сообщение #738
Giznyhvatit,
эти две функции рабочие на 100%
Код
function del_nps()
local sim = alife()
local se_obj = sim:story_object(888)  --номер обьекта в game_stori_ids
if se_obj then
sim:release(se_obj, true)
end
end


Код
function del_chto-to()
local se_obj = alife():object("имя_секции_в_аллспавне")
if se_obj then
alife():release(se_obj, true)
end
end


третьей, а именно:
Код
function del_nps()
for a=10,65634,1 do
local obj=alife():object(a)
if obj and string.find(obj:name(),"grom") then          ---имя секции спавна
alife():release(obj,true)
end
end
end

я ни разу не пользовался, и про ее работоспособность ничего сказать не могу. Надо будет проверить.
Веселый Роджер
Уважение: 936
Награды: 112
Сообщение #739
Цитата (Frankenshtayn)
эти две функции рабочие на 100%

Что нужно сделать с этим набором, чтобы заработало удаление?
<_<
в скрипте ...._dialog вставлял коды предложенные выше.
акцион в диалоге прописан, что я делаю не так? игра тч- 04

Сообщение отредактировал Giznyhvatit - Четверг, 26.09.2013, 23:45

Сообщение #740
использовать
Код
function del_chto-to()
local se_obj = alife():object("имя_секции_в_аллспавне")
if se_obj then
alife():release(se_obj, true)
end
end

вставив имя своего нпс:
Код
function del_chto-to()
local se_obj = alife():object("red_grom")
if se_obj then
alife():release(se_obj, true)
end
end


Цитата (Giznyhvatit)
в скрипте ...._dialog вставлял коды предложенные выше.

в принципе саму функцию можно поместить в любой скрипт. а в диалог вставить экшен
Код
<action>название_скрипта.имя_функции</action>

небольшой нюанс... правда не проверенный... экшен надо вставлять в текст "произносимый" ГГ, а не собеседником, иначе может не срабатывать(повторюсь - я это не проверял, но слышал)
Веселый Роджер
Уважение: 936
Награды: 112
Поиск: