Это популярное сообщение. Dennis_Chikin 3 665 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-847221
AndrewMor 533 Опубликовано 25 Декабря 2018 Поделиться Опубликовано 25 Декабря 2018 В 24.12.2018 в 10:48, Charsi сказал: В ТЧ нет set_gravity даже в lua_help. Возможно, что мой lua_help не из чистой, а из какого-то мода. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218491
Dead_Land 4 Опубликовано 25 Декабря 2018 Поделиться Опубликовано 25 Декабря 2018 (изменено) В 24.12.2018 в 11:20, Houdini_one сказал: @Dead_Land, мы совершенно не знаем, что ты делал. Возможно, твой мод на версию 1.0006, в следствии несовместимости вылетает. Мод поддерживает версии 1.0004-5, вот код с мотиватора проблемный on_npc_hit понятия не имею почему он ругает может я его как-то нетуда прописал ?! --[[------------------------------------------------------------------------------------------------------------------ автор: Диденко Руслан (Stohe) порядок вызова методов биндера: reload reinit load net_spawn --------------------------------------------------------------------------------------------------------------------]] memtsg = {} --' временная таблица lasthealth = 0 lastime = nil ---------------------------------------------------------------------------------------------------------------------- function look_to_shot(object, who) if object and who then if IsStalker(object) and (object:alive() and who:alive()) and not xr_wounded.is_wounded(object) and ((IsStalker(who) and object:relation(who) ~= game_object.friend) or IsMonster(who)) then if object:best_enemy() then local be = object:best_enemy() local enemy_dist = object:position():distance_to_sqr(be:position()) local who_dist = object:position():distance_to_sqr(who:position()) if who_dist < enemy_dist then object:set_sight(look.danger,who:bone_position("bip01_head")) end else object:set_sight(look.danger,who:bone_position("bip01_head")) end end end end function recognize_sound(sound_type) -- Выясняем тип звука local sn_t = "NIL" if bit_and(sound_type, snd_type.weapon) == snd_type.weapon then sn_t = "WPN" if bit_and(sound_type, snd_type.weapon_shoot) == snd_type.weapon_shoot then sn_t = "WPN_shoot" elseif bit_and(sound_type, snd_type.weapon_empty) == snd_type.weapon_empty then sn_t = "WPN_empty" elseif bit_and(sound_type, snd_type.weapon_bullet_hit) == snd_type.weapon_bullet_hit then sn_t = "WPN_hit" elseif bit_and(sound_type, snd_type.weapon_reload) == snd_type.weapon_reload then sn_t = "WPN_reload" end elseif bit_and(sound_type, snd_type.item) == snd_type.item then sn_t = "ITM" if bit_and(sound_type, snd_type.item_pick_up) == snd_type.item_pick_up then sn_t = "ITM_pckup" elseif bit_and(sound_type, snd_type.item_drop) == snd_type.item_drop then sn_t = "ITM_drop" elseif bit_and(sound_type, snd_type.item_hide) == snd_type.item_hide then sn_t = "ITM_hide" elseif bit_and(sound_type, snd_type.item_take) == snd_type.item_take then sn_t = "ITM_take" elseif bit_and(sound_type, snd_type.item_use) == snd_type.item_use then sn_t = "ITM_use" end elseif bit_and(sound_type, snd_type.monster) == snd_type.monster then sn_t = "MST" if bit_and(sound_type, snd_type.monster_die) == snd_type.monster_die then sn_t = "MST_die" elseif bit_and(sound_type, snd_type.monster_injure) == snd_type.monster_injure then sn_t = "MST_damage" elseif bit_and(sound_type, snd_type.monster_step) == snd_type.monster_step then sn_t = "MST_step" elseif bit_and(sound_type, snd_type.monster_talk) == snd_type.monster_talk then sn_t = "MST_talk" elseif bit_and(sound_type, snd_type.monster_attack) == snd_type.monster_attack then sn_t = "MST_attack" elseif bit_and(sound_type, snd_type.monster_eat) == snd_type.monster_eat then sn_t = "MST_eat" end end return sn_t end function check_sound(self, who, sound_type, sound_position, sound_power) -- secure and optimize if not self or not who or not sound_type or not sound_position or not sound_power then return end local actsch = nil if db.storage[self:id()] and db.storage[self:id()].active_scheme then actsch = db.storage[self:id()].active_scheme end if actsch and (actsch == "remark" or actsch == "wounded" or actsch == "actor_dialogs") then return end -- Реакция на звуки -- -- Расстояния проверки local who_dist = 1000 local check_dist = 25*sound_power -- Отсеиваем свои звуки и звуки друзей if (IsMonster(who) or IsStalker(who)) and (who:alive() and self:alive()) and self:id() ~= db.actor:id() and who:id() ~= db.actor:id() then who_dist = self:position():distance_to(who:position()) if who_dist > check_dist or who:id() == self:id() or who:id() == db.actor:id() or db.cars[who:id()] or self:relation(who) == game_object.friend or self:relation(who) == game_object.neutral or xr_wounded.is_wounded(self) then return end else return end local snd_t = recognize_sound(sound_type) local self_hit = hit() self_hit.type = hit.strike self_hit.power = 0 self_hit.impulse = 0.01 self_hit.draftsman = self self_hit.direction = vector():set(0,0,0) local hit = hit() hit.type = hit.strike hit.power = 0 hit.impulse = 0.01 hit.draftsman = self hit.direction = vector():set(0,0,0) -- Если тип задан проверим реакцию на него if snd_t and snd_t ~= "NIL" and not self:best_enemy() then self:set_sight(look.point,sound_position) if IsStalker(who) and (self:relation(who) == game_object.enemy) then if snd_t == "WPN_empty" or snd_t == "WPN_reload" or snd_t == "ITM_drop" or snd_t == "ITM_use" then check_dist = 10*sound_power who_dist = self:position():distance_to(who:position()) if who_dist > check_dist then return else self:set_mental_state(anim.danger) end elseif snd_t == "WPN_shoot" then self:hit(self_hit) self:set_mental_state(anim.danger) end elseif IsMonster(who) then if snd_t == "MST_step" or snd_t == "MST_talk" then if string.find(who:name(), "gigant") then self:hit(hit) self:set_mental_state(anim.panic) else self:set_mental_state(anim.danger) end elseif snd_t == "MST_attack" then self:hit(self_hit) self:set_mental_state(anim.danger) end end end end function check_art_weapon(npc) ------------------------------ --' Изредка движок сглюкивает, --' назначая неписю в слот артефакт --' этого следует избежать, --' так как такие неписи --' застревают на попытке --' применения арта как оружия ------------------------------ local item_in_slot = npc:item_in_slot(1) local act_item = npc:active_item() if act_item and item_in_slot and act_item:id() == item_in_slot:id() then local item_in_slot_sec = act_item:section() local item_in_slot_id = act_item:id() if item_in_slot_sec and item_in_slot_id and (string.find(item_in_slot_sec, "caps_") or string.find(item_in_slot_sec, "af_")) then --' Если непись получил арт в слот по ошибке при загрузке игры, мы просто --' обновим ему оружие в руках и всё. Иначе, если он взял арт в руки и отказывается --' его убирать, а лучшее оружие получить не удаётся, придётся арт выбросить, отрелизить и вернуть ему в рюкзак. -- amk.logf("WARNING! Engine error - art in NPC weapon slot! "..tostring(item_in_slot_sec).." ID "..tostring(item_in_slot_id)) -- local s_obj = alife():object(item_in_slot_id) local bw = npc:best_weapon() local be = npc:best_enemy() local rem_id = npc:active_item():id() npc:drop_item(npc:active_item()) local s_obj = alife():object(rem_id) if s_obj then -- amk.logf("ITEM RESET "..tostring(item_in_slot_sec)) alife():release(s_obj, true) alife():create(item_in_slot_sec,npc:position(),npc:level_vertex_id(),npc:game_vertex_id(),npc:id()) end if bw and string.find(bw:section(), "wpn_") then -- amk.logf("TOSS WEAPON TO "..bw:section().." FROM "..tostring(rem_id)) if be then npc:set_item(object.fire1, bw) return else npc:set_item(object.idle, bw) return end end end end end --------------------------------------------------------------------------------------------------------------------- class "motivator_binder" (object_binder) function motivator_binder:__init (obj) super(obj) self.loaded = false self.last_update = 0 ----memusage.collect_info(self.object, "__init") self.first_update = false self.treasure_processed = false end function motivator_binder:extrapolate_callback(cur_pt) if self.st.active_section then xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "extrapolate_callback") self.st.move_mgr:extrapolate_callback(self.object) end if patrol(self.object:patrol()):flags(cur_pt):get() == 0 then return true end return false end function motivator_binder:reinit() object_binder.reinit(self) --memusage.collect_info(self.object, "reinit_start") --printf("motivator_binder:reinit(): self.object:name()='%s'", self.object:name()) -- КОЛЛБЕКИ ЗДЕСЬ СТАВИТЬ НЕЛЬЗЯ! Здесь еще неизвестна активная схема. -- Ставьте коллбеки в методе update в отмеченном комментарием месте. local char_ini = self.object:spawn_ini() or ini_file("scripts\\dummy.ltx") ---------------------------------------------------------------------------------------------------------------------- -- Общие скрипты ---------------------------------------------------------------------------------------------------------------------- db.storage[self.object:id()] = { followers = {} } self.st = db.storage[self.object:id()] --' Создание менеджера контроля положений тела --memusage.collect_info(self.object, "before_statemgr") self.st.state_mgr = state_mgr.bind_manager(self.object) self.st.move_mgr = move_mgr.move_mgr(self.object) self.st.move_mgr:initialize() --memusage.collect_info(self.object, "after_statemgr") --memusage.collect_info(self.object, "reinit_end") end ---------------------------------------------------------------------------------------------------------------------- function motivator_binder:net_spawn(sobject) printf("motivator_binder:net_spawn(): self.object:name()='%s'", self.object:name()) --memusage.collect_info(self.object, "netspawn_start") if not object_binder.net_spawn(self, sobject) then return false end -- ----------------------------------------------------- ARENA_EXTENSION_MOD-------------------------------------------------------- --if self.object: profile_name() == "arena_military_1on1" then if string.find(self.object:section(),"arena_military_") then self.object:add_restrictions("bar_arena_restrictor","") end if string.find(self.object:section(),"arena_killer_") then self.object:add_restrictions("bar_arena_restrictor","") end if string.find(self.object:section(),"arena_freedom_") then self.object:add_restrictions("bar_arena_restrictor","") end if string.find(self.object:section(),"arena_dolg_") then self.object:add_restrictions("bar_arena_restrictor","") end -- ----------------------------------------------------- ARENA_EXTENSION_MOD-------------------------------------------------------- -- if self.object:spawn_ini():section_exist("dont_spawn_online") then -- printf("!!!OFFLINE") -- alife():object(self.object:id()).dont_spawn_online = true -- end db.add_obj(self.object) -- Все CALLBACK-и ставить здесь: self.object:set_patrol_extrapolate_callback(motivator_binder.extrapolate_callback, self) self.object:set_callback(callback.hit, motivator_binder.hit_callback, self) self.object:set_callback(callback.death, motivator_binder.death_callback, self) self.object:set_callback(callback.use_object, motivator_binder.use_callback, self) --memusage.collect_info(self.object, "after__callback") --self.object:set_callback(callback.sound, motivator_binder.hear_callback, self) --' Загрузка историй для лагеря. if self.loaded == false then local char_ini = self.object:spawn_ini() or ini_file("scripts\\dummy.ltx") xr_info.loadInfo(self.object, char_ini) end if not self.object:alive() then return true end --' Для зомбированных чуваков говорим что аномалий не существует if self.object:character_community() == "zombied" then local manager = self.object:motivation_action_manager() manager:remove_evaluator (stalker_ids.property_anomaly) manager:add_evaluator (stalker_ids.property_anomaly, property_evaluator_const(false)) if outfit_evaluator then manager:add_evaluator(1101, property_evaluator_const(false)) end else local manager = self.object:motivation_action_manager() manager:remove_evaluator (stalker_ids.property_anomaly) manager:add_evaluator (stalker_ids.property_anomaly, property_evaluator_const(false)) if outfit_evaluator then manager:add_evaluator(1101, outfit_evaluator.evaluator_outfit(self.object,"evaluator_outfit")) local action = manager:action (xr_actions_id.alife) action:add_precondition (world_property(1101, false)) end end if ogsm_hideout then local manager = self.object:motivation_action_manager() manager:add_evaluator(ogsm_hideout.property_blowout, property_evaluator_const(false)) manager:add_evaluator(ogsm_hideout.property_hideout_lost, property_evaluator_const(false)) manager:add_evaluator(ogsm_hideout.property_inhide, property_evaluator_const(false)) end --' загрузка озвучки --memusage.collect_info(self.object, "before_soundmgr") xr_sound.load_sound(self.object) --memusage.collect_info(self.object, "after_soundmgr_netspawn_end") xr_gulag.setup_gulag_and_logic_on_spawn( self.object, self.st, sobject, modules.stype_stalker, self.loaded ) return true end function motivator_binder:net_destroy() if xrs_ai then xrs_ai.npc_net_destroy(self.object) end -- if rx_ai then rx_ai.npc_switch_offline(self.object) end --printf("motivator_binder:net_destroy(): self.object:name()='%s'", self.object:name()) local st = db.storage[self.object:id()] if st.active_scheme then xr_logic.issue_event(self.object, st[st.active_scheme], "net_destroy", self.object) end db.del_obj(self.object) db.storage[self.object:id()] = nil self:clear_callbacks() self.object:set_callback(callback.use_object, nil) object_binder.net_destroy(self) end function motivator_binder:clear_callbacks() self.object:set_patrol_extrapolate_callback(nil) self.object:set_callback(callback.hit, nil) self.object:set_callback(callback.death, nil) end function motivator_binder:hit_callback(obj, amount, local_direction, who, bone_index) -- FIXME: коллбеки неплохо было бы регистрировать в общем storage, а не посхемно... -- просто всегда ставить их при включении схемы и снимать при отключении. if self.st.active_section then xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "hit_callback", obj, amount, local_direction, who, bone_index) end if self.st.combat_ignore then xr_logic.issue_event(self.object, self.st.combat_ignore, "hit_callback", obj, amount, local_direction, who, bone_index) end if self.st.combat then xr_logic.issue_event(self.object, self.st.combat, "hit_callback", obj, amount, local_direction, who, bone_index) end if self.st.hit then xr_logic.issue_event(self.object, self.st.hit, "hit_callback", obj, amount, local_direction, who, bone_index) end if amount > 0 then printf("HIT_CALLBACK: %s amount=%s bone=%s", obj:name(), amount, tostring(bone_index)) sr_territory.issue_event(self.object, "hit_callback", obj, amount, local_direction, who, bone_index) xr_wounded.hit_callback(self.object:id()) end amk.on_npc_hit(obj, amount, local_direction, who, bone_index) if rx_ai then rx_ai.npc_hit(obj,amount,local_direction,who,bone_index,self.object) end end function motivator_binder:death_callback(victim, who) if xrs_ai then xrs_ai.npc_death_callback(self.object,who) end if rx_ai then rx_ai.npc_death(self.object,who) end if who:id() == db.actor:id() then xr_statistic.addKillCount(self.object) end if self.st.death then xr_logic.issue_event(self.object, self.st.death, "death_callback", victim, who) end if self.st.active_section then xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "death_callback", victim, who) end sr_territory.issue_event(self.object, "death_callback", victim, who) sr_light.check_light(self.object) smart_terrain.on_death( self.object:id() ) death_manager.drop_manager(self.object):create_release_item() self:clear_callbacks() --' Наносим небольшой импульс вперед. local h = hit() h.draftsman = self.object h.type = hit.fire_wound h.direction = db.actor:position():sub(self.object:position()) h:bone("pelvis") h.power = 1 h.impulse = 10 self.object:hit(h) if(actor_stats.remove_from_ranking~=nil)then local community = self.object:character_community() if community == "zombied" or community == "monolith" or community == "arena_enemy" then return end actor_stats.remove_from_ranking(self.object:id()) end end function motivator_binder:use_callback(obj, who) if self.object:alive() then xr_use.notify_on_use(obj, who) if self.st.active_section then xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "use_callback", obj, who) end else if self.treasure_processed == false then treasure_manager:get_treasure_manager():use(self.object) self.treasure_processed = true end end end function motivator_binder:update(delta) object_binder.update(self, delta) -- self.prev_action_id = debug_helper.print_action(self.object, self.prev_action_id) if self.first_update == false then if self.object:alive() == false then death_manager.drop_manager(self.object):create_release_item() end self.first_update = true end if time_global() - self.last_update > 1000 then if amk.get_npc_relation(self.object,db.actor)=="enemy" and self.object:alive() and self.object.health>0.01 then if self.object:see(db.actor) then amk.enemy_see_actor(self.object,"npc") end if db.actor:see(self.object) then amk.actor_see_enemy(self.object,"npc") end end sr_light.check_light(self.object) self.last_update = time_global() end local wpn = utils.wpn_info_get(self.object) if wpn["ammo"]~=nil then local enemy = self.object:best_enemy() if enemy and enemy:id()==db.actor:id() and self.object:see(db.actor) and self.prev_ammo>wpn["ammo"] then amk.npc_shot_actor(self.object) end end self.prev_ammo = wpn["ammo"] or 0 --' Апдейт менеджера состояний тела if self.st.state_mgr then if self.object:alive() then self.st.state_mgr:update() -- Апдейт торговли if self.st.state_mgr.combat == false and self.st.state_mgr.alife == false then trade_manager.update(self.object) end else self.st.state_mgr = nil end end --' Апдейт саундменеджера if self.object:alive() then xr_sound.update(self.object) end if self.object:alive() then if self.object:is_talk_enabled() then self.object:set_tip_text("character_use") else self.object:set_tip_text("") end else self.object:set_tip_text_default() end self.object:info_clear() local best_enemy = self.object:best_enemy() if best_enemy then self.object:info_add('enemy -- ' .. best_enemy:name()) end local active_section = db.storage[self.object:id()].active_section if active_section then self.object:info_add('section -- ' .. active_section) end self.object:info_add('name -- ' .. self.object:name()) --' Проверка потери жизни --[[ if lasttime == nil or game.get_game_time():diffSec(lasttime) > 1 then printf("%f * %f", self.object.health, self.object.health - lasthealth) lasthealth = self.object.health lasttime = game.get_game_time() end ]] --[[ if not self.debug_smrt then for k, v in pairs( db.smart_terrain_by_id ) do self.debug_smrt = true local o = alife():object( self.object:id() ) if v:enabled(o) then v:register(o) end break end end]] if xrs_ai then xrs_ai.npc_update(self) end if rx_ai then rx_ai.npc_update(self.object,self.st) end end function motivator_binder:reload(section) --memusage.collect_info(self.object, "reload_start") object_binder.reload(self, section) --printf("motivator_binder:reload(): self.object:name()='%s'", self.object:name()) --self.object:set_pda_callback(pda_callback) --memusage.collect_info(self.object, "reload_end") end function motivator_binder:net_save_relevant() --printf("motivator_binder:net_save_relevant(): self.object:name()='%s'", self.object:name()) return true end function motivator_binder:save(packet) printf("motivator_binder:save(): self.object:name()='%s'", self.object:name()) object_binder.save(self, packet) packet:w_bool(self.treasure_processed) xr_logic.save_obj(self.object, packet) dialog_manager.save(self.object, packet) trade_manager.save(self.object, packet) end function motivator_binder:load(reader) self.loaded = true printf("motivator_binder:load(): self.object:name()='%s'", self.object:name()) object_binder.load(self, reader) printf("motivator_binder:object_binder.load(): self.object:name()='%s'", self.object:name()) if reader:r_eof() then abort("SAVE FILE IS CORRUPT") end local unused = reader:r_bool() self.treasure_processed = reader:r_bool() xr_logic.load_obj(self.object, reader) self.npc_script_version = alife():object(self.object:id()).script_version dialog_manager.load(self.object, reader, self.npc_script_version) trade_manager.load(self.object, reader) end function motivator_binder:hear_callback(self, who, sound_type, sound_position, sound_power) if who:id() == self:id() then return end local type = "NIL" if bit_and(sound_type, snd_type.weapon) == snd_type.weapon then type = "WPN" if bit_and(sound_type, snd_type.weapon_shoot) == snd_type.weapon_shoot then type = "WPN_shoot" elseif bit_and(sound_type, snd_type.weapon_empty) == snd_type.weapon_empty then type = "WPN_empty" elseif bit_and(sound_type, snd_type.weapon_bullet_hit) == snd_type.weapon_bullet_hit then type = "WPN_hit" elseif bit_and(sound_type, snd_type.weapon_reload) == snd_type.weapon_reload then type = "WPN_reload" end elseif bit_and(sound_type, snd_type.item) == snd_type.item then type = "ITM" if bit_and(sound_type, snd_type.item_pick_up) == snd_type.item_pick_up then type = "ITM_pckup" elseif bit_and(sound_type, snd_type.item_drop) == snd_type.item_drop then type = "ITM_drop" elseif bit_and(sound_type, snd_type.item_hide) == snd_type.item_hide then type = "ITM_hide" elseif bit_and(sound_type, snd_type.item_take) == snd_type.item_take then type = "ITM_take" elseif bit_and(sound_type, snd_type.item_use) == snd_type.item_use then type = "ITM_use" end elseif bit_and(sound_type, snd_type.monster) == snd_type.monster then type = "MST" if bit_and(sound_type, snd_type.monster_die) == snd_type.monster_die then type = "MST_die" elseif bit_and(sound_type, snd_type.monster_injure) == snd_type.monster_injure then type = "MST_damage" elseif bit_and(sound_type, snd_type.monster_step) == snd_type.monster_step then type = "MST_step" elseif bit_and(sound_type, snd_type.monster_talk) == snd_type.monster_talk then type = "MST_talk" elseif bit_and(sound_type, snd_type.monster_attack) == snd_type.monster_attack then type = "MST_attack" elseif bit_and(sound_type, snd_type.monster_eat) == snd_type.monster_eat then type = "MST_eat" end end if type ~= "NIL" then printf("SND *%s* dist: %d [%f], %s -> %s", type, self:position():distance_to(who:position()), sound_power, who:name(), self:name()) end end function AddToMotivator(npc) if alife() then npc:bind_object(this.motivator_binder(npc)) end end -- Эвалюаторы, которые имеют высший приоритет, и, соответственно, перебивают остальные скрипты собой function addCommonPrecondition(action) --action:add_precondition (world_property(xr_evaluators_id.reaction,false)) action:add_precondition (world_property(xr_evaluators_id.stohe_meet_base + 1,false)) action:add_precondition (world_property(xr_evaluators_id.sidor_wounded_base + 0, false)) action:add_precondition (world_property(xr_evaluators_id.chugai_heli_hunter_base, false)) action:add_precondition (world_property(xr_evaluators_id.abuse_base, false)) if ogsm_hideout then action:add_precondition(world_property(ogsm_hideout.property_blowout, false)) action:add_precondition(world_property(ogsm_hideout.property_hideout_lost, false)) action:add_precondition(world_property(ogsm_hideout.property_inhide, false)) end if anomaly_evader then action:add_precondition (world_property(1099,false)) end if watcher_act then action:add_precondition(world_property(watcher_act.evid_see_stuff, false)) end if outfit_evaluator then action:add_precondition (world_property(1101,false)) end if xrs_ai then xrs_ai.addCommonPrecondition(action) end if rx_ai then rx_ai.addCommonPrecondition(action) end end Изменено 25 Декабря 2018 пользователем Dead_Land Q Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218526
Cagorich 0 Опубликовано 25 Декабря 2018 Поделиться Опубликовано 25 Декабря 2018 (изменено) Доброго времени суток. Столкнулся с непонятной для меня проблемой, решил перенести артефакты из ЗП в ТЧ. Перенес модели все прекрасно работают, но есть одна проблема. Если взять артефакт, а затем выбросить его то происходить вылет такого вида: Скрытый текст * MEMORY USAGE: 281047 K stack trace: 0023:008B000D xrCore.dll 0023:0077CDD8 xrCore.dll, xrDebug::fail() 0023:03A892EB xrGame.dll И это не только с артефактами, любыми простыми предметами из ЗП. Артефакты прогонял через SDK 0.4. На отсутствие шейдеров или еще чего то лог не жаловался. Подскажите может кто-то по курсу где я допустил ошибку? Изменено 25 Декабря 2018 пользователем Cagorich Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218528
Jekyll 92 Опубликовано 25 Декабря 2018 Поделиться Опубликовано 25 Декабря 2018 (изменено) 3 часа назад, Dead_Land сказал: проблемный on_npc_hit 409 строка: amk.on_npc_hit(obj, amount, local_direction, who, bone_index) Проверь для начала наличие у себя в скриптах файла amk.script, и если таков есть, проверь в нем наличие функции on_npc_hit. И на будущее - скидывай сюда лучше сам файл, а не все его содержимое, пусть даже под спойлером. Изменено 25 Декабря 2018 пользователем Jekyll Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218551
Dead_Land 4 Опубликовано 25 Декабря 2018 Поделиться Опубликовано 25 Декабря 2018 @Jekyll, Там есть всё и функция есть проблема только что огрызается вылетами при выстрелах нпс. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218577
Jekyll 92 Опубликовано 25 Декабря 2018 Поделиться Опубликовано 25 Декабря 2018 (изменено) Можешь выложить сюда свой текущий amk.script, а заодно этот Interactive_Music_Mod? На какую базу ты его устанавливал? АМК 1.4.1? Вылеты в боевке начались именно после установки Interactive_Music_Mod? Изменено 25 Декабря 2018 пользователем Jekyll Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218622
AndrewMor 533 Опубликовано 26 Декабря 2018 Поделиться Опубликовано 26 Декабря 2018 17 часов назад, Cagorich сказал: Если взять артефакт, а затем выбросить его то происходить вылет такого вида: Я все арты из ЧН и ЗП в ТЧ переносил. Модели перегонял конвертером в object, потом в АЕ конвертировал обратно в ogf. Все прекрасно работает, берется-выбрасывается. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218661
Cagorich 0 Опубликовано 26 Декабря 2018 Поделиться Опубликовано 26 Декабря 2018 (изменено) 3 минуты назад, AndrewMor сказал: Я все арты из ЧН и ЗП в ТЧ переносил. Модели перегонял конвертером в object, потом в АЕ конвертировал обратно в ogf. Все прекрасно работает, берется-выбрасывается. В object я перегонял с помощью MilkShape 3D. Затем в SDK 0.4. Хм.. Попробую конвертером. С моделями НПС проблем никаких не было. Кстати, не только с артефактами, с любыми предметами из ЗП и ЧН. Изменено 26 Декабря 2018 пользователем Cagorich Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218662
AndrewMor 533 Опубликовано 26 Декабря 2018 Поделиться Опубликовано 26 Декабря 2018 2 минуты назад, Cagorich сказал: С моделями НПС проблем никаких не было. С моделями НПС - да, нужна Милка, там две косточки для ТЧ лишние. Ну и файл настройки костей. Далее все стандартно. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218663
Cagorich 0 Опубликовано 26 Декабря 2018 Поделиться Опубликовано 26 Декабря 2018 31 минуту назад, AndrewMor сказал: С моделями НПС - да, нужна Милка, там две косточки для ТЧ лишние. Ну и файл настройки костей. Далее все стандартно. И вправду, проблема оказалась в Милке. Прогнал через обычный конвертер, затем в SDK и все работает. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218667
Dead_Land 4 Опубликовано 26 Декабря 2018 Поделиться Опубликовано 26 Декабря 2018 12 часов назад, Jekyll сказал: Можешь выложить сюда свой текущий amk.script, а заодно этот Interactive_Music_Mod? На какую базу ты его устанавливал? АМК 1.4.1? Вылеты в боевке начались именно после установки Interactive_Music_Mod? У меня там сборка её кидать или нет? Просто весит многовато не у всех есть инет безлимитный. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218688
Dead_Land 4 Опубликовано 26 Декабря 2018 Поделиться Опубликовано 26 Декабря 2018 (изменено) 12 часов назад, Jekyll сказал: Можешь выложить сюда свой текущий amk.script, а заодно этот Interactive_Music_Mod? На какую базу ты его устанавливал? АМК 1.4.1? Вылеты в боевке начались именно после установки Interactive_Music_Mod? У меня там сборка может её кинуть или нет? Просто весит многовато не у всех есть инет безлимитный. База мода OGSM Ultimate он использует амк скрипт. Изменено 26 Декабря 2018 пользователем Dead_Land Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218691
Dead_Land 4 Опубликовано 26 Декабря 2018 Поделиться Опубликовано 26 Декабря 2018 1.gamedata это оригинал Interactive_Music_Mod. http://mega.dp.ua/file?source=18122611031733205819 2.Новая папка это мои уже. http://mega.dp.ua/file?source=18122611082467510180 3. Администрации сверху багнулось что-то я не знаю почему оно профлудило 2 раза я просто отредактировал старое. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218699
dPlayer 552 Опубликовано 26 Декабря 2018 Поделиться Опубликовано 26 Декабря 2018 Что происходит при подборе предметов из х18? Выдаётся какой инфопоршень? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218817
Akello 175 Опубликовано 26 Декабря 2018 Поделиться Опубликовано 26 Декабря 2018 32 минуты назад, dPlayer сказал: Что происходит при подборе предметов из х18? Выдаётся какой инфопоршень? Так смотря каких именно предметов, ты бы уточнил, если квестовых, то в самом квесте и смотри, что там выдается. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218828
AndrewMor 533 Опубликовано 27 Декабря 2018 Поделиться Опубликовано 27 Декабря 2018 23 часа назад, Cagorich сказал: Прогнал через обычный конвертер, затем в SDK и все работает. Что и требовалось доказать Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218857
dPlayer 552 Опубликовано 27 Декабря 2018 Поделиться Опубликовано 27 Декабря 2018 @Akello, не то написал. Документов из х18 а не предметов 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218860
Змея 241 Опубликовано 27 Декабря 2018 Поделиться Опубликовано 27 Декабря 2018 (изменено) @dPlayer darkvalley_tasks.script function proceed() local actor = db.actor if not has_alife_info("dar_document1") and actor:object("dar_document1") then actor:give_info_portion("dar_document1") end То есть - выдаются поршни. Элементарный поиск по файлам)) ЗЫ. Кстати нет разницы, предмет или документ. Всяко с квест_итемс нужно начинать... Изменено 27 Декабря 2018 пользователем Змея 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218862
dPlayer 552 Опубликовано 27 Декабря 2018 Поделиться Опубликовано 27 Декабря 2018 @Змея, в целом, ф-ция которую ты привел, в оригинале не используется 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1218989
lordmuzer 743 Опубликовано 27 Декабря 2018 Поделиться Опубликовано 27 Декабря 2018 (изменено) Почему не используется? через level_tasks.script вызываются такие скрипты(*_tasks.script) при получении любого инфо поршня. Изменено 27 Декабря 2018 пользователем lordmuzer 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/984/#findComment-1219004
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти