Перейти к контенту

Рекомендуемые сообщения

Zeek

вот рабочая ф-и я ей спавнел и монстров и НПСов.

function ka ()
alife():create("fracture_normal",vector():set(265.403,18.471,529.419),1420998,287)
end

Изменено пользователем Министр
87728-stalker.gif
Ссылка на комментарий

ФеНиКс,

(first_speaker, second_speaker) - не чушь :).Сюда передаются два объекта ведущих диалог.Оно никак не мешает.(по крайней мере в ТЧ и не думаю что в ЗП иначе)

ZeeK,

вроде всё нормально...может координаты не верны?Попробуйте заспавнить рядом с ГГ...

db.actor:position()

только сместите немного...например по х.

Я не верю в то что нельзя спавнить npc скриптом

Изменено пользователем Министр
Ссылка на комментарий

Люди хелп! Помогите разобраться с алл спавном. Вот создаю респавн излома:

[l01_escape_870]
; cse_abstract properties
section_name = respawn
name = esc_fracture_respawn
position = -238.69424428477,-17.530403137207,-96.331878662109
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 10
distance = 10
level_vertex_id = 16883
object_flags = 0xffffff3e
custom_data = <<END
[respawn]
respawn_section = fracture_weak
;max_count = 10
;min_count = 3
max_spawn = 3
idle_spawn = medium
conditions = 100
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_respawn properties

Но ничего не происходит! Что я сделал не так?

Ссылка на комментарий

Подскажите, плиз, как скриптово в ТЧ заставить НПС проиграть определённую анимацию? А определить координаты взрыва гранаты, которую бросил ГГ?

yjNrc.gif

dSQwF.png

oZ8SF.png

Ссылка на комментарий

В файле логики этого непися, а если такового нет то непись будет подчиняться правилам общей логики в т.ч. и привлекаться

в ближайший гулаг на свободные работы.

Ссылка на комментарий

Возможно как-то прописать логику машине не трогая нет пакеты? (чтобы можины было заспавнить элементарно через

alife():create(section,XYZ)

И добавка:

Возможно ли вывести на экран для каждого типа оружия свою рамку(где написано кол-во патронов и иконка коробки от них)

87728-stalker.gif
Ссылка на комментарий

Спавнил скриптом и бтр и вертолеты -все прекрасно слушается логики без всяких нетпакетов,но это конечно если не ГГ на них должен ездить

Кстати гуглил один вопросик и меня вывело на страничку на сталкер-портале,где обсуждалась логика транспорта в игре и вот там попалось сообщение.что кто то прикрутил БТР логику непися -это надо же так гнать

gulag_empty(gulag_name) - проверка того, что гулаг пуст или вообще не существует.

 

gulag_population_le(gulag_name, num) - проверка того, что количество народу в гулаге <= num

 

gulag_casualities_ge(gulag_name:num) – проверка того, что гулаг понес потери => num NB! Потери гулага не обнуляются, так что с этой функцией работать аккуратно

Тут выше был вопрос о проверке численности гулага

Ссылка на комментарий

Народ, пытаюсь вырезать Динамические Аномалии для оригинального ЗП из АРС ЗП мода, но при игровом тестинге, при окончании выброса вылетаю с таким логом:

FATAL ERROR

 

[error]Expression : !m_error_code

[error]Function : raii_guard::~raii_guard

[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp

[error]Line : 748

[error]Description : ... - Зов Припяти\gamedata\scripts\level_anomaly.script:3298: attempt to call global 'isAnomaly' (a nil value)

 

 

stack trace:

 

 

Объясните, как такого избежать? Почему пустое значение появляется?

Вроде бы отсылка идет к этим строчкам

local an_count

function AnomalyManager:create_anomaly_table()

if an_count then return end

for a=1, #self.level_name_table, 1 do

if self.lname == self.level_name_table[a] then

if self.lname == "zaton" then an_count = 429

elseif self.lname == "jupiter" then an_count = 382

else an_count = 188

end

local n_count=1

for b=1, an_count, 1 do

anomaly_table[n_count] = 65535

n_count=n_count+1

end

for c=1, 65534, 1 do

local sobj = alife():object©

if sobj and isAnomaly(sobj) then

local cust = get_custom_data(sobj)

if cust and cust ~= "" and string.find(cust, "_on_") and string.find(cust, self.lname) then

cust = xr_s.str_explode("_",cust)

anomaly_table[tonumber(cust[4])] = tonumber(cust[3])

end

end

end

end

end

end

 

 

Не соответствует. N6260

Ссылка на комментарий

А как нибудь можно сделать копию пда на скриптах?...видел видео где добавлены кнопки в пда, вот там скорее всего делали скриптом, ибо все кнопки пда обрабатываются движком насколько я знаю

Ссылка на комментарий

Вот в этом моде есть пда - скрипт называется огсм_нотепад. Копия правда не очень точная, но функции пда выполняет

Изменено пользователем _Призрак_

Freedom

Ссылка на комментарий

Продолжая вытаскивать динамические аномалии из АРС ЗП мода сталкнулся еще и с таким вылетом

FATAL ERROR

 

[error]Expression : !m_error_code

[error]Function : raii_guard::~raii_guard

[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp

[error]Line : 748

[error]Description : ....e.r. - Зов Припяти\gamedata\scripts\se_zones.script:38: attempt to call field 'add_anomaly' (a nil value)

 

 

stack trace:

 

 

Как поправить?

 

Я так понял запарка в этой функции

 

local actor = alife():object(0)

if actor and level_anomaly and not string.find(self:section_name(),"_field") and game_graph():vertex(actor.m_game_vertex_id):level_id() == game_graph():vertex(self.m_game_vertex_id):level_id() then

ars_mod.add_anomaly(self.id,self.position,level_anomaly.get_radius(self))

end

end

 

 

Изменено пользователем ZeeK

Не соответствует. N6260

Ссылка на комментарий
Гость БолотныйДоктор

ФеНиКс

Нашел способ избавится от требования убрать оружие при разговоре, но действует на всех поголовно.

 

Расскажи как сделал?

 

пробывал это:

[meet]

meet_state = 3 | nil@nil

meet_state_wpn = 3 | nil@nil

use_wpn = true

victim = 0 | actor

victim_wpn = 0 | actor

use = true

 

подходит только для чистого неба

 

Все получилось и для ЗП

 

В активно секции логики добавляешь

 

out_restr = zat_a2_sr_noweap

 

и в секции meet

 

[meet]

close_anim = nil

close_victim = nil

far_anim = nil

far_victim = nil

close_distance = 0

far_distance = 0

close_snd_distance = 3

use = {=actor_enemy} false, true

allow_break = false

meet_on_talking = false

Изменено пользователем БолотныйДоктор
Ссылка на комментарий

Логика НПЦ - это конечно хорошо, но как подредактировать логику монстров? Я хочу, чтобы контролёр ещё и вещами швырялся - как полтергейст!

Выводы модмейкера:

1)Вылетает - это хорошо. Значит, работает :)

2) Если хочешь сделать что-то хорошо, делай сам!

