Правила сайта FAQ Мини-чат
Для добавления необходима авторизация!
12.08.2026, Среда, 03:51


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

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

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

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

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

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

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

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

Уважение: 133
Награды: 32
Сообщение #741
Ну а зачем делать по 10 тем, где обсуждается впринципе одно и тоже? Тема и звучит - разборочная комната, где можно задать вопрос как что то сделать, какой написать скрипт и т.д
Единственное что, это разделение - на ТЧ и ЗП, но тут думаю понятно почему...

По поводу удаления, возможно удалить все что угодно, зная лишь только его имя. Ф-ия уже давалась выше. Зачем же мудрить с ID и тому подобным? Закроем этот вопрос.

Цитата (butrikA)
как присвоить заспавненному скриптом НПС-у id?

id назначает сама игра при спавне. его можно только получить.
Может быть sid нужен?
Сид можно прописать в алл спавне. Или если стоит АМК мод, через функцию нет пакетов:
Например спавн НПС с присвоением ему sid-а:
Код
function spawn_npc()
local obj = alife():create("ozersky",vector():set(-158.317,0.840,-134.393),451237,3715)
local params = amk.read_stalker_params(obj)
params.sid = 30000
amk.write_stalker_params(params,obj)
end


Присвоенный sid будет 30 000.

Уважение: 670
Награды: 98
Облучение: 0%
Сообщение #742
Добрый день, хочу спросить возможно ли нанести хит нпс(у) с помощью функции? И второй вопрос есть какой нибудь код с помощью которого можно отнять здоровье у нпс? Если да подскажите его пожалуйста. :)
Сообщение #743
Giznyhvatit, нанести хит:
Код
function hit_npc(id)  
local npc = level.object_by_id(id)  
     if npc then  
       local h = hit()  
       h.power = 3  
       h.impulse = 3  
       h.draftsman = npc  
       h.direction = vector():set(0,0,0)  
       h.type = hit.fire_wound  
       npc:hit(h)  
     end  
end


Остается только передать в функцию id нужного НПС-а. При желании можно переделать на sid.
Ну и соотв. настроить как вам нужно параметры power и impulse. Значение 3 - это слишком много.

На 2 вопрос можно ответить с помощью первого. Нанесите небольшой хит и все.

Уважение: 670
Награды: 98
Облучение: 0%
Сообщение #744
Giznyhvatit, для использования с sid-ом, надо переделать строку:
Код
local npc = level.object_by_id(id)

На:
Код
local npc = level.object_by_sid(sid)

Также изменить (это уже больше "косметическое"...):
Код
function hit_npc(id)

На:
Код
function hit_npc(sid)


Ну и вызывать так (если вызов идет в том же файле, где лежит эта ф-ия):
hit_npc(sid), где вместо sid подставляем нужное число.

Иначе указываем файл с ф-ей:
файл.hit_npc(sid)

Уважение: 670
Награды: 98
Облучение: 0%
Сообщение #745
Цитата (volazar)
для использования с sid-ом, надо переделать строку
Огромное человеческое спасибо!
:)
Это снова я, вот что происходит: В игру захожу нормально, но как только подхожу к рестриктору (нужен для звук.смс к стати работал до этого ) происходит вылет...

Нужна помощь!

Сообщение отредактировал Giznyhvatit - Пятница, 27.09.2013, 14:55

Сообщение #746
Giznyhvatit,
а как и откуда вызываешь функцию? Если из рестриктора, то вызов должен выглядеть так:
Код
[logic]
active = sr_idle

[sr_idle]
on_actor_inside = %=hit_npc%

т.е. имя функции заключается в знак процента
сама функция естественно должна лежать в xr_effects.script
Веселый Роджер
Уважение: 968
Награды: 114
Сообщение #747
Цитата (Frankenshtayn)
а как и откуда вызываешь функцию?
Привет, функцию положил в свой скрипт, вызывал через акцион в диалоге. Решил пойти по другому пути, раз нпс нельзя удалить при разговоре с ним самим, пробую вывести его в оф. лайн. (стреляю в ногу исчезает). Думаю вывести его в офлайн при помощи хита, через функцию... пока вылет

Сообщение отредактировал Giznyhvatit - Пятница, 27.09.2013, 15:44

Сообщение #748
Giznyhvatit, :) я уже не знаю, как с Вами бороться... :D
http://youtu.be/KIsr4DK8HVo


хотя все прекрасно удаляется и без этих "танцев с бубном"
Веселый Роджер
Уважение: 968
Награды: 114
Сообщение #749
Цитата (Frankenshtayn)
я уже не знаю, как с Вами бороться

Спасибо конечно, а сразу нельзя было тыкнуть носом. Аж цельное видео сняли))). Я тут с кодом выставленным выше мучаюсь... А им смешно...))))))). Сейчас проверю ваш суповой набор... К стати это на тч 04 подходит?
Сообщение #750
Цитата (Giznyhvatit)
а сразу нельзя было тыкнуть носом.

