
Metin2 PVP Turnuvası questi
İçindekiler
state start beginwhen 30122.chat."GM:PvP Turnuvasına Işınlan " with pc.is_gm() beginsay("Haritaya gitmek istiyor musun?")say("")local a = select(locale.yes,locale.no)if a == 2 then return endpc.warp(95700,28500)--pc.warp(844800,00)endwhen login with pc.get_map_index() == 28 and (pvp_attenders == nil or pvp_attenders[pvp_manager.get_my_attender_id()] == nil or (pvp_attenders[pvp_manager.get_my_attender_id()].fight_mode != 1 and pvp_attenders[pvp_manager.get_my_attender_id()].fight_mode != 2)) begin--when login with pc.get_map_index() == 112 and (pvp_attenders == nil or pvp_attenders[pvp_manager.get_my_attender_id()] == nil or (pvp_attenders[pvp_manager.get_my_attender_id()].fight_mode != 1 and pvp_attenders[pvp_manager.get_my_attender_id()].fight_mode != 2)) beginif pvp_attenders == nil thenpvp_manager.guard_check_position()timer("pvp_guard_1", 10)returnendif pvp_attenders[pvp_manager.get_my_attender_id()] == nil thenpvp_manager.guard_check_position()timer("pvp_guard_1", 10)returnendif pvp_attenders[pvp_manager.get_my_attender_id()].fight_mode != 1 and pvp_attenders[pvp_manager.get_my_attender_id()].fight_mode != 2 thenpvp_manager.guard_check_position()timer("pvp_guard_1", 10)endendwhen pvp_guard_1.timer beginif pc.get_map_index() != 28 then return end--if pc.get_map_index() != 112 then return endpvp_manager.guard_check_position()timer("pvp_guard_2", 10)endwhen pvp_guard_2.timer beginif pc.get_map_index() != 28 then return end--if pc.get_map_index() != 112 then return endpvp_manager.guard_check_position()timer("pvp_guard_1", 10)endfunction guard_check_position()if pc.get_local_x() >= 84 and pc.get_local_y() >= 84 and pc.get_local_x() <= 116 and pc.get_local_y() <= 116 then --arena 1pvp_manager.guard_reset()endif pc.get_local_x() >= 84 and pc.get_local_y() >= 136 and pc.get_local_x() <= 116 and pc.get_local_y() <= 168 then --arena 2pvp_manager.guard_reset()endif pc.get_local_x() >= 136 and pc.get_local_y() >= 84 and pc.get_local_x() <= 168 and pc.get_local_y() <= 116 then --arena 3pvp_manager.guard_reset()endif pc.get_local_x() >= 136 and pc.get_local_y() >= 136 and pc.get_local_x() <= 168 and pc.get_local_y() <= 168 then --arena 4pvp_manager.guard_reset()endendfunction guard_reset()notice_in_map(""..pc.get_name().." Arenadan uzaklaştırıldı!")pc.warp(344000,502500)endwhen 30122.chat."PvP Turnuvasına Katıl " with game.get_event_flag("pvp") == 1 beginsay_title("PvP Turnuvasına Katıl:")say("Ne yapmak istiyorsun?")local s = select("PvP Arenasına Işınlan ", "Kapat " ) if s == 2 then return endif party.is_party() thensay_title("PvP Turnuvasına Katıl:")say("Bir grup üyesiyken içeriye giriş yapamazsın.")elsepc.warp(95700,28500)endendwhen 20078.chat."Şehre Dön " with pc.get_map_index() == 28 begin--when 20078.chat."Şehre Dön " with pc.get_map_index() == 112 beginsay_title("Savaş Ustası: ")say("")say("Arenadan ayrılıp şehre dönmek istiyormusun?")say("")local s = select("Evet ", "Hayır ")if s == 2 then return endwarp_to_village()endwhen 20078.chat."GM: Turnuva Bölgesini Temizle " with pc.get_map_index() == 28 and pc.is_gm() begin--when 20078.chat."GM: Turnuva Bölgesini Temizle " with pc.get_map_index() == 112 and pc.is_gm() beginsay_title("PvP Turnuvası : ")say("")say("Bölgeyi temizlemek istiyor musun?")say("")local temizle = select(locale.yes, locale.no)if temizle == 2 then return endwarp_all_to_village(28,10)endwhen 20078.chat."GM: PvP Turnuvası İptal Et " with pc.get_map_index() == 28 and pc.is_gm() and game.get_event_flag("pvp") != 0 begin--when 20078.chat."GM: PvP Turnuvası İptal Et " with pc.get_map_index() == 112 and pc.is_gm() and game.get_event_flag("pvp") != 0 beginsay_title("GM: PvP Turnuvası İptal Et: ")say("PvP Turnuvası iptal etmek istiyormusun?")say("")local s = select("Evet ", "Hayır ")if s == 2 then return endgame.set_event_flag("pvp", 0)pvp_attenders = nilnotice_all("Turnuva sona ermiştir!")say_title("PvP Turnuvası iptal edildi!")say("PvP Turnuvası iptal edildi!")say("")if pvp_manager_callback != nil thenpvp_manager_callback()endendwhen 20078.chat."GM: Sınıf Seçimi " with pc.get_map_index() == 28 and pc.is_gm() and game.get_event_flag("pvp") == 0 and ae_pvp_tournament == nil begin--when 20078.chat."GM: Sınıf Seçimi " with pc.get_map_index() == 112 and pc.is_gm() and game.get_event_flag("pvp") == 0 and ae_pvp_tournament == nil beginsay("")say("Turnuva sınıfını seç.")say("")local sinif = select("Savaşçı ", "Ninja ", "Sura ", "Şaman ", "Lycan ", "Karışık ", "Vazgeç ")if sinif == 1 thengame.set_event_flag("pvp_sinif",1)say("Savaşçı sınıfı seçildi.")elseif sinif == 2 thengame.set_event_flag("pvp_sinif",2)say("Ninja sınıfı seçildi.")elseif sinif == 3 thengame.set_event_flag("pvp_sinif",3)say("Sura sınıfı seçildi.")elseif sinif == 4 thengame.set_event_flag("pvp_sinif",4)say("Şaman sınıfı seçildi.")elseif sinif == 5 thengame.set_event_flag("pvp_sinif",5)say("Lycan sınıfı seçildi.")elseif sinif == 6 thengame.set_event_flag("pvp_sinif",6)say("Karışık seçildi.")endend
when 20078.chat."GM: PvP Turnuvasını Başlat " with pc.get_map_index() == 28 and pc.is_gm() and game.get_event_flag("pvp") == 0 and ae_pvp_tournament == nil begin--when 20078.chat."GM: PvP Turnuvasını Başlat " with pc.get_map_index() == 112 and pc.is_gm() and game.get_event_flag("pvp") == 0 and ae_pvp_tournament == nil beginsay_title("PvP Turnuvasını başlat:")if game.get_event_flag("pvp_sinif") == 0 thensay("Önce sınıf seçimi yap. ")returnendsay("Lütfen minimum level sınırını gir (Min: 15):")local str_min_level = input()say_title("PvP Turnuvasını başlat:")local min_level = tonumber(str_min_level)if min_level == nil thensay("Numara girilmedi.")say("")returnendif tonumber(str_min_level) < 15 thenmin_level = 15endsay("Minimum level : "..tostring(min_level)..".")say("lütfen maksimum level sınırını gir:")local str_max_level = input()say_title("PvP Turnuvasını başlat:")local max_level = tonumber(str_max_level)if max_level == nil thensay("Numara girilmedi.")say("")returnendif tonumber(str_max_level) < min_level thensay("Maks level min levelden yüksek olmalı.")say("")returnendgame.set_event_flag("pvp_minlevel", min_level)game.set_event_flag("pvp_maxlevel", max_level)say("Minimum Level: "..tostring(min_level).." olarak ayarlandı.")say("Maksimum Level: "..tostring(max_level).." olarak ayarlandı.")say("")local s = select("Başlat ", "İptal et ")if s == 2 thenreturnendsay_title("PvP Turnuvasını başlat:")say("")say("PvP Turnuvası başladı.")say("")say_reward("Level Limiti: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel"))pvp_manager.open_registrations()endfunction open_registrations()game.set_event_flag("pvp", 1)attender_count = 0game.set_event_flag("pvp_tournament", get_global_time())pvp_attenders = nilpvp_attenders = { }arena = {-- arena 1{{ 113, 100 },{ 88, 100 },0,"SLEEPING",0,},-- arena 2{{ 113, 152 },{ 88, 152 },0,"SLEEPING",0,},-- arena 3{{ 140, 152 },{ 164, 152 },0,"SLEEPING",0,},-- arena 4{{ 164, 100 },{ 140, 100 },0,"SLEEPING",0,},}
balan = {-- kazanan 1{{ 67, 98 },},-- kazanan 2{{ 184, 100 },},-- kaybeden 1{{ 68, 151 },},-- kaybeden 2{{ 185, 152 },},}notice_all("PvP Turnuvası başlamıştır.")notice_all("Girişler için "..mob_name(30122).."'e gidin.")local sinif = game.get_event_flag("pvp_sinif")local siniff = ""if sinif == 1 thensiniff = "Savaşçı "notice_all(siniff.."Arası Turnuva Başladı. Level limiti: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel").."")elseif sinif == 2 thensiniff = "Ninja "notice_all(siniff.."Arası Turnuva Başladı. Level limiti: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel").."")elseif sinif == 3 thensiniff = "Sura "notice_all(siniff.."Arası Turnuva Başladı. Level limiti: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel").."")elseif sinif == 4 thensiniff = "Şaman "notice_all(siniff.."Arası Turnuva Başladı. Level limiti: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel").."")elseif sinif == 5 thensiniff = "Lycan "notice_all(siniff.."Arası Turnuva Başladı. Level limiti: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel").."")elseif sinif == 6 thensiniff = "Karışık "notice_all("Level limiti: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel").."")endendwhen 20078.chat."Turnuvaya Katıl " with pc.get_map_index() == 28 and game.get_event_flag("pvp") == 1 begin--when 20078.chat."Turnuvaya Katıl " with pc.get_map_index() == 112 and game.get_event_flag("pvp") == 1 beginsay_title(mob_name(20078)..":")local sinif = game.get_event_flag("pvp_sinif")if sinif == 1 thenif pc.get_job() != 0 thenif pc.get_job() != 4 thensay("Sadece savaşçılar girebilir.")returnendendelseif sinif == 2 thenif pc.get_job() != 1 thenif pc.get_job() != 5 thensay("Sadece ninjalar girebilir.")returnendendelseif sinif == 3 thenif pc.get_job() != 2 thenif pc.get_job() != 6 thensay("Sadece suralar girebilir.")returnendendelseif sinif == 4 thenif pc.get_job() != 3 thenif pc.get_job() != 7 thensay("Sadece şamanlar girebilir.")returnendendelseif sinif == 5 thenif pc.get_job() != 4 thensay("Sadece lycanlar girebilir.")returnendendif game.get_event_flag("pvp_tournament") == pc.getqf("pvp_tournament") thensay("Turnuvaya zaten kayıt yaptırdın.")say("")returnendif pc.get_level() < 15 thensay("Levelin çok düşük.")say("")returnendif pc.get_level() < game.get_event_flag("pvp_minlevel") or pc.get_level() > game.get_event_flag("pvp_maxlevel") thensay("Levelin "..game.get_event_flag("pvp_minlevel").." ile "..game.get_event_flag("pvp_maxlevel").." arasında olması gerekli.")say("")returnendsay("Vs turnuvasına hoşgeldin. Turnuvada senin gibi ")say("oyuncularla savaşacaksın.")say("")say("Karşına çıkan her oyuncuyu öldür.")say("")say("Bu turnuvaya katılmak istiyormusun?")say("")say_reward("Kayıt Ücreti : 15.000 Yang ")say("")local s = select("Evet, katılmak istiyorum ", "Hayır, ben bir korkağım ")say_title(mob_name(20078)..":")if s == 1 thenif pc.get_gold() < 15000 then say_title("PvP Turnuvası ")say("")say(15000-pc.get_gold().." yang eksiğin var.")say("Paranı tamamlayınca turnuvaya girebilirsin.")returnendsay("Turnuva başladığı zaman seni çağıracağım.")say("")say("İyi şanslar evlat!")say("")pvp_attenders[attender_count+1] = {name = pc.getname(), level = pc.get_level(), partner = nil, winner = true, fight_mode = 0, arena = 0}pc.setqf("attender_id", attender_count+1)pc.setqf("pvp_tournament", game.get_event_flag("pvp_tournament"))attender_count = attender_count + 1pc.change_gold(-15000)if achievement_manager != nil thenachievement_manager.on_participatepvpevent()endelseif s == 2 thensay("Çok zayıf gözüküyorsun evlat ")say("diğer oyunculara karşı hiç şansın olamaz.")say("")endendwhen 20078.chat." PvP Turnuvası için yapılmış kayıtlar " with pc.get_map_index() == 28 and pc.is_gm() and game.get_event_flag("pvp") == 1 begin--when 20078.chat." PvP Turnuvası için yapılmış kayıtlar " with pc.get_map_index() == 112 and pc.is_gm() and game.get_event_flag("pvp") == 1 beginsay_title(" PvP Turnuvası ")say("Şuana kadar "..tostring(attender_count).." oyuncu kayıt oldu.")if ae_pvp_tournament != nil thensay("")returnendsay(" Kayıtları kapamak istiyormusun? ")say("")local s = select("Kayıtları kapat ", "Kayıt olmaya devam etsinler ")if s == 1 thensay_title("Kayıtları Kapat:")say("Kayıtlar kapandı.")say("")pvp_manager.close_registrations()endendfunction close_registrations()if attender_count == 0 thennotice_all("Girişler kapandı , kayıt yaptıramazsın.")game.set_event_flag("pvp", 0)pvp_attenders = nilif pvp_manager_callback != nil thenpvp_manager_callback()endreturnendgame.set_event_flag("pvp", 2)pvp_manager.make_duel_list()duel_list_index = 0playerless_mode = falsenotice_all("PvP Turnuvası başlıyor!")pvp_manager.refresh_arenas()endwhen 20078.chat."Şimdi kiminle düello yapacağım?" with pc.get_map_index() == 28 and game.get_event_flag("pvp") == 2 and game.get_event_flag("pvp_tournament") == pc.getqf("pvp_tournament") begin--when 20078.chat."Şimdi kiminle düello yapacağım?" with pc.get_map_index() == 112 and game.get_event_flag("pvp") == 2 and game.get_event_flag("pvp_tournament") == pc.getqf("pvp_tournament") beginsay_title(mob_name(20078)..":")if pvp_manager.get_duel_partner() == nil thensay("Şuanda sana uygun aday yok.")say("")say("Eğer sana uygun aday bulamazsak bir sonraki ")say("rounda geçeceksin.")returnendsay("Düello yapacağın kişi:")say("")say_reward(""..pvp_manager.get_duel_partner().."")end
function make_duel_list()duel_list = { }local i = 0for ai = 1, attender_count, 1 doif pvp_attenders[ai] != nil and pvp_attenders[ai].partner == nil and pvp_attenders[ai].winner == true thenlocal partner_id = pvp_manager.findpartner(tostring(pvp_attenders[ai].name), pvp_attenders[ai].level)if partner_id != nil thenpvp_attenders[ai].partner = tostring(pvp_attenders[partner_id].name)pvp_attenders[partner_id].partner = tostring(pvp_attenders[ai].name)duel_list[i] = {fighter_id1 = ai, fighter_id2 = partner_id}i = i + 1endendendfor ai = 1, attender_count, 1 doif pvp_attenders[ai] != nil and pvp_attenders[ai].partner == nil and pvp_attenders[ai].winner == true thenlocal partner_id = pvp_manager.findpartner_for_partnerless(tostring(pvp_attenders[ai].name), pvp_attenders[ai].level)if partner_id != nil thenpvp_attenders[ai].partner = tostring(pvp_attenders[partner_id].name)pvp_attenders[partner_id].partner = tostring(pvp_attenders[ai].name)duel_list[i] = {fighter_id1 = ai, fighter_id2 = partner_id}i = i + 1endendendendfunction findpartner(name, level)local closest_level = nillocal partner_id = nilfor ai = 1, attender_count, 1 doif pvp_attenders[ai] != nil and pvp_attenders[ai].winner == true and tonumber(pvp_attenders[ai].level) <= level + 30 and tonumber(pvp_attenders[ai].level) >= level - 30 and tostring(pvp_attenders[ai].name) != name and pvp_attenders[ai].partner == nil and pvp_manager.is_player_in_map(tostring(pvp_attenders[ai].name)) == true thenif closest_level == nil thenclosest_level = pvp_attenders[ai].levelpartner_id = aielseif tonumber(pvp_attenders[ai].level) == tonumber(level) thenclosest_level = pvp_attenders[ai].levelpartner_id = aielseif tonumber(level) < tonumber(closest_level) and tonumber(pvp_attenders[ai].level) < tonumber(closest_level) thenclosest_level = pvp_attenders[ai].levelpartner_id = aielseif tonumber(level) > tonumber(closest_level) and tonumber(pvp_attenders[ai].level) > tonumber(closest_level) thenclosest_level = pvp_attenders[ai].levelpartner_id = aiendendendreturn partner_idendfunction findpartner_for_partnerless(name, level)local closest_level = nillocal partner_id = nilfor ai = 1, attender_count, 1 doif pvp_attenders[ai] != nil and pvp_attenders[ai].winner == true and tostring(pvp_attenders[ai].name) != name and pvp_attenders[ai].partner == nil and pvp_manager.is_player_in_map(tostring(pvp_attenders[ai].name)) == true thenif closest_level == nil thenclosest_level = pvp_attenders[ai].levelpartner_id = aielseif pvp_attenders[ai].level == level thenclosest_level = pvp_attenders[ai].levelpartner_id = aielseif tonumber(level) < tonumber(closest_level) and pvp_attenders[ai].level < closest_level thenclosest_level = pvp_attenders[ai].levelpartner_id = aielseif tonumber(level) > tonumber(closest_level) and pvp_attenders[ai].level > closest_level thenclosest_level = pvp_attenders[ai].levelpartner_id = aiendendendreturn partner_idendfunction is_player_in_map(name)if pc.getname() == name thenreturn trueendlocal myname = pc.getname()local target = find_pc_by_name(name)local t = pc.select(target)if pc.getname() == myname thenpc.select(t)return falseendpc.select(t)return trueendwhen 20078.chat."GM: Arenayı Temizle" with pc.is_gm() and game.get_event_flag("pvp") == 2 beginfor aArena = 1, 4, 1 doarena[aArena][3] = 0arena[aArena][4] = "SLEEPING"endpvp_manager.refresh_arenas()endwhen 20078.chat."GM: PvP Turnuva Ödülü " with pc.is_gm() beginsay_title("Ödül:")say("Şuanki Ödül "..game.get_event_flag("pvp_price_count").."x "..item_name(game.get_event_flag("pvp_price_vnum")).." (vnum: "..game.get_event_flag("pvp_price_vnum")..")")say("")local s = select("Ödülü Değiştir " , "Kapat ")if s == 2 thenreturnendsay_title("Ödül:")say("Yeni ödülün kodunu gir:")say("")local vnum = input()say_title("Ödül:")say("Yeni ödülün adetini gir:")say("")local count = input()game.set_event_flag("pvp_price_count", count)game.set_event_flag("pvp_price_vnum", vnum)say_title("Ödül değiştirildi:")say("Ödül değiştirildi.")say("Yeni ödül : "..count.."x "..item_name(vnum).." (vnum: "..vnum..")")end
function refresh_arenas()for aArena = 1, 4, 1 doif duel_list[duel_list_index] == nil thenif playerless_mode == true thenpvp_manager.init_next_round()elsepvp_manager.fight_playerless()endreturnendif arena[aArena][3] == 0 thenarena[aArena][3] = 1pvp_manager.fight_init(duel_list[duel_list_index].fighter_id1, duel_list[duel_list_index].fighter_id2, aArena)endendend
function fight_init(pid1, pid2, arena_id)duel_list_index = duel_list_index + 1if pvp_manager.is_player_in_map(tostring(pvp_attenders[pid1].name)) == false thennotice_in_map(""..tostring(pvp_attenders[pid1].name).." adlı oyuncu oyunda olmadığından diskalifiye edildi.", pc.get_map_index())pvp_attenders[pid1].winner = falsepvp_attenders[pid2].partner = nilarena[arena_id][3] = 0pvp_manager.refresh_arenas()returnendif pvp_manager.is_player_in_map(tostring(pvp_attenders[pid2].name)) == false thennotice_in_map(""..tostring(pvp_attenders[pid2].name).." adlı oyuncu oyunda olmadığından diskalifiye edildi.", pc.get_map_index())pvp_attenders[pid2].winner = falsepvp_attenders[pid1].partner = nilarena[arena_id][3] = 0pvp_manager.refresh_arenas()returnendnotice_in_map(tostring(pvp_attenders[pid1].name).." ve "..tostring(pvp_attenders[pid2].name).." 'nın düellosu birazdan başlayacak!", pc.get_map_index())pvp_attenders[pid1].fight_mode = 1pvp_attenders[pid2].fight_mode = 1pvp_attenders[pid1].arena = arena_idpvp_attenders[pid2].arena = arena_idpvp_kural_uygula(pvp_attenders[pid1].name)pvp_kural_uygula(pvp_attenders[pid2].name)pvp_manager.local_pc_warp(tostring(pvp_attenders[pid1].name), arena[arena_id][1][1], arena[arena_id][1][2])pvp_manager.local_pc_warp(tostring(pvp_attenders[pid2].name), arena[arena_id][2][1], arena[arena_id][2][2])
endwhen login with pc.get_map_index() == 28 and game.get_event_flag("pvp") == 2 and pvp_manager.get_fight_mode() == 1 begin--when login with pc.get_map_index() == 112 and game.get_event_flag("pvp") == 2 and pvp_manager.get_fight_mode() == 1 beginaffect.add(apply.MOV_SPEED, -10000, 2)affect.add_collect(apply.HP_REGEN, 5000, 30)affect.add_collect(apply.SP_REGEN, 5000, 30)pvp_manager.set_fight_mode(2)if arena[pvp_manager.get_arena()][3] == 2 thenarena[pvp_manager.get_arena()][5] = 30loop_timer("fight_start_countdown", 1)elsetimer("partner_timeout", 30)endarena[pvp_manager.get_arena()][3] = 2endwhen partner_timeout.timer beginif pvp_manager.is_player_in_map(pvp_manager.get_duel_partner()) == true or game.get_event_flag("pvp") != 2 or pvp_manager.get_fight_mode() != 2 thenreturnendpvp_manager.set_fight_mode(3)if arena[pvp_manager.get_arena()][3] == 3 thenreturnendarena[pvp_manager.get_arena()][3] = 3notice_in_map(pc.getname().." , "..pvp_manager.get_duel_partner().." karşısındaki düelloyu kaybetti!", pc.get_map_index())pvp_attenders[pvp_manager.get_attender_id_by_name(pvp_manager.get_duel_partner())].fight_mode = 3pvp_attenders[pvp_manager.get_my_attender_id()].winner = truepvp_attenders[pvp_manager.get_attender_id_by_name(pvp_manager.get_duel_partner())].winner = falsesaybakim = math.random(1,10)if saybakim >= 5 thenpc.warp_local(pc.get_map_index(), balan[3][1][1], balan[3][1][2], 0)elsepc.warp_local(pc.get_map_index(), balan[4][1][1], balan[4][1][2], 0)endend
when fight_start_countdown.timer beginif arena[pvp_manager.get_arena()][5] == -1 thenreturnendlocal partner_vid = find_pc_by_name(pvp_manager.get_duel_partner())local my_vid = pc.get_vid()if arena[pvp_manager.get_arena()][5] == 0 thenarena[pvp_manager.get_arena()][5] = -1pc.select(partner_vid)command("pvp "..my_vid)pc.select(my_vid)command("pvp "..partner_vid)notice_in_map(""..pvp_manager.get_duel_partner().." ile "..pc.getname().." arasındaki düello başladı!", pc.get_map_index())timer("fight_start_countdown_shutdown", 1)elsepc.select(partner_vid)if math.mod(arena[pvp_manager.get_arena()][5], 5) == 0 thenif tostring(arena[pvp_manager.get_arena()][5]) == "30" thenlocal f = "pvp"pc.setf(f,"item_block",0)if pc.get_job() == 2 or pc.get_job() == 6 thenpc.setf(f,"block_cozme",1)endsyschat("İtemlerini değiştirmek için 15 saniyen var.")syschat("15 saniye sonunda item değiştiremeyeceksin.")elseif tostring(arena[pvp_manager.get_arena()][5]) == "15" thenlocal f = "pvp"pc.setf(f,"item_block",1)if pc.get_job() == 2 or pc.get_job() == 6 thenpc.setf(f,"block_cozme",0)endsyschat("İtem değiştirme süresi sona erdi.")endsyschat("Düello "..tostring(arena[pvp_manager.get_arena()][5]).." saniye içinde başlayacak.")endaffect.add(apply.MOV_SPEED, -10000, 2)pc.select(my_vid)if math.mod(arena[pvp_manager.get_arena()][5], 5) == 0 thenif tostring(arena[pvp_manager.get_arena()][5]) == "30" thenlocal f = "pvp"pc.setf(f,"item_block",0)syschat("İtemlerini değiştirmek için 15 saniyen var.")syschat("15 saniye sonunda item değiştiremeyeceksin.")elseif tostring(arena[pvp_manager.get_arena()][5]) == "15" thenlocal f = "pvp"pc.setf(f,"item_block",1)syschat("İtem değiştirme süresi sona erdi.")endsyschat("Düello "..tostring(arena[pvp_manager.get_arena()][5]).." saniye içinde başlayacak.")
endaffect.add(apply.MOV_SPEED, -10000, 2)arena[pvp_manager.get_arena()][5] = arena[pvp_manager.get_arena()][5] - 1endendwhen fight_start_countdown_shutdown.timer begincleartimer("fight_start_countdown")endwhen logout with game.get_event_flag("pvp") == 2 and pc.get_map_index() == 28 and pvp_manager.get_fight_mode() == 2 begin--when logout with game.get_event_flag("pvp") == 2 and pc.get_map_index() == 112 and pvp_manager.get_fight_mode() == 2 beginpvp_manager.set_fight_mode(3)arena[pvp_manager.get_arena()][3] = 3notice_in_map(""..pvp_manager.get_duel_partner().." , "..pc.getname().." karşısındaki düelloyu kazandı!", pc.get_map_index())pvp_attenders[pvp_manager.get_attender_id_by_name(pvp_manager.get_duel_partner())].fight_mode = 3pvp_attenders[pvp_manager.get_my_attender_id()].winner = falsepvp_attenders[pvp_manager.get_attender_id_by_name(pvp_manager.get_duel_partner())].winner = truesaybakim = math.random(1,10)if saybakim >= 5 thenpvp_manager.local_pc_warp(pvp_manager.get_duel_partner(), balan[1][1][1], balan[1][1][2])elsepvp_manager.local_pc_warp(pvp_manager.get_duel_partner(), balan[2][1][1], balan[2][1][2])endendwhen kill with game.get_event_flag("pvp") == 2 and pc.get_map_index() == 28 and npc.is_pc() and pvp_manager.get_fight_mode() == 2 begin--when kill with game.get_event_flag("pvp") == 2 and pc.get_map_index() == 112 and npc.is_pc() and pvp_manager.get_fight_mode() == 2 beginpvp_manager.set_fight_mode(3)if arena[pvp_manager.get_arena()][3] == 3 thenreturnendarena[pvp_manager.get_arena()][3] = 3notice_in_map(""..pc.getname().." , "..pvp_manager.get_duel_partner().." karşısındaki düelloyu kazandı!", pc.get_map_index())pvp_attenders[pvp_manager.get_attender_id_by_name(pvp_manager.get_duel_partner())].fight_mode = 3pvp_attenders[pvp_manager.get_my_attender_id()].winner = truepvp_attenders[pvp_manager.get_attender_id_by_name(pvp_manager.get_duel_partner())].winner = falsetimer("fight_end", 5)endwhen fight_end.timer beginkazanansay2 = math.random(1,100)if kazanansay2 >= 50 thenpvp_manager.local_pc_warp(pc.getname(), balan[1][1][1], balan[1][1][2])elsepvp_manager.local_pc_warp(pc.getname(), balan[2][1][1], balan[2][1][2])endsaybakim2 = math.random(1,10)if saybakim2 >= 5 thenpvp_manager.local_pc_warp(pvp_manager.get_duel_partner(), balan[3][1][1], balan[3][1][2])elsepvp_manager.local_pc_warp(pvp_manager.get_duel_partner(), balan[4][1][1], balan[4][1][2])endendwhen letter with pc.get_map_index() == 28 and game.get_event_flag("pvp") == 2 and pvp_manager.get_fight_mode() == 3 begin--when letter with pc.get_map_index() == 112 and game.get_event_flag("pvp") == 2 and pvp_manager.get_fight_mode() == 3 beginpvp_manager.set_fight_mode(0)if pvp_attenders[pvp_manager.get_my_attender_id()].winner == true thenarena[pvp_manager.get_arena()][3] = 0pvp_manager.refresh_arenas()endendfunction fight_playerless()for aArena = 1, 4, 1 doif arena[aArena][3] != 0 thenreturnendendplayerless_mode = true
pvp_manager.make_duel_list()pvp_manager.refresh_arenas()endfunction init_next_round()for aArena = 1, 4, 1 doif arena[aArena][3] != 0 thenreturnendendplayerless_mode = falselocal winner_count = 0--[[local]] winner_id = 0for ai = 1, attender_count, 1 dopvp_attenders[ai].partner = nilpvp_attenders[ai].fight_mode = 0if pvp_attenders[ai] != nil and pvp_attenders[ai].winner == true thenwinner_count = winner_count + 1winner_id = aiendendif winner_count == 1 thennotice_all(""..pvp_attenders[winner_id].name.." turnuvayı kazanıp ödülünde sahibi oldu!")local target = find_pc_by_name(pvp_attenders[winner_id].name)local t = pc.select(target)if achievement_manager != nil thenachievement_manager.on_winpvpevent()endpc.give_item2(game.get_event_flag("pvp_price_vnum"), game.get_event_flag("pvp_price_count"))pc.select(t)notice_all("PvP Turnuvası bitti.")warp_all_to_village(28,28)game.set_event_flag("pvp", 0)--pvp_attenders = nilif pvp_manager_callback != nil thenpvp_manager_callback()endreturnendpvp_manager.make_duel_list()duel_list_index = 0if winner_count == 2 thennotice_all("Final roundu başlıyor.")elseif winner_count <= 4 thennotice_all("Yarı final roundu başlıyor.")elseif winner_count <= 8 thennotice_all("Çeyrek final roundu başlıyor.")elsenotice_all("Round başlıyor.")endpvp_manager.refresh_arenas()endwhen login with pc.get_map_index() != 28 begin--when login with pc.get_map_index() != 112 beginlocal f = "pvp"pc.setf(f,"item_block",0)if pc.get_job() == 2 or pc.get_job() == 6 thenpc.setf(f,"block_cozme",0)endendwhen login with pc.get_map_index() == 28 begin--when login with pc.get_map_index() == 112 beginif pc.get_job() == 2 or pc.get_job() == 6 thenlocal f = "pvp"pc.setf(f,"block_cozme",0)endif party.is_party() thenlocal krallik = pc.get_empire()if krallik == 1 thenpc.warp(469300, 964200)elseif krallik == 2 thenpc.warp(55700, 157900)elseif krallik == 3 thenpc.warp(969600, 278400)endendendfunction local_pc_warp(name, x, y)local target = find_pc_by_name(name)local t = pc.select(target)if x == 67 and y == 98 thenlocal f = "pvp"pc.setf(f,"item_block",0)elseif x == 68 and y == 151 thenlocal f = "pvp"pc.setf(f,"item_block",0)elseif x == 184 and y == 100 thenlocal f = "pvp"pc.setf(f,"item_block",0)elseif x == 185 and y == 152 thenlocal f = "pvp"pc.setf(f,"item_block",0)endpc.warp_local(pc.get_map_index(), x*100, y*100, 0)pc.select(t)if x == 67 and y == 98 thenlocal f = "pvp"pc.setf(f,"item_block",0)elseif x == 68 and y == 151 thenlocal f = "pvp"pc.setf(f,"item_block",0)elseif x == 184 and y == 100 thenlocal f = "pvp"pc.setf(f,"item_block",0)elseif x == 185 and y == 152 thenlocal f = "pvp"pc.setf(f,"item_block",0)endendfunction setqf_by_name(name, flag, value)local target = find_pc_by_name(name)local t = pc.select(target)pc.setqf(flag, value)pc.select(t)endfunction getqf_by_name(name, flag)local target = find_pc_by_name(name)local t = pc.select(target)local rflag = pc.getqf(flag)pc.select(t)return rflagendfunction get_attender_id_by_name(name)for ai = 1, attender_count, 1 doif tostring(pvp_attenders[ai].name) == name thenreturn aiendendreturn 0endfunction get_my_attender_id()return pvp_manager.get_attender_id_by_name(pc.get_name())endfunction get_duel_partner()if pvp_attenders[pvp_manager.get_my_attender_id()] != nil and pvp_attenders[pvp_manager.get_my_attender_id()].partner != nil thenreturn pvp_attenders[pvp_manager.get_my_attender_id()].partnerelsereturn nilendendfunction get_fight_mode()if pvp_attenders != nil and pvp_manager.get_my_attender_id() != 0 and pvp_attenders[pvp_manager.get_my_attender_id()] != nil and pvp_attenders[pvp_manager.get_my_attender_id()].fight_mode != nil thenreturn pvp_attenders[pvp_manager.get_my_attender_id()].fight_modeelsereturn 0endendfunction set_fight_mode(fmode)pvp_attenders[pvp_manager.get_my_attender_id()].fight_mode = fmodeendfunction get_arena()return pvp_attenders[pvp_manager.get_my_attender_id()].arenaendfunction set_arena(id)pvp_attenders[pvp_manager.get_my_attender_id()].arena = idendfunction ask_fight(asker, target)return confirm(find_pc_by_name(target), "Trittst du den Kampf gegen "..asker.. " an?", 15)endend
0850 780 4800
Bilgi Bankası
Destek Sistemi
Giriş Yap
Hesap Oluştur