3) Если падёшь духом, падёт и мод.

4) Он живой... :o

Ссылка на комментарий

Всем привет! Пипл подскажите кто может, как заспавнить скриптом объект типа мебели для ТЧ? И если можно по подробней. Три дня роюсь, а конкретной инфы найти не могу, есть что то но в описании ничего не разобрать.

Изменено пользователем hakim
Ссылка на комментарий

помогите кто нибуть нужен спальник на тч ну со всеми скриптами чтобы он спать хотел каждые примерно часов 10-12 в скриптах я полный ноль самому сделать не получается

 

Добавлено через 2 мин.:

hakim лучше всего через аллспавн по моему через скрипт такие обьекты ваще нельзя заспавеить

Реклама любых модов бесплатно на моём

сайте писать в личку

Ссылка на комментарий

serega-gamer

Скачай DreamMod ver.0.2b или abc_sleep_mod(что почти одно и то же) -а уж настраивать под себя сам будешь.

 

hakim,

Элементарно - создашь конфиг как обычному предмету в файле items и указываешь в качестве визуала любой объект мебели из папки meshes - там есть и столы, и стулья, и полки и т.д. Сам предмет спавнишь обычной функцией create().

Ссылка на комментарий

Мужики возник вопрос: как отследить последний воспроизведенный НПСом звук? Я конечно понимаю что это все происходит в xr_sound.script в функции:

 

function play_sound(npc, themes, timeout)
--// а именно на строке:
--// для входных
npc:play_sound(snd.into_id, 1, 0, 1, 0, db.sound[npc_id].last_snd[snd.into_id]+1)

--// для рандомных
npc:play_sound(snd.rnd_id, timeout+1, timeout, 1, 0, s)
...

 

Но само воспроизведение звука немного не ясно ... тут испоьзуеться вроде такой метод:

    function play_sound(number, number, number, number, number, number);

И все агрументы являються числами, и не могу понять что эти числа занчат, кто знает помогите пожалуйста!

 

Еще пробовал просто вместо npc ставить db.actor либо переопределял ГГ как объект но все-равно не хочет воспроизводить звук возле ГГ. НПС проверял так:

if type(npc) == 'number' then
news_manager.send_tip(db.actor,"НПС = числу",0,"project_sip",10000)
elseif type(npc) == 'table' then
news_manager.send_tip(db.actor,"НПС = таблице",0,"project_sip",10000)
elseif type(npc) == 'string' then
news_manager.send_tip(db.actor,"НПС = строке",0,"project_sip",10000)
else
news_manager.send_tip(db.actor,"НПС = чему-то другому",0,"project_sip",10000)
end

Ставил сразу после воспроизведения звука. Выводит: "НПС = чему-то другому". Также копался в sound_theme.script но так и не нашел как формируеться название звука. Надеюсь на вашу помощь :)

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...