Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 19:03

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[SERVICE] Die Questkontrolle

Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old 06/04/2015, 19:22   #11626
 
elite*gold: 260
Join Date: Dec 2011
Posts: 42
Received Thanks: 2
Quote:
Originally Posted by Noa_ View Post
pairs
Die Quest an sich funktioniert jetzt, wenn ich aber IG etwas Trainieren will geschieht dies nicht, sprich es bleibt auf dem Stand wo es vorher auch schon war.
Tobii12xx is offline  
Old 06/05/2015, 02:22   #11627
 
Rofelmau's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
#war falsch sry
Rofelmau is offline  
Old 06/06/2015, 20:49   #11628
 
elite*gold: 0
Join Date: Aug 2013
Posts: 145
Received Thanks: 1
Exclamation immer noch keine hilfe

Liebe leute ich versuche diese quest siet wochen aber ich habe ein problem
wenn die duelle laufen und jemand verloren hat soll er ja aus den ring geportet werden und der nächste gegner soll wieder rein aber es geht nicht kann mir jemand helfen


PHP Code:
------------------------------------------------------
-- 
Automatic PVP-Tournament System Quest
-- (c2011 2012 by musicinstructor@elitepvpers.com
------------------------------------------------------
quest pvp_manager begin
    state start begin
        when login with pc
.get_map_index() == 250 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 != 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 != 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() != 250 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() != 250 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-GUARD: "..pc.getname().." wurde aus der Arena entfernt.")
            
pc.warp_local(pc.get_map_index(), 126*10024*100)
        
end
        
        when 20355.chat
."Dem PvP-Turnier beitreten" with game.get_event_flag("pvp") != 0 begin
            say_title
("Hauptmann:")
            if 
game.get_event_flag("pvp") == 1 then
                say
("Schärfe deine Waffen und deine Sinne!")
                
say("Das PvP-Turnier beginnt gleich!")
                
say("")
                
say("Beeilung!")
                
say("Kämpfe für die Ehre unseres Reiches!")
                
say("")
            else
                
say("Das Turnier hat bereits begonnen.")
                
say("Du darfst keine Zeit verlieren!")
                
say("")
            
end
            wait
()
            
pc.warp(857285,856993)
        
end
        
        when 20078.chat
."Zurück zur Stadt" with pc.get_map_index() == 250 begin
            say_title
("Zurück zur Stadt:")
            
say("Möchtest du das Arenengelände verlassen und zurück")
            
say("in deine Reichshauptstadt teleportiert werden?")
            
say("")
            
local s select("Ja""Nein")
            if 
== 1 then
                warp_to_village
()
            
end
        end

        when 20078.chat
."GM: PVP-Turnier abbrechen" with pc.get_map_index() == 250 and pc.is_gm() and game.get_event_flag("pvp") != 0 begin
            say_title
("PVP-Turnier abbrechen")
            
say("Möchtest du das PVP-Turnier wirklich abbrechen?")
            
say("")
            
local s select("Ja""Nein")
            if 
== 1 then
                game
.set_event_flag("pvp"0)
                
pvp_attenders nil
                notice_all
("Das PVP-Turnier wurde abgebrochen.")
                
say_title("PVP-Turnier abbrechen")
                
say("Das PVP-Turnier wurde abgebrochen.")
                
say("")
                if 
pvp_manager_callback != nil then
                    pvp_manager_callback
()
                
end
            end
        end

        when 20078.chat
."GM: PVP-Turnier starten" with pc.get_map_index() == 250 and pc.is_gm() and game.get_event_flag("pvp") == and ae_pvp_tournament == nil begin
            say_title
("PVP-Turnier starten:")
            
say("Bitte lege die Levellimits für das PVP-Turnier")
            
say("fest.")
            
say("")
            
say_reward("Minimum Level (minimum 15):")
            
local str_min_level input()
            
say_title("PVP-Turnier starten:")
            
local min_level tonumber(str_min_level)
            if 
min_level == nil then
                say
("Es wurde keine Zahl eingegeben.")
                
say("")
                return
            
end
            
if tonumber(str_min_level) < 15 then
                min_level 
15
            end
            say
("Das minimale Level ist nun "..tostring(min_level)..".")
            
say("Bitte geben sie ein maximales Level ein:")
            
local str_max_level input()
            
say_title("PVP-Turnier starten:")
            
local max_level tonumber(str_max_level)
            if 
max_level == nil then
                say
("Es wurde keine Zahl eingegeben.")
                
say("")
                return
            
end
            
if tonumber(str_max_level) < min_level then
                say
("Das maximale Level muss größer als das")
                
say("minimale Level sein.")
                
say("")
                return
            
end
            
            game
.set_event_flag("pvp_minlevel"min_level)
            
game.set_event_flag("pvp_maxlevel"max_level)
            
            
say("Minimal-Level "..tostring(min_level))
            
say("Maximal-Level "..tostring(max_level))
            
say("")
            
local s select("Jetzt starten""Abbrechen")
            if 
== 2 then
                
return
            
end
            
            say_title
("PVP-Turnier starten:")
            
say("Das PVP-Turnier wurde gestartet.")
            
say("Jeder, der teilnehmen möchte, kann sich hier")
            
say("anmelden.")
            
say("Die Anmeldungen können hier geschlossen werden.")
            
say("")
            
say_reward("Aktuelle Levellimits: "..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
                        
{
                            { 
113100 },
                            { 
88100 },
                            
0,
                            
"SLEEPING",
                            
0,
                        },
                        -- 
arena 2
                        
{
                            { 
113152 },
                            { 
88152 },
                            
0,
                            
"SLEEPING",
                            
0,
                        },
                        -- 
arena 3
                        
{
                            { 
140152 },
                            { 
164152 },
                            
0,
                            
"SLEEPING",
                            
0,
                        },
                        -- 
arena 4
                        
{
                            { 
164100 },
                            { 
140100 },
                            
0,
                            
"SLEEPING",
                            
0,
                        },
                    }
            
            
notice_all("Die Anmeldungen für das PVP-Turnier sind nun eröffnet!")
            
notice_all("Aktuelle Levellimits: "..game.get_event_flag("pvp_minlevel").." - "..game.get_event_flag("pvp_maxlevel"))
        
end
        when 20078.chat
."Beim PVP-Turnier anmelden" with pc.get_map_index() == 250 and game.get_event_flag("pvp") == 1 begin
            say_title
(mob_name(20078)..":")
            if 
game.get_event_flag("pvp_tournament") == pc.getqf("pvp_tournament"then
                say
("Du bist bereits beim PVP-Turnier angemeldet.")
                
say("")
                return
            
end
            
if pc.get_level() < 15 then
                say
("Dein Level ist zu niedrig.")
                
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
("Dein Level muss zwischen "..game.get_event_flag("pvp_minlevel").." und "..game.get_event_flag("pvp_maxlevel").." sein.")
                
say("")
                return
            
end
            say
("Beim PVP-Turnier kämpfst du gegen Spieler")
            
say("mit möglichst gleichen Leveln.")
            
say("Wenn du dich gegen die Anderen durchsetzen")
            
say("kannst, winkt dir ein Preis.")
            
say("Möchtest du teilnehmen?")
            
local s select("Teilnehmen!""Ich habe sowieso keine Chance.")
            
say_title(mob_name(20078)..":")
            if 
== 1 then
                say
("Du wirst aufgerufen, wenn du dran bist.")
                
say("Aber du musst hier bleiben, sonst hast du")
                
say("automatisch verloren und scheidest aus.")
                
say("Viel Erfolg!")
                
say("")
                
                
pvp_attenders[attender_count+1] = {name pc.getname(), level pc.get_level(), partner nilwinner truefight_mode 0arena 0}
                
pc.setqf("attender_id"attender_count+1)
                
pc.setqf("pvp_tournament"game.get_event_flag("pvp_tournament"))
                
attender_count attender_count 1
                
                
if achievement_manager != nil then
                    achievement_manager
.on_participatepvpevent()
                
end
                
            
elseif == 2 then
                say
("Stimmt, du bist wirklich ein Schwächling.")
                
say("Es hat hier auch schon Tote gegeben.")
                
say("")
            
end
        end
        when 20078.chat
."Anmeldungen des PVP-Turniers" with pc.get_map_index() == 250 and pc.is_gm() and game.get_event_flag("pvp") == 1 begin
            say_title
("PVP-Turnier")
            
say("Momentan sind "..tonumber(attender_count).." Spieler angemeldet.")
            if 
ae_pvp_tournament != nil then
                say
("")
                return
            
end
            say
("Sollen die Anmeldungen geschlossen und das Turnier")
            
say("gestartet werden?")
            
say("")
            
local s select("Anmeldungen schließen""Anmeldephase fortsetzen")
            if 
== 1 then
                say_title
("Anmeldungen schließen:")
                
say("Die Anmeldungen wurden geschlossen.")
                
say("Die Kämpfe beginnen jetzt.")
                
say("")
                
pvp_manager.close_registrations()
            
end
        end
        
        
function close_registrations()
            if 
attender_count == 0 then
                notice_all
("Das PVP-Turnier kann nicht stattfinden, da sich niemand angemeldet hat.")
                
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
("Die Anmeldungen für das PVP-Turnier sind nun geschlossen.")
            
notice_all("Die Kämpfe beginnen jetzt.")
            
pvp_manager.refresh_arenas()
        
end
        
        when 20078.chat
."Mit wem werde ich als nächstes Kämpfen?" with pc.get_map_index() == 250 and game.get_event_flag("pvp") == and game.get_event_flag("pvp_tournament") == pc.getqf("pvp_tournament"begin
            say_title
(mob_name(20078)..":")
            if 
pvp_manager.get_duel_partner() == nil then
                say
("Im Moment hast du noch keinen Partner.")
                
say("Wir müssen abwarten, ob es gleich weitere")
                
say("Spieler ohne Partner gibt. Dann bilde ich")
                
say("neue Paare.")
                
say("Ansonsten hast du das Glück, dass du kampflos")
                
say("in die nächste Runde aufsteigst.")
                
say("")
                return
            
end
            say
("Nach dem aktuellen Plan musst du voraussichtlich")
            
say("gegen "..pvp_manager.get_duel_partner().." kämpfen.")
            
say("")
        
end
        

        
function make_duel_list()
            
duel_list = { }
            
local i 0
            
for ai 1attender_countdo
                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 aifighter_id2 partner_id}
                        
1
                    end
                end
            end
            
            
for ai 1attender_countdo
                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 aifighter_id2 partner_id}
                        
1
                    end
                end
            end
        end
        
        
        
function findpartner(namelevel)
            
local closest_level nil
            local partner_id 
nil
            
for ai 1attender_countdo
                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(levelthen
                        closest_level 
pvp_attenders[ai].level
                        partner_id 
ai
                    
elseif tonumber(level) < tonumber(closest_level) and tonumber(pvp_attenders[ai].level) < tonumber(closest_levelthen
                        closest_level 
pvp_attenders[ai].level
                        partner_id 
ai
                    
elseif tonumber(level) > tonumber(closest_level) and tonumber(pvp_attenders[ai].level) > tonumber(closest_levelthen
                        closest_level 
pvp_attenders[ai].level
                        partner_id 
ai
                    end
                end
            end
            
return partner_id
        end
        
        
function findpartner_for_partnerless(namelevel)
            
local closest_level nil
            local partner_id 
nil
            
for ai 1attender_countdo
                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 20078.chat
."GM: Refresh 'n Clear Arenas" with pc.is_gm() and game.get_event_flag("pvp") == 2 begin
            
for aArena 14do
                
arena[aArena][3] = 0
                arena
[aArena][4] = "SLEEPING"
            
end
            pvp_manager
.refresh_arenas()
        
end
        
        
-- not working
        
--[[
        
when 20078.chat."GM: End fight" with pc.is_gm() and game.get_event_flag("pvp") == 2 begin
            say_title
("End fight:")
            
say("On which arena should the fight be ended?")
            
local s select("Arena 1""Arena 2""Arena 3""Arena 4""Schließen")
            
            if 
== 5 then
                
return
            
end
            
            local fighter1 
nil
            local fighter2 
nil
            
for ai 1attender_countdo
                if 
pvp_attenders[ai].arena == 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
("End fight:")
                
say("There is no current Battle on this arena.")
                
say("")
                return
            
end
            
            say_title
("End fight:")
            
say("Who should be considered winner when fight on arena "..s.." ")
            
say("should be ended?")
            
local w select(tostring(pvp_attenders[fighter1].name), tostring(pvp_attenders[fighter1].name), "Cancel")
            if 
== 3 then
                
return
            
end
            
            
if == 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].name126234))
                
pvp_manager.local_pc_warp(tostring(pvp_attenders[fighter2].name12624))
            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].name12624))
                
