Перейти к содержанию
Авторизация  
mic900

COP - зверушки не приручаются)

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

 

Решил вспомнить заселение локаций. Поключил Кордон ЧН-ский, прописал в скриптах локу (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

 

Пробовал собакенов вместо кабана - такой-же результат.
Что я упускаю? Кто-то сталкивался с подобным?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

У тебя bind_monster.script не правленный ?


ПАДШИЙ БОГ | ГРАНЬ            

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Проверю, скорее всего правленный - Сидора спавнил. Думаешь, дело в нем?

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

 

Все тело скрипта не изменено. Что тут может косячить?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу