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

[SoC] Ковыряемся в файлах


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

 

 

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

Может, я не совсем корректно выразился? Мне не нужно привязывать полтера к определенному маршруту (пусть летает себе, где хочет). Нужно изменить высоту его перемещения, которая при этом заметно колеблется - монстр при движении то опускается, то поднимается. Из вышесказанного тобой выходит, что в конфигах монстра искомого параметра нет?

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

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

Здравствуйте, прошу помощи.

Склепал из разных скриптов вот такую фу-ию.

 

 

local level_name = {
["l01_escape"] = "Кордон",
["l02_garbage"] = "Свалка",
["l03_agroprom"] = "Агропром",
--и т.д.
}
 
local killers = {
monster_classes = {
[clsid.bloodsucker_s] = "Кровосос",
[clsid.boar_s] = "Кабан",
[clsid.dog_s] = "Собака",
--и т.д.
}
}
local weapon_classes = {
weapon_ognestrel = {
["wpn_pm"] = "Огнестрельное ранение (пистолет)",
["wpn_pb"] = "Огнестрельное ранение (пистолет)",
["wpn_fort1"] = "Огнестрельное ранение (пистолет)",
--и т.д.
},
weapon_blowing ={
["wpn_rpg7"] = "Взрыв (ракетница)",
["wpn_rg-6"] = "Взрыв (гранатомет)",
["wpn_rg6_m1"] = "Взрыв (гранатомет)",
["wpn_grenade_launcher"] = "Взрыв (граната)",
["wpn_grenade_f1"] = "Взрыв (граната)",
["wpn_grenade_rgd5"] = "Взрыв (граната)"
},
weapon_knife = {
["wpn_knife"] = "Ножевое ранение"
}
}
 
function news_of_npc_kill(victim)
if victim and IsStalker(victim) then
local dead_news ="\\n%c[255,160,160,160]Погиб сталкер: %c[default]"..victim:character_name().."%c[255,160,160,160] Место смерти: %c[default]"..level_name[level.name()].."\\n%c[255,160,160,160]Причина смерти: %c[default]" or ""
db.actor:give_game_news(dead_news, "ui\\ui_iconstotal", Frect():set(0,752,83,47), 1000, 6000)
news_sound()
end
end
 
function news_sound()
local snd_obj
snd_obj = xr_sound.get_safe_sound_object([[device\pda\pda_tip]]) -- путь до звукового файла
snd_obj:play_no_feedback(db.actor, sound_object.s2d, 1, vector(), 1.0)
end

 

 

Вопрос: Как определить причину смерти?

В жизни много плохих моментов. Пытайся избавляться от них !

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

выходит, что в конфигах монстра искомого параметра нет?

Выходит, да...
Ссылка на комментарий

 

 

Как определить причину смерти?

Дропнуть тип хита в коллбеки повсеместно, я уже писал пару раз, без этого достоверно определить причину (в некоторых случаях) невозможно. Примеров пока нет, а вот как НЕправильно - смотри амк, симбион и иже с ними.

Добавлено BFG,

Вечный бан.

п.2.0.

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

Доброго времени суток. Не знаю в ту тему ли я пишу. Но все же.
Есть на локации пару объектов. Например два ящика. Как мне узнать их "игровое" имя?
Кто не понял. Например: esc_box_lager_123

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

@Kober(BRUC), Может эти способы и не совсем правильные, но других не знаю.

- если ящики сделаны геометрией, то никак,  у них просто нет имени.

- если ящики сидят в оллспавне, то найти все их в секции локации, поставить ГГ на ящик, глянуть координаты места и найти похожие. Это и будет искомый ящик.

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

Изменено пользователем BFG
  • Спасибо 1
  • Согласен 1
  • Полезно 1

"Кругом зомби.....у меня кончаются патроны...."

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

@Дизель, Есть такой вариант. Но не стал про него упоминать, ибо это уже сложно. Неизвестно какой мод, неизвестно какие локации, неизвестно сможет ли человек настроить свою папку с конфигами для СДК. А это реально непростой процесс.

Например папку с конфигами НС, чтоб её корректно видел СДК я настраивал наверно месяц. И то после того как её уже на половину настроил другой человек, я постоянно задавая нубские вопросы в теме по СДК. Но настроил таки, хотя не уверен что прям на 100%, но локи компилятся и СДК не ругается. Так что этот вариант самый крайний и сложный.

  • Согласен 1
  • Полезно 2

"Кругом зомби.....у меня кончаются патроны...."

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

Вылетает с таким рестриктором. Спавнить нормально, но стоит из него выйти или рядом походить - вылет. Поршни и функция прописаны, ругань на формат, но я не вижу ошибок...

 

