Stiti si voi mapa aceea cu duele 1v1 numit si Event Dojang.
Pai am questul totul functioneaza doar o chestie nu merge: chiar daca eventul e activat nu lasa playerii in mapa respectiva... cum fac? Adica de la ce e? Eu daca activez event si ei intra ii duce iar map1, daca intru eu ca gm cu mai multe conturi de GM pot participa totul e ok la event doar ca na.
Cine stie ?
Problema Mapa DoJang
Înainte de a posta o problemă, caută în acest forum și poate găsești rezolvare.
- sury1210
- Nivel 3

- Mesaje: 369
- Membru din: 08 Ian 2015, 20:43
- Regat: Jinno
- Aprecieri: 209
- Mulţumiri: 42
- Rezolvări prob.: 1
- Discord: Copiază ID
- Contact:
- KinKade
- Membru Club

- Mesaje: 1224
- Membru din: 10 Mar 2014, 19:39
- Server: Quirin2
- Regat: Jinno
- Aprecieri: 132
- Mulţumiri: 55
- Discord: Copiază ID
- Contact:
- Knop
- Nivel 3

Incearca acest quest
L-am gasit pe o alta comunitate acum ceva timp, nu mai tin minte exact care pentru a pune sursa.
Deci nu este facut de mine!
L-am gasit pe o alta comunitate acum ceva timp, nu mai tin minte exact care pentru a pune sursa.
Deci nu este facut de mine!
quest pvp_manager begin
state start begin
when 20011.chat."El Torneo PvP Budokan" with pc.get_map_index() != 90 begin
say_title("Torneo Budokan PvP")
say("")
if game.get_event_flag("budokan_open") == 2 then
if pc.count_item(72725) > 0 then
say("Tienes elixir de sol en tu inventario, quitalas")
elseif pc.count_item(72724) > 0 then
say("Tienes elixir de sol en tu inventario, quitalas")
elseif pc.count_item(72723) > 0 then
say("Tienes elixir de sol en tu inventario, quitalas")
else
say("¡La Arena de Duelos está abierta!")
say("")
say("Únete a una de las categorías (Nivel 65-80,")
say("80-94 y 95+) para luchar contra otros")
say("jugadores en una despiadada.")
say("¡La competencia por la riqueza y la gloria!")
say("")
local s = select("¡Llévame allí ahora!","No gracias")
if s == 1 then
if party.is_party() then
say("Estas en un grupo, no puedes ingresar.")
return
end
pc.warp(844800,0)
end
end
else
say("¡La Arena de Duelos abrirá pronto!")
say("")
say("Únete a una de las categorías (Nivel 65-80,")
say("80-94 y 95+) para luchar contra otros")
say("jugadores en una despiadada.")
say("¡La competencia por la riqueza y la gloria!")
say("")
say("Cuando la entrada está abierta,")
say(" puede inscribirse a través de")
say("la NPC dentro del mapa al cual lo llevo yo!.")
say("")
end
end
when login with pc.get_map_index() == 90 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", 20)
return
end
if pvp_attenders[pvp_manager.get_my_attender_id()] == nil then
pvp_manager.guard_check_position()
timer("pvp_guard_1", 20)
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", 20)
end
end
when pvp_guard_1.timer begin
if pc.get_map_index() != 90 then
return
end
pvp_manager.guard_check_position()
timer("pvp_guard_2", 20)
end
when pvp_guard_2.timer begin
if pc.get_map_index() != 90 then
return
end
pvp_manager.guard_check_position()
timer("pvp_guard_1", 20)
end
function 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 1
pvp_manager.guard_reset()
end
if 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 2
pvp_manager.guard_reset()
end
if 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 3
pvp_manager.guard_reset()
end
if 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 4
pvp_manager.guard_reset()
end
end
function guard_reset()
notice_in_map("AUTOPVP-GUARDIA: "..pc.getname().." fue expulsado de la arena.")
pc.warp_local(pc.get_map_index(), 126*100, 24*100)
end
when 20088.chat."GM: Cerrar entradas a PvP" with pc.is_gm() and pc.get_map_index() == 90 begin
say_title("Budokan:")
say("La Entrada al Mapa de duelos ha sido cerrada")
say("")
game.set_event_flag("budokan_open", 0)
end
when 20088.chat."GM: Cerrar mapa PvP" with pc.is_gm() and pc.get_map_index() == 90 begin
say_title("Budokan:")
say("La Entrada al Mapa de duelos ha sido cerrada")
say("Todos los jugadores serán teletransportados a la ciudad.")
say("")
warp_all_to_village( pc.get_map_index() , 1 )
end
when 20088.chat."Volver a la ciudad" with pc.get_map_index() == 90 begin
say_title("Maestro de Batalla")
say("")
say("¿Quieres salir de la arena y volver")
say("a tu ciudad?")
say("")
local s = select("Si", "No")
if s == 1 then
warp_to_village()
end
end
when 20088.chat."GM: Abortar torneo PvP" with pc.get_map_index() == 90 and pc.is_gm() and game.get_event_flag("pvp") != 0 begin
say_title("Abortar Torneo PvP")
say("¿Realmente deseas cancelar PvP del Torneo?")
say("")
local s = select("Si", "No")
if s == 1 then
game.set_event_flag("pvp", 0)
game.set_event_flag("budokan_open", 0)
pvp_attenders = nil
notice_all("El torneo PvP ha sido cancelado")
say_title("Torneo PvP cancelado")
say("El torneo PvP ha sido cancelado.")
say("")
end
end
when 20089.chat."GM: Iniciar torneo PvP" with pc.get_map_index() == 90 and pc.is_gm() and game.get_event_flag("pvp") == 0 begin
say_title("Iniciar Torneo PvP")
say("Por favor establece nivel límite para el torneo")
say("PvP.")
say("")
say_reward("Nivel minimo (minimo 15):")
local str_min_level = input()
say_title("Iniciar Torneo PvP")
local min_level = tonumber(str_min_level)
if min_level == nil then
say("No ha introducido un número")
say("")
return
end
if tonumber(str_min_level) < 15 then
min_level = 15
end
say("El Nivel mínimo es "..tostring(min_level)..".")
say("Por favor inserta el nivel máximo:")
local str_max_level = input()
say_title("Iniciar Torneo PvP")
local max_level = tonumber(str_max_level)
if max_level == nil then
say("No ha introducido un número.")
say("")
return
end
if tonumber(str_max_level) < min_level then
say("El nivel máximo debe ser mayor que")
say("el nivel minimo.")
say("")
return
end
game.set_event_flag("pvp_minlevel", min_level)
game.set_event_flag("pvp_maxlevel", max_level)
say("El nivel minimo es "..tostring(min_level)..".")
say("El nivel máximo es "..tostring(max_level)..".")
say("")
local s = select("Iniciar ahora", "Cancelar")
if s == 2 then
return
end
say_title("Iniciar Torneo PvP")
say("El Torneo PvP ha iniciado.")
say("Todo el mundo que quiera participar")
say("puede inscribirse aquí.")
say("Recuerde que deberia cubrir el nivel apropiado..")
say("")
say_reward("Nivel limite actual: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel"))
game.set_event_flag("pvp", 1)
game.set_event_flag("budokan_open", 2)
attender_count = 0
game.set_event_flag("pvp_tournament", get_global_time())
pvp_attenders = nil
pvp_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,
},
}
notice_all("La inscripción para el torneo se ha abierto!")
notice_all("Nivel límite actual: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel"))
end
when 20088.chat."Inscribirse al Torneo PvP" with pc.get_map_index() == 90 and game.get_event_flag("pvp") == 1 begin
say_title(mob_name(20088)..":")
say("")
if game.get_event_flag("pvp_tournament") == pc.getqf("pvp_tournament") then
say("Usted ya está registrado para el torneo.")
say("")
return
end
if pc.get_level() < 15 then
say("Su nivel es demasiado bajo.")
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("Su nivel tiene que estar entre"..game.get_event_flag("pvp_minlevel").." y "..game.get_event_flag("pvp_maxlevel"))
say("")
return
end
----"123456789012345678901234567890123456789012345678901234567890"|
say("Bienvenido al Torneo PvP donde se lucha contra jugadores")
say("de nivel similar a usted.")
say("")
say("Derrota a todos y cada oponente para ganar un premio y entrar en el")
say("salón de la fama!")
say("")
say("¿Quieres entrar en el desafío?")
say("")
local s = select("Si, yo participaré.", "No, no estoy listo.")
say_title(mob_name(20088)..":")
say("")
if s == 1 then
say("Se le llamará cuando tu turno haya llegado, pero que necesitas para estar aquí;")
say("de lo contrario serás descalificado.")
say("")
say("¡Buena suerte!")
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
elseif s == 2 then
say("Parece muy devil..")
say("Además hemos tenido casos de muerte aquí.")
say("")
end
end
when 20088.chat."Registros al Torneo PvP" with pc.get_map_index() == 90 and pc.is_gm() and game.get_event_flag("pvp") == 1 begin
say_title("Torneo PvP")
say("Actualmente hay "..tostring(attender_count).." players registered.")
say("¿El registro se cerrará y las")
say("batallas iniciarán?")
say("")
local s = select("Cerrar registro", "Continuar con el registro")
if s == 1 then
say_title("Cerrar registro:")
say("Las inscripciones se han cerrado.")
say("Los jugadores pueden apostar ahora.")
say("")
game.set_event_flag("pvp", 2)
betting_list = {}
betting_state = {}
end
end
when 20088.chat."Fase de Apuestas para el Torneo PvP." with pc.get_map_index() == 90 and pc.is_gm() and game.get_event_flag("pvp") == 2 begin
say_title("Torneo PVP")
say("La fase de apuestas terminó y el torneo PvP")
say("inicio?")
say("")
local s = select("Iniciar torneo ahora", "Continuar con las apuestas")
if s == 1 then
say_title("Fin de la Fase de Apuestas:")
say("Se acabó el tiempo de las apuestas.")
say("Las batallas comenzarán ahora.")
say("")
game.set_event_flag("pvp", 3)
pvp_manager.make_duel_list()
duel_list_index = 0
playerless_mode = false
notice_all("La inscripción al torneo PvP ha sido cerrada")
notice_all("¡Las batalas comienzan ahora!")
pvp_round_num = 1
pvp_manager.refresh_arenas()
end
end
when 20088.chat."Realice su apuesta" with pc.get_map_index() == 90 and game.get_event_flag("pvp") == 2 and betting_state != nil and betting_state[pc.get_player_id()] == nil begin
say_title("Realizar apuesta:")
say("¿En qué jugador quieres apostar?")
say("")
local player = input()
say_title("Realizar apuesta:")
say("")
if pvp_manager.get_attender_id_by_name(player) == 0 then
say("El jugador no está registrado.")
say("")
return
end
say("¿Cuánto dinero quieres apostar?")
say("")
local bet_amount = tonumber(input())
if bet_amount < 1 then
say_title("Error:")
say("Cantidad no válida.")
say("")
return
end
say_title("Confirmar:")
say("¿Quieres apostar "..bet_amount.." yang por este")
say(jugador.."?")
say("")
if select("Si", "No") == 2 then
return
end
betting_state[pc.get_player_id()] = 1
table.insert(betting_list, {pc.get_name(), bet_amount, player})
say_title("Realizar apuesta:")
say("Tu apuesta ha sido realizada.")
say("¡Gracias y buena suerte!")
say("")
end
when 20088.chat."¿Quién participa?" with pc.get_map_index() == 90 and game.get_event_flag("pvp") == 2 begin
setskin(NOWINDOW)
chat("Las siguientes personas participan en el torneo PvP:")
for i = 1, attender_count, 4 do
local chatline = ""
for j = i, 4, 1 do
if pvp_attenders[j] != nil then
chatline = chatline..pvp_attenders[j].name.." "
end
end
syschat(chatline)
end
syschat("Participantes "..attender_count.." totales")
end
when 20088.chat."¿Quién luchará conmigo en la próxima batalla?" with pc.get_map_index() == 90 and game.get_event_flag("pvp") == 3 and game.get_event_flag("pvp_tournament") == pc.getqf("pvp_tournament") begin
say_title(mob_name(20088)..":")
say("")
if pvp_manager.get_duel_partner() == nil then
say("No hay ningún oponente disponible en este momento.")
say("")
say("Si no encontramos un oponente apropiado para usted, ")
say("pasará al siguiente combate automáticamente.")
say("")
return
end
say("De acuerdo con el plan actual se lucha contra:")
say("")
say_reward(""..pvp_manager.get_duel_partner().."")
say("")
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 = {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 = {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 tonumber(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 20088.chat."GM: Actualizar la arena de duelos" with pc.is_gm() and game.get_event_flag("pvp") == 3 begin
for aArena = 1, 4, 1 do
arena[aArena][3] = 0
arena[aArena][4] = "SLEEPING"
end
pvp_manager.refresh_arenas()
end
-- not working
--[[
when 20088.chat."GM: Terminar Batalla" with pc.is_gm() and game.get_event_flag("pvp") == 2 begin
say_title("Terminar Batalla:")
say("¿En qué estadio se debía acabar con la lucha?")
local s = select("Arena 1", "Arena 2", "Arena 3", "Arena 4", "Cerrar")
if s == 5 then
return
end
local fighter1 = nil
local fighter2 = nil
for ai = 1, attender_count, 1 do
if pvp_attenders[ai].arena == s and pvp_attenders[ai].fight_mode != 0 then
if fighter1 == nil then
fighter1 = ai
else
fighter2 = ai
end
end
end
if fighter1 == nil then
say_title("Terminar Batalla:")
say("No hay batalla actual en este ámbito.")
say("")
return
end
say_title("Terminar Batalla:")
say("¿Quién debe ser considerado ganador cuando lucha en arena "..s.." ")
say("debe ser terminado?")
local w = select(tostring(pvp_attenders[fighter1].name), tostring(pvp_attenders[fighter1].name), "Cancel")
if w == 3 then
return
end
if w == 1 then
pvp_attenders[fighter2].winner = false
notice_in_map(tostring(pvp_attenders[fighter1].name).." has won the battle against "..tostring(pvp_attenders[fighter2].name).."!", pc.get_map_index())
pvp_manager.local_pc_warp(tostring(pvp_attenders[fighter1].name, 126, 234))
pvp_manager.local_pc_warp(tostring(pvp_attenders[fighter2].name, 126, 24))
else
pvp_attenders[fighter1].winner = false
notice_in_map(tostring(pvp_attenders[fighter2].name).." has won the battle against "..tostring(pvp_attenders[fighter1].name).."!", pc.get_map_index())
pvp_manager.local_pc_warp(tostring(pvp_attenders[fighter1].name, 126, 24))
pvp_manager.local_pc_warp(tostring(pvp_attenders[fighter2].name, 126, 234))
end
pvp_attenders[fighter1].fight_mode = 0
pvp_attenders[fighter2].fight_mode = 0
arena[3] = 0
pvp_manager.refresh_arenas()
say_title("End fight:")
say("The battle has been ended.")
end
--]]
when 20088.chat."GM: Recompensa del Torneo PvP" with pc.is_gm() begin
say_title("Recompensa:")
say("Recompensa actual: "..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("Cambiar recompensa", "Cerrar")
if s == 2 then
return
end
say_title("Cambiar recompensa:")
say("Por favor introduzca el vnum de la nueva recompensa")
say("")
local vnum = input()
say_title("Cambiar recompensa:")
say("Por favor introduzca la cantidad de la nueva recompensa")
say("")
local count = input()
game.set_event_flag("pvp_price_count", count)
game.set_event_flag("pvp_price_vnum", vnum)
say_title("Cambiar recompensa:")
say("La recompensa ha sido cambiada.")
say("Nueva recompensa: "..count.."x "..item_name(vnum).." (vnum: "..vnum..")")
say("")
end
when 20088.chat."GM: Ronda de Oro Torneo-PvP" with pc.is_gm() begin
say_title("Recompensa ronda de oro:")
say("Cantidad base actual: "..game.get_event_flag("pvp_round_gold"))
say("")
local s = select("Cambiar", "Cerrar")
if s == 2 then
return
end
say_title("Cantidad de cambio de base:")
say("Por favor ingrese la cantidad base del oro")
say("para el ganador de una ronda:")
say("")
local gold = input()
game.set_event_flag("pvp_round_gold", gold)
say_title("El importe del cambio:")
say("La cantidad de base se ha cambiado.")
say("Nuevo importe de base: "..gold)
say("")
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_in_map(tostring(pvp_attenders[pid1].name).." is not online and has been disqualified.", 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_in_map(tostring(pvp_attenders[pid2].name).." is not online and has been disqualified.", 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_in_map(tostring(pvp_attenders[pid1].name).." and "..tostring(pvp_attenders[pid2].name).." por favor ingresar a la arena!", pc.get_map_index())
--[[
local f1_accept = ask_fight(tostring(pvp_attenders[pid1].name), tostring(pvp_attenders[pid2].name))
if f1_accept != CONFIRM_OK then
notice_in_map(tostring(pvp_attenders[pid1].name).." no se tomó en la lucha contra el "..tostring(pvp_attenders[pid2].name)..".", pc.get_map_index())
pvp_attenders[pid1] = nil
pvp_attenders[pid2].partner = nil
pvp_manager.refresh_arenas()
return
end
local f2_accept = confirm(find_pc_by_name(tostring(pvp_attenders[pid2].name)), "lucha contra "..tostring(pvp_attenders[pid1].name).. " an?", 15)
if f2_accept != CONFIRM_OK then
notice_in_map(tostring(pvp_attenders[pid2].name).." no se tomó en la lucha contra "..tostring(pvp_attenders[pid1].name)..".", pc.get_map_index())
pvp_attenders[pid2] = nil
pvp_attenders[pid1].partner = nil
pvp_manager.refresh_arenas()
return
end
]]
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() == 90 and game.get_event_flag("pvp") == 3 and pvp_manager.get_fight_mode() == 1 begin
affect.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 then
arena[pvp_manager.get_arena()][5] = 60
loop_timer("fight_start_countdown", 1)
else
timer("partner_timeout", 30)
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_in_map(pc.getname().." ha ganado la lucha contra "..pvp_manager.get_duel_partner().." por incomparecencia!", 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, 23400)
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_in_map("La lucha entre "..pvp_manager.get_duel_partner().." y "..pc.get_name().." comienza!", 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
syschat("La batalla inicia en "..tostring(arena[pvp_manager.get_arena()][5]).." seconds.")
end
affect.add(apply.MOV_SPEED, -10000, 2)
pc.select(my_vid)
if math.mod(arena[pvp_manager.get_arena()][5], 5) == 0 then
syschat("The fight starts in "..tostring(arena[pvp_manager.get_arena()][5]).." seconds.")
end
affect.add(apply.MOV_SPEED, -10000, 2)
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") == 3 and pc.get_map_index() == 90 and pvp_manager.get_fight_mode() == 2 begin
pvp_manager.set_fight_mode(3)
arena[pvp_manager.get_arena()][3] = 3
notice_in_map(pvp_manager.get_duel_partner().." ha ganado la lucha contra "..pc.getname().."!", 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
local target = find_pc_by_name(pvp_manager.get_duel_partner())
local t = pc.select(target)
pc.change_gold(game.get_event_flag("pvp_round_gold")*pvp_round_num)
pc.select(t)
pvp_manager.local_pc_warp(pvp_manager.get_duel_partner(), 126, 24)
end
when kill with game.get_event_flag("pvp") == 3 and pc.get_map_index() == 90 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_in_map(pc.getname().." ha ganado la lucha contra "..pvp_manager.get_duel_partner().."!", 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.change_gold(game.get_event_flag("pvp_round_gold")*pvp_round_num)
timer("fight_end", 5)
end
when fight_end.timer begin
pc.warp_local(pc.get_map_index(), 12600, 23400)
pvp_manager.local_pc_warp(pvp_manager.get_duel_partner(), 126, 24)
end
when letter with pc.get_map_index() == 90 and game.get_event_flag("pvp") == 3 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
local 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.." ha ganado el torneo PvP!")
notice_all(pvp_attenders[winner_id].name.." recibe "..game.get_event_flag("pvp_price_count").."x "..item_name(game.get_event_flag("pvp_price_vnum")).." como recompensa!")
pvp_manager.distribute_bets(pvp_attenders[winner_id].name)
local target = find_pc_by_name(pvp_attenders[winner_id].name)
local t = pc.select(target)
pc.give_item2(game.get_event_flag("pvp_price_vnum"), game.get_event_flag("pvp_price_count"))
pc.select(t)
notice_all("El torneo ha terminado.")
game.set_event_flag("pvp", 0)
pvp_attenders = nil
return
end
pvp_manager.make_duel_list()
duel_list_index = 0
if winner_count == 2 then
notice_all("¡La ronda final del Torneo está empezando ahora!")
elseif winner_count <= 4 then
notice_all("¡La ronda semi-final del Torneo está empezando ahora!")
else
notice_all("¡La siguiente ronda del Torneo está empezando ahora!")
end
pvp_round_num = pvp_round_num + 1
pvp_manager.refresh_arenas()
end
function distribute_bets(winner_name)
table.insert(betting_list, {pc.get_name(), bet_amount, player})
local jackpot = 0
local jackpot_winner_only = 0
local winners = 0
for i = 1, table.getn(betting_list), 1 do
if betting_list[3] == winner_name then
jackpot_winner_only = jackpot_winner_only + betting_list[2]
end
jackpot = jackpot + betting_list[2]
winners = winners + 1
end
for i = 1, table.getn(betting_list), 1 do
if betting_list[3] == winner_name then
pvp_manager.give_jackpot_gold(betting_list[1], math.ceil( (betting_list[2] / jackpot_winner_only)*jackpot ))
end
end
end
function give_jackpot_gold(name, amount)
local target = find_pc_by_name(name)
if target == 0 then
return
end
local t = pc.select(target)
pc.change_money(amount)
pc.select(t)
end
function local_pc_warp(name, x, y)
local target = find_pc_by_name(name)
local t = pc.select(target)
pc.warp_local(pc.get_map_index(), x*100, y*100)
pc.select(t)
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
function ask_fight(asker, target)
return confirm(find_pc_by_name(target), "Van a luchar contra "..asker.. "?", 15)
end
end
end

Afișează semnătura
- sury1210
- Nivel 3

- Mesaje: 369
- Membru din: 08 Ian 2015, 20:43
- Regat: Jinno
- Aprecieri: 209
- Mulţumiri: 42
- Rezolvări prob.: 1
- Discord: Copiază ID
- Contact:
Înapoi la “Probleme rezolvate”
Mergi la
- Comunitate
- ↳ Forumul Just4Metin
- ↳ Începători
- ↳ Prezentare membri
- ↳ Noutăţi
- ↳ Echipă
- ↳ Cunoaşte echipa
- ↳ Arhivă
- ↳ Anunţuri Oficiale
- ↳ Concursuri și Tombole
- Resurse şi informaţii servere metin2
- ↳ Ghiduri şi Tutoriale
- ↳ Ghiduri Joc
- ↳ Arhivă
- ↳ Resurse Metin2
- ↳ Serverfiles
- ↳ Serverfiles Clean
- ↳ Client-uri
- ↳ Interfete client
- ↳ Surse
- ↳ Harți
- ↳ Autopatcher
- ↳ Aplicații utile
- ↳ Altele
- ↳ Arhivă
- ↳ Dezvoltare server
- ↳ Quest-uri
- ↳ FreeBSD
- ↳ Securitate și protecție hackuri
- ↳ Arhivă
- ↳ Modele 3D
- ↳ Costume
- ↳ Arme
- ↳ Armuri
- ↳ Mobi
- ↳ Npc-uri
- ↳ Pet-uri
- ↳ Mounturi
- ↳ Eșarfe
- ↳ Frizuri
- ↳ Obiecte
- ↳ Efecte
- ↳ Pietre Metin
- ↳ Animații GR2
- ↳ Altele
- ↳ Pachet resurse
- ↳ Arhivă
- ↳ Web Scripting
- ↳ Homepage-uri Premium
- ↳ Homepage-uri Gratuite
- ↳ Tutoriale scripting
- ↳ Întrebări şi probleme
- ↳ Arhivă
- ↳ Probleme Rezolvate
- ↳ Index/Intro Page
- ↳ Arhivă
- Metin2
- ↳ Servere Certificate
- ↳ Obține Certificat
- ↳ Arhivă
- ↳ Servere Private
- ↳ Arhivă
- ↳ Servere Private - aflate în faza de proiect
- ↳ Videoclipuri Metin2
- ↳ Arhivă
- Zona ajutor
- ↳ Probleme şi Întrebări
- ↳ Arhivă Probleme şi Întrebări
- ↳ Probleme rezolvate
- ↳ Cereri
- ↳ Arhivă
- ↳ Cereri Rezolvate
- Mica publicitate
- ↳ Anunturi diverse
- ↳ Arhivă
- ↳ Intermediari
- ↳ Servicii si vanzari Metin2
- ↳ Servicii
- ↳ Serverfile si surse
- ↳ Sisteme si coduri
- ↳ Web Scripting si Design
- ↳ 3d Models
- ↳ Arhiva
- ↳ Firme de Hosting
- ↳ Reclamații
- ↳ Contestatii sau rezolvari reclamatii si conturi blocate
- Diverse
- ↳ Discuţii diverse
- ↳ Arhivă
- ↳ Zile de naștere
- ↳ Hobby-uri
- ↳ Seriale
- ↳ Filme
- ↳ Sport
- ↳ Foto/video
- ↳ Calatorii
- ↳ Alte hobby-uri
- ↳ Jocuri
- ↳ Jocuri PC
- ↳ League of Legends
- ↳ World of Warcraft
- ↳ Grand Theft Auto
- ↳ DayZ
- ↳ Minecraft
- ↳ Counter-Strike
- ↳ Alte jocuri
- ↳ Jocuri Console
- ↳ Software
- ↳ Distracţie/Divertisment
- ↳ Filmuleţe amuzante
- ↳ Muzică
- ↳ Bancuri
- ↳ Spam
- ↳ Arhivă
- ↳ Grafică
- ↳ Arhivă
- ↳ Cereri
- ↳ Subiecte vechi
- ↳ Cereri avatare
- ↳ Cereri semnături
- ↳ Portofolii
- ↳ Bătălii
- ↳ Bătălii Finalizate
- ↳ Tutoriale
- ↳ Resurse
- ↳ Cadouri
- Topicuri şi mesaje şterse
- ↳ Arhivă
- ↳ Imagini şi videoclipuri
- ↳ Discuţii generale
- ↳ Bug-uri (Erori)
- ↳ Reclamaţii
- ↳ Reclamaţii jucători
- ↳ Reclamaţii echipă
- ↳ Deblocare cont
- ↳ Punct de negoţ
- ↳ Vânzări
- ↳ Cumpărări
- ↳ Idei şi sugestii
- ↳ Cerere Moderator
- ↳ Arhivă
- ↳ Metin2 - Site-ul serverului.
- ↳ Punct de negoţ
- ↳ Vânzări
- ↳ Cumpărări
- ↳ Probleme şi întrebări
- ↳ Idei şi sugestii
- ↳ Metin2 - Loc Liber
- ↳ Anunţuri şi Noutăţi
- ↳ Loc Liber- Facebook
- ↳ Reclamaţii
- ↳ Reclamaţii jucători
- ↳ Reclamaţii echipă
- ↳ Bug-uri (Erori)
- ↳ Prezentări
- ↳ Prezentare breaslă
- ↳ Imagini şi videoclipuri
- ↳ Contestaţii
- ↳ Discuţii generale
- ↳ Arhivă
- ↳ Cerere Moderator
- Clubul Just4Metin
- ↳ Clubul Just4Metin - Alătură-te nouă
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 7 vizitatori

de