pvp_manager.local_pc_warp(tostring(pvp_attenders[fighter2].name126234))
            
end
            
            pvp_attenders
[fighter1].fight_mode 0
            pvp_attenders
[fighter2].fight_mode 0
            
            
            arena
[s][3] = 0
            pvp_manager
.refresh_arenas()
            
            
say_title("End fight:")
            
say("The battle has been ended.")
        
end
        
--]]
        
        
when 20078.chat."GM: PVP-Turnier Belohnung" with pc.is_gm() begin
            say_title
("Belohnung:")
            
say("Aktuelle Belohnung: "..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")..")")
            
local s select("Belohnung ändern""Schließen")
            if 
== 2 then
                
return
            
end
            say_title
("Belohnung ändern:")
            
say("Bitte gib die vnum der neuen Belohnung ein:")
            
local vnum input()
            
say_title("Belohnung ändern:")
            
say("Bitte gib die Anzahl der neuen Belohnung ein:")
            
local count input()
            
game.set_event_flag("pvp_price_count"count)
            
game.set_event_flag("pvp_price_vnum"vnum)
            
say_title("Belohnung ändern:")
            
say("Die Belohnung wurde geändert.")
            
say("Neue Belohnung: "..count.."x "..item_name(vnum).." (vnum: "..vnum..")")
        
end
        
        
function refresh_arenas()
            for 
aArena 14do
                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_id1duel_list[duel_list_index].fighter_id2aArena)
                
end
            end
        end
        

        
function fight_init(pid1pid2arena_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).." ist nicht online und somit automatisch ausgeschlossen."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).." ist nicht online und somit automatisch ausgeschlossen."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).." und "..tostring(pvp_attenders[pid2].name).." bitte im Ring einfinden!"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).." hat den Kampf gegen "..tostring(pvp_attenders[pid2].name).." nicht angetreten."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)), "Trittst du den Kampf gegen "..tostring(pvp_attenders[pid1].name).. " an?"15)
            if 
f2_accept != CONFIRM_OK then
                notice_in_map
(tostring(pvp_attenders[pid2].name).." hat den Kampf gegen "..tostring(pvp_attenders[pid1].name).." nicht angetreten."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() == 250 and game.get_event_flag("pvp") == and pvp_manager.get_fight_mode() == 1 begin
            affect
.add(apply.MOV_SPEED, -100002)
            
affect.add_collect(apply.HP_REGEN500030)
            
affect.add_collect(apply.SP_REGEN500030)
            
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") != 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().." hat den Kampf gegen "..pvp_manager.get_duel_partner().." kampflos gewonnen!"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(), 1260023400)
        
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("Der Kampf zwischen "..pc.getname().." und "..pvp_manager.get_duel_partner().." beginnt!"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
("Der Kampf beginnt in "..tostring(arena[pvp_manager.get_arena()][5]).." Sekunden.")
                
end
                affect
.add(apply.MOV_SPEED, -100002)
                
pc.select(my_vid)
                if 
math.mod(arena[pvp_manager.get_arena()][5], 5) == 0 then
                    syschat
("Der Kampf beginnt in "..tostring(arena[pvp_manager.get_arena()][5]).." Sekunden.")
                
end
                affect
.add(apply.MOV_SPEED, -100002)
                
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") == and pc.get_map_index() == 26 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().." hat den Kampf gegen "..pc.getname().." gewonnen!"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(), 12624)
        
end
        
        when kill with game
.get_event_flag("pvp") == and pc.get_map_index() == 26 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().." hat den Kampf gegen "..pvp_manager.get_duel_partner().." gewonnen!"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(), 1260023400)
            
pvp_manager.local_pc_warp(pvp_manager.get_duel_partner(), 12624)
        
end
        
        when letter with pc
.get_map_index() == 26 and game.get_event_flag("pvp") == 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 14do
                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 14do
                if 
arena[aArena][3] != 0 then
                    
return
                
end
            end
            playerless_mode 
false
            
            local winner_count 
0
            
--[[local]] winner_id 0
            
for ai 1attender_countdo
                
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.." hat das PVP-Turnier gewonnen!")
                
notice_all(pvp_attenders[winner_id].name.." erhält "..game.get_event_flag("pvp_price_count").."x "..item_name(game.get_event_flag("pvp_price_vnum")).." als Preis!")
                
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("Das PVP-Turnier ist nun zuende.")
                
game.set_event_flag("pvp"0)
                --
pvp_attenders nil
                
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
("Das Finale des PVP-Turniers beginnt!")
            elseif 
winner_count <= 4 then
                notice_all
("Das Semi-Finale des PVP-Turniers beginnt!")
            else
                
notice_all("Das PVP-Turnier geht in die nächste Runde!")
            
end
            pvp_manager
.refresh_arenas()
        
end
        
        
function local_pc_warp(namexy)
            
local target find_pc_by_name(name)
            
local t pc.select(target)
            
pc.warp_local(pc.get_map_index(), x*100y*100)
            
pc.select(t)
        
end
        
        
function setqf_by_name(nameflagvalue)
            
local target find_pc_by_name(name)
            
local t pc.select(target)
            
pc.setqf(flagvalue)
            
pc.select(t)
        
end
        
        
function getqf_by_name(nameflag)
            
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 1attender_countdo
                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() != 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(askertarget)
            return 
confirm(find_pc_by_name(target), "Trittst du den Kampf gegen "..asker.. " an?"15)
        
end
        
        
function log_current_winner(points)
            if 
pvp_attenders != nil then
                mysql_query
("INSERT INTO player.pvptournament_winlog (pid, points) VALUES ((SELECT id FROM player.player WHERE name='"..tostring(pvp_attenders[winner_id].name).."'), "..tostring(points)..") ON DUPLICATE KEY UPDATE points=points+"..pointsql.mysql["user"], ql.mysql["pass"], nilql.mysql["ip"])
            
end
        end
        
        when 20087.chat
."PVP-Turnier Rangliste" begin
            local s 
select("Information""Rangliste""Abbrechen")
            if 
== 1 then
                say_title
("PVP-Turnier Rangliste:")
                
say("In der PVP-Turnier Rangliste stehen")
                
say("die Gewinner des PVP-Turnieres.")
                
say("Man bekommt abhängig von den jeweiligen")
                
say("Levellimits Punkte:")
                
say("15-54:  3 Punkte")
                
say("55-74:  6 Punkte")
                
say("75-105: 9 Punkte")
                
say("")
                
say_reward("Hinweis: Bei allen anderen PVP-Turnieren,")
                
say_reward("die außerhalb des Eventplans stattfinden,")
                
say_reward("werden keine Punkte an die Gewinner verteilt.")
                
say("")
            elseif 
== 2 then
                local ranking 
mysql_query("SELECT (SELECT name FROM player.player WHERE id = pid) AS name, points FROM player.pvptournament_winlog ORDER BY points DESC LIMIT 10"ql.mysql["user"], ql.mysql["pass"], nilql.mysql["ip"])
                
say_title("PVP-Turnier Rangliste:")
                if 
ranking == "ERROR" then
                    say_reward
("Es gibt noch keine Spieler in der Rangliste.")
                    
say("")
                    return
                
