[CoP] Модострой: вопросница
|
|
|
Overfirst
Воскресенье, 31.12.2017, 13:17 | Сообщение # 1
Статус: |
 |
Бывалый: |
 |
Сообщений: |
1081 |
Награды: |
19 |
Регистрация: |
11.06.2015 |
|
[CoP] Модострой: вопросница

Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
|
|
Воскресенье, 31.12.2017, 13:17
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
11.06.2015 |
|
|
|
|
|
Статус: |
 |
Отмычка: |
 |
Сообщений: |
112 |
Награды: |
1 |
Регистрация: |
29.10.2019 |
|
Всем доброго вечера,не подскажите, возможно ли перенести Худ(полоска здоровья,полоска брони) из мода "Ветер Времени" И каким образом?
|
|
Четверг, 30.01.2020, 20:43
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
29.10.2019 |
|
|
|
|
|
Время Альянса
Статус: |
 |
Ветеран: |
 |
Сообщений: |
4070 |
Награды: |
16 |
Регистрация: |
19.07.2013 |
|
Цитата molodoy_chelovek (  ) force_obj(jup_b207_depot_cover_id) Эта функция придает объекту с указанным стори_ид, постоянное усилие (точнее усилие в 20Н с интервалом времени 100мс) с вектором 0,1,0 (прижимает вертикально вниз).
Цитата Policai (  ) Когда ГГ в верхней мёртвой точке проходит хит, и у летает ГГ в виде трупа достаточно далеко, что может быть? Скорее всего физика в движке так работает, возможно даже правки движка на размер динамических объектов так повлияли на расчеты физики.
Сообщение отредактировал denis2000 - Четверг, 30.01.2020, 22:35
|
|
Четверг, 30.01.2020, 21:56
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
19.07.2013 |
|
|
|
|
|
Статус: |
 |
Новичок: |
 |
Сообщений: |
266 |
Награды: |
5 |
Регистрация: |
09.01.2013 |
|
Устанавливается анимпоинт "sit_normal". Далее ему прописывается эксклюзивная логика с целью задать ему кастомную анимацию (в моем случае - монолитовскую "молитву") и позволить любым НПС использовать его. В результате анимпоинт начинают занимать аж 2-3 непися сразу. Возможно ли решить эту проблему?
Сообщение отредактировал Lektorrr - Четверг, 30.01.2020, 21:59
|
|
Четверг, 30.01.2020, 21:57
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
09.01.2013 |
|
|
|
|
|
Время Альянса
Статус: |
 |
Ветеран: |
 |
Сообщений: |
4070 |
Награды: |
16 |
Регистрация: |
19.07.2013 |
|
Lektorrr, Вероятнее всего вы так неудачно поименовали смарт-ковер, что у вас образовалось две работы с его участием: одна - эксклюзивная, вторая - дефолтная. Называть смарт-ковер эксклюзивной работы в шаблоне: Имя_смарта_animpoint_Индекс, плохая идея.
Сообщение отредактировал denis2000 - Четверг, 30.01.2020, 22:51
|
|
Четверг, 30.01.2020, 22:48
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
19.07.2013 |
|
|
|
|
|
Dead City Breakthrough
Статус: |
 |
Опытный: |
 |
Сообщений: |
2244 |
Награды: |
11 |
Регистрация: |
08.11.2011 |
|
Народ! Перебираю торговлю, разбита на 4 этапа. Как на тестовой локе проверить работу этих этапов? Имеется ввиду инфопрции на подключение нужной секции при наличии количества предметов в инветаре.
Сейчас у меня сделано так:
Но лока тестовая и там нет этого квеста, соответственно ловлю вылет что левые поршни. Как проверить работу просто по наличию этих предметов в инвентаре? Предметы doc_01 - doc_12, full_doc
Сообщение отредактировал Policai - Пятница, 31.01.2020, 06:38
|
|
Пятница, 31.01.2020, 06:37
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
08.11.2011 |
|
|
|
|
|
Neptun
Пятница, 31.01.2020, 07:53 | Сообщение # 5901
Связной
Статус: |
 |
Бывалый: |
 |
