mic900 7 Опубликовано вчера в 10:34 Решил вспомнить заселение локаций. Поключил Кордон ЧН-ский, прописал в скриптах локу (sim_board и smart_terrain), в СДК заселяю: ставлю смарты, пути, анимпоинты - с НПС все работает ОК. Дошло дело до зверушек, создал сквад из одного кабанчика для проверки, хотел его под логику mob_home взять... а он ни в какую не берется под логику. Более того он даже без логики, просто с прописанным target_smart не хочет в этом смарте оставаться - лежит пару минут, потом уходит шататься по локации. Я уже голову сломал, что не так. Если сквад НПС заспавнить в этом смарте с прописанным target_smart - все ОК, они там остаются, а звери не хотят. Собственно конфиги: Спойлер Сам смарт: [smart_terrain];esc_a11 squad_id = 11 max_population = 1 spawn_point = esc_a11_spawn_point [exclusive] boar_1 = escape\esc_a11_boars.ltx В сдк поставил в смарте два вей-поинта: esc_a11_spawn_point и esc_a11_mob_home_1. Сквад кабанчиков: [esc_a11_boar_squad]:online_offline_group faction = monster_vegetarian npc = boar_normal target_smart = esc_a11 spawn_point = esc_a11_spawn_point story_id = esc_a11_boar_squad Далее simulation_objects_props: [esc_a11]:default_lair territory = 1 lair = 1 sim_avail = true ;SQUADS [esc_a11_boar_squad]:default_squad sim_avail = false Файл логики esc_a11_boars.ltx: [logic@boar_1] active = mob_home@boar_1 suitable = {=is_monster_boar} true monster_job = true prior = 70 [mob_home@boar_1] aggressive_home = true path_home = mob_home_1 home_min_radius = 12 home_max_radius = 18 Пробовал собакенов вместо кабана - такой-же результат. Что я упускаю? Кто-то сталкивался с подобным? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ScR1pt 712 Опубликовано вчера в 11:37 У тебя bind_monster.script не правленный ? ПАДШИЙ БОГ | ГРАНЬ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mic900 7 Опубликовано вчера в 13:03 (изменено) Проверю, скорее всего правленный - Сидора спавнил. Думаешь, дело в нем? UPD: Посмотрел и сравнил с оригинальным, в моем bind_monster.script В КОНЦЕ добавлено следующее: Спойлер ----------------------------------------------------------------------------------- -- Sidor etc binding ----------------------------------------------------------------------------------- function bind(obj) local new_binder = trader_object_binder(obj) obj:bind_object(new_binder) end ------------------------------------------------------------------------------------ class "trader_object_binder" (object_binder) function trader_object_binder:__init(obj) super(obj) self.loaded = false end function trader_object_binder:reload(section) object_binder.reload(self, section) end function trader_object_binder:reinit() object_binder.reinit(self) db.storage[self.object:id()] = { } self.st = db.storage[self.object:id()] end function trader_object_binder:update(delta) object_binder.update(self, delta) -- јпдейт торговли if self.object:clsid() == clsid.script_trader then trade_manager.update(self.object) end local st = db.storage[self.object:id()] if st ~= nil and st.active_scheme ~= nil then xr_logic.try_switch_to_another_section(self.object, st[st.active_scheme], db.actor) end if self.st.active_section ~= nil then xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "update", delta) end end function trader_object_binder:net_spawn(sobject) if not object_binder.net_spawn(self, sobject) then return false end local on_offline_condlist = db.storage[self.object:id()] and db.storage[self.object:id()].overrides and db.storage[self.object:id()].overrides.on_offline_condlist if on_offline_condlist ~= nil then xr_logic.pick_section_from_condlist(db.actor, self.object, on_offline_condlist) end if not self.object:alive() then return true end if alife():object(self.object:id()) == nil then return false end db.add_obj(self.object) if self.object:clsid() == clsid.script_trader then self.object:set_trader_global_anim("idle_spinka") smart_terrain.setup_gulag_and_logic_on_spawn( self.object, self.st, sobject, modules.stype_trader, self.loaded) end return true end function trader_object_binder:net_destroy() xr_sound.stop_sounds_by_id(self.object:id()) local st = db.storage[self.object:id()] if st and st.active_scheme then xr_logic.issue_event(self.object, st[st.active_scheme], "net_destroy") end if db.offline_objects[self.object:id()] then db.offline_objects[self.object:id()].level_vertex_id = self.object:level_vertex_id() db.offline_objects[self.object:id()].active_section = db.storage[self.object:id()].active_section end db.del_obj(self.object) db.storage[self.object:id()] = nil object_binder.net_destroy(self) end function trader_object_binder:net_save_relevant() return true end function trader_object_binder:save(packet) set_save_marker(packet, "save", false, "trader_object_binder") object_binder.save(self, packet) xr_logic.save_obj(self.object, packet) if self.object:clsid() == clsid.script_trader then trade_manager.save(self.object, packet) end set_save_marker(packet, "save", true, "trader_object_binder") end function trader_object_binder:load(reader) self.loaded = true set_save_marker(reader, "load", false, "trader_object_binder") object_binder.load(self, reader) xr_logic.load_obj(self.object, reader) if self.object:clsid() == clsid.script_trader then trade_manager.load(self.object, reader) end set_save_marker(reader, "load", true, "trader_object_binder") end Все тело скрипта не изменено. Что тут может косячить? Изменено вчера в 13:13 пользователем mic900 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 121 Опубликовано 10 часов назад mic900 Локацию в sim_board.script добавляли? В штатные скрипты встроен мониторинг сквадов, для этого нужно включить отображение всех сквадов (раскомментировать метки враждебных сквадов), и включить отображение отладочной информации для сквада (dev_debug = true). После этого при наведении курсора на сквад на глобальной карте в всплывающем окне выводиться информация о текущем его статусе. 2 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mic900 7 Опубликовано 12 минут назад Спасибо, ответившим - уже разобрался - дело было действительно в bind_monster. Заменил его оригинальным а Сидора забиндил к bind_trader. И все заработало. Дополнено 7 минуты спустя 10 часов назад, denis2000 сказал: для этого нужно включить отображение всех сквадов (раскомментировать метки враждебных сквадов) это в каком скрипте? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты