proger_Dencheek 6 Опубликовано 30 Июля 2012 Подскажите, как сделать проверку визуала(модели) у NPC? Поделиться этим сообщением Ссылка на сообщение
proger_Dencheek 6 Опубликовано 31 Июля 2012 Как сделать, чтоб после определенного действия улучшались характеристики определенного оружия(хочу сделать подобие книги тактики ведения боя, из Sigerous) Поделиться этим сообщением Ссылка на сообщение
proger_Dencheek 6 Опубликовано 19 Августа 2012 Как сделать это: Если ГГ умирает, высылается сообщение: Погиб сталкер [Имя ГГ], [Причина], [Локация] Поделиться этим сообщением Ссылка на сообщение
proger_Dencheek 6 Опубликовано 21 Августа 2012 Выручайте, как сделать это: Если определенный монстр (или сталкер), заспавненный через скрипт умирает, то срабатывает необходимое действие. Поделиться этим сообщением Ссылка на сообщение
proger_Dencheek 6 Опубликовано 6 Января 2013 Такая напасть случилась: Не работает death_callback, из bind_monster. Т.е. в статистику не записываются убитые монсты, не дается ранг за них, если в колбек поставить функцию - она не сработает и т.д... И если в логике монстра поставить on_death = ... это тоже не срабатывает. Колбеки и их функции не трогал. Мне остается только "танцевать с бубном". Подскажите хотя-бы примерную причину этого безобразия:-( Поделиться этим сообщением Ссылка на сообщение
proger_Dencheek 6 Опубликовано 6 Января 2013 Shredder, ТЧ 1.0004+АМК 1.4.1 Поделиться этим сообщением Ссылка на сообщение
proger_Dencheek 6 Опубликовано 6 Января 2013 (изменено) riddik121, стандартная диалоговая функция немного капризная, лучше заменить ее на мою функцию: function relocate_item_section(victim, section, type, col) if col == nil then col = 1 end if db.actor ~= nil and section ~= nil then if type == "in" then for i=1,col do alife():create(section,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) if victim ~= nil then local inv = victim:object(section) if inv ~= nil then alife():release(alife():object(inv:id()), true) end end end elseif type == "out" then local inv = db.actor:object(section) if inv ~= nil then for i=1,col do if victim ~= nil then alife():create(section, victim:position(), victim:level_vertex_id(), victim:game_vertex_id(),victin:id()) end alife():release(alife():object(inv:id(),true) end end end news_manager.relocate_item(db.actor, type, section) end end Изменено 6 Января 2013 пользователем ColR_iT Поделиться этим сообщением Ссылка на сообщение
proger_Dencheek 6 Опубликовано 6 Января 2013 riddik121 Стандартный скрипт "dialogs.script". В нем ищешь эту функцию и заменяешь на мою. Shredder, конфиги монстров не редактировались. Причина в другом. Поделиться этим сообщением Ссылка на сообщение
proger_Dencheek 6 Опубликовано 6 Января 2013 ColR_iT, моя функция не требует объявления first_speaker, second_speaker. По этому она точно пригодится тому, кто задал вопрос, ведь у него с этими аргументами проблемы. Поделиться этим сообщением Ссылка на сообщение
proger_Dencheek 6 Опубликовано 14 Февраля 2013 Пожалуйста, подскажите, таймер такого вида будет работать, через месяц игрового времени: --Таймер игрового времени function g_timer(day, hou, min, void) if day == nil or hou == nil or min == nil then den.cout("den.g_timer(day=nil or hou=nil or min=nil)") return nil end local n_day = level.get_time_days() + day local n_hou = level.get_time_hours() + hou local n_min = level.get_time_minutes() + min if n_hou > 24 then n_hou = n_hou - 24 end if n_min > 60 then n_min = n_min - 60 end if n_day > 30 then n_day = n_day - 30 end local col = den.load_variable("den_g_timers_col") if col == nil then col = 0 end col = col + 1 den.save_variable("dgtd_"..col, n_day) den.save_variable("dgth_"..col, n_hou) den.save_variable("dgtm_"..col, n_min) if void ~= nil then den.save_variable("dgtf_"..col, void) else den.cout("den.g_timer(void=nil)") end den.save_variable("den_g_timers_col", col) end --Таймер реального времени function timer(val, void) if val ~= nil then local col = den.load_variable("den_timer_col") if col == nil then col = 0 end col = col + 1 den.save_variable("drtt_"..col, game.time() + val * 1000 * system_ini():r_float("alife","time_factor")) if void ~= nil then den.save_variable("drtf_"..col, void) else den.cout("den.timer(void=nil)") end den.save_variable("den_timer_col", col) else den.cout("den.timer(val=nil)") end end local day, hou, min = 0, 0, 0 local col = 0 --Обновление таймеров function update() --Таймер игрового времени col = den.load_variable("den_g_timers_col") if col ~= nil then for key=1,col do if level.get_time_days() == den.load_variable("dgtd_"..key) and level.get_time_hours() == den.load_variable("dgth_"..key) and level.get_time_minutes() == den.load_variable("dgtm_"..key) then den.del_variable("dgtd_"..key) den.del_variable("dgth_"..key) den.del_variable("dgtm_"..key) local void = den.load_variable("dgtf_"..key) if void ~= nil then den.del_variable("dgtf_"..key) den.save_variable("den_g_timers_col", col - 1) for val=key,col do den.save_variable("dgtd_"..val, den.load_variable("dgtd_"..val+1)) den.save_variable("dgth_"..val, den.load_variable("dgth_"..val+1)) den.save_variable("dgtm_"..val, den.load_variable("dgtm_"..val+1)) den.save_variable("dgtf_"..val, den.load_variable("dgtf_"..val+1)) end if this[void] ~= nil then this[void]() else den.cout("den_timer-this["..void.."]=nil") end end end end end --Таймер реального времени col = den.load_variable("den_timer_col") if col ~= nil then for key=1,col do if game.time() >= den.load_variable("drtt_"..key) then den.del_variable("drtt_"..key) local void = den.load_variable("drtf_"..key) if void ~= nil then den.del_variable("drtf_"..key) den.save_variable("den_timer_col", col - 1) for val=key,col do den.save_variable("drtt_"..val, den.load_variable("drtt_"..val+1)) den.save_variable("drtf_"..val, den.load_variable("drtf_"..val+1)) end if this[void] ~= nil then this[void]() else den.cout("den_timer-this["..void.."]=nil") end end end end end end Поделиться этим сообщением Ссылка на сообщение