end
                
for 1table.getn(ranking.name), do
                    
say(i..". "..tostring(ranking.name[i]).." ("..tostring(ranking.points[i]).." Punkte)")
                
end
                say
("")
                
local self_rank mysql_query("SELECT rank, points FROM (SELECT @rownum := @rownum + 1 AS rank, points, pid FROM player.pvptournament_winlog JOIN (SELECT @rownum := 0) r ORDER BY pvptournament_winlog.points DESC) x WHERE x.pid = '"..tostring(pc.get_player_id()).."'"ql.mysql["user"], ql.mysql["pass"], nilql.mysql["ip"])
                if 
self_rank == "ERROR" then
                    
return
                
end
                say
("Eigener Rang:")
                
say(self_rank.rank[1]..". "..tostring(pc.get_name()).." ("..tostring(self_rank.points[1]).." Punkte)")
                
say("")
            
end
        end
        
    end 
Antara-mt2 is offline  
Old 06/07/2015, 01:11   #11629
 
Rofelmau's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
Kommt denn die Ankündigung "name hat das duel gewonnen"?
wenn nein dann liegt es am mapindex, mir ist aufgefallen du hast da einen anderen als bei anderen map_index abfragen
Rofelmau is offline  
Old 06/07/2015, 14:39   #11630
 
elite*gold: 0
Join Date: Aug 2013
Posts: 145
Received Thanks: 1
ja kommt das ist es ja
Antara-mt2 is offline  
Old 06/07/2015, 15:23   #11631
 
Rofelmau's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
Würde trotzdem mal die mapindexe einheitlich machen, stimmen die warp cordis wo die hin geportet werden sollen? weiß nicht welche map du nimmst usw.
Rofelmau is offline  
Old 06/10/2015, 15:24   #11632
 
elite*gold: 26
Join Date: May 2010
Posts: 865
Received Thanks: 767
Hey,
ich hab ein Problem mit meiner Blazing purgatory quest.
Und zwar geht es darum , dass man vor der Bosskammer ne Meldung bekommt das man eine Quest ab level 103 machen muss. Ich will diesen Part raus haben , kriege es aber selber nicht hin.
Hier meine Quest:

Hier der Abschnitt:


Hoffe jemand kann mir den Part entfernen.
Dr.Sonii# is offline  
Old 06/11/2015, 14:25   #11633
 
elite*gold: 0
Join Date: Mar 2014
Posts: 91
Received Thanks: 5
VIP Quest

Hey Com,
Ich wollte mir den VIP Namen Quest auf meinem Server uploaden, dann entstand das hier:
Hier die Quest:

Und seit dem ich das hier:
eingefügt habe, schreibe ich im chat 2x Beispiel:
Ich schreibe hi, im Chatverlauf steht:
MeinCharName: hi
MeinCharName: hi
BlackWood2 is offline  
Old 06/11/2015, 15:03   #11634

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by BlackWood2 View Post
Hey Com,
Ich wollte mir den VIP Namen Quest auf meinem Server uploaden, dann entstand das hier:
Hier die Quest:

Und seit dem ich das hier:
eingefügt habe, schreibe ich im chat 2x Beispiel:
Ich schreibe hi, im Chatverlauf steht:
MeinCharName: hi
MeinCharName: hi
Code:
quest vipchange begin
	state start begin
		when 30269.use begin
			say_title("[VIP] Name")
			say("")
			say("Möchtest du ein [VIP] vor deinem")
			say("Namen haben?")
			if select("Ja", "Nein") == 2 then return end
			pc.name_change("[VIP]"..pc.get_name())
			pc.remove_item(30269)
			say_title("[VIP] Name") 
			say("") 
			say("Bitte logge dich nun für 10 Minuten aus.") 
			say("Loggst du dich eher wieder ein, werden die") 
			say("Änderungen nicht wirksam.") 
		end
	end
end
rollback is offline  
Thanks
1 User
Old 06/11/2015, 15:07   #11635
 
elite*gold: 0
Join Date: Mar 2014
Posts: 91
Received Thanks: 5
Geht immer noch nicht