Сообщений: |
672 |
Награды: |
9 |
Регистрация: |
25.03.2012 |
|
Policai, у тебя функции не работают или что? Проверить можно как угодно, самый простой - это создать тестовый квест и прописать условие, что метка поставится при этом условии: {=actor_has_need_docs(8)}
|
|
Пятница, 31.01.2020, 07:53
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
25.03.2012 |
|
|
|
|
|
Dead City Breakthrough
Статус: |
 |
Опытный: |
 |
Сообщений: |
2244 |
Награды: |
11 |
Регистрация: |
08.11.2011 |
|
Neptun,
Это явно не самый простой..)))) создавать ненужный квест. Мне нужно просто проверить переключение режимов торговли. Можно проверить уже в моде, с этим нет проблем, но это долго и муторно учитывая что разные файлы торговли у разных торговцев так как разный ассортимент. Поэтому и хотел всё отстроить на тестовой локе. Посадил торговца. и просто прописываю ему разные файлы торговли. Так быстрее проверить всех. Тестовая лока и грузится мгновенно, и бегать никуда не нужно. Просто условия нужно создать, в инвенторе 2 прдемета - 1 условие, 4 - 2 условие. 6 - 3 условие.
|
|
Пятница, 31.01.2020, 09:21
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
08.11.2011 |
|
|
|
|
|
Время Альянса
Статус: |
 |
Ветеран: |
 |
Сообщений: |
4070 |
Награды: |
16 |
Регистрация: |
19.07.2013 |
|
Цитата Policai (  ) Мне нужно просто проверить переключение режимов торговли. Так для этого и нужно, чтобы по вашему желанию выполнялись заданные вами условия, переключения режимов торговли. Как вам и сказали самое простое решение такой проверки создать тестовый квест рестриктор с логикой в которой вы и будете искусственно выполнять желаемые условия (выдавая предметы или инфопорции).
Сообщение отредактировал denis2000 - Пятница, 31.01.2020, 10:30
|
|
Пятница, 31.01.2020, 10:28
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
19.07.2013 |
|
|
|
|
|
Dead City Breakthrough
Статус: |
 |
Опытный: |
 |
Сообщений: |
2244 |
Награды: |
11 |
Регистрация: |
08.11.2011 |
|
Совсем запутался..)))) Попробую обьяснить по другому. Стоит торговец, рядом стоит мой сундук, в нём 8 предметов. 1. Я подхожу к нему пустой. 2. Буру из сундука 4 предмета и подхожу к нему. 3. Беру 6 предметов и подхожу к нему. 4. Беру все 8 предметов и подхожу к нему. Должна пройти проверка сколько предметов у меня в инвенторе и включиться соответствующая секция.
Действия: Ставлю спейс перед торговцем. Что туда прописывать? Как подсчитать сколько у меня предметов в рюкзаке, имея ввиду что предметы имеют имена doc_01 - doc_08. И как прописать их в файле торговли... Учитывайте пожалуста что у меня 1 извилина в этом плане.. (Если её разрезать, уши отпадут) 
|
|
Пятница, 31.01.2020, 10:59
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
08.11.2011 |
|
|
|
|
|
Время Альянса
Статус: |
 |
Ветеран: |
 |
Сообщений: |
4070 |
Награды: |
16 |
Регистрация: |
19.07.2013 |
|
Цитата Policai (  ) Должна пройти проверка сколько предметов у меня в инвенторе и включиться соответствующая секция. Если у вас проверка только по предметам в инвентаре ГГ, то да это сработает и сундук будет проще рестриктора.
|
|
Пятница, 31.01.2020, 12:22
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
19.07.2013 |
|
|
|
|
|
Статус: |
 |
Опытный: |
 |
