qwertyuiop 16 Опубликовано 2 Февраля 2018 Солянка-2016.У меня убили Киценко, главного кормильца и грозу собак.Также ушли 2 часовых и оставили блокпост назащищенным.Я хочу написать скрипт, чтобы они заспавнивались через некоторое время,если Киценко убит.Заспавнить непись несложно, но как узнать имя секции Киценко? Как узнать, жив ли данный НПС? Прошел Солянку, иду в NLC Поделиться этим сообщением Ссылка на сообщение
qwertyuiop 16 Опубликовано 2 Февраля 2018 (изменено) Quote <specific_character id="bar_zastava_commander_1" team_default = "1"> <name>bar_kicenko_name</name> <icon>ui_npc_u_stalker_do_balon_1</icon> <map_icon x="0" y="0"></map_icon> <bio>sim_dolg_veteran_bio</bio> <class>bar_zastava_commander</class> Кого спавнить? alife():create(name,p,lv,gv).Пробовал: bar_zastava_commander_1, bar_kicenko_name, bar_zastava_commander - вылет с "Can't open section". Изменено 2 Февраля 2018 пользователем qwertyuiop Прошел Солянку, иду в NLC Поделиться этим сообщением Ссылка на сообщение
qwertyuiop 16 Опубликовано 2 Февраля 2018 Он у меня не распакован.Где взять распаковщик Солянки-2016? Прошел Солянку, иду в NLC Поделиться этим сообщением Ссылка на сообщение
qwertyuiop 16 Опубликовано 2 Февраля 2018 Он не проверен на этой версии, не распаковывает. Quote FATAL ERROR! Function: stkutils::scan::get_class Line: 1919 Description: cannot find clsid for class buddy_psevdopup Прошел Солянку, иду в NLC Поделиться этим сообщением Ссылка на сообщение
qwertyuiop 16 Опубликовано 2 Февраля 2018 problems occurred while scanning config.. try again.и зависает. Известен ли специальный распаковщик для Солянки-2016? Прошел Солянку, иду в NLC Поделиться этим сообщением Ссылка на сообщение
qwertyuiop 16 Опубликовано 3 Февраля 2018 Спасибо,распаковалось. Quote [1303] ; cse_abstract properties section_name = stalker name = bar_zastava_commander_1 position = 227.857559204102, -0.0100178448483348, -2.56606030464172 direction = 3.13111279126588e-008, -3.04658879233307e-014, 1.20878965503834e-007 version = 118 script_version = 6 spawn_id = 3174 Так как его спавнить, чтобы он стал Киценко, если у него секция - stalker? alife():create принимает координаты, уровень и секцию. Прошел Солянку, иду в NLC Поделиться этим сообщением Ссылка на сообщение
qwertyuiop 16 Опубликовано 3 Февраля 2018 Quote function perespawn(name,spawn_id) local obj for i=1,65534 do obj = alife():object(i) if obj then --dist_to_stalker(obj) if obj:name() == name then printf("nps deleted %s",name) alife():release(obj) break end end end alife():create(spawn_id) end perespawn("Киценко",3174) Не находит Киценко и спавнит рядового без квеста и со случайным именем. Вместо "Киценко" пробовал разные варианты - тоже не работает. Quote function dist_to_stalker(obj) if IAmAStalker[obj:clsid()] then local pos = obj:position() local dist = math.sqrt(pos.x*pos.x+pos.z*pos.z) if dist < 10 and pos.y < -0.1 then printf("stalker horizontal distance %s %f",obj:name(),dist) end end end Пробовал найти имя трупа Киценко перечислением сталкеров, которые близко ко мне - вылетает на obj:position(). Прошел Солянку, иду в NLC Поделиться этим сообщением Ссылка на сообщение
qwertyuiop 16 Опубликовано 3 Февраля 2018 (изменено) Quote perespawn("bar_zastava_guard_3",3173) А он, оказывается, не командир,замаскировался.Перечислил трупы, используя фильтры перебором подходящих,, и нашел его.В файл писать нельзя, потому длинный список нельзя весь посмотреть.Или у меня сломалась игра, потому что в config\gameplay\character_desc_bar.xml: Quote <specific_character id="bar_zastava_commander_1" team_default = "1"> <name>bar_kicenko_name</name> Quote function name_dead_stalker(obj) if IAmAStalker[obj:clsid()] and not obj:alive() then local name = obj:name() if name and string.find(name,"zastava") --[[and string.find(name,"dolg") and not string.find(name,"ammo") and not string.find(name,"wpn") and not string.find(name,"respawn") and not string.find(name,"bunker") and not string.find(name,"regular") and not string.find(name,"blokpost") ]]-- then printf("dead stalker %s",name) end end end Теперь вопрос, как его переименовать и всучить диалог "Киценко убили, я вместо него", а то некрасиво получается.Скриптами без патчения all.spawn. Изменено 3 Февраля 2018 пользователем qwertyuiop Прошел Солянку, иду в NLC Поделиться этим сообщением Ссылка на сообщение
qwertyuiop 16 Опубликовано 11 Февраля 2018 (изменено) Пытаюсь изменить отношение группировки к ГГ Quote function set_friend(community) local obj for i=1,65534 do obj = alife():object(i) if obj and IAmAStalker[obj:clsid()] and obj:alive() then if obj.community ~= nil and obj:community() == community then printf("stalker %s",obj:name()) rel = obj:relation(db.actor) s = "????" if rel == game_object.neutral then s = "neutral" elseif rel == game_object.friend then s = "friend" elseif rel == game_object.enemy then s = "enemy" end printf("relation %s",s) end end end end Вылетает по relation== nil. Это как сталкер есть, живой, в группировке, а relation() не существует? set_relation тоже у всех nil. Изменено 11 Февраля 2018 пользователем qwertyuiop Прошел Солянку, иду в NLC Поделиться этим сообщением Ссылка на сообщение
qwertyuiop 16 Опубликовано 24 Апреля 2018 Оживил непись: alife():release(obj) .. obj = alife():create(spawn_id) Пытаюсь сделать другом, в другом скрипте и не сразу. if obj and IAmAStalker[obj:clsid()] and obj:alive() and obj:name() == name then printf("set friend %s",name) obj:set_relation(game_object.friend,db.actor) end вылет attempt to call method 'set_relation' (a nil value) Непись живая, на одном уровне с ГГ, воюет. Почему может быть вылет? Прошел Солянку, иду в NLC Поделиться этим сообщением Ссылка на сообщение