Перейти к контенту

Скриптование


Svoboда

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

Как сделать, чтоб после определенного действия улучшались характеристики определенного оружия(хочу сделать подобие книги тактики ведения боя, из Sigerous)

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


Ссылка на сообщение

Как сделать это:

Если ГГ умирает, высылается сообщение: Погиб сталкер [Имя ГГ], [Причина], [Локация]

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


Ссылка на сообщение

Выручайте, как сделать это:

Если определенный монстр (или сталкер), заспавненный через скрипт умирает, то срабатывает необходимое действие.

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


Ссылка на сообщение

Такая напасть случилась:

Не работает death_callback, из bind_monster. Т.е. в статистику не записываются убитые монсты, не дается ранг за них, если в колбек поставить функцию - она не сработает и т.д... И если в логике монстра поставить on_death = ... это тоже не срабатывает. Колбеки и их функции не трогал. Мне остается только "танцевать с бубном". Подскажите хотя-бы примерную причину этого безобразия:-(

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


Ссылка на сообщение
(изменено)

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

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

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


Ссылка на сообщение

riddik121 Стандартный скрипт "dialogs.script". В нем ищешь эту функцию и заменяешь на мою.

 

Shredder, конфиги монстров не редактировались. Причина в другом.

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


Ссылка на сообщение

ColR_iT, моя функция не требует объявления first_speaker, second_speaker. По этому она точно пригодится тому, кто задал вопрос, ведь у него с этими аргументами проблемы.

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


Ссылка на сообщение

Пожалуйста, подскажите, таймер такого вида будет работать, через месяц игрового времени:

 

 

--Таймер игрового времени
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

 

 

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...