Best Studio 1
Best Studio
TuZaKK 1
TuZaKK
Mt2Hizmet 1
Mt2Hizmet
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
kaptanmikro1 1
kaptanmikro1
R 1
Roksam
[DEV]AB 1
[DEV]AB
Sevdamsın 1
Sevdamsın
farkmt2official 1
farkmt2official
emirhanHCL 1
emirhanHCL
Scarlet 1
Scarlet
Hikaye Ekle

[Quest] 10 Kişilik vs turnuvası [İlk]

  • Konuyu başlatan Konuyu başlatan brit1
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 43
  • Görüntüleme Görüntüleme 9K

Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch HEMEN TIKLA!

Merhaba değerli turkmmo halkı;

Sizlerle bir quest paylaşmak istiyorum quest'i size anlatayım

- 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 bu quest ONURCAN YALÇIN(JİN) tarafından yazılmıştır kendisinden ben satın aldım paylaşmak istedim umarım bir teşekkürü çok görmezsiniz.


Not: Detaylı biçimde anlatacağım herhangi msn özel mesaj gibi yerlerden yardımda bulunmayacağım.

Quest:
Kod:
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
Kod:
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:
[COLOR=#000000]pc.is_dead[/COLOR]



Questi biraz inceleyin anlarsınız zaten..




Emeğe saygı arkadaşlar lütfen alıntı yapacaksanız alıntıdır diye yazın, Saygılar.















Kardeşim bu 10 kişiyi nasıl çoğaltabiliriz?
 
Arkadaşlar gayet basit quest map indexi yazıyor yukarda 191 diye onu siz usr/game/share/locale/turkey/map/index girin ordaki map indexınden seçeceğiniz mapın ındexini questle değiştirin
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst