KitkaT.Net 2 Опубликовано 17 Октября 2010 Попробуй сделать какую нибудь другую анимацию при приближении гг с оружием. [meet] meet_state_wpn = 10|ward@cit_base_guard_talk_to_actor2| 5|probe_2@gar_bandits_seryi; реакция НПС на подход гг с оружием в руках victim_wpn = 10|actor;что то завязанное с расстоянием... попробуй поэкспериментируй с этим use_wpn = true; возможно ли базарить с оружием. Вот попробуй сделать эти секции, если получится отпишись. И да, ward@cit_base_guard_talk_to_actor2 = это анимация. Там ставь свою Ничто не вечно под луной. Поделиться этим сообщением Ссылка на сообщение
KitkaT.Net 2 Опубликовано 27 Декабря 2010 byerer, добавить громкости музыке тока через обработку в X-Ray SDK. Ничто не вечно под луной. Поделиться этим сообщением Ссылка на сообщение
KitkaT.Net 2 Опубликовано 3 Февраля 2012 (изменено) Решил начать разбираться со сложными смарт-террейнами (раньше делал только general_lager). Ловлю постоянный вылет на подходе к смарту (видимо как только попадает он в онлайн): FATAL ERROR [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 : <no expression> [error]Arguments : LUA error: ...:\games\gsc\s.t.a.l.k.e.r\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) stack trace: Что прописано в gulag_escape.ltx: ;--------------------------------- ;-------- Новый лагерь ---------- ;--------------------------------- [logic@esc_new_lager_npc1_walk] active = walker@esc_new_lager_npc1 [walker@esc_new_lager_npc1] path_walk = npc1_walk [logic@esc_new_lager_npc1_kamp1] active = kamp@esc_new_lager_kamp1 [kamp@esc_new_lager_kamp1] center_point = npc1_kamp path_walk = camp_center_task soundgroup = esc_new_lager meet = meet@lager [logic@esc_new_lager_npc2_guard] active = guard@esc_new_lager_npc2 [guard@esc_new_lager_npc2] path_walk = npc2_walk path_look = npc2_look [logic@esc_new_lager_npc2_kamp1] active = kamp@esc_new_lager_kamp1 Что прописано в gulag_escape.script: if type == "esc_new_lager" then t = {section = "logic@esc_new_lager_npc1_walk", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = ""} table.insert(sj, t) t = {section = "logic@esc_new_lager_npc1_kamp1", idle = 0, prior = 5, state = {1}, in_rest = "", out_rest = ""} table.insert(sj, t) t = {section = "logic@esc_new_lager_npc2_guard", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = ""} table.insert(sj, t) t = {section = "logic@esc_new_lager_npc2_kamp1", idle = 0, prior = 5, state = {1}, in_rest = "", out_rest = ""} table.insert(sj, t) end Чую накосячил где-то в распределении работ) Помогите новичку пожалуйста. p.s. - все пути которые нужны, в way_escape присутствуют. Изменено 3 Февраля 2012 пользователем KitkaT.Net Ничто не вечно под луной. Поделиться этим сообщением Ссылка на сообщение
KitkaT.Net 2 Опубликовано 3 Февраля 2012 (изменено) Так, вот работы: if type == "esc_new_lager" then return function(gulag) if not db.actor then return gulag.state end if level.get_time_hours() >= 5 and level.get_time_hours() <= 22 then return 0 else return 1 end end end [esc_new_lager_npc1_kamp] points = p0 p0:name = wp00 p0:position = -21.459390640259,2.4766421318054,72.145248413086 p0:game_vertex_id = 87 p0:level_vertex_id = 255507 [esc_new_lager_npc1_look] points = p0 p0:name = wp00|t=10000 p0:flags = 0x1 p0:position = 3.7962260246277,2.4894599914551,71.421409606934 p0:game_vertex_id = 89 p0:level_vertex_id = 280207 [esc_new_lager_npc1_walk] points = p0,p1,p2 p0:name = wp00 p0:position = 2.4627683162689,2.4790153503418,63.453559875488 p0:game_vertex_id = 89 p0:level_vertex_id = 279500 p0:links = p1(1) p1:name = wp01 p1:position = -11.326374053955,2.4797053337097,66.62703704834 p1:game_vertex_id = 88 p1:level_vertex_id = 265797 p1:links = p2(1) p2:name = wp02 p2:flags = 0x1 p2:position = -9.2513465881348,2.5201017856598,70.700996398926 p2:game_vertex_id = 88 p2:level_vertex_id = 267836 p2:links = p0(1) [esc_new_lager_npc2_look] points = p0 p0:name = wp00 p0:flags = 0x3 p0:position = 15.449903488159,2.4502758979797,62.299892425537 p0:game_vertex_id = 89 p0:level_vertex_id = 293062 [esc_new_lager_npc2_walk] points = p0 p0:name = wp00 p0:flags = 0x3 p0:position = 3.8680720329285,2.4798147678375,61.760292053223 p0:game_vertex_id = 89 p0:level_vertex_id = 280908 [esc_new_lager_npc1_kamp_task] points = p0 p0:name = wp00 p0:position = -21.459390640259,2.4766421318054,72.145248413086 p0:game_vertex_id = 87 p0:level_vertex_id = 255510 йеес!!)) Все заработало, спасибо большое Добавлено через 23 мин.: Назрел еще один вопрос На викисталкере есть такая функция: function fill_tbl(section, idle, prior, states, squad, group, in_rest, out_rest, online, gulag_name) local tbl = {} tbl.section = "logic@" .. gulag_name .. "_" .. section tbl.idle = idle tbl.prior = prior tbl.state = {} for index = 1, #states do table.insert(tbl.state, states[index]) end tbl.squad = squad tbl.group = group tbl.in_rest = in_rest tbl.out_rest = out_rest tbl.online = online return tbl end Куда ее нужно вставить чтобы она заработала ? В скрипты вроде "gulag_escape" ? и еще один вдогонку: Почему сталкеры телепортируются прямо в смарт-террейн ? Я наивно полагал что они будут идти через Зону, а они бац и появились. Ссылку на статью, пожалуйста! ColR_iT Изменено 3 Февраля 2012 пользователем ColR_iT Ничто не вечно под луной. Поделиться этим сообщением Ссылка на сообщение
KitkaT.Net 2 Опубликовано 3 Февраля 2012 Йа ссылко Странно... смарт на на кордоне, включил отображение всех нпс, видно что идут со свалки и бара. Но после того как они оказываются на кордоне и дойдут до моста,вуаля - все уже на пороге Ладно, это в принципе неважно ) Ничто не вечно под луной. Поделиться этим сообщением Ссылка на сообщение
KitkaT.Net 2 Опубликовано 5 Февраля 2012 Пытаюсь заселить Скадовск, на перенесенной в ТЧ мапе. Можно ли реализовать открывание двери при приближении сталкеров к ней ? Насколько я помню, на Янтаре перед Кругловым дверь открывалась сама. Я уже понял что надо поставить рестрикторы перед дверью и за дверью, а вот что дальше ? Выдавать инфопоршн, на присутствие сталкера (как?), а в логике двери сделать проверку ? Ничто не вечно под луной. Поделиться этим сообщением Ссылка на сообщение
KitkaT.Net 2 Опубликовано 6 Февраля 2012 Вот еще один неясный вопросец Поставил смарт-террайн general_lager на локации из костяпака. (А конкретно на предбаннике): [7188] ; cse_abstract properties section_name = smart_terrain name = predbannik_mil_vorota position = -525.90728759766,18.635328292847,227.23803710938 direction = -0.0412191227078438, 0.00485695945098996, 0.117325648665428 version = 118 script_version = 6 ; cse_alife_object properties game_vertex_id = 3880 distance = 2.09999990463257 level_vertex_id = 133668 object_flags = 0xffffffbe custom_data = <<END [smart_terrain] type = general_lager capacity = 13 communities = military END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 2.8756000995636 ; cse_alife_space_restrictor properties restrictor_type = 0 ; se_smart_terrain properties Создал секцию респавна: [7187] ; cse_abstract properties section_name = respawn name = predbannik_soldier_respawn position = 119.52111816406,8.4225988388062,-17.136754989624 direction = 0, 0, 0 version = 118 script_version = 6 ; cse_alife_object properties game_vertex_id = 4019 distance = 4.19999980926514 level_vertex_id = 1135044 object_flags = 0xffffff3e custom_data = <<END [respawn] respawn_section = agr_soldier_veteran,5,agr_soldier_regular,10 max_spawn = 15 idle_spawn = often 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 Поставил time_factor в alife.ltx на 396, выждал два дня - реакции ноль. Как не было солдатиков так и нетю. Вопрос знатокам - почему ? Почему смарт мало того что не забирает солдат с других локаций, дак он еще и не видит респавнер под боком. Добавлено через 34 мин.: И да, в файлах smart_terrain_presets.ltx, general_lager.ltx возможность респавна прописал. Ничто не вечно под луной. Поделиться этим сообщением Ссылка на сообщение
KitkaT.Net 2 Опубликовано 7 Февраля 2012 Ок, пишу здесь. (Просто подумал, что там уже просто в скрипте где-то ошибка и поэтому туда запостил) function se_respawn:CreateObject(sProbability, sSpawnSection) if math.random(100) > tonumber(sProbability) then return end local iSum = 0 --[[ -- Вычитываем секцию для спавна, по указанной вероятности. --]] if not sSpawnSection then for k,v in pairs(self.tSectionsToRespawn) do iSum = iSum + v.probability end iSum = math.random(0, iSum) for k,v in pairs(self.tSectionsToRespawn) do iSum = iSum - v.probability if iSum <= 0 then sSpawnSection = v.section break end end end if sSpawnSection == nil then return false end if self.iParent then local oParent = alife():story_object(self.iParent) if oParent == nil then abort("SPAWNING [%s], cant find parent with SID [%s]", self:name(), self.iParent) return end if oParent.id and self.bItemSpawn then local oItem = alife():create(sSpawnSection, self.position, self.m_level_vertex_id, self.m_game_vertex_id, oParent.id) table.insert(self.tSpawnObject, oItem.id) return true end else local oCreature = alife():create(sSpawnSection, self.position, self.m_level_vertex_id, self.m_game_vertex_id) if self.sName==nil then if self.tSpawnProp[sSpawnSection].isCheck == true then oCreature:brain():update() local iSmartTerrainID = oCreature:smart_terrain_id() if iSmartTerrainID ~= 65535 then table.insert(self.tSpawnObject, oCreature.id) return true else alife():release(oCreature, true) printf("Заспавнили, но удалились: "..tSpawnObject)- добавил эту строчку. Почему вылетает? return false end end table.insert(self.tSpawnObject, oCreature.id) return true else if self.sLogic ~= "nil" then if IsMonster(oCreature) then local tData = net_packet_read.GetMonster(oCreature) tData.sCustomData = "[logic]\ncfg = scripts\\"..self.sLogic..".ltx" net_packet_write.SetMonster(tData, oCreature) elseif IsStalker(oCreature) then local tData = net_packet_read.GetStalker(oCreature) tData.sCustomData = "[logic]\ncfg = scripts\\"..self.sLogic..".ltx" net_packet_write.SetStalker(tData, oCreature) end end table.insert(self.tSpawnObject, oCreature.id) return true end end end Подскажите почему? Или скажите, как правильно определить какие сталкеры заспавнились и удалились. p.s. Artos, проверил, у спавнящихся сталкеров кастомдаты нет. Но когда пробовал установить кастомдату самого респавна [smart_terrains] respawn_check = false военные все равно спавниться не пожелали. Сам то смарт работает, если просто создавать в all.spawn сталкеров и прописывать им этот смарт, они туда идут и спокойно работают. (и почему кстати не забирает смарт с других локаций сталкеров ? Например с агропрома, там же тоже респавн есть? Следовательно проблема наверное все-таки в смарте. Я правильно думаю?) Ничто не вечно под луной. Поделиться этим сообщением Ссылка на сообщение
KitkaT.Net 2 Опубликовано 1 Августа 2016 А как в функцию добавить паузу? Чтобы следующее например отключение инфопоршня произошло через секунду после его получения? give_info("zamer_dozimetr") ???????????????????????????? disable_info("zamer_dozimetr") Ничто не вечно под луной. Поделиться этим сообщением Ссылка на сообщение
KitkaT.Net 2 Опубликовано 2 Августа 2016 @Kondr48, пытаюсь запилить миссию в которой нужно некоторое время простоять в рестрикторе для замера радиации. Начало замера производится при помощи использования предмета в инвентаре. 1 Ничто не вечно под луной. Поделиться этим сообщением Ссылка на сообщение