Quest10 Kişilik vs turnuvası

MBayraktar

Yasaklanmış Üye
Cezalı
Mesaj
225
Çözümler
2
Beğeni
181
Puan
731
- Herhangi bir oyuncu npc'den duello eventini başlatır genel'den notice geçer xxx kişisi duelloyu başlattı şeklinde diğer 10 kişi npc ye gelip duelloya ismini kayıt ettirir 10 kişi 2 dakika içerisinde tamamlarsa belirlenen kişiler sizin seçtiğiniz map'e ışınlanır ölen şehre gönderilir sona kalana ise ödül verilir (isteğe bağlı) duello 3 dakika içinde bitmezse otomatik şehre ışınlanırlar questteki buglar giderilmiştir örn: oyuncu ismini kayıt ettikten sonra oyundan çıkması gibi.

Quest:

Lua (Quest):
quest duello begin
  state start begin
  when login  begin
    if pc.get_map_index() == 191 then
    cmdchat("duello 1 0")
    if game.get_event_flag("duellohp_"..pc.get_name()) > pc.get_hp() then
    affect . add_collect ( 10 , game.get_event_flag("duellohp_"..pc.get_name()) , 4 )
    end
    game.set_event_flag("katilim", game.get_event_flag("katilim")+1)
    game.set_event_flag("derece_"..pc.get_name(), pc.get_real_alignment())
    game.set_event_flag("duello_"..pc.get_name(), "1")
    timer("sayac4", 2)
    timer("sayac6",    180)
    end
  end

  when logout begin
    if pc.get_map_index() == 191 then
        cmdchat("duello 0 1")
        game.set_event_flag("duello_"..pc.get_name(), "0")
        game.set_event_flag("katilim", game.get_event_flag("katilim")-1)
        if  pc.get_real_alignment()!= game.get_event_flag("derece_"..pc.get_name()) then
        pc.change_alignment(game.get_event_flag("derece_"..pc.get_name()))
        end
        if game.get_event_flag("katilim") == 0 and game.get_event_flag("katilim_1") == 0 then
        game.set_event_flag("katilim_1","1")
        game.set_event_flag("katilim", "0")
        game.set_event_flag("duello_toplam", "0")
        global_setvarchar("duello_name_1","")
        global_setvarchar("duello_name_2","")
        global_setvarchar("duello_name_3","")
        global_setvarchar("duello_name_4","")
        global_setvarchar("duello_name_5","")
        global_setvarchar("duello_name_6","")
        global_setvarchar("duello_name_7","")
        global_setvarchar("duello_name_8","")
        global_setvarchar("duello_name_9","")
        global_setvarchar("duello_name_10","")
        game.set_event_flag("duello_open", "1")
        game.set_event_flag("duello_toplam_katilim","0")
        cmdchat("duello 0 1")
        end
    end
    end

  when 20092.chat."Duello iptal et ve baslat" with pc.is_gm() begin
    say("")
    say("")
    say("")
    local b=select("Başlat.", "Reddet.")
    if 1==b then
        game.set_event_flag("katilim", "0")
        game.set_event_flag("duello_toplam", "0")
        game.set_event_flag("duello_toplam_katilim",0)
        global_setvarchar("duello_name_1","")
        global_setvarchar("duello_name_2","")
        global_setvarchar("duello_name_3","")
        global_setvarchar("duello_name_4","")
        global_setvarchar("duello_name_5","")
        global_setvarchar("duello_name_6","")
        global_setvarchar("duello_name_7","")
        global_setvarchar("duello_name_8","")
        global_setvarchar("duello_name_9","")
        global_setvarchar("duello_name_10","")
        end
        end
  when 20092.chat."Duello baslatmak istiyorum." with game.get_event_flag("duello_open") == 1 begin
    say("")
    say("")
    say("")
    local b=select("Başlat.", "Reddet.")
      if 1==b and game.get_event_flag("duello_open") == 1 then
        game.set_event_flag("katilim_1","0")
        game.set_event_flag("katilim", "0")
        game.set_event_flag("duello_toplam", "0")
        game.set_event_flag("duello_toplam_katilim","0")
        global_setvarchar("duello_name_2","")
        global_setvarchar("duello_name_3","")
        global_setvarchar("duello_name_4","")
        global_setvarchar("duello_name_5","")
        global_setvarchar("duello_name_6","")
        global_setvarchar("duello_name_7","")
        global_setvarchar("duello_name_8","")
        global_setvarchar("duello_name_9","")
        global_setvarchar("duello_name_10","")
        global_setvarchar("duello_name_1",pc.get_name())
        game.set_event_flag("duello_toplam","1")
        game.set_event_flag("duello_open", "0")
        timer("sayac1", 3)
        timer("sayac3", 120)
        notice_all(pc.get_name().." kisisi duello eventini baslatti Elizabeth npcsinden katiliniz.")
        chat("Duelloya katildin katilimci sayisi 10 oldugunda otomatik isinlanacaksin.")
      end
  end

  when 20092.chat."Duelloya katilmak istiyorum." with game.get_event_flag("duello_open") == 0  begin
    say("")
    say("")
    say("")
    local b=select("Katil.", "Katilma.")
      if 1==b then
        if game.get_event_flag("duello_toplam") < 11 then
        if global_getvarchar("duello_name_1") != pc.get_name() and global_getvarchar("duello_name_2") != pc.get_name() and global_getvarchar("duello_name_3") != pc.get_name() and global_getvarchar("duello_name_4") != pc.get_name() and global_getvarchar("duello_name_5") != pc.get_name() and global_getvarchar("duello_name_6") != pc.get_name() and global_getvarchar("duello_name_7") != pc.get_name() and global_getvarchar("duello_name_8") != pc.get_name() and global_getvarchar("duello_name_9") != pc.get_name() and global_getvarchar("duello_name_10") != pc.get_name() then
        local d = game.get_event_flag("duello_toplam")
        global_setvarchar("duello_name_"..d+1,pc.get_name())
        game.set_event_flag("duello_toplam", d+1)
        chat("Duelloya katildin katilimci sayisi 10 oldugunda otomatik isinlanacaksin.")
        timer("sayac1", 3)
        end
        else
        say("Katilimlar doldu baska sefere iyi oyunlar.")
        end
      end
  end


  when 20092.chat."Duello katilimcilari" with game.get_event_flag("duello_open") == 0 begin
      say("Katilimci listesi:")
      say("")
      say("1. >>>> "..global_getvarchar("duello_name_1"))
      say("2. >>>> "..global_getvarchar("duello_name_2"))
      say("3. >>>> "..global_getvarchar("duello_name_3"))
      say("4. >>>> "..global_getvarchar("duello_name_4"))
      say("5. >>>> "..global_getvarchar("duello_name_5"))
      say("6. >>>> "..global_getvarchar("duello_name_6"))
      say("7. >>>> "..global_getvarchar("duello_name_7"))
      say("8. >>>> "..global_getvarchar("duello_name_8"))
      say("9. >>>> "..global_getvarchar("duello_name_9"))
      say("10. >>>> "..global_getvarchar("duello_name_10"))
      say("")
  end


  when sayac1.timer begin
  if global_getvarchar("duello_name_1") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
      game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_2") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_3") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_4") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_5") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_6") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_7") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_8") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_9") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_10") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  end
  if  game.get_event_flag("duello_toplam") == 10 then
  game.set_event_flag("duello_toplam_katilim",1)
  end
  timer("sayac2", 3)
  end

  when sayac2.timer begin

  if global_getvarchar("duello_name_1") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
      game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_2") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_3") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_4") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_5") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_6") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_7") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_8") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_9") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  elseif global_getvarchar("duello_name_10") == pc.get_name() and game.get_event_flag("duello_toplam") == 10 then
        game.set_event_flag("duellohp_"..pc.get_name(),pc.get_hp())
      pc.warp("741200","249200")
  end
  if  game.get_event_flag("duello_toplam") == 10 then
  game.set_event_flag("duello_toplam_katilim",1)
  end
  timer("sayac1", 3)
  end


  when sayac3.timer begin
  if game.get_event_flag("duello_toplam") != 10 and game.get_event_flag("duello_toplam_katilim") == 0  then
  game.set_event_flag("katilim", "0")
  game.set_event_flag("duello_toplam_katilim",1)
  game.set_event_flag("duello_toplam", "0")
  global_setvarchar("duello_name_1","")
  global_setvarchar("duello_name_2","")
  global_setvarchar("duello_name_3","")
  global_setvarchar("duello_name_4","")
  global_setvarchar("duello_name_5","")
  global_setvarchar("duello_name_6","")
  global_setvarchar("duello_name_7","")
  global_setvarchar("duello_name_8","")
  global_setvarchar("duello_name_9","")
  global_setvarchar("duello_name_10","")
  game.set_event_flag("duello_open", "1")
  end
  end

  when sayac4.timer begin
  if  pc.get_map_index() == 191 then
  if false == pc.is_dead() and game.get_event_flag("katilim") == 1 and game.get_event_flag("duello_"..pc.get_name()) == 1 then
   game.set_event_flag("katilim_1",0)
  game.set_event_flag("duello_"..pc.get_name(), "0")
  if game.get_event_flag("item_ver") == 1 then
    local d = game.get_event_flag("item_kodu1")
    local c = game.get_event_flag("item_kodu2")
    pc.give_item2(d,1)
    pc.give_item2(c,1)
    end
    if pc.get_empire() == 1 then
      pc.warp(469300,964200)
    elseif pc.get_empire() == 2 then
      pc.warp(55700,157900)
    elseif pc.get_empire() == 3 then
      pc.warp(969600,278400)
    end
  end
  if true == pc.is_dead() then
    cmdchat("duello 0 1")
    if pc.get_empire() == 1 then
      pc.warp(469300,964200)
    elseif pc.get_empire() == 2 then
      pc.warp(55700,157900)
    elseif pc.get_empire() == 3 then
      pc.warp(969600,278400)
    end
    game.set_event_flag("duello_"..pc.get_name(), "0")
  end
  timer("sayac5", 2)
  end
  end


  when sayac5.timer begin
  if  pc.get_map_index() == 191 then
  if false == pc.is_dead() and game.get_event_flag("katilim") == 1 and game.get_event_flag("duello_"..pc.get_name()) == 1 then
   game.set_event_flag("katilim_1",0)
  game.set_event_flag("duello_"..pc.get_name(), "0")
  if game.get_event_flag("item_ver") == 1 then
    local d = game.get_event_flag("item_kodu1")
    local c = game.get_event_flag("item_kodu2")
    pc.give_item2(d,1)
    pc.give_item2(c,1)
    end
    if pc.get_empire() == 1 then
      pc.warp(469300,964200)
    elseif pc.get_empire() == 2 then
      pc.warp(55700,157900)
    elseif pc.get_empire() == 3 then
      pc.warp(969600,278400)
    end
  end
  if true == pc.is_dead() then
    cmdchat("duello 0 1")
    if pc.get_empire() == 1 then
      pc.warp(469300,964200)
    elseif pc.get_empire() == 2 then
      pc.warp(55700,157900)
    elseif pc.get_empire() == 3 then
      pc.warp(969600,278400)
    end
    game.set_event_flag("duello_"..pc.get_name(), "0")
  end
  timer("sayac4", 2)
  end
  end

  when sayac6.timer begin
  if  pc.get_map_index() == 191  and game.get_event_flag("katilim") != 1 then
  game.set_event_flag("katilim_1",0)
    if pc.get_empire() == 1 then
      pc.warp(469300,964200)
    elseif pc.get_empire() == 2 then
      pc.warp(55700,157900)
    elseif pc.get_empire() == 3 then
      pc.warp(969600,278400)
    end
    end
    end

  end
