- Mesaj
- 168
- Çözümler
- 5
- Beğeni
- 14
- Puan
- 449
- Ticaret Puanı
- 0
Pvp turnuvasında sayaç bitmeden space basılarak oyuncunun yanına gidilebiliyor space engeli nasıl getiririm
nasıl veririm böyle yaptımda olmadıyavaşlık vermek yerine stun atmak daha mantıklı sanki?
rakibe göre düzenlenmesi lazımnasıl veririm böyle yaptımda olmadı
affect.add(apply.STUN, 1, 30)
nasıl yaparımrakibe göre düzenlenmesi lazım
quest pvp_manager begin
state start begin
when 9006.chat."GM:PvP Turnuvasına Işınlan " with pc.is_gm() begin
say("Haritaya gitmek istiyor musun?")
say("")
local a = select("Evet ", "Hayır ")
if a == 1 then
pc.warp(2355200,2483200)
end
end
when 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
if pvp_attenders == nil then
-- pvp_manager.guard_check_position()
timer("pvp_guard_1", 10)
return
end
if pvp_attenders[pvp_manager.get_my_attender_id()] == nil then
-- pvp_manager.guard_check_position()
timer("pvp_guard_1", 10)
return
end
if pvp_attenders[pvp_manager.get_my_attender_id()].fight_mode != 1 and pvp_attenders[pvp_manager.get_my_attender_id()].fight_mode != 2 then
-- pvp_manager.guard_check_position()
timer("pvp_guard_1", 10)
end
end
when pvp_guard_1.timer begin
if pc.get_map_index() != 26 then--26
return
end
-- pvp_manager.guard_check_position()
timer("pvp_guard_2", 10)
end
when pvp_guard_2.timer begin
if pc.get_map_index() != 26 then--26
return
end
-- pvp_manager.guard_check_position()
timer("pvp_guard_1", 10)
end
-- function guard_check_position()
-- if pc.get_local_x() >= 127 and pc.get_local_y() >= 118 and pc.get_local_x() <= 148 and pc.get_local_y() <= 118 then
-- pvp_manager.guard_reset()
-- end
-- if pc.get_local_x() >= 112 and pc.get_local_y() >= 118 and pc.get_local_x() <= 92 and pc.get_local_y() <= 118 then
-- pvp_manager.guard_reset()
-- end
-- if pc.get_local_x() >= 92 and pc.get_local_y() >= 149 and pc.get_local_x() <= 112 and pc.get_local_y() <= 149 then
-- pvp_manager.guard_reset()
-- end
-- if pc.get_local_x() >= 129 and pc.get_local_y() >= 149 and pc.get_local_x() <= 144 and pc.get_local_y() <= 149 then
-- pvp_manager.guard_reset()
-- end
-- end
function guard_reset()
notice_all(""..pc.get_name().." Arenadan uzaklaştırıldı!")
pc.warp(344000,502500)
end
when 9006.chat."PvP Turnuvasına Katıl " with game.get_event_flag("pvp") == 1 begin
if party.is_party() then
setskin(NOWINDOW)
syschat("Gruptayken giriş yapamazsınız.")
return
end
say_title("PvP Turnuvasına Katıl:")
say("Ne yapmak istiyorsun?")
local s = select("PvP Arenasına Işınlan " , "Kapat " )
if s == 1 then
pc.warp(2367000,2487700)
else return
end
end
when 20369.chat."Turnuva Bölgesini Temizle " with pc.get_map_index() == 28 and pc.is_gm() begin
say_title("PvP Turnuvası : ")
say("")
say("Bölgeyi temizlemek istiyor musun?")
say("")
local temizle = select("Evet ", "Hayır ")
if temizle == 1 then
warp_all_to_village(28,10)
end
end
when 20369.chat."GM: PvP Turnuvası İptal Et " with pc.get_map_index() == 28 and pc.is_gm() and game.get_event_flag("pvp") != 0 begin
say_title("GM: PvP Turnuvası İptal Et:")
say("PvP Turnuvası iptal etmek istiyormusun?")
say("")
local s = select("Evet ", "Hayır ")
if s == 1 then
game.set_event_flag("pvp", 0)
pvp_attenders = nil
notice_all("Turnuva sona ermiştir!")
say_title("PvP Turnuvası iptal edildi!")
say("PvP Turnuvası iptal edildi!")
say("")
if pvp_manager_callback != nil then
pvp_manager_callback()
end
end
end
when 20369.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
say("")
say("Turnuva sınıfını seç.")
say("")
local sinif = select("Savaşçı ", "Ninja ", "Sura ", "Şaman ", "Karışık ", "Vazgeç ")
if sinif == 1 then
game.set_event_flag("pvp_sinif",1)
say("Savaşçı sınıfı seçildi.")
elseif sinif == 2 then
game.set_event_flag("pvp_sinif",2)
say("Ninja sınıfı seçildi.")
elseif sinif == 3 then
game.set_event_flag("pvp_sinif",3)
say("Sura sınıfı seçildi.")
elseif sinif == 4 then
game.set_event_flag("pvp_sinif",4)
say("Şaman sınıfı seçildi.")
elseif sinif == 5 then
game.set_event_flag("pvp_sinif",5)
say("Karışık seçildi.")
end
end
when 20369.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
say_title("PvP Turnuvasını başlat:")
if game.get_event_flag("pvp_sinif") == 0 then
say("Önce sınıf seçimi yap.")
return
end
say("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 then
say("Numara girilmedi.")
say("")
return
end
if tonumber(str_min_level) < 15 then
min_level = 15
end
say("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 then
say("Numara girilmedi.")
say("")
return
end
if tonumber(str_max_level) < min_level then
say("Maks level min levelden yüksek olmalı.")
say("")
return
end
game.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 then
return
end
say_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()
end
function open_registrations()
game.set_event_flag("pvp", 1)
attender_count = 0
game.set_event_flag("pvp_tournament", get_global_time())
pvp_attenders = nil
pvp_attenders = { }
arena = {
-- arena 1
{
{ 127, 118 },
{ 148, 118 },
0,
"SLEEPING",
0,
},
-- arena 2
{
{ 112, 118 },
{ 92, 118 },
0,
"SLEEPING",
0,
},
-- arena 3
{
{ 92, 149 },
{ 112, 149 },
0,
"SLEEPING",
0,
},
-- arena 4
{
{ 129, 149 },
{ 144, 149 },
0,
"SLEEPING",
0,
},
}
notice_all("|cff00ff00PvP Turnuvası başlamıştır.")
notice_all("|cff00ff00Katılmak için "..mob_name(9006).."'ile görüş.")
local sinif = game.get_event_flag("pvp_sinif")
local siniff = ""
if sinif == 1 then
siniff = "|cffffcc00Savaşçılar "
notice_all(siniff.."|cff00ff00Arası Turnuva Level limiti: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel").."")
elseif sinif == 2 then
siniff = "|cffffcc00Ninjalar "
notice_all(siniff.."|cff00ff00Arası Turnuva Başladı. Level limiti: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel").."")
elseif sinif == 3 then
siniff = "|cffffcc00Suralar "
notice_all(siniff.."|cff00ff00Arası Turnuva Başladı. Level limiti: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel").."")
elseif sinif == 4 then
siniff = "|cffffcc00Şamanlar "
notice_all(siniff.."|cff00ff00Arası Turnuva Başladı. Level limiti: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel").."")
elseif sinif == 5 then
siniff = "|cffffcc00Karışık "
notice_all("Level limiti: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel").."")
end
end
when 20369.chat."Turnuvaya Katıl " with pc.get_map_index() == 28 and game.get_event_flag("pvp") == 1 begin
say_title(mob_name(20369)..":")
if party.is_party() then
say("Gruptayken giriş yapamazsınız.")
return
end
local sinif = game.get_event_flag("pvp_sinif")
if sinif == 1 then
if pc.get_job() != 0 then
if pc.get_job() != 4 then
say("Sadece savaşçılar girebilir.")
return
end
end
elseif sinif == 2 then
if pc.get_job() != 1 then
if pc.get_job() != 5 then
say("Sadece ninjalar girebilir.")
return
end
end
elseif sinif == 3 then
if pc.get_job() != 2 then
if pc.get_job() != 6 then
say("Sadece suralar girebilir.")
return
end
end
elseif sinif == 4 then
if pc.get_job() != 3 then
if pc.get_job() != 7 then
say("Sadece şamanlar girebilir.")
return
end
end
end
if game.get_event_flag("pvp_tournament") == pc.getqf("pvp_tournament") then
say("Turnuvaya zaten kayıt yaptırdın.")
say("")
return
end
if pc.get_level() < 15 then
say("Levelin çok düşük.")
say("")
return
end
if pc.get_level() < game.get_event_flag("pvp_minlevel") or pc.get_level() > game.get_event_flag("pvp_maxlevel") then
say("Levelin "..game.get_event_flag("pvp_minlevel").." ile "..game.get_event_flag("pvp_maxlevel").." arasında olması gerekli.")
say("")
return
end
--Kendinize göre Düzenleyebilirsiniz Yazıları--
say("Turnuvaya Hoşgeldin")
say("Kayıt olmadan Okuyunuz !")
say("Silah değiştirmek ve Kaçmak yasaktır.")
say("Kutsama ile Girmek Yasaktır elenirsin.")
say("Turnuva Sırasında Video alınması önerilir.")
say("Turnuva Sırasında Küfür aşalayıcı Kelimeler Kullanmayanız.")
say("Kurallara Uyunuz Diskalife Edilirsiniz ")
say("Başarılar dileriz")
say_reward("Kayıt Ücreti : 15.000 Yang ")
-- say_item_vnum(50027)
local s = select("Evet, katılmak istiyorum ", "Hayır, Katılmak istemiyorum ")
say_title(mob_name(20369)..":")
if s == 1 then
if pc.get_gold() < 150000 then
say_title("PvP Turnuvası ")
say("")
say(150000-pc.get_gold().." yang eksiğin var.")
say("Paranı tamamlayınca turnuvaya girebilirsin.")
return
end
-- if pc.count_item(50027) < 1 then#----------- Kayıt itemi istiyorsanız Aktif edin burayı
-- say("Giriş itemin olmadan giremezsin.")
-- say_item_vnum(50027)
-- return
-- end
say("Başarıyla kayıt oldun sıra sana geldiginde seni arenaya gönderecegim.")
say("Turnuva başladığında burda olmassan elenirsin.")
say("İyi şanslar ")
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 + 1
pc.change_gold(-150000)
-- pc.remove_item(50027,1)-deaktif
if achievement_manager != nil then
achievement_manager.on_participatepvpevent()
end
elseif s == 2 then
say("Çok zayıf gözüküyorsun evlat ")
say("diğer oyunculara karşı hiç şansın olamaz.")
say("")
end
end
when 20369.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
say_title(" PvP Turnuvası ")
say("Şuana kadar "..tostring(attender_count).." oyuncu kayıt oldu.")
if ae_pvp_tournament != nil then
say("")
return
end
say(" Kayıtları kapamak istiyormusun? ")
say("")
local s = select("Kayıtları kapat ", "Kayıt olmaya devam etsinler ")
if s == 1 then
say_title("Kayıtları Kapat:")
say("Kayıtlar kapandı.")
say("")
pvp_manager.close_registrations()
end
end
function close_registrations()
if attender_count == 0 then
notice_all("Girişler kapandı , kayıt yaptıramazsın.")
game.set_event_flag("pvp", 0)
pvp_attenders = nil
if pvp_manager_callback != nil then
pvp_manager_callback()
end
return
end
game.set_event_flag("pvp", 2)
pvp_manager.make_duel_list()
duel_list_index = 0
playerless_mode = false
notice_all("PvP Turnuvası başlıyor!")
pvp_manager.refresh_arenas()
end
when 20369.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
say_title(mob_name(20369)..":")
if pvp_manager.get_duel_partner() == nil then
say("Şuanda sana uygun aday yok.")
say("Eğer sana uygun aday bulamazsak bir sonraki ")
say("rounda geçeceksin.")
return
end
say("Düello yapacağın kişi:")
say("")
say_reward(""..pvp_manager.get_duel_partner().."")
end
function make_duel_list()
duel_list = { }
local i = 0
for ai = 1, attender_count, 1 do
if pvp_attenders[ai] != nil and pvp_attenders[ai].partner == nil and pvp_attenders[ai].winner == true then
local partner_id = pvp_manager.findpartner(tostring(pvp_attenders[ai].name), pvp_attenders[ai].level)
if partner_id != nil then
pvp_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 + 1
end
end
end
for ai = 1, attender_count, 1 do
if pvp_attenders[ai] != nil and pvp_attenders[ai].partner == nil and pvp_attenders[ai].winner == true then
local partner_id = pvp_manager.findpartner_for_partnerless(tostring(pvp_attenders[ai].name), pvp_attenders[ai].level)
if partner_id != nil then
pvp_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 + 1
end
end
end
end
function findpartner(name, level)
local closest_level = nil
local partner_id = nil
for ai = 1, attender_count, 1 do
if 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 then
if closest_level == nil then
closest_level = pvp_attenders[ai].level
partner_id = ai
elseif tonumber(pvp_attenders[ai].level) == tonumber(level) then
closest_level = pvp_attenders[ai].level
partner_id = ai
elseif tonumber(level) < tonumber(closest_level) and tonumber(pvp_attenders[ai].level) < tonumber(closest_level) then
closest_level = pvp_attenders[ai].level
partner_id = ai
elseif tonumber(level) > tonumber(closest_level) and tonumber(pvp_attenders[ai].level) > tonumber(closest_level) then
closest_level = pvp_attenders[ai].level
partner_id = ai
end
end
end
return partner_id
end
function findpartner_for_partnerless(name, level)
local closest_level = nil
local partner_id = nil
for ai = 1, attender_count, 1 do
if 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 then
if closest_level == nil then
closest_level = pvp_attenders[ai].level
partner_id = ai
elseif pvp_attenders[ai].level == level then
closest_level = pvp_attenders[ai].level
partner_id = ai
elseif tonumber(level) < tonumber(closest_level) and pvp_attenders[ai].level < closest_level then
closest_level = pvp_attenders[ai].level
partner_id = ai
elseif tonumber(level) > tonumber(closest_level) and pvp_attenders[ai].level > closest_level then
closest_level = pvp_attenders[ai].level
partner_id = ai
end
end
end
return partner_id
end
function is_player_in_map(name)
if pc.getname() == name then
return true
end
local myname = pc.getname()
local target = find_pc_by_name(name)
local t = pc.select(target)
if pc.getname() == myname then
pc.select(t)
return false
end
pc.select(t)
return true
end
when 20369.chat."GM: Arenayı Temizle" with pc.is_gm() and game.get_event_flag("pvp") == 2 begin
for aArena = 1, 4, 1 do
arena[aArena][3] = 0
arena[aArena][4] = "SLEEPING"
end
pvp_manager.refresh_arenas()
end
when 20369.chat."GM: PvP Turnuva Ödülü " with pc.is_gm() and pc.get_map_index() == 28 begin
say_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 then
return
end
say_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 do
if duel_list[duel_list_index] == nil then
if playerless_mode == true then
pvp_manager.init_next_round()
else
pvp_manager.fight_playerless()
end
return
end
if arena[aArena][3] == 0 then
arena[aArena][3] = 1
pvp_manager.fight_init(duel_list[duel_list_index].fighter_id1, duel_list[duel_list_index].fighter_id2, aArena)
end
end
end
function fight_init(pid1, pid2, arena_id)
duel_list_index = duel_list_index + 1
if pvp_manager.is_player_in_map(tostring(pvp_attenders[pid1].name)) == false then
notice_all(""..tostring(pvp_attenders[pid1].name).." adlı oyuncu oyunda olmadığından diskalifiye edildi.", pc.get_map_index())
pvp_attenders[pid1].winner = false
pvp_attenders[pid2].partner = nil
arena[arena_id][3] = 0
pvp_manager.refresh_arenas()
return
end
if pvp_manager.is_player_in_map(tostring(pvp_attenders[pid2].name)) == false then
notice_all(""..tostring(pvp_attenders[pid2].name).." adlı oyuncu oyunda olmadığından diskalifiye edildi.", pc.get_map_index())
pvp_attenders[pid2].winner = false
pvp_attenders[pid1].partner = nil
arena[arena_id][3] = 0
pvp_manager.refresh_arenas()
return
end
notice_all(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 = 1
pvp_attenders[pid2].fight_mode = 1
pvp_attenders[pid1].arena = arena_id
pvp_attenders[pid2].arena = arena_id
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])
end
when login with pc.get_map_index() == 28 and game.get_event_flag("pvp") == 2 and pvp_manager.get_fight_mode() == 1 begin
affect.add(apply.MOV_SPEED, -10000, 30)
affect.add_collect(apply.STUN_PCT, 20, 60)
-- 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 then
arena[pvp_manager.get_arena()][5] = 30
loop_timer("fight_start_countdown", 1)
else
timer("partner_timeout", 40)
end
arena[pvp_manager.get_arena()][3] = 2
end
when partner_timeout.timer begin
if 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 then
return
end
pvp_manager.set_fight_mode(3)
if arena[pvp_manager.get_arena()][3] == 3 then
return
end
arena[pvp_manager.get_arena()][3] = 3
notice_all(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 = 3
pvp_attenders[pvp_manager.get_my_attender_id()].winner = true
pvp_attenders[pvp_manager.get_attender_id_by_name(pvp_manager.get_duel_partner())].winner = false
pc.warp_local(pc.get_map_index(), 12600, 4000)
end
when fight_start_countdown.timer begin
if arena[pvp_manager.get_arena()][5] == -1 then
return
end
local 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 then
arena[pvp_manager.get_arena()][5] = -1
pc.select(partner_vid)
command("pvp "..my_vid)
pc.select(my_vid)
command("pvp "..partner_vid)
notice_all(""..pc.getname().." ile "..pvp_manager.get_duel_partner().." arasındaki düello başladı!", pc.get_map_index())
timer("fight_start_countdown_shutdown", 1)
else
pc.select(partner_vid)
if math.mod(arena[pvp_manager.get_arena()][5], 5) == 0 then
if tostring(arena[pvp_manager.get_arena()][5]) == "30" then
local f = "pvp"
pc.setf(f,"block_item",0)
if pc.get_job() == 2 or pc.get_job() == 6 then
pc.setf(f,"block_cozme",1)
end
notice_all("[ Dikkat ]30 Saniye Sonra item Değiştirme Kapanacaktır...")
syschat("")
elseif tostring(arena[pvp_manager.get_arena()][5]) == "15" then
local f = "pvp"
pc.setf(f,"block_item",1)
if pc.get_job() == 2 or pc.get_job() == 6 then
pc.setf(f,"block_cozme",0)
end
-- notice_all("[ Dikkat ]30 Saniye Sonra item Değiştirme Kapanacaktır...")
end
syschat("Düello "..tostring(arena[pvp_manager.get_arena()][5]).." saniye içinde başlayacak.")
end
affect.add(apply.MOV_SPEED, -10000, 2)
affect.add_collect(apply.STUN_PCT, 20, 60)
pc.select(my_vid)
if math.mod(arena[pvp_manager.get_arena()][5], 5) == 0 then
if tostring(arena[pvp_manager.get_arena()][5]) == "30" then
local f = "pvp"
pc.setf(f,"block_item",0)
-- notice_all("[ Dikkat ]30 Saniye Sonra item Değiştirme Kapanacaktır...")
syschat("")
elseif tostring(arena[pvp_manager.get_arena()][5]) == "15" then
local f = "pvp"
pc.setf(f,"block_item",1)
-- notice_all("[ Dikkat ]30 Saniye Sonra item Değiştirme Kapanacaktır...")
end
syschat("Düello "..tostring(arena[pvp_manager.get_arena()][5]).." saniye içinde başlayacak.")
end
affect.add(apply.MOV_SPEED, -10000, 2)
affect.add_collect(apply.STUN_PCT, 20, 60)
arena[pvp_manager.get_arena()][5] = arena[pvp_manager.get_arena()][5] - 1
end
end
when fight_start_countdown_shutdown.timer begin
cleartimer("fight_start_countdown")
end
when logout with game.get_event_flag("pvp") == 2 and pc.get_map_index() == 28 and pvp_manager.get_fight_mode() == 2 begin
pvp_manager.set_fight_mode(3)
arena[pvp_manager.get_arena()][3] = 3
notice_all(""..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 = 3
pvp_attenders[pvp_manager.get_my_attender_id()].winner = false
pvp_attenders[pvp_manager.get_attender_id_by_name(pvp_manager.get_duel_partner())].winner = true
pvp_manager.local_pc_warp(pvp_manager.get_duel_partner(), 126, 40)
end
when 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
pvp_manager.set_fight_mode(3)
if arena[pvp_manager.get_arena()][3] == 3 then
return
end
arena[pvp_manager.get_arena()][3] = 3
notice_all(""..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 = 3
pvp_attenders[pvp_manager.get_my_attender_id()].winner = true
pvp_attenders[pvp_manager.get_attender_id_by_name(pvp_manager.get_duel_partner())].winner = false
timer("fight_end", 5)
end
when fight_end.timer begin
pc.warp_local(pc.get_map_index(), 12600, 4000)
pvp_manager.local_pc_warp(pvp_manager.get_duel_partner(), 126, 40)
end
when letter with pc.get_map_index() == 28 and game.get_event_flag("pvp") == 2 and pvp_manager.get_fight_mode() == 3 begin
pvp_manager.set_fight_mode(0)
if pvp_attenders[pvp_manager.get_my_attender_id()].winner == true then
arena[pvp_manager.get_arena()][3] = 0
pvp_manager.refresh_arenas()
end
end
function fight_playerless()
for aArena = 1, 4, 1 do
if arena[aArena][3] != 0 then
return
end
end
playerless_mode = true
pvp_manager.make_duel_list()
pvp_manager.refresh_arenas()
end
function init_next_round()
for aArena = 1, 4, 1 do
if arena[aArena][3] != 0 then
return
end
end
playerless_mode = false
local winner_count = 0
winner_id = 0
for ai = 1, attender_count, 1 do
pvp_attenders[ai].partner = nil
pvp_attenders[ai].fight_mode = 0
if pvp_attenders[ai] != nil and pvp_attenders[ai].winner == true then
winner_count = winner_count + 1
winner_id = ai
end
end
if winner_count == 1 then
notice_all(""..pvp_attenders[winner_id].name.." |cff00ff00Tüm rakiplerini mağlup ederek turnuvayı kazanmıştır")
notice_all(""..pvp_attenders[winner_id].name.." ,"..game.get_event_flag("pvp_price_count").." TL "..item_name(game.get_event_flag("pvp_price_vnum")).." kazandı.")
local target = find_pc_by_name(pvp_attenders[winner_id].name)
local t = pc.select(target)
if achievement_manager != nil then
achievement_manager.on_winpvpevent()
end
pc.give_item2(game.get_event_flag("pvp_price_vnum"), game.get_event_flag("pvp_price_count"))
pc.select(t)
notice_all("|cffff0000PvP Turnuvası sona ermiştir katılım sağlayan tüm oyuncularımıza teşekkür ederiz.")
game.set_event_flag("pvp", 0)
if pvp_manager_callback != nil then
pvp_manager_callback()
end
return
end
pvp_manager.make_duel_list()
duel_list_index = 0
if winner_count == 2 then
notice_all("Final roundu başlıyor.")
elseif winner_count <= 4 then
notice_all("Yarı final roundu başlıyor.")
else
notice_all("Round başlıyor.")
end
pvp_manager.refresh_arenas()
end
when login with pc.get_map_index() != 28 begin
local f = "pvp"
pc.setf(f,"block_item",0)
if pc.get_job() == 2 or pc.get_job() == 6 then
pc.setf(f,"block_cozme",0)
end
end
when login with pc.get_map_index() == 28 begin
if pc.get_job() == 2 or pc.get_job() == 6 then
local f = "pvp"
pc.setf(f,"block_cozme",0)
end
if party.is_party() then
local krallik = pc.get_empire()
if krallik == 1 then
pc.warp(469300, 964200)
elseif krallik == 2 then
pc.warp(55700, 157900)
elseif krallik == 3 then
pc.warp(969600, 278400)
end
end
end
function local_pc_warp(name, x, y)
local target = find_pc_by_name(name)
local t = pc.select(target)
if x == 126 and y == 40 then
local f = "pvp"
pc.setf(f,"block_item",0)
end
pc.warp_local(pc.get_map_index(), x*100, y*100)
pc.select(t)
if x == 126 and y == 40 then
local f = "pvp"
pc.setf(f,"block_item",0)
end
end
function 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)
end
function 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 rflag
end
function get_attender_id_by_name(name)
for ai = 1, attender_count, 1 do
if tostring(pvp_attenders[ai].name) == name then
return ai
end
end
return 0
end
function get_my_attender_id()
return pvp_manager.get_attender_id_by_name(pc.get_name())
end
function get_duel_partner()
if pvp_attenders[pvp_manager.get_my_attender_id()] != nil and pvp_attenders[pvp_manager.get_my_attender_id()].partner != nil then
return pvp_attenders[pvp_manager.get_my_attender_id()].partner
else
return nil
end
end
function 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 then
return pvp_attenders[pvp_manager.get_my_attender_id()].fight_mode
else
return 0
end
end
function set_fight_mode(fmode)
pvp_attenders[pvp_manager.get_my_attender_id()].fight_mode = fmode
end
function get_arena()
return pvp_attenders[pvp_manager.get_my_attender_id()].arena
end
function set_arena(id)
pvp_attenders[pvp_manager.get_my_attender_id()].arena = id
end
end
end