Brauche hilfe pls
BlackWood2 is offline  
Old 06/11/2015, 18:05   #11636
 
elite*gold: 26
Join Date: May 2010
Posts: 865
Received Thanks: 767
Quote:
Originally Posted by BlackWood2 View Post
Geht immer noch nicht

Brauche hilfe pls
In die quest_function einfügen und es funktioniert.
Dr.Sonii# is offline  
Old 06/11/2015, 18:32   #11637
wild wild son




 
Nick's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 5,994
Received Thanks: 3,389
Quote:
Originally Posted by BlackWood2 View Post
Geht immer noch nicht

Brauche hilfe pls
Nicht pc.name_change(), sondern pc.change_name().

lg
Nick is offline  
Old 06/12/2015, 13:10   #11638
 
Backxtar's Avatar
 
elite*gold: 0
Join Date: Feb 2015
Posts: 400
Received Thanks: 46
Habe eine Frage zu dieser Quest. Sie soll ein automatisches Tag und Nacht System einführen.

Code:
quest daymode begin
state start begin
	function funktion()
	local text = {
	-------Guten Morgen Texte
	{"Guten Morgen ihr Schlaftauben, Zeit zum aufstehen."},
	{"Klingel klingel klingeling, Aufstehen!"},
	-------Guten Abend Texte
	{"Soo, es wird zeit das alle Schlafen gehen. Das Team wünscht euch eine angenehme Nacht."},
	{"Spieler liebe Spieler es wird so langsam zeit für euch.. Schlafen zu gehen..."},
	}
	local zufall = number(1, 2)
	local zufalle = number(3, 4)
	
	local morgentext = text[zufall][1]
	local abendtext = text[zufalle][1]
	local clockk = os.date ("%H")
	if clockk >= "22" and game.get_event_flag("eclipse") == 0 then
	notice_all(""..abendtext.."")
	game.set_event_flag("eclipse", 1 )
	elseif clockk >= "08" and game.get_event_flag("eclipse") == 1 then
	notice_all(""..morgentext.."")
	game.set_event_flag("eclipse", 0 )
	end
	end

	when login or levelup or logout begin
	daymode.funktion()
	end

end
end
Das ganze folgt nach diesem Tut:



Wenn ich am Tag /e eclipse 1 machen, wird es Nacht. Verstehe das System nicht ganz :/
Backxtar is offline  
Old 06/12/2015, 17:07   #11639
 
elite*gold: 0
Join Date: Jun 2015
Posts: 181
Received Thanks: 19
Quote:
Originally Posted by Backxtar View Post
Habe eine Frage zu dieser Quest. Sie soll ein automatisches Tag und Nacht System einführen.

Code:
quest daymode begin
state start begin
	function funktion()
	local text = {
	-------Guten Morgen Texte
	{"Guten Morgen ihr Schlaftauben, Zeit zum aufstehen."},
	{"Klingel klingel klingeling, Aufstehen!"},
	-------Guten Abend Texte
	{"Soo, es wird zeit das alle Schlafen gehen. Das Team wünscht euch eine angenehme Nacht."},
	{"Spieler liebe Spieler es wird so langsam zeit für euch.. Schlafen zu gehen..."},
	}
	local zufall = number(1, 2)
	local zufalle = number(3, 4)
	
	local morgentext = text[zufall][1]
	local abendtext = text[zufalle][1]
	local clockk = os.date ("%H")
	if clockk >= "22" and game.get_event_flag("eclipse") == 0 then
	notice_all(""..abendtext.."")
	game.set_event_flag("eclipse", 1 )
	elseif clockk >= "08" and game.get_event_flag("eclipse") == 1 then
	notice_all(""..morgentext.."")
	game.set_event_flag("eclipse", 0 )
	end
	end

	when login or levelup or logout begin
	daymode.funktion()
	end

end
end
Das ganze folgt nach diesem Tut:



Wenn ich am Tag /e eclipse 1 machen, wird es Nacht. Verstehe das System nicht ganz :/
PHP Code:
1.erstellt eine day.py wenn ihr noch keine habt.
2.schreibt in eure day.py:
    
nacht 0
    tag 
0

3. öffnet eure Game
.

4. Addet bei den Imports(wenn ihr es noch nicht habtfolgendes:

    
import day

5. addet in eure     def __init__
(selfstream): folgendes:
    
day.nacht 0
    day
.tag 0

6. addet am ende der datei folgende 
function:

        
def day_night(self):
        
import time
        
        localtime 
time.strftime("%H")
        if 
day.nacht == 0:
        
            if 
localtime == "01" or localtime == "02" or localtime == "03" or localtime == "04" or localtime == "05" or localtime == "06" or localtime == "07" or localtime == "08" or localtime == "00" or localtime == "23" or localtime == "22" or localtime == "21":
                
background.RegisterEnvironmentData(1constInfo.ENVIRONMENT_NIGHT)
                
background.SetEnvironmentData(1)
                
day.tag 0
                day
.nacht 1
        
if day.tag == 0:        
            if 
localtime == "09" or localtime == "10" or localtime == "11" or localtime == "12" or localtime == "13" or localtime == "14" or localtime == "15" or localtime == "16" or localtime == "17" or localtime == "18" or localtime == "19" or localtime == "20":
                
background.SetEnvironmentData(0)
                
day.tag 1
                day
.nacht 0

7. addet in 
die def OnUpdate(self): folgendes:
    
self.day_night()

8. Root.epk wd packen und freuen :
Kannst es ganz leicht über python klären.
srsly.Zyl is offline  
Old 06/12/2015, 18:15   #11640
 
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
Quote:
Originally Posted by Backxtar View Post
Habe eine Frage zu dieser Quest. Sie soll ein automatisches Tag und Nacht System einführen.

Code:
quest daymode begin
state start begin
	function funktion()
	local text = {
	-------Guten Morgen Texte
	{"Guten Morgen ihr Schlaftauben, Zeit zum aufstehen."},
	{"Klingel klingel klingeling, Aufstehen!"},
	-------Guten Abend Texte
	{"Soo, es wird zeit das alle Schlafen gehen. Das Team wünscht euch eine angenehme Nacht."},
	{"Spieler liebe Spieler es wird so langsam zeit für euch.. Schlafen zu gehen..."},
	}
	local zufall = number(1, 2)
	local zufalle = number(3, 4)
	
	local morgentext = text[zufall][1]
	local abendtext = text[zufalle][1]
	local clockk = os.date ("%H")
	if clockk >= "22" and game.get_event_flag("eclipse") == 0 then
	notice_all(""..abendtext.."")
	game.set_event_flag("eclipse", 1 )
	elseif clockk >= "08" and game.get_event_flag("eclipse") == 1 then
	notice_all(""..morgentext.."")
	game.set_event_flag("eclipse", 0 )
	end
	end

	when login or levelup or logout begin
	daymode.funktion()
	end

end
end
Das ganze folgt nach diesem Tut:



Wenn ich am Tag /e eclipse 1 machen, wird es Nacht. Verstehe das System nicht ganz :/
Code:
quest kaito begin
	state start begin
		when login or levelup or logout with game.get_event_flag() == 1 begin
			local morgen = {
			{"Guten Morgen ihr Schlaftauben, Zeit zum aufstehen."},
			{"Klingel klingel klingeling, Aufstehen!"}
			}
			local nacht = {
			{"Soo, es wird zeit das alle Schlafen gehen. Das Team wünscht euch eine angenehme Nacht."},
			{"Spieler liebe Spieler es wird so langsam zeit für euch.. Schlafen zu gehen..."}
			}
			if tonumber(os.date("%H")) < 12 then
				chat(morgen[number(1,table.getn(morgen)))])
			elseif tonumber(os.date("%H")) > 21 then
				chat(nacht[number(1,table.getn(nacht))])
			end
		end
	end
end
Nicht ganz verstanden was du wolltest, was willst du nochmal?
KΛIƬӨ is offline  
Reply




All times are GMT +1. The time now is 19:04.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.