PHP Code:
quest pvpsystem begin
state start begin
when login or levelup with pc.get_level() >= 15 begin
set_state(information)
end
end
state information begin
when letter begin
send_letter("PvP Punkte")
end
when button or info begin
say_title("PvP Guard:")
say("Hallo, ich bin dein PvP Guard.")
say("Ich helfe dir durch das PvP Punkte System.")
say("Das Prinzip ist einfach erklärt:")
say("Wenn du andere Spieler tötest,")
say("bekommst du sogenannte PvP Taler.")
say("Für eine bestimmte Anzahl an Punkten kannst du")
say("bei mir einige schöne Sachen erstehen.")
say("Wenn du Spieler eines anderen Reiches tötest,")
say("bekommst du mehr Taler,")
say("als wenn du einen Spieler deines Reiches tötest.")
say("")
wait()
say_title("PvP Guard:")
say_reward("Töten eines Spielers eines anderen Reiches = +100 Taler")
say_reward("Töten eines Spielers deines Reiches = +75 Taler")
say_reward("Getötet werden = -50 Taler")
pc.setqf("counter", 0)
set_state(kd)
end
end
state kd begin
when letter begin
send_letter("PvP Panel aktivieren")
end
when button or info begin
say_title("PvP Guard:")
say("Hier wirst du in Zukunft verschiedene")
say("Auswahlmöglichkeiten zur Verfügung haben,")
say("wie zum Beispiel die Anzahl deiner Kills, etc. .")
say("Als kleines Startkapital bekommst du 1000 PvP Taler.")
say("")
say_reward("Du hast 1000 PvP Taler erhalten.")
say("")
pc.setqf("counter", pc.getqf("counter")+1000)
pc.setqf("killcounter", pc.getqf("killcounter")+1)
pc.setqf("deathcounter", pc.getqf("deathcounter")+1)
set_state(lolol)
end
end
state lolol begin
when login begin
cleartimer("checkDeathTimerMain")
timer('checkDeathTimerMain', 2)
end
when letter begin
send_letter("PvP Panel")
end
when button or info begin
say_title("PvP Panel:")
say("Wähle eine Möglichkeit aus:")
local z = select("FAQ", "Deine Kills", "Shop", "Abbrechen")
if z == 1 then
say_title("PvP Panel:")
say("Hier findest du häufig gestellte Fragen")
say("und selbstverständlich auch ihre Antworten.")
say("Entscheide dich für eine der Fragen.")
local x = select("Wie Taler bekommen?", "Was ist K/D?", "Minus Taler", "Abbrechen")
if x == 1 then
say_title("PvP Panel:")
say("Du bekommst Taler,")
say("wenn du andere Spieler tötest.")
say("Es wird unter den Spielern in 2 Kategorien unterschieden.")
say_reward("Töten eines Spielers eines anderen Reiches = +100 Taler")
say_reward("Töten eines Spielers deines Reiches = +75 Taler")
say_reward("Getötet werden = -50 Taler")
say("")
elseif x == 2 then
say_title("PvP Panel:")
say("K/D bedeuted Kills per Death.")
say("Das heisst,")
say("wie viele Male du Leute getötet hast")
say("geteilt durch")
say("wie viele Male du gestorben bist.")
say("Je mehr Leute du killst, umso höher")
say("ist deine K/D.")
say_reward("Anzahl Kills / Anzahl Tode")
say("")
elseif x == 3 then
say_title("PvP Panel:")
say("Minus Taler bekommst du,")
say("wenn du getötet wirst.")
say("Egal, aus welchem Reich dein Mörder kommt,")
say("werden dir 50 Taler abgezogen.")
say("Diese Minus Taler lassen sich selbstverständlich")
say("Durch normale Taler ausgleichen.")
say_reward("Getötet werden = -50 Taler")
say_reward("Minus Taler lassen sich ausgleichen.")
end
elseif z == 2 then
say_title("PvP Panel:")
say("Hier kannst du deine wichtigsten PvP Daten einsehen.")
say("")
local killc = pc.getqf("killcounter")
local deathc = pc.getqf("deathcounter")
local kdratio = killc/deathc
say_reward("Kills: "..killc)
say_reward("Tode: "..deathc)
say_reward("K/D: "..kdratio)
say("")
return
elseif z == 3 then
say_title("PvP Panel:")
say("Hier kannst du für PvP Punkte einkaufen.")
say("")
local q = select("Rangpunkte", "Abbrechen")
if q == 1 then
local oldAlignment = pc.get_alignment()
say_title("PvP Panel:")
say("Du willst Rangpunkte kaufen?")
say("Dann bist du hier genau richtig!")
local e = select("500 Rang", "1000 Rang", "2000 Rang", "Abbrechen")
if e == 1 then
say_title("PvP Panel:")
say("Du willst also 500 Rangpunkte für 1000 Taler kaufen?")
say("Bist du dir sicher?")
local m = select("Ja", "Nein")
if m == 2 then return end //hier
say_title("PvP Panel:")
say_reward("Du hast 500 Rangpunkte erhalten!")
say_reward("Dein Kontostand ist um 1000 Taler gesunken!")
pc.change_alignment(oldAlignment+500)
pc.setqf("counter", pc.getqf("counter")-1000)
elseif e == 2 then
say_title("PvP Panel:")
say("Du willst also 1000 Rangpunkte für 2000 Taler kaufen?")
say("Bist du dir sicher?")
local n = select("Ja", "Nein")
if n == 2 then return end //hier
say_title("PvP Panel:")
say_reward("Du hast 1000 Rangpunkte erhalten!")
say_reward("Dein Kontostand ist um 2000 Taler gesunken!")
pc.change_alignment(oldAlignment+1000)
pc.setqf("counter", pc.getqf("counter")-2000)
elseif e == 3 then //hier
say_title("PvP Panel:")
say("Du willst also 2000 Rangpunkte für 4000 Taler kaufen?")
say("Bist du dir sicher?")
local o = select("Ja", "Nein") //hier
if o == 1 then
say_title("PvP Panel:")
say_reward("Du hast 2000 Rangpunkte erhalten!")
say_reward("Dein Kontostand ist um 4000 Taler gesunken!")
pc.change_alignment(oldAlignment+2000)
pc.setqf("counter", pc.getqf("counter")-4000)
end //hier fehlt nochn return
end
end
end
return
end
when kill begin
if npc.is_pc() then
if npc_is_same_empire then
pc.setqf("killcounter",pc.getqf("killcounter")+1)
pc.setqf("counter",pc.getqf("counter")+50)
chat("Du hast 50 PvP Taler erhalten!")
else
pc.setqf("killcounter",pc.getqf("killcounter")+1)
pc.setqf("counter",pc.getqf("counter")+75)
chat("Du hast 75 PvP Taler erhalten!")
end
end
end
when checkDeathTimerMain.timer begin
cleartimer("checkDeathTimerSub")
pvpsystem.checkDeath()
timer("checkDeathTimerSub", 2)
end
when checkDeathTimerSub.timer begin
cleartimer("checkDeathTimerMain")
pvpsystem.checkDeath()
timer("checkDeathTimerMain", 2)
end
function checkDeath()
if pc.is_dead() and npc.is_pc() then
pc.setqf("counter", pc.getqf("counter")-50)
pc.setqf("deathcounter", pc.getqf("deathcounter")+1)
chat("Du bist tot! Du verlierst 50 Taler!")
end
return
end
end
end
Für das Problem mit dem mehrfach kaufen.
Ich würde versuchen an den markierten Stellen noch eine Abfrage einzubauen, ob der Player überhaupt genug PvP Punkte hat, da sonst einfach nur abgezogen wird, mir das aber total wurscht wäre. :P