end

questlib.lua'ya eklenecek kodlar

Lua (Quest):
function setvarchar(name, var)
local laenge = string.len (var)
local setchar = 0
local save_name = 0
local letter = 0
while laenge > setchar do
  setchar = setchar + 1
  letter = string.sub (var, setchar, setchar)
  letter = string.byte(letter, 1)
  save_name = ""..name.."_char_"..setchar..""
  pc.setqf(save_name, letter)
end
local save_laenge=""..name.."laenge"
pc.setqf(save_laenge, laenge)
end

function getvarchar(name)
local save_laenge = ""..name.."laenge"
local laenge = pc.getqf(save_laenge)
local save_name = 0
local var = ""
local letter = 0
local getchar = 0
while laenge > getchar do
  getchar = getchar + 1
  save_name = ""..name.."_char_"..getchar..""
  letter = pc.getqf(save_name)
  if letter!=0 then
   letter = string.char(letter)
  else
   letter = ""
  end
  var = ""..var..""..letter..""
end
return var
end

function delvarchar(name)
local save_laenge = ""..name.."laenge"
local laenge = pc.getqf(save_laenge)
local getchar = 0
while laenge > getchar do
  getchar = getchar + 1
  local save_name = ""..name.."_char_"..getchar..""
  pc.delqf(save_name)
end
pc.delqf(save_laenge)
end

function global_setvarchar(name, var)
local laenge = string.len (var)
local setchar = 0
local save_name = 0
local letter = 0
while laenge > setchar do
  setchar = setchar + 1
  letter = string.sub (var, setchar, setchar)
  letter = string.byte(letter)
  if letter==91 or letter==93 then
   letter=32
  end
  save_name = ""..name.."_char_"..setchar..""
  game.set_event_flag(save_name, letter)
end
local save_laenge=""..name.."laenge"
game.set_event_flag(save_laenge, laenge)
end

function global_getvarchar(name)
local save_laenge = ""..name.."laenge"
local laenge = game.get_event_flag(save_laenge)
local save_name = 0
local var = ""
local letter = 0
local getchar = 0
while laenge > getchar do
  getchar = getchar + 1
  save_name = ""..name.."_char_"..getchar..""
  letter = game.get_event_flag(save_name)
  if letter!=0 then
   letter = string.char(letter)
  else
   letter = ""
  end

  var = ""..var..""..letter..""
end
return var
end

quest_functions'a eklenecek kod

Kod:
pc.is_dead
 
quest çalışmıyor aynı hesabı peşpeşe kayıt ypıyor
 
Geri
Üst