Цитата (Frankenshtayn)

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

хм... ну, вроде говорил, что эти функции рабочие o_O :D
ЗЫ... Да, это пробовалось на 04
Веселый Роджер
Уважение: 968
Награды: 114
Сообщение #751
Цитата (Frankenshtayn)
Да, это пробовалось на 04
Усе собрал в кучу))). Все отлично работает!
cool Респектище тебе) . А так же всем кто принял участие и помогал советами.
Сообщение #752
Всем, привет!
Цитата (Giznyhvatit)
раз нпс нельзя удалить при разговоре с ним самим

Это почему Вы так решили? Попробуйте вот так.



Терпение......
И все получится!

Сообщение отредактировал makdm - Суббота, 28.09.2013, 07:51


Уважение: 999
Награды: 31
Облучение: 0%
Сообщение #753
Цитата (makdm)
Это почему Вы так решили? Попробуйте вот так.
Добрый день а можно по подробней, пробовал ваш вариант, ничего не происходит, может я что то не так делал. покажите ваш пример. если не трудно, в спойлере макеты.
по правьте меня)))

Сообщение отредактировал Giznyhvatit - Суббота, 28.09.2013, 16:10

Сообщение #754
--мой диалог--

<phrase id="33333">
<text>otdai_33333</text>
<give_info>otdai_info_done</give_info>
<action>moi_dialog.otdai</action>
<action>end_dialog</action> -------------!!!!
<action>dialogs.break_dialog</action>
</phrase>
</phrase_list>
</dialog>
здесь нужно выдавать инфопоршень а не вызывать функцию.
пробуй так:

--мой диалог--

<phrase id="33333">
<text>otdai_33333</text>
<give_info>otdai_info_done</give_info>
<action>moi_dialog.otdai</action>
<give_info>end_dialog</give_info>
<action>dialogs.break_dialog</action>
</phrase>
</phrase_list>
</dialog>
Веселый Роджер
Уважение: 968
Награды: 114
Сообщение #755
Giznyhvatit, Добрый день!
А зачем Вы в логике делаете секцию? Нужно просто написать:

[walker]
path_walk = grom20_walk
path_look = grom20_look
on_info = {+end_dialog !_used} %=destroy_object%


Терпение......
И все получится!

Уважение: 999
Награды: 31
Облучение: 0%
Сообщение #756
Цитата (makdm)
Добрый день!
Ваш код прост, и очень мощный! :D А с помощью кода от Frankenshtayn можно регулировать время исчезновения! Вобщем оба кода отличные! Еще раз всем спасибо.

Сообщение отредактировал Giznyhvatit - Среда, 02.10.2013, 16:11

Сообщение #757
Друзья, возникло пару проблем.
1.Создал снайперов на новой локе, на мосту с логикой в аллспавне:

Вот только бывают моменты когда снайперы мои срываются с места и спрыгивают с моста, можно ли как-то пригвоздить их к месту. Вокруг много аномалий и они тупо гибнут.
2. Пытаюсь подключить новую локу. Сперва были проблемы с аллспавном, но тут разобрался - все запаковалось. А теперь такой вылет:

Вроде все ltx-ные файлы совместил, не пойму в чем может быть прблема? Где и что не прописал? <_<

Уважение: 31
Награды: 3
Облучение: 0%
Сообщение #758
butrikA, срываются с места когда? Во время боя? Если да, то попробуй подправить логику вот так:
Код
[logic]  
active=camper  
on_combat = combat ;---это для "выбора ""стиля боя""

[combat]
combat_type = camper ;--это означает, что во время "войнушки" НПС не будет бегать

[camper]  
sniper = true  
def_state_campering = threat  
def_state_campering_fire = threat_sniper_fire  
radius = 150  
path_walk = ds_sn2_walk ; - тут она точка.  
path_look = ds_sn2_look ;- тут две точки (сектор обстрела)  

[smart_terrains]  
none = true  
END
Веселый Роджер
Уважение: 968
Награды: 114
Сообщение #759
butrikA, неверно установлен параметр radius. Параметр отвечает за следующее. Если враг находится за пределами радиуса, то выполняется схема снайпер. Если враг внутри радиуса, то схема снайпер отменяется и нпс переходит в движковый combat. У вас установлен радиус 150 метров, вот нпс и срывается с места. Установите радиус метров 10 и тогда он будет срываться при ближнем бое. Если хотите, чтобы сидел до победного - установите радиус 0.


Терпение......
И все получится!

Уважение: 999
Награды: 31
Облучение: 0%
Сообщение #760
Ребят, играю в Lost World Troops Of Doom (3.5 патча).
Там для использования патронов,гранат,подствольников необходимо помещать их на пояс.
Хочу сделать чтобы подствольник,гранаты использовались так же с пояса,а патроны из рюкзака.
Пробовала править скрипт Ammo_ctrl,но получилось до 2й перезарядки,однако.
P.S.мои знания скриптов минимальны.
Поиск: