vadim90, этот вариант, выложенный by Crocks, тот же самый, что пользуешься и ты. Единственное отличие - это точка вызова функции спавна... Сейчас у тебя вызывается из bind_stalker - аналогичная строка:
smb_respawn.respawns_update()
поэтому юзается многократно, а него привязано строго к диалогу
esc_zombie.zombie_story_1
что соответственно исполняется только один раз.....
Crocks, реализацию спавна через bind_stalker ты можешь посмотреть в файлах, например, мода АМК (ну, и в Симбионе тоже)... Весь момент здесь в том, что про апдейту актора (function actor_binder:update(delta)) вызывается функция спавна неписей, что позволяет накручивать этот прибамбас в различных вариациях (спавн по времени, спавн по инфопоршну, спавн по контроля местонахождения ГГ на локации и т.д.).... ТВой же выше приведённый вариант спавнит неписей строго по диалогу... Разницы в самом варианте спавна нет никакой, речь идёт лишь о точке вызова функции спавна.
function actor_binder:update(delta)
object_binder.update(self, delta)
--/ DEBUG slowdown
--slowdown.update()
--if run_once then
vehicle_ph.floating_vehicles_fix(level.name())
--run_once = false
--end
local time = time_global()
game_stats.update (delta, self.object)
--/ $DreamMod апдейт схемы сна
if sleep_manager.is_sleep_active() and xr_conditions.actor_dead() then
xr_logic.issue_event(db.actor, db.storage[db.actor:id()]["ar_sleep"], "update")
end
self.weather_manager:update() --/ апдейт погоды
self.actor_detector:update() --/ апдейт схемы детектора
xr_sound.update_actor() --/ апдейт звуковой схемы актера
--[[
if amk.load_variable("freeplay", 0) > 0 then
local obj = alife(): object("aes2_space_restrictor_death_0000") or alife(): object("aes_space_restrictor_timer")
if obj ~= nil then alife(): release(obj) end
end
--]]
--/--> ARENA_EXTENSION_MOD v0.3 --------------------------------------
if self.object:has_info("aem_startup") then
mod_aem.get_aem():update()
end
--mod_aem.scan_dif()
--/--< arena_extension_mod -------------------------------------------
--[[
--/ Проверка потери жизни
if self.object.health - lasthealth > 0.001 or self.object.health - lasthealth < -0.001 then
printf("%f | %f", self.object.health, self.object.health - lasthealth, game.time() - lasttime)
dbg.log("actor_binder:update:object_id=[" .. self.object:id() .. "]_:health=[" .. self.object.health .. "]_:time=[" .. (game.time() - lasttime) .. "]") --/#~#
lasthealth = self.object.health
lasttime = game.time()
end
--]]
--/ Обновление отключения ввода с клавиатуры.
if self.st.disable_input_time ~= nil and
game.get_game_time():diffSec(self.st.disable_input_time) >= self.st.disable_input_idle
then
level.enable_input()
self.st.disable_input_time = nil
end
--/ Обновление сна с переносом чувака в указанную позицию
if self.st.sleep_relocate_time ~= nil and
game.get_game_time():diffSec(self.st.sleep_relocate_time) >= self.st.sleep_relocate_idle
then
self.object:set_actor_position(self.st.sleep_relocate_point)
local dir = self.st.sleep_relocate_point:sub(self.st.sleep_relocate_look)
self.object:set_actor_direction(dir:getH())
self.st.sleep_relocate_time = nil
end
--/ Апдейт прятание оружия игрока во время диалога
if (weapon_hide == true or self.object:is_talking()) then
if self.weapon_hide == false then
self.object:hide_weapon()
self.weapon_hide = true
end
else
if self.weapon_hide == true then
self.object:restore_weapon()
self.weapon_hide = false
end
end
--/ обновление рестрикторов и всяческих менеджеров, которые под логикой, срабатывает через интервалы времени (5 раз в сек)
if self.next_restrictors_update_time < time then
self.next_restrictors_update_time = time + 200
bind_restrictor.actor_update(delta)
task_manager.actor_update()
if (mod_zen_outfits) then --/#+# from Zen
self.cureManager:update()
end
-- self.hunter_manager:update() --/#+# from Zen
-- bind_teleport.actor_update(delta) --/#+#080106 add spawn Teleports
if (ui_heli) then ui_heli.update(nil, false) end --/ added by Artos
end
abc.doabcevents() --/ from ABC
--/ обновление постпроцессов #~#
if (post_process ~= 0 and post_process:update() == true) then
post_process = 0
end
--/ обновление пси-антенны
if sr_psy_antenna.psy_antenna then
sr_psy_antenna.psy_antenna:update(delta)
end
--if (ui_rad and db.actor.health > 0) then ui_rad.update(self.object) end --/ обновление шкалы радиации added from UI Radiation Mod #+#
--/ Вывод сообщения о большой радиации
if self.object.radiation >= 0.7 then
local hud = get_hud()
local custom_static = hud:GetCustomStatic("cs_radiation_danger")
if custom_static == nil then
hud:AddCustomStatic("cs_radiation_danger", true)
hud:GetCustomStatic("cs_radiation_danger"):wnd():SetTextST("st_radiation_danger")
end
else
local hud = get_hud()
local custom_static = hud:GetCustomStatic("cs_radiation_danger")
if custom_static ~= nil then
hud:RemoveCustomStatic("cs_radiation_danger")
end
end
-- utils2.deferred_release_update() --/#+#080125 from Zen
--/ Запускаем затычку от возможной потери содержимого тайников
-- treasure_manager.get_treasure_manager():loss_workaround() --/#+#080125 from Zen
if (mod_dun) and not self.object:is_talking() then --/#+# added from dunin_ammo
mod_dun.on_update()
end
--/<
if self.bCheckStart then
-- printf("SET DEFAULT INFOS")
if not has_alife_info("storyline_actor_start") and (level.name() == "l01_escape") then
self.object:give_info_portion("storyline_actor_start")
_G.g_start_avi = true
-- printf("*AVI* RUN START AVI")
end
--if not has_alife_info("encyclopedy") then self.object:give_info_portion("encyclopedy") end
if not has_alife_info("global_dialogs") then
self.object:give_info_portion("global_dialogs")
end
if not has_alife_info("level_changer_icons") then
self.object:give_info_portion("level_changer_icons")
end
level_tasks.add_lchanger_location()
self.bCheckStart = false
end
amk.on_actor_upade(delta) --/ added by xStream for AMK miniSDK
if (mod_nlc_sak) then --/#+#
mod_nlc_sak.out_teleport()
mod_nlc_sak.nepis_umer()
end
local level_name = level.name()
if level_name == "l01_escape" then --/ add by Lost_Stranger for fly on heli
amk_fly_func.check_position()
end
amk_heli_func.check_position() --/ added by Lost_Stranger for AMK trans_addon
--/ #?# Добавить проверку доступности дополнительных звуковых файлов
if (amk_sound) then --/#+# --/ added by Lost_Stranger for sound_addon
amk_sound.check_condition ()
end
smb_respawn.respawns_update() --/#+# спаун Симбион'а
if (mod_grenade) then --/#+#
mod_grenade.update(delta)
end
if self.warning then --/> added by Red75. Контроль за переполнением
self.warning = nil
get_hud():AddCustomStatic("hud_save_warning")
local wnd = get_hud():GetCustomStatic("hud_save_warning"):wnd()
if self.critical == 1 then
wnd:SetTextST(game.translate_string("amk_warn_trans"))
self.critical = nil
elseif self.critical == 2 then
wnd:SetTextST(game.translate_string("amk_warn_trans_critical"))
self.critical = nil
elseif self.critical == 3 then
wnd:SetTextST(game.translate_string("amk_warn_cheat_attention"))
self.critical = nil
else
wnd:SetTextST(game.translate_string("amk_warn_attention"))
end
elseif self.wt and self.wt
self.wt = nil
if get_hud():GetCustomStatic("hud_save_warning") then
get_hud():RemoveCustomStatic("hud_save_warning")
end
end --/<
end
строка :
smb_respawn.respawns_update()
вызывает функцию проверки времени для спавна respawns_update() из файла smb_respawn.scipt
вместо неё ты можешь написать:
Что - то я увяз...Слушайте, люди, а как связать скрипт спавна NPC с харак-ми уник. персонажа в character_desc_escape? Скрипт такой:
function esc_dolg1()
local name_section = "dolg_regular"
local pos = db.actor:position()
alife():create(name_section, pos, db.actor:level_vertex_id(), db.actor:game_vertex_id())
end
Вызывается всего один раз через диалог (мне его респаун не нужен). Причём вызывается именно dolg_regular, который прописан в скрипте, а не уник. перс. Если надо выложу содержание и character_desc_escape.
P.S.:Lost_Stranger, спасибо что ответил, как только разберусь с долговцем, примусь за твой пример.
Кто в логике шарит, пишите в асю или ПМ - нужна помощь.
Всем, кому интересно - журнал.
Усё с долговцем разобрался. Альтаир, что ж ты не написал, что уника нужно в ещё одном файле прописать (на 4 странице его сообщение, если кто не понял). Я ещё раз просмотрел урок на Wiki и усё сообразил.
vadim90, не надо создавать новую тему - её тоже засрут. Всегда найдутся те, кто напишет типа "Я написал такой-то скрипт - не работает. В чём моя ошибка? Вот код скрипта..." Типа меня короче;-) В принципе это правильно, если бы на них ещё кто-нибудь отвечал. Но меня раздражает не это. В этой теме шесть страниц (по крайней мере) говорится о том, как два или три чела разбирают мод по кусочкам и извлекают оттуда скрипты спауна/респауна монстров/NPC. И в конечном итоге, как я понял, им это удаётся. Честь им и хвала! Вот только где описание того, что они вытянули? А нету. Разрозненные части скрипта - вот и всё, что мы имеем. Есть, конечно уроки на Wiki, но они глючные. К примеру: практический пример из урока по диалогам не работает, хотя концепцию создания диалогов по этому уроку понять можно, но лишь частично; в уроке по спауну через скрипты также глючные примеры, а той его части, где объясняется спавн NPC, не раскрывается (по крайней мере не полностью) смысл строк и тэгов. При выполнении примера из статьи о квестах, игра выдаёт ошибку. Всё это возвращает нас к тому, что нужно нормальное описание скриптов! Идея об объединении скриптёров довольно оригинальная, но наверно я по своей натуре одиночка. По крайней мере сейчас я чувствую, что должен сам сделать свой проект. Как только я закончу со своим обучением скриптам, диалогам и прочим, я сделаю проект. Нет, даже не так. Я сделаю ПРОЕКТ. Простенький мод, в котором будет приведён пример спавна NPC/монстров/уников, вставки новых диалогов, изменения логики новых (вставленных) персонажей (уников), создания квестов вместе с подробным описанием всего этого (наподобие того, что я привёл на 10-й странице, хотя и там я нашёл некоторые недомолвки с моей стороны, такие как умолчание о тэге (просто на какой-то из страниц приводилось его описания и я не стал повторяться). Вот только каникулы кончились, так что свободного времени теперь практически нет. В связи с этим мод-обучение будет готов не раньше, чем через месяц.
Кто в логике шарит, пишите в асю или ПМ - нужна помощь.
Всем, кому интересно - журнал.
Объясните юзеру как спавнить зомби на чистой игре 1.0004,на кордоне в тоннеле где надо взять бронь для шустрого,скажите в каких файлах че надо делать.
И ещё вопрос:всё ли будет нормально при обыске зомби если сталкер без мода на монстров?
sasha47007, ты тему вообще читал? Мой пост на предыдущей странице видел? Извини, но проще уже некуда. Прочитай ещё раз (достаточно первую и предыдущую страницу), возникнут вопросы, обращайся в аську или личку.
Нет, при обыске вырезанных мутантов, которых ты вставил в игру, игра вылетает. В моём посте на предыдущеё странице есть ссылка - там затрагивается и этот вопрос.
Кто в логике шарит, пишите в асю или ПМ - нужна помощь.
Всем, кому интересно - журнал.
Народ, у меня амк1.4.22. Как прописать в припяти торгаша-ремонтника (координаты находить умею). В скриптах мало понял из прочитанных 11 страниц. Умею только переделывать броню, вещи, оружие(фотошоп, артмоней, огфвейвер, нотепад, аимп, аудишн) и добавлять в продажу, редактировать конфиги и немного ковырялся в диалогах. Добавил части тел всем монстрам и прописал во всех необходимых файлах + добавил в квесты. Хелп ми, народ. Барыгу в припяти хочу.Намекните хотябы, какие файлы ковырять.
отредактировал(а) yurezzsheff: 30-04-2008 08:21 GMT3 час. мир не без добрых людей и на сегодняшний день
Блин, прочитал все страницы темы, но так и не понял как спавнить NPC...в статье на вики пишет: "теперь берем любой скрипт спавна NPC, вставляем в него имя секции из spawn_sections и вуаля". Проблема в том, что у меня нету скрипта спавна. Может кто-нить дать пример такого скрипта?
Объясните че-за фигня:короче сделал я диалог и после определённой фразы на АТП должны появиться 10 зомби,но у меня даже диалог не появляется,захожу мне нужны ответы на некоторые вопросы,дальше что здесь по близости творится и там нет ветки диалога вот файлы http://ifolder.ru/6419739 на 1.0004
Помогите!
Help!
Народ хелп, задолбался уже: не получается спавнить NPC скриптом, хоть убей. Может кто-нить дать мне файлы с работающим скриптом спавна уникального NPC? Или великим мастерам скриптинга LUA наплевать на новичков сайта\форума, которые хотят научится, но не имеют возможности. Только ненадо посылать на...вики: там нету примера спавна NPC
Всем привет!)
Народ, а можно ещё проще пример спавна монстров для новичка?
Тему читал всю - сразу говорю, но "слегка" запутался :)
Кто-нибудь может написать работающий скрипт спавна, напрмер 1 ПСЕВДОГИГАНТА или ПСИ-БЮРЕРА, который бы появлялся на КОРДОНЕ на дороге на АТП, допустим после разговора с Волком или самопроизвольно с регулярным респауном)
Возможно ли такое вообще?) Где-то читал про привязку конкретных монстров к конкретным локациям.
Оч. прошу расписать что, как и где писать/заменять).
P.S./Юзаю ОГСМод под русский Сталкер 1.0005 (на всякий случай)))) ).
Люди, кто подскажет как заспавнить монстров через скрипт на амк моде, а то я прочитав все рекомендации смог тоолько неписей и зомби и разные предметы. неужели амк что-то переделали. Очень прошу помочь. что будет нкпонятно- что я что-то не договорил или показать свой скрип - без проблем только помогите :-(:-(
If you want it, go and get it, because you only have one life to live
извиняюсь может тут кто то и писал о скрипт спавне аномалий но не могли бы вы повторить? та надо очищать аллспавн от аномалий? надо им прописывать класс мутнатов? или нет? ( мне так один чел сказал сделать чтоб они спавнились скриптами) кароче что надо для этого сдлать ? или все точно так же по обычному скрипт спавну?
Извеняюсь за панику и зомбей - у амк у меня удалось заспавнить усех неписей, оружие, бочки итд и даже как пример Альтаира - ну тот который примерчик выложил :). Зомби спавнились только НПС-овские. а все зверье по прежнему не ХОТИТ, нашел даже амк скрипт спавна - запускал - глухо. У кого какие мысли?
If you want it, go and get it, because you only have one life to live
можете плз описать как заспаунить НПС green_stalker_7 в коор. на темной долине после разговора с Пулей.
И плз описать а не перенаправить на др. страницу(со всеми вертексами, итд)
прошу вас плз!!! Это мне очень нужно!!! :ye) :ye) :ye)
Zorndaik А чем тебя не устроил ответ, что я дал в теме "Справочник по скриптам"? Я же написал что для этого необходимо, и что в случае чего обращайся в личку :-)
добавлено спустя 1 час 21 минут
Кому нужны работающие примеры скрипта для спавна не захламляйте тему, напишите в ПМ или в аську. Дам скрипты и помогу с диалогом )))
отредактировал(а) damirazo: 18-05-2008 15:16 GMT3 час. Занимаюсь логикой НПС, скриптами
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.