Сообщений: |
1313 |
Награды: |
4 |
Регистрация: |
30.08.2018 |
|
День добрый! Помогите пожалуйста! Делал правку скриптов в bind_monster.script, а именно добавлял туда скрипты Сидоровича. После решил добавить возможность лута мутантов через F, и тут эти две правки начали конфликтовать. Сидоровчи работает, но мутанты не лутаються. Я очень плох в Lua и буду рад если вы скажите что делать. Я понял, что там биндиться "generic_object_binder" и "trader_object_binder", но что и как делать не знаю... Сам скрипт:
Код ----------------------------------------------------------------------------------- -- Monster binding -----------------------------------------------------------------------------------
function bind(obj) printf("_bp: monster.bind: name='%s', id='%d'", obj:name(), obj:id())
-- Для спауна --xr_spawner.spawn_client(obj)
local new_binder = generic_object_binder(obj) obj:bind_object(new_binder) end
local last_update = 0 -- combat ------------------------------------------------------------------------------------ class "generic_object_binder" (object_binder)
function generic_object_binder:__init(obj) super(obj) self.loaded = false ------ use -------- self.use = false ------------------- end
function generic_object_binder:reload(section) object_binder.reload(self, section) end
function generic_object_binder:reinit() object_binder.reinit(self)
db.storage[self.object:id()] = { }
self.st = db.storage[self.object:id()]
self.object:set_callback(callback.patrol_path_in_point, self.waypoint_callback, self) self.object:set_callback(callback.hit, self.hit_callback, self) self.object:set_callback(callback.death, self.death_callback, self) self.object:set_callback(callback.sound, self.hear_callback, self) end
function generic_object_binder:update(delta) object_binder.update(self, delta)
if xr_combat_ignore.fighting_with_actor_npcs[self.object:id()] and self.object:best_enemy() == nil then xr_combat_ignore.fighting_with_actor_npcs[self.object:id()] = nil end
local squad = get_object_squad(self.object) local object_alive = self.object:alive() --' printf("_bp: generic_object_binder: UPDATE [name='%s' time=%d]", --' self.object:name(), time_global())
if not object_alive then return end
self.object:set_tip_text("") 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 squad ~= nil then if squad:commander_id() == self.object:id() then squad:update() end end
self.object:info_clear()
local active_section = db.storage[self.object:id()] and db.storage[self.object:id()].active_section if active_section then self.object:info_add("section: " .. active_section) end local best_enemy = self.object:best_enemy() if best_enemy then self.object:info_add("enemy: " .. best_enemy:name()) end self.object:info_add(self.object:name().." ["..self.object:team().."]["..self.object:squad().."]["..self.object:group().."]")
if alife():object(self.object:id()) == nil then return end
if squad ~= nil then self.object:info_add("squad_id: " .. squad:section_name()) if squad.current_action ~= nil then local target = squad.assigned_target_id and alife():object(squad.assigned_target_id) and alife():object(squad.assigned_target_id):name() self.object:info_add("current_action: " .. squad.current_action.name .."["..tostring(target).."]") end end
-- Если есть враг , то идем в комбат !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! if self.object:get_enemy() then if xr_logic.mob_captured(self.object) then xr_logic.mob_release(self.object) end return end
if squad and squad.current_action and squad.current_action.name == "reach_target" then local squad_target = simulation_objects.get_sim_obj_registry().objects[squad.assigned_target_id] if squad_target == nil then return end -- printf("_bp: mob_reach_task:reset_scheme: %s", self.object:name())
local target_pos, target_lv_id, target_gv_id = squad_target:get_location() -- if not xr_logic.mob_captured(self.object) then xr_logic.mob_capture(self.object, true) -- end if squad:commander_id() == self.object:id() then action(self.object, move(move.walk_with_leader, target_pos), cond(cond.move_end)) else local commander_pos = alife():object(squad:commander_id()).position if commander_pos:distance_to(self.object:position()) > 10 then action(self.object, move(move.run_with_leader, target_pos), cond(cond.move_end)) else action(self.object, move(move.walk_with_leader, target_pos), cond(cond.move_end)) end end return 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 generic_object_binder:extrapolate_callback() -- Проверяем, что объект еще в онлайне if db.storage[self.object:id()] == nil or db.storage[self.object:id()].object == nil then return end
local cur_pt = self.object:get_current_point_index() if self.object:get_script() == false then return false end
local patrol_path = self.object:patrol() if not level.patrol_path_exists(patrol_path) then return false --abort("bind_monster:extrapolate_callback(). There is no patrol path [%s]", tostring(patrol_path)) end if patrol(patrol_path):flags(cur_pt):get() == 0 then --printf("_bp: generic_object_binder: extrapolate_callback: cur_pt = %d: true", cur_pt) return true end --printf("_bp: generic_object_binder: extrapolate_callback: cur_pt = %d: false", cur_pt) return false end
function generic_object_binder:waypoint_callback(obj, action_type, index) if self.st.active_section ~= nil then xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "waypoint_callback", obj, action_type, index) end end
function generic_object_binder:death_callback(victim, who) printf("stop_dead_id"..self.object:id())
xr_combat_ignore.fighting_with_actor_npcs[self.object:id()] = nil
self:hit_callback(victim, 1, vector():set(0,0,0), who, "from_death_callback") if who:id() == db.actor:id() then xr_statistic.inc_killed_monsters_counter() xr_statistic.set_best_monster(self.object) end
if self.st.mob_death then xr_logic.issue_event(self.object, self.st.mob_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 --' Наносим небольшой импульс вперед. 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)
local obj_clsid = self.object:clsid() if obj_clsid == clsid.poltergeist_s then printf("releasing object ["..self.object:name().."]") if alife():object(self.object:id()) ~= nil then alife():release(alife():object(self.object:id()), true) end end --' Подключим колбэк юзанья, для возможности снятия частей монстров self:exist_use() end
--' Поддержка юзанья частей монстров '-------------------------------------------------------------------------------
function generic_object_binder:exist_use() local ini = system_ini() if ini:line_exist(self.object:section(), "Spawn_Inventory_Item_Section") then local conf = ini:r_string(self.object:section(), "Spawn_Inventory_Item_Section") local items = {} for s in string.gfind(conf, "%s*([^,]+)%s*") do table.insert(items, s) end self.item = items[1] if self.item and system_ini():section_exist(self.item) then self.item_count = tonumber(items[2]) or 1 self:set_use(ini) end end end
function generic_object_binder:set_use(ini) --//определяем и устанавливаем надпись юза local character_use = (ini:r_string(self.object:section(), "character_use")) or "monstr_character_use" self.object:set_tip_text(character_use) --// устанавливаем каллбэк self.object:set_callback(callback.use_object, self.on_use, self) --// устанавливаем озвучку юза self.sound_use = sound_object("material\\dead-body\\collide\\hithard0"..tostring(math.random(1, 6)).."hl") if not self.use then self.use = true end end
function generic_object_binder:on_use(obj, who) --// спавним в инвентарь юзающего, части монстра for i=1, self.item_count do alife():create(self.item, who:position(), who:level_vertex_id(), who:game_vertex_id(), who:id()) end --// отключаем каллбэк self.object:set_callback(callback.use_object, nil) --// убираем надпись юза self.object:set_tip_text("") self.use = false --// дадим небольшой хит по телу трупа local ini = system_ini() local h = hit() h.draftsman = self.object h.type = hit.fire_wound h.direction = vector():set(0,1,0) h:bone( (ini:r_string(self.object:section(), "bone_impuls_abscission")) or "bip01_spine" ) h.power = 1 h.impulse = ( (ini:r_u32(self.object:section(), "impuls_abscission")) or 100 ) self.object:hit(h) --// производим озвучку юза self.sound_use:play_at_pos(self.object, self.object:position(), sound_object.s3d) end
function generic_object_binder:hit_callback(obj, amount, local_direction, who, bone_index) -- printf("HIT_CALLBACK: [%s] amount[%s]", obj:name(), amount)
if(who:id()==db.actor:id()) then xr_statistic.set_best_weapon(amount) 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 who:id() = [%s] actor:id() = [%s]", obj:name(), amount, tostring(bone_index), who:id(), db.actor:id()) end end
function generic_object_binder:hear_callback(self, who_id, sound_type, sound_position, sound_power) if who_id == self:id() then return end xr_hear.hear_callback(self, who_id, sound_type, sound_position, sound_power) end
function generic_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
-- local pos = self.object:position() -- printf("net_spawn mpos[%s][%s][%s]", tostring(pos.x), tostring(pos.y), tostring(pos.z))
db.add_obj(self.object)
--******************************* Телепорт на первую точку пути работы смарттеррейна...***************************** local se_obj = alife():object(self.object:id()) if db.spawned_vertex_by_id[se_obj.id] ~= nil then self.object:set_npc_position(level.vertex_position(db.spawned_vertex_by_id[se_obj.id])) db.spawned_vertex_by_id[se_obj.id] = nil elseif db.offline_objects[se_obj.id] ~= nil and db.offline_objects[se_obj.id].level_vertex_id ~= nil then printf("changing position for object[%s] from %s to %s : level vertex [%s] to [%s]", se_obj:name(), vec_to_str(se_obj.position), vec_to_str(level.vertex_position(db.offline_objects[se_obj.id].level_vertex_id)), tostring(se_obj.m_level_vertex_id), tostring(db.offline_objects[se_obj.id].level_vertex_id)) self.object:set_npc_position(level.vertex_position(db.offline_objects[se_obj.id].level_vertex_id)) elseif se_obj.m_smart_terrain_id ~= 65535 then local smart_terrain = alife():object(se_obj.m_smart_terrain_id) if smart_terrain.arriving_npc[se_obj.id] == nil then local smart_task = smart_terrain.job_data[smart_terrain.npc_info[se_obj.id].job_id].alife_task self.object:set_npc_position(smart_task:position()) end end --******************************************************************************************************************
smart_terrain.setup_gulag_and_logic_on_spawn( self.object, self.st, sobject, modules.stype_mobile, self.loaded)
return true end
function generic_object_binder:net_destroy() self.object:set_callback(callback.death, nil) self.object:set_callback(callback.patrol_path_in_point, nil) self.object:set_callback(callback.hit, nil) self.object:set_callback(callback.sound, nil) xr_sound.stop_sounds_by_id(self.object:id())
xr_combat_ignore.fighting_with_actor_npcs[self.object:id()] = nil
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 ------------------------------------------------n
db.del_obj(self.object) db.storage[self.object:id()] = nil object_binder.net_destroy(self) end
function generic_object_binder:reload(section) object_binder.reload(self, section) --printf("generic_object_binder:reload(): self.object:name()='%s'", self.object:name()) end
function generic_object_binder:net_save_relevant() --printf("generic_object_binder:net_save_relevant(): self.object:name()='%s'", self.object:name()) return true end
function generic_object_binder:save(packet)
set_save_marker(packet, "save", false, "generic_object_binder") object_binder.save(self, packet) xr_logic.save_obj(self.object, packet) set_save_marker(packet, "save", true, "generic_object_binder") --------- use ----------- packet:w_bool(self.use) ------------------------- end
function generic_object_binder:load(reader) self.loaded = true set_save_marker(reader, "load", false, "generic_object_binder") object_binder.load(self, reader) xr_logic.load_obj(self.object, reader) set_save_marker(reader, "load", true, "generic_object_binder") ---------- use ----------- self.use = reader:r_bool() if self.use then self:exist_use() end ------------------------- end
----------------------------------------------------------------------------------- -- 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") 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
Сообщение отредактировал AziatkaVictor - Пятница, 31.01.2020, 14:54
|
|
Пятница, 31.01.2020, 14:53
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
30.08.2018 |
|
|
|
|
|
Статус: |
 |
Отмычка: |
 |
Сообщений: |
112 |
Награды: |
1 |
Регистрация: |
29.10.2019 |
|
Не подскажите, возможно ли перенести Худ(полоска здоровья,полоска брони) из мода "Ветер Времени" И каким образом?
|
|
Пятница, 31.01.2020, 15:05
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
29.10.2019 |
|
|
|
|
|
Крим
Пятница, 31.01.2020, 16:06 | Сообщение # 5908
Статус: |
 |
Новичок: |
 |
Сообщений: |
231 |
Награды: |
1 |
Регистрация: |
21.04.2019 |
|
Здравствуйте. Подскажите, пожалуйста, как можно сделать, чтобы при вхождении в рестриктор - воспроизводился звук.
Сойдет такая логика?
|
|
Пятница, 31.01.2020, 16:06
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
21.04.2019 |
|
|
|
|
|
Статус: |
 |
Опытный: |
 |
Сообщений: |
1313 |
Награды: |
4 |
Регистрация: |
30.08.2018 |
|
Крим, Код %=kill_actor%, %=play_sound(esc_die_anomaly_restr_sound)% Это можно объеденить в Код %=kill_actor =play_sound(esc_die_anomaly_restr_sound)% и запятую не ставят.
|
|
Пятница, 31.01.2020, 16:17
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
30.08.2018 |
|
|
|
|
|
Крим
Пятница, 31.01.2020, 16:20 | Сообщение # 5910
Статус: |
 |
Новичок: |
 |
Сообщений: |
231 |
Награды: |
1 |
Регистрация: |
21.04.2019 |
|
AziatkaVictor, спасибо, попробую.
|
|
Пятница, 31.01.2020, 16:20
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
21.04.2019 |
|
|
|
|