[2971]

; cse_abstract properties
section_name = space_restrictor
name = bandit_assault_trigger
position = 50.1554756164551, -0.174215316772461, 140.720397949219
direction = -1.90009188827389e-007, -0.0872660875320435, -1.66235665233216e-008
id = 65535
version = 118
script_version = 6
spawn_id = 1491

; cse_alife_object properties
game_vertex_id = 1247
level_vertex_id = 23949
object_flags = 0xffffff3e
custom_data = <<END
[logic]
active = sr_idle@check1

[sr_idle@check1]
on_actor_outside = nil %+pass_false =bandit_sms%
END

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

; cse_alife_space_restrictor properties
restrictor_type = 3

 

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

Не соответствует правилам.

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

@Дизель,

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line : 73
[error]Description :
[error]Arguments : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)

 

 

Вылетает, когда выхожу из рестриктора, т.е срабатывает on_actor_outside и вылетает!?! Не могу понять в чем дело!

Не соответствует правилам.

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

 

 

%+pass_false =bandit_sms%
Только это может вести на вылет. Логика прекращается событием. Удали попробуй событие %+pass_false =bandit_sms% либо всё, либо по очереди, и выяснишь и скажешь.

andreyholkin.gif

rod_cccp.gif

 

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

@Дизель, есл ставить on_actor_inside это всё работает( поршня и функции прописаны)

Сейчас гляну с сторону ведомых НПЦ


Проблема была в ведомых НПЦ - всё, заработало)

Не соответствует правилам.

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

Здравствуйте.

Есть у меня новый предмет(допустим bread_hj). Который находится просто на полу/столе/ и т.п. И нужно что бы при подборе данного предмета вызывалась определенная функция. Проблема в том, что функция должна срабатывать сразу же. А не после определенного действия. Например открытие инвентаря.

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

@Kober(BRUC), ваш вопрос из тех, что всплывают здесь с завидной регулярностью.

Решение тоже стандартное: найдите файл bind_stalker.script, откройте его. Найдите в нём функцию, указанную ниже, и вставьте в неё свой обработчик на взятие вашего уникального предмета в инвентарь игрока:

function actor_binder:on_item_take (obj)
    level_tasks.proceed(self.object)
    --game_stats.update_take_item (obj, self.object)
    -- НАПРИМЕР, ВОТ СЮДА МОЖНО ВСТАВИТЬ СВОЙ ОБРАБОТЧИК НА ВЗЯТИЕ ПРЕДМЕТА В ИНВЕНТАРЬ АКТЁРА
end

P.S. Наверное, подобный вопрос лучше было бы задать в теме "скриптование".

P.P.S. А если предмет квестовый, то ещё правильнее будет сделать отдельную функцию-обработчик подзадачи квеста на взятие предмета в инвентарь - и не надо будет лезть в биндер актёра.

  • Спасибо 1
Ссылка на комментарий

@=VENOM=, а в ТЧ работает логика такая?:

 

[logic]
active = sr_idle@start
[sr_idle@start]
on_info = { =actor_has_item(wpn_pkm) } sr_idle@time %%
 

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

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий
И нужно что бы при подборе данного предмета вызывалась определенная функция.

Дополню пост @=VENOM=, ставь в то место например 

new_hmm.checking_use_item(obj)

 

Затем в new_hmm.script пишешь такую функцию

function checking_use_item(obj)
local ln = level.name()
local actor = db.actor
local sec = obj:section()
if ln=="имя_локации" and sec=="имя_итема" then actor:give_info_portion("имя_поршня") скрипт.имя_функции()
.....
.....
end
end

Можешь убрать выдачу поршня по взятию итема и оставить только активацию функции. Строк может быть несколько.

Пример взят из Народной Солянки 3.09.2010. Если она у тебя есть, открой braad_test.script и посмотри там как сделано отслеживание по взятию предмета или отслеживание по выдаче поршня.

Изменено пользователем BFG
  • Спасибо 1

"Кругом зомби.....у меня кончаются патроны...."

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

А если я хочу что бы у меня активировалось две функции, мне надо после "скрипт.имя_функции" написать "and", а потом еще раз "скрипт.имя_функции"?

Тоесть: ....

скрипт.имя_функции and

скрипт.имя_функции

....

....

end

end

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

@Kober(BRUC), не надо and - перечисление подключения подобных функций без всяких and пишется. Только () не забудь в конце каждого перечисления поставить.

Изменено пользователем Дизель
  • Спасибо 1
  • Согласен 1

andreyholkin.gif

rod_cccp.gif

 

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

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

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

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

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

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

Войти

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

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

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