|
You last visited: Today at 03:51
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
12/09/2011, 23:34
|
#4216
|
elite*gold: 0
Join Date: Mar 2011
Posts: 419
Received Thanks: 152
|
Könnte immernoch hilfe gebrauchen :S ~>
Quote:
Originally Posted by [SoLow]
Heyho,
ich hätte mehrere Fragen / Fehler:
1. Die Quest startet bei Uriel, er zeigt mir aber 2x "Das verlorene Buch" an - Einmal zum Quest annehmen, einmal zum Quest abgeben. Wie mache ich es, dass das zum Quest abgeben erst dann erscheint, sobald ich alle Questitems gesammelt habe?
2. Ich bekomme den Attribut Wert zwar +10, aber das auch nur bis ich einen relog gemacht habe, danach wird er nicht angezeigt - den Wert habe ich auch nicht hinzugefügt bekommen:
-> 3 Vitalität 5292 TP
-> 13 Vitalität 5292 TP
Außerdem kann ich mir den Wert x beliebig oft holen ..
3. Solang ich mich nicht teleportiere oder auslogge, sagt uriel mir das er noch nicht fertig ist .. sobald ich aber relogge, kann ich die Quest direkt abgeben .. wie änder ich das, das es erst noch 24 Stunden geht .. ?
PHP Code:
quest das_verlorene_buch begin
state start begin
when login or levelup with pc.get_level() >= 99 begin
set_state(information)
end
end
state information begin
when letter begin
send_letter("Das verlorene Buch")
end
when info or button begin
say_title("Das verlorene Buch")
say("")
say("Uriel sucht nach dir, du solltest zu ihm gehen")
say("und schauen, ob du ihm behilflich sein kannst.")
end
when 20011.chat."Das verlorene Buch" begin
say_title("Das verlorene Buch")
say("")
say("Guten Tag, "..pc.get_name().." ich habe etwas höchst")
say("interessantes gefunden. Informationen über ein lang")
say("verloren geglaubtes Buch. Diese Informationen")
say("belegen eindeutig die Existenz dieses Buches.")
say("Ich denke, das es eine Aufgabe für dich ist, oder?")
local s = select("Ja", "Nein")
if s == 1 then
say_title("Uriel:")
say("")
say("Ich wusste, das ich mich auf dich verlassen kann!")
say("Die Quellen besagen, dass das innere des Buches,")
say("die Seiten, vom äußeren getrennt worden sind.")
say("Du musst beide Teile und einen magischen Gegenstand")
say("finden mit dem ich das Buch wieder zusammenfügen")
say("kann. Mach dich auf die Suche und komme dann")
say("wieder zu mir.")
elseif s == 2 then
say_title("Uriel:")
say("")
say("Schade, wenn du es dir anders überlegt hast,")
say("komm zu mir zurück.")
end
end
when kill with npc.get_race() == 101 begin
local x = number(1, 100)
if x <= 50 then
pc.give_item2(189, 1)
say("Du hast Einband eines Buches erhalten.")
end
end
when kill with npc.get_race() == 102 begin
local y = number(1, 100)
if y <= 50 then
pc.give_item2(188, 1)
say_title("Das verlorene Buch")
say("")
say("Du hast Seiten eines Buches erhalten.")
end
end
when kill with npc.get_race() == 103 begin
local z = number(1, 100)
if z <= 90 then
pc.give_item2(187, 1)
say_title("Das verlorene Buch")
say("")
say("Du hast Seelenstein des Eises erhalten.")
end
end
when 20011.chat."Das verlorene Buch" begin
if pc.count_item(189) == 0 or pc.count_item(188) == 0 or pc.count_item(189) == 0 then
say_title("Uriel:")
say("")
say("Du hast nicht alle Materialien, komm wieder wenn du")
say("alles hast.")
end
if pc.count_item(189) >= 1 and pc.count_item(188) >= 1 and pc.count_item(189) >= 1 then
say_title("Uriel:")
say("")
say("Du, du hast es geschafft! Die Teile des legendären")
say("Buches! Genial, ich werde mich sofort an die Arbeit")
say("machen, um das Buch wieder zusammen zu fügen.")
say("Jedoch dauert es seine Zeit, es ist besser, wenn du")
say("morgen wieder kommst.")
pc.removeitem(189)
pc.removeitem(188)
pc.removeitem(187)
set_state("reward")
pc.setqf("reward", get_time()+60*60*24)
end
end
end
state reward begin
when 20011.chat."Das verlorene Buch" with get_time() > pc.getqf("reward") begin
say_title("Uriel:")
say("")
say("Einen Moment noch, ich habe es gleich ... Fertig!")
say("Hier hast du das Buch. Es war viel arbeit, aber")
say("es hat sich gelohnt. Ich hoffe, es stört dich nicht")
say("das ich ein wenig darin rumgeblättert habe.")
say("Du solltest es dir gut überlegen, wem du das Buch")
say("gibst.")
pc.give_item2("149", 1)
say_reward("Du hast das verlorene Buch erhalten.")
end
when 20011.chat."Das verlorene Buch" with get_time() < pc.getqf("reward") begin
say_title("Uriel:")
say("")
say("Ich brauche noch etwas Zeit, komm später wieder.")
end
when 9003.chat."Das verlorene Buch" with pc.countitem(149) begin
say_title("Gemischtwarenhändlerin:")
say("")
say("Hallo "..pc.get_name()..", möchtest du Tränke kaufen?")
wait()
say_title(""..pc.get_name()..":")
say("")
say("Ich habe ein altes Buch, Uriel sagt du hättest")
say("verwendung dafür - Stimmt das?")
wait()
say_title("Gemischtwarenhändlerin:")
say("")
say("Oh, tatsächlich! Das Buch existiert wirklich! Die")
say("Geschichten sind wahr. Ich gebe dir für das Buch")
say("folgendes:")
say_reward("Permanent +10 Vitalität")
say_reward("250.000.000 Yang")
wait()
say_title("Gemischtwarenhändlerin:")
say("")
say("Möchtest du mir das Buch dafür verkaufen?")
local gemi = select("Ja", "Nein")
if gemi == 1 then
say_title("Gemischtwarenhändlerin:")
say("")
say("Danke. Hier, deine Belohnung.")
say_reward("Du bekommst 10 Vitalität")
say("Du bekommst 250.000.000 Yang")
pc.removeitem(149)
pc.give_gold(250000000)
affect.add_collect(apply.CON, 10, 60*60*24*365*5)
elseif gemi == 2 then
say_title("Gemischtwarenhändlerin:")
say("")
say("Wenn du es mir doch verkaufen möchtest, komm")
say("zu mir zurück.")
end
end
when 20016.chat."Das verlorene Buch" with pc.countitem(149) begin
say_title("Schmied:")
say("")
say("Hallo, kennst du dieses Buch? Aber nein, natürlich")
say("nicht. Wieso bist du da?")
wait()
say_title(""..pc.get_name()..":")
say("")
say("Ich habe ein altes Buch gefunden und dachte, das es")
say("dir eventuell gefällt.")
wait()
say_title("Schmied:")
say("")
say("Das ist das Buch, wovon ich jedem erzähle!")
say("Hör zu, ich brauche das Buch unbedingt, ich biete")
say("dir tolle Sachen an! Ich könnte dir")
say_reward("Permanent +10 Intelligenz")
say_reward("250.000.000 Yang")
say("bieten. Verkaufst du es mir dafür?")
local schmied = select("Ja","Nein")
if schmied == 1 then
pc.removeitem(149)
say_title("Schmied:")
say("")
say("Ich danke dir, hier, deine Belohnung:")
say("")
say_reward("Du bekommst permanent +10 Intelligenz")
say_reward("Du bekommst 250.000.000 Yang")
pc.give_gold(250000000)
affect.add_collect(apply.INT, 10, 60*60*24*365*5)
elseif schmied == 2 then
say_title("Schmied:")
say("")
say("Schade, vielleicht ein anderes mal!")
end
end
when 20015.chat."Das verlorene Buch" with pc.countitem(149) begin
say_title("Deok-Bae:")
say("")
say("Holzhacken, den ganzen Tag holzhacken. Es nervt!")
say("Was möchtest du denn von mir?")
wait()
say_title(""..pc.get_name()..":")
say("")
say("Ich habe hier ein interessantes Buch, willst du es")
say("dir mal anschauen?")
wait()
say_title("Deok-Bae:")
say("")
say("Das scheint tatsächlich das Buch zu sein, wovon")
say("meine Frau mir ständig erzählt. Sie meinte, wenn")
say("ich es in meine Finger bekomme soll ich es")
say("mitbringen. Ich gebe dir für das Buch:")
say("")
say_reward("Permanent +10 Stärke")
say_reward("250.000.000 Yang")
say("")
say("Möchtest du tauschen?")
local deokbae = select("Ja","Nein")
if deokbae == 1 then
pc.removeitem(149)
say_title("Deok-Bae:")
say("")
say("Vielen dank, meine Frau wird sich sehr freuen.")
say("Hier, nimm deine Belohnung")
say("")
say_reward("Du bekommst permanent +10 Stärke")
say_reward("Du bekommst 250.000.000 Yang")
pc.give_gold("250000000")
affect.add_collect(apply.STR, 10, 60*60*24*365*5)
elseif deokbae == 2 then
say_title("Deok-Bae:")
say("")
say("Wenn meine Frau erfährt, das ich das Buch")
say("in meiner Hand hatte .. Sie darf es nicht erfahren.")
end
end
when 20019.chat."Das verlorene Buch" with pc.countitem(149) begin
say_title("Yang-Shin:")
say("")
say("Hallo "..pc.get_name()..", was führt dich zu mir?")
wait()
say_title(""..pc.get_name()..":")
say("")
say("Ich habe hier ein Buch, Uriel meinte,")
say("das es dir gefallen könnte.")
wait()
say_title("Yang-Shin:")
say("")
say("Das ist das Buch, aus dem mir mein Opa")
say("immer Geschichten vorgelesen hat!")
say("Ich muss das Buch habe, ich biete dir")
say("folgendes:")
say("")
say_reward("Permanent +10 Beweglichkeit")
say_reward("250.000.000 Yang")
say("")
say("Möchtest du tauschen?")
local yangshin = select("Ja","Nein")
if yangshin == 1 then
pc.removeitem(149)
say_title("Yang-Shin:")
say("")
say("Vielen dank! Nimm das hier als Zeichen")
say("meiner Dankbarkeit.")
say("")
say_reward("Du bekommst:")
say_reward("Permanent +10 Beweglichkeit")
say_reward("250.000.000 Yang")
say("")
pc.give_gold(250000000)
affect.add_collect(apply.DEX, 10, 60*60*24*365*5)
elseif yangshin == 2 then
say_title("Yang-Shin:")
say("")
say("Schade, falls du es dir nochmal anders überlegst,")
say("komm wieder zu mir.")
set_state(__COMPLETE__)
end
end
end
state __COMPLETE__ begin
end
end
|
|
|
|
12/10/2011, 14:10
|
#4217
|
elite*gold: 0
Join Date: Apr 2011
Posts: 161
Received Thanks: 4
|
quest login begin
state start begin
when login begin
chat("Willkommen auf Servername")
chat("Homepage findest du unter: http://Servername.se.funpic.de/")
chat("Den Itemshop findest du unter  ")
chat("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
chat("Deine GM's sind:")
chat("[SL]name [SL]name")
chat("[GM]name [GM]name")
end
end
end
das ist die quest. wenn ich die einfüge, dann kommt immer dieser fehler:
must start with 'quest'
login.quest:1:Error occured on compile login.quest
danke jetzt schon mal
MFG DavidMatth
|
|
|
12/10/2011, 18:59
|
#4218
|
elite*gold: 27
Join Date: Jan 2011
Posts: 185
Received Thanks: 232
|
hi freunde die quest ist pub gemacht worden,aber in diesem tread wurden die probleme der quest noch nicht gelöst.vielleicht habt ihr ja mehr glück.
mfg: Stronger
Quote:
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 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
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
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
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")
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
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
if pc.gethp() <= 0 then
pc.setqf("counter", pc.getqf("counter")-50)
pc.setqf("deathcounter", pc.getqf("deathcounter")+1)
chat("Du bist tot! Du verlierst 50 Taler!")
return
end
end
end
end
|
|
|
|
12/10/2011, 19:23
|
#4219
|
elite*gold: 0
Join Date: Sep 2010
Posts: 427
Received Thanks: 105
|
hallo
habe da ein prob mit dieser quest:
PHP Code:
quest fischer_event begin state start begin when login with game.get_event_flag("fisher") == 1 begin notice("Das Fischer Event hat Begonnen ihr könnt") notice("nun beim Fischer lebende Fische abgeben.") notice("Ihr erhaltet tolle Überraschungen!") notice("Viel Spaß wünscht euch das Team.") end when 9009.chat."Die Fischzucht" with game.get_event_flag("fisher") == 1 begin local anzahl_27803 = pc.count_item(27803) local anzahl_27804 = pc.count_item(27804) local anzahl_27805 = pc.count_item(27805) local anzahl_27806 = pc.count_item(27806) local anzahl_27807 = pc.count_item(27807) local anzahl_27808 = pc.count_item(27808) local anzahl_27809 = pc.count_item(27809) local anzahl_27810 = pc.count_item(27810) local anzahl_27811 = pc.count_item(27811) local anzahl_27812 = pc.count_item(27812) local anzahl_27813 = pc.count_item(27813) local anzahl_27814 = pc.count_item(27814) local anzahl_27815 = pc.count_item(27815) local anzahl_27816 = pc.count_item(27816) local anzahl_27817 = pc.count_item(27817) local anzahl_27818 = pc.count_item(27818) local anzahl_27819 = pc.count_item(27819) local anzahl_27820 = pc.count_item(27820) local anzahl_27821 = pc.count_item(27821) local anzahl_27822 = pc.count_item(27822) local anzahl_27823 = pc.count_item(27823) local anzahl_fishs = anzahl_27803 + anzahl_27804 + anzahl_27805 + anzahl_27806 + anzahl_27807 + anzahl_27808 + anzahl_27809 + anzahl_27810 + anzahl_27811 + anzahl_27812 + anzahl_27813 + anzahl_27814 + anzahl_27815 + anzahl_27816 + anzahl_27817 + anzahl_27818 + anzahl_27819 + anzahl_27820 + anzahl_27821 + anzahl_27822 + anzahl_27823 if anzahl_fishs == 0 then say_title(""..mob_name(9009).."") say("") say("Du hast keine Fische bei dir.") return end if anzahl_fishs == 1 then pc.remove_item(27803, anzahl_27803) pc.remove_item(27804, anzahl_27804) pc.remove_item(27805, anzahl_27805) pc.remove_item(27806, anzahl_27806) pc.remove_item(27807, anzahl_27807) pc.remove_item(27808, anzahl_27808) pc.remove_item(27809, anzahl_27809) pc.remove_item(27810, anzahl_27810) pc.remove_item(27811, anzahl_27811) pc.remove_item(27812, anzahl_27812) pc.remove_item(27813, anzahl_27813) pc.remove_item(27814, anzahl_27814) pc.remove_item(27815, anzahl_27815) pc.remove_item(27816, anzahl_27816) pc.remove_item(27817, anzahl_27817) pc.remove_item(27818, anzahl_27818) pc.remove_item(27819, anzahl_27819) pc.remove_item(27820, anzahl_27820) pc.remove_item(27821, anzahl_27821) pc.remove_item(27822, anzahl_27822) pc.remove_item(27823, anzahl_27823) say_title("Die Fischzucht") say("Du hast ein Fisch gut") say("hier ist deine Behlonung.") say("") say_reward("Du erhälst eine Geheimnisvolle Truhe.") pc.give_item2(50033, 1) end end end end
sie soll das event darstellen:
aber immer wenn ich zb 27803 und das item 27804 im inventar habe passiert n ix wenn ich beim fischer das abgeben will und dann komme ich nicht mehr ins inventar nirgendsmehr hin kann einer das prob fixxen und vllt die quest so wie in de umschreiben also das nicht alle items removt werden sondern immer nur eins. danke
|
|
|
12/11/2011, 10:00
|
#4220
|
elite*gold: 191
Join Date: May 2009
Posts: 1,214
Received Thanks: 2,597
|
Quote:
Originally Posted by xTheSoulutionxx3
hallo
habe da ein prob mit dieser quest:
sie soll das event darstellen:
aber immer wenn ich zb 27803 und das item 27804 im inventar habe passiert n ix wenn ich beim fischer das abgeben will und dann komme ich nicht mehr ins inventar nirgendsmehr hin kann einer das prob fixxen und vllt die quest so wie in de umschreiben also das nicht alle items removt werden sondern immer nur eins. danke
|
PHP Code:
quest fischer_event begin
state start begin
when login with game.get_event_flag("fisher") == 1 begin
notice("Das Fischer Event hat Begonnen ihr könnt")
notice("nun beim Fischer lebende Fische abgeben.")
notice("Ihr erhaltet tolle Überraschungen!")
notice("Viel Spaß wünscht euch das Team.")
end
when 9009.chat."Die Fischzucht" with game.get_event_flag("fisher") == 1 begin
local anzahl_27803 = pc.count_item(27803)
local anzahl_27804 = pc.count_item(27804)
local anzahl_27805 = pc.count_item(27805)
local anzahl_27806 = pc.count_item(27806)
local anzahl_27807 = pc.count_item(27807)
local anzahl_27808 = pc.count_item(27808)
local anzahl_27809 = pc.count_item(27809)
local anzahl_27810 = pc.count_item(27810)
local anzahl_27811 = pc.count_item(27811)
local anzahl_27812 = pc.count_item(27812)
local anzahl_27813 = pc.count_item(27813)
local anzahl_27814 = pc.count_item(27814)
local anzahl_27815 = pc.count_item(27815)
local anzahl_27816 = pc.count_item(27816)
local anzahl_27817 = pc.count_item(27817)
local anzahl_27818 = pc.count_item(27818)
local anzahl_27819 = pc.count_item(27819)
local anzahl_27820 = pc.count_item(27820)
local anzahl_27821 = pc.count_item(27821)
local anzahl_27822 = pc.count_item(27822)
local anzahl_27823 = pc.count_item(27823)
local anzahl_fishs = anzahl_27803 + anzahl_27804 + anzahl_27805 + anzahl_27806 + anzahl_27807 + anzahl_27808 + anzahl_27809 + anzahl_27810 + anzahl_27811 + anzahl_27812 + anzahl_27813 + anzahl_27814 + anzahl_27815 + anzahl_27816 + anzahl_27817 + anzahl_27818 + anzahl_27819 + anzahl_27820 + anzahl_27821 + anzahl_27822 + anzahl_27823
if anzahl_fishs == 0 then
say_title(""..mob_name(9009).."")
say("")
say("Du hast keine Fische bei dir.")
return
elseif anzahl_fishs >= 1 then
pc.remove_item(27803, anzahl_27803)
pc.remove_item(27804, anzahl_27804)
pc.remove_item(27805, anzahl_27805)
pc.remove_item(27806, anzahl_27806)
pc.remove_item(27807, anzahl_27807)
pc.remove_item(27808, anzahl_27808)
pc.remove_item(27809, anzahl_27809)
pc.remove_item(27810, anzahl_27810)
pc.remove_item(27811, anzahl_27811)
pc.remove_item(27812, anzahl_27812)
pc.remove_item(27813, anzahl_27813)
pc.remove_item(27814, anzahl_27814)
pc.remove_item(27815, anzahl_27815)
pc.remove_item(27816, anzahl_27816)
pc.remove_item(27817, anzahl_27817)
pc.remove_item(27818, anzahl_27818)
pc.remove_item(27819, anzahl_27819)
pc.remove_item(27820, anzahl_27820)
pc.remove_item(27821, anzahl_27821)
pc.remove_item(27822, anzahl_27822)
pc.remove_item(27823, anzahl_27823)
say_title("Die Fischzucht")
say("Du hast ein Fisch gut")
say("hier ist deine Behlonung.")
say("")
say_reward("Du erhälst eine Geheimnisvolle Truhe.")
pc.give_item2(50033, 1)
end
end
end
end
Ich hab nur folgendes geändert:
PHP Code:
return
end
if anzahl_fishs == 1 then
zu
PHP Code:
return
elseif anzahl_fishs >= 1 then
Da du ja mehr als einen Fisch hast^^ und nicht immer nur einen oô
Das ist aber an sich eh Buganfällig, du kannst mit einem Fisch hinrennen und kriegst die Kiste
oder mit 200 Fischen und kriegst nur eine Kiste.. Ich als User würde dann 200x 1 Fisch abgeben
## 300 Post oô
|
|
|
12/11/2011, 11:31
|
#4221
|
elite*gold: 0
Join Date: Jan 2011
Posts: 593
Received Thanks: 204
|
@David_Matth:
Code:
quest login begin
state start begin
when login with pc.get_level => 0
chat("Willkommen auf Servername")
chat("Die Homepage findest du unter: http://Servername.se.funpic.de")
chat("Den Itemshop findest du unter .hamachiip")
chat("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
chat("GM's:")
chat("[SL]name, [SL]name")
chat("[GM]name & [GM]name")
end
end
end
|
|
|
12/11/2011, 15:12
|
#4222
|
elite*gold: 0
Join Date: Feb 2011
Posts: 475
Received Thanks: 102
|
..
|
|
|
12/11/2011, 18:04
|
#4223
|
elite*gold: 50
Join Date: May 2011
Posts: 270
Received Thanks: 991
|
Problem fixxd. Sorry :\
|
|
|
12/11/2011, 21:27
|
#4224
|
elite*gold: 0
Join Date: Sep 2010
Posts: 427
Received Thanks: 105
|
bei der quest ist der fehler wenn ich 200 stück gekillt habe passiert nix und ich kann weiter killen warum?
PHP Code:
quest v1 begin
state start begin
when login or levelup with pc.level>75 begin
set_state(go_to_kill_mobs)
end
end
state go_to_kill_mobs begin
when letter begin
send_letter("Der Jagdauftrag 1")
end
when button or info begin
say_title("Der Jagdauftrag 1")
say("")
say("Der Jäger sucht dich er hat")
say("ein Auftrag für dich gehe zu ihm.")
say("")
say_reward("Gehe zum Jäger und hole dein Auftrag ab.")
end
when 20019.chat."Der Jagdauftrag 1" begin
say_title(""..mob_name(20019).."")
say("")
say("Hallo ich bin der Jäger "..mob_name(20019).."")
say("und ich habe schon lange nach einem so tapferen")
say("Kämpfer wie dich gesucht da meine Frau von denn")
say("Bösen Monstern aus der Grotte der Verbannung")
say("entführt wurde.Bringe mir bitte meine Frau zurück.")
say("")
say_reward("Hole dem Jäger seine Frau zurück.")
pc.setqf("jagd_count",0)
set_state("go_to_kill_jagd")
end
end
state go_to_kill_jagd begin
when letter begin
send_letter("Der erste Jagdauftrag")
end
when button or info begin
say_title("Der erste Jagdauftrag")
say("")
say("Bringe dem Jäger die Halskette zurück.")
say("Indem du die Unterwelt-Eisgolem tötest.")
say("Wenn du 200 Stück getötet hast gehe zurück")
say("zu "..mob_name(20019)..".")
say("")
say_reward("Töte 200 Unterwelt-Eisgoleme.")
say("")
say("Du hast bereits "..pc.getqf("jagd_count").." getötet.")
end
when 1177.kill begin
pc.setqf("jagd_count",pc.getqf("jagd_count")+1)
if jagd_count <= 200 then
pc.setqf("jagd_count", count)
set_state("go_back_to_jagd_man")
end
end
end
state go_back_to_jagd_man begin
when letter begin
send_letter("Der erste Jagdtauftrag abgeschlossen")
end
when button or info begin
say_title("Der erste Jagdtauftrag abgeschlossen")
say("")
say("Du hast denn ersten Jagdauftrag abgeschlossen.")
say("Gehe nun zu "..mob_name(20019).." und hole deine")
say("Behlonung ab.")
say("")
say_reward("Gehe zu "..mob_name(20019)..".")
end
when 20019.chat."Der erste Jagdauftrag" with pc.getqf("jagd_count") == 200 begin
say_title(""..mob_name(20019).."")
say("")
say("test")
say("")
say_reward("test")
pc.give_item2(kp, 1)
pc.give_exp("2000000")
pc.give_gold("20000000")
set_state("_complete_")
end
end
state _complete_ begin
end
end
|
|
|
12/11/2011, 21:42
|
#4225
|
elite*gold: 0
Join Date: Jun 2010
Posts: 1,264
Received Thanks: 2,019
|
Quote:
Originally Posted by xTheSoulutionxx3
bei der quest ist der fehler wenn ich 200 stück gekillt habe passiert nix und ich kann weiter killen warum?
PHP Code:
quest v1 begin
state start begin
when login or levelup with pc.level>75 begin
set_state(go_to_kill_mobs)
end
end
state go_to_kill_mobs begin
when letter begin
send_letter("Der Jagdauftrag 1")
end
when button or info begin
say_title("Der Jagdauftrag 1")
say("")
say("Der Jäger sucht dich er hat")
say("ein Auftrag für dich gehe zu ihm.")
say("")
say_reward("Gehe zum Jäger und hole dein Auftrag ab.")
end
when 20019.chat."Der Jagdauftrag 1" begin
say_title(""..mob_name(20019).."")
say("")
say("Hallo ich bin der Jäger "..mob_name(20019).."")
say("und ich habe schon lange nach einem so tapferen")
say("Kämpfer wie dich gesucht da meine Frau von denn")
say("Bösen Monstern aus der Grotte der Verbannung")
say("entführt wurde.Bringe mir bitte meine Frau zurück.")
say("")
say_reward("Hole dem Jäger seine Frau zurück.")
pc.setqf("jagd_count",0)
set_state("go_to_kill_jagd")
end
end
state go_to_kill_jagd begin
when letter begin
send_letter("Der erste Jagdauftrag")
end
when button or info begin
say_title("Der erste Jagdauftrag")
say("")
say("Bringe dem Jäger die Halskette zurück.")
say("Indem du die Unterwelt-Eisgolem tötest.")
say("Wenn du 200 Stück getötet hast gehe zurück")
say("zu "..mob_name(20019)..".")
say("")
say_reward("Töte 200 Unterwelt-Eisgoleme.")
say("")
say("Du hast bereits "..pc.getqf("jagd_count").." getötet.")
end
when 1177.kill begin
local jagd_count = pc.getqf("jagd_count")+1
pc.setqf("jagd_count",jagd_count)
if jagd_count >= 200 then
set_state("go_back_to_jagd_man")
end
end
end
state go_back_to_jagd_man begin
when letter begin
send_letter("Der erste Jagdtauftrag abgeschlossen")
end
when button or info begin
say_title("Der erste Jagdtauftrag abgeschlossen")
say("")
say("Du hast denn ersten Jagdauftrag abgeschlossen.")
say("Gehe nun zu "..mob_name(20019).." und hole deine")
say("Behlonung ab.")
say("")
say_reward("Gehe zu "..mob_name(20019)..".")
end
when 20019.chat."Der erste Jagdauftrag" with pc.getqf("jagd_count") == 200 begin
say_title(""..mob_name(20019).."")
say("")
say("test")
say("")
say_reward("test")
pc.give_item2(kp, 1)
pc.give_exp("2000000")
pc.give_gold("20000000")
set_state("_complete_")
end
end
state _complete_ begin
end
end
|
.
|
|
|
12/11/2011, 22:28
|
#4226
|
elite*gold: 60
Join Date: Jul 2010
Posts: 771
Received Thanks: 439
|
Abend auch,
Ich schreib schon fast 1Monat hier rein mit meiner fehler haften quest,
aber bekomme keine antwort, ich wär euch wirklich verbunden, wen ihr mir jetzt helfen könntet
Hier die Quest:
HTML Code:
quest item_for_rang begin
state start begin
when 20355.chat."Die Rangpunkte" begin
local ONE_THOUSAND_RANG_REWARD = 19
local FOUR_THOUSAND_RANG_REWARD = 70024
local EIGHT_THOUSAND_RANG_REWARD = 50082
local TWELVE_THOUSAND_RANG_REWARD = 28537
local TWENTY_THOUSAND_RANG_REWARD = 71122
local THREE_THOUSAND_RANG_REWARD = 71196
say_title(""..mob_name(20355).."")
say("")
say("Du hast doch bestimmt von den Rangpunkte")
say("gehört, die dein Charakter sammeln kann oder?")
say("")
say("Wenn du eine gewisse Anzahl Rangpunkte")
say("erreicht hast, kann ich dir eine")
say("Belohnung überreichen.")
say("")
local p = select("Mehr Informationen.", "Belohnung abholen.", "Abbrechen.")
if p == 1 then
say_title(""..mob_name(20355).."")
say("")
say("1000 Rang (Freundlich):")
say("1x - "..item_name(ONE_THOUSAND_RANG_REWARD).."")
say_item_vnum(ONE_THOUSAND_RANG_REWARD)
say("")
wait()
say_title(""..mob_name(20355).."")
say("")
say("4000 Rang (Gut):")
say("1x - "..item_name(FOUR_THOUSAND_RANG_REWARD).."")
say_item_vnum(FOUR_THOUSAND_RANG_REWARD)
say("")
wait()
say_title(""..mob_name(20355).."")
say("")
say("8000 Rang (Edel):")
say("1x - "..item_name(EIGHT_THOUSAND_RANG_REWARD).."")
say_item_vnum(EIGHT_THOUSAND_RANG_REWARD)
say("")
wait()
say_title(""..mob_name(20355).."")
say("")
say("12000 Rang (Ritterlich):")
say("1x - "..item_name(TWELVE_THOUSAND_RANG_REWARD).."")
say_item_vnum(TWELVE_THOUSAND_RANG_REWARD)
say("")
wait()
say_title(""..mob_name(20355).."")
say("")
say("20000 Rang (Barmherzig):")
say("1x - "..item_name(TWENTY_THOUSAND_RANG_REWARD).." (Schneelöwe)")
say_item_vnum(TWENTY_THOUSAND_RANG_REWARD)
say("")
wait()
say_title(""..mob_name(20355).."")
say("")
say("Und die letzte Stufe!")
say("30000 Rang (Lägendär):")
say("1x - "..item_name(THREE_THOUSAND_RANG_REWARD).." (200 Angriffswert)")
say_item_vnum(THREE_THOUSAND_RANG_REWARD)
say("")
elseif p == 2 then
if pc.getqf("rangpoint") == 0 and pc.get_alignment <= 999 then
say_title(""..mob_name(20355).."")
say("")
say("Es steht zur Zeit keine Belohnung zur Verfügung.")
say_reward("Du hast zu wenig Rangpunkte!")
elseif pc.getqf("rangpoint") == 0 and pc.get_alignment >= 1000 then
say_title(""..mob_name(20355).."")
say("")
say("Du wirst 2000 Rangpunkte verlieren dafür,")
say("um 1x - "..item_name(ONE_THOUSAND_RANG_REWARD).." zu bekommen.")
say("")
say_reward("Fortfahren?")
local w = select("Ja, fortfahren.", "Nein, doch nicht.")
if w == 1 then
pc.change_alignment(-1000)
pc.give_item2("ONE_THOUSAND_RANG_REWARD", 1)
pc.setqf("rangpoint", 1)
elseif w == 2 then
return
end
elseif pc.getqf("rangpoint") == 1 and pc.get_alignment <= 3999 then
say_title(""..mob_name(20355).."")
say("")
say("Es steht zur Zeit keine Belohnung zur Verfügung.")
say_reward("Du hast zu wenig Rangpunkte!")
elseif pc.getqf("rangpoint") == 1 and pc.get_alignment >= 4000 then
say_title(""..mob_name(20355).."")
say("")
say("Du wirst 4000 Rangpunkte verlieren dafür,")
say("um 1x - "..item_name(FOUR_THOUSAND_RANG_REWARD).." zu bekommen.")
say("")
say_reward("Fortfahren?")
local s = select("Ja, fortfahren.", "Nein, doch nicht.")
if s == 1 then
pc.change_alignment(-4000)
pc.give_item2("FOUR_THOUSAND_RANG_REWARD", 1)
pc.setqf("rangpoint", 2)
elseif s == 2 then
return
end
elseif pc.getqf("rangpoint") == 2 and pc.get_alignment <= 7999 then
say_title(""..mob_name(20355).."")
say("")
say("Es steht zur Zeit keine Belohnung zur Verfügung.")
say_reward("Du hast zu wenig Rangpunkte!")
elseif pc.getqf("rangpoint") == 2 and pc.get_alignment >= 8000 then
say_title(""..mob_name(20355).."")
say("")
say("Du wirst 8000 Rangpunkte verlieren dafür,")
say("um 1x - "..item_name(EIGHT_THOUSAND_RANG_REWARD).." zu bekommen.")
say("")
say_reward("Fortfahren?")
local m = select("Ja, fortfahren.", "Nein, doch nicht.")
if m == 1 then
pc.change_alignment(-8000)
pc.give_item2("EIGHT_THOUSAND_RANG_REWARD", 1)
pc.setqf("rangpoint", 3)
elseif m == 2 then
return
end
elseif pc.getqf("rangpoint") == 3 and pc.get_alignment <= 11999 then
say_title(""..mob_name(20355).."")
say("")
say("Es steht zur Zeit keine Belohnung zur Verfügung.")
say_reward("Du hast zu wenig Rangpunkte!")
elseif pc.getqf("rangpoint") == 3 and pc.get_alignment >= 12000 then
say_title(""..mob_name(20355).."")
say("")
say("Du wirst 12000 Rangpunkte verlieren dafür,")
say("um 1x - "..item_name(TWELVE_THOUSAND_RANG_REWARD).." zu bekommen.")
say("")
say_reward("Fortfahren?")
local g = select("Ja, fortfahren.", "Nein, doch nicht.")
if g == 1 then
pc.change_alignment(-12000)
pc.give_item2("TWELVE_THOUSAND_RANG_REWARD", 1)
pc.setqf("rangpoint", 4)
elseif g == 2 then
return
end
elseif pc.getqf("rangpoint") == 4 and pc.get_alignment <= 19999 then
say_title(""..mob_name(20355).."")
say("")
say("Es steht zur Zeit keine Belohnung zur Verfügung.")
say_reward("Du hast zu wenig Rangpunkte!")
elseif pc.getqf("rangpoint") == 4 and pc.get_alignment >= 20000 then
say_title(""..mob_name(20355).."")
say("")
say("Du wirst 20000 Rangpunkte verlieren dafür,")
say("um 1x - "..item_name(TWENTY_THOUSAND_RANG_REWARD).." (Schneelöwe) zu bekommen.")
say("")
say_reward("Fortfahren?")
local e = select("Ja, fortfahren.", "Nein, doch nicht.")
if e == 1 then
pc.change_alignment(-20000)
pc.give_item2("TWENTY_THOUSAND_RANG_REWARD", 1)
pc.setqf("rangpoint", 5)
elseif e == 2 then
return
end
elseif pc.getqf("rangpoint") == 5 and pc.get_alignment <= 29999 then
say_title(""..mob_name(20355).."")
say("")
say("Es steht zur Zeit keine Belohnung zur Verfügung.")
say_reward("Du hast zu wenig Rangpunkte!")
elseif pc.getqf("rangpoint") == 5 and pc.get_alignment >= 30000 then
say_title(""..mob_name(20355).."")
say("")
say("Du wirst 30000 Rangpunkte verlieren dafür,")
say("um 1x - "..item_name(THREE_THOUSAND_RANG_REWARD).." (200 AW) zu bekommen.")
say("")
say_reward("Fortfahren?")
local l = select("Ja, fortfahren.", "Nein, doch nicht.")
if l == 1 then
pc.change_alignment(-30000)
pc.give_item2("THREE_THOUSAND_RANG_REWARD", 1)
pc.setqf("rangpoint", 6)
elseif l == 2 then
return
end
else
say_title(""..mob_name(20355).."")
say("")
say("So leit wie es mir auch tut, du hast schon alle")
say("Belohnungen erhalten, die es in Moment gibt.")
say("")
end
elseif p == 3 then
return
end
end
end
end
Immer wen ich die Belohnung abholen will, schließt sich einfach das Fenster, ich habe echt keine Ahnung woran das liegen könnte.
Ich hoffe ihr könnt mir gehelfen
MfG
Kriegergeist^^
|
|
|
12/11/2011, 23:30
|
#4227
|
elite*gold: 0
Join Date: Sep 2011
Posts: 525
Received Thanks: 113
|
Ist zwar eine kleine Quest, aber Ich ([SA]xTube) werde trotzdem nicht als online angezeigt.
PHP Code:
quest gmonline begin
state start begin
when login begin
set_state(information)
end
end
state information begin
when letter begin
send_letter("Online GM list")
end
when button or info begin
say("Name Status")
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
if game.get_event_flag("[SA]xTube")== 1 then
say_reward("xTube online")
else
say("xTube offline")
end
if game.get_event_flag("[SGM]5")== 1 then
say_reward("SGM 5 online")
else
say("SGM 5 offline")
end
if game.get_event_flag("[GM]4")== 1 then
say_reward("GM 4 online")
else
say("GM 4 offline")
end
if game.get_event_flag("[GM]3")== 1 then
say_reward("GM 3 online")
else
say("GM 3 offline")
end
if game.get_event_flag("[GM]2")== 1 then
say_reward("GM 2 online")
else
say("GM 2 offline")
end
if game.get_event_flag("[GM]1")== 1 then
say_reward("GM 1 online")
else
say("GM 1 offline")
end
end
end
end
|
|
|
12/11/2011, 23:49
|
#4228
|
elite*gold: 0
Join Date: Jan 2011
Posts: 284
Received Thanks: 87
|
Dir fehlt auch noch ne andere quest womit game get event flag gesetzt wird,damit überhaupt die quest die du da hast funkt.
PHP Code:
Ja hallo erstma.
Also endweder raf ich es nicht wie der befehl geht oder er geht wirklich nicht,aber laut diesem Text
[php]__give_char_priv(rate_type, rate)
Beschreibung: Gibt dem Aktuell ausgewählten Charakter einen Rate Bonus
Werte: rate_type = 1 bis 4 (YANG, DROP, YANGBOMB, EXP)
rate = höhe der Rate
müsste es theoretisch mit
PHP Code:
__give_char_priv(4,200)
klappen.
Aber es verändert sich rein garnix,ich bekomm immernoch genauso viel EXP wie ohne diesem befehl.Einzigste was erscheint ist die ratenhöhe im chat beim Spieler.
Ich hab auch schon einige andere sachen probiert wie z.b
PHP Code:
__give_char_priv(1,200)
PHP Code:
__give_char_priv(2,200)
PHP Code:
__give_char_priv(3,200)
PHP Code:
__give_char_priv(EXP_DOUBLE_BONUS,200)
PHP Code:
__give_char_priv(EXP_DOUBLE_BONUS,1,200)
PHP Code:
__give_char_priv(1,EXP_DOUBLE_BONUS,200)
aber nix klappt-.-
selbst mit
PHP Code:
affect.add_collect(apply.EXP_DOUBLE_BONUS,200,60*60)
PHP Code:
affect.add(apply.EXP_DOUBLE_BONUS,200,60*60)
klappt es nicht -.-
Es wäre ziemlich nett,wenn mich einer darüber aufklären könnte,ob man überhaupt einen EXP bonus geben kann bzw einen raten bonus einem char.
und ob ich in der db bei item_attr gucke oder nicht der Bonus steht genau da,so wie er stehen sollte,aber klappt von affect_add_collect nicht.
Also würd eich bitten nur mit sinnvollen beiträgen zu kommen.
Den wenn es keinen befel dafür gäbe,wäre die exp_bonus in der berufequest ne verasche,aber davon abgesehen will ich es nicht dafür benutzen.
Danke schonmal[/PHP]
|
|
|
12/12/2011, 14:42
|
#4229
|
elite*gold: 0
Join Date: Jan 2011
Posts: 39
Received Thanks: 0
|
Hallo hab mal ne frage wollt bei Seelensteinquest so machen das es 100% klappt .. Aber ka wie man die umschreibt .. kann jemand pls umschreiben ;D
Hier die Quest:
quest training_grandmaster_skill begin
state start begin
when 50513.use begin
say_title("Seelenstein")
local seelicount = pc.count_item(50513)
if pc.get_skill_group() == 0 then
say("Du besitzt keine Fertigkeiten, die")
say("gegroßmeistert werden können.")
return
end
if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
if pc.is_skill_book_no_delay() then
say("Durch den gebrauch einer Exorzismuss-")
say("Schriftrolle kannst du einen weiteren")
say("Seelenstein lesen!")
wait()
say_title("Seelenstein")
else
say("Du hast heute bereits einen Seelenstein gelesen!")
return
end
end
local result = training_grandmaster_skill.BuildGrandMasterSkillLi st(pc.get_job(), pc.get_skill_group())
local vnum_list = result[1]
local name_list = result[2]
if table.getn(vnum_list) == 0 then
say("Du besitzt keine Fertigkeiten, die")
say("gegroßmeistert werden können.")
return
end
say("Welche Fertigkeit möchtest du trainieren?")
say("")
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Abbrechen")
local s=select_table(menu_list)
if table.getn(menu_list) == s then
return
end
local skill_name=name_list[s]
local skill_vnum=vnum_list[s]
local skill_level = pc.get_skill_level(skill_vnum)
local cur_alignment = pc.get_real_alignment()
local need_alignment = 1000+500*(skill_level-30)
test_chat("Momentaner Rang: "..cur_alignment)
test_chat("Benötigter Rang: "..need_alignment)
local title=string.format("%s auf G%d trainieren", skill_name, skill_level-30+1)
if skill_level-30+1==10 then
title=string.format("%s auf P trainieren", skill_name)
end
pc.remove_item("50513", 1)
say_title(title)
say("Durch das Lesen von Seelensteinen müssen")
say("dir als Zeichen des Opfers Rangpunkte")
say("abgezogen werden.")
say("")
if cur_alignment<-19000+need_alignment then
say_reward("Du hast zu wenig Rangpunkte!")
return
end
if cur_alignment<0 then
say_reward(string.format("Benötigter Rang: %d -> %d", need_alignment, need_alignment*2))
say_reward("Beim erfolgreichen Einlesen des")
say_reward("Seelensteines wird dir doppelt")
say_reward("so viel Rangpunkte abgezogen.")
need_alignment=need_alignment*2
elseif cur_alignment<need_alignment then
say_reward(string.format("Benötigter Rang: %d", need_alignment))
say_reward("Beim erfolgreichen Einlesen des")
say_reward("Seelensteines wird dir doppelt")
say_reward("so viel Rangpunkte abgezogen.")
else
say_reward(string.format("Benötigter Rang: %d", need_alignment))
end
say("")
local s=select("Lesen", "Abbrechen")
if s==2 then
return
end
if cur_alignment>=0 and cur_alignment<need_alignment then
say_title(string.format("%s bestätigen", title))
say("Das Lesen eines Seelensteines kostet Rang,")
say("wenn du diesen Seelenstein ließt,")
say("kommst du in den negativen Bereich.")
say("Bitte Bestätige das du diesen Seelenstein")
say("wirklich lesen möchtest! Das tust du indem")
say("du in den Textfeld das Wort")
say_reward("trainieren")
say("eingibst.")
local s=input()
if s!="trainieren" then
return
end
end
if get_time() < pc.getqf("next_time") then
if pc.is_skill_book_no_delay() then
pc.remove_skill_book_no_delay()
else
say("Bitte an die Admins wenden!")
return
end
end
pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
if need_alignment>0 and pc.count_item(50513)>0 then
if pc.learn_grand_master_skill(skill_vnum) then
pc.change_alignment(-need_alignment)
say_title(string.format("%s erfolgreich", title))
if 40 == pc.get_skill_level(skill_vnum) then
say(string.format("%s ist nun perfeckt Gemeistert.", skill_name))
say("Herzlichen Glückwunsch!")
else
say(string.format("Das Großmeistern war erfolgreich!", skill_name, skill_level-30+1+1))
end
say("")
say_reward("Erfolgreich!")
say_reward(string.format("Es wurden %d Rangpunkte verbraucht", need_alignment))
say("")
else
say_title(string.format("%s fehlgeschlagen", title))
say("Das Großmeistern ist fehlgeschlagen.")
say("")
local rang = number(need_alignment/3, need_alignment/2)
say_reward("Fehlgeschlagen! Es wurden "..rang.." Rangpunkte verbraucht")
say("")
pc.change_alignment(-rang)
end
end
end
function BuildGrandMasterSkillList(job, group)
GRAND_MASTER_SKILL_LEVEL = 30
PERFECT_MASTER_SKILL_LEVEL = 40
local skill_list = special.active_skill_list[job+1][group]
local ret_vnum_list = {}
local ret_name_list = {}
table.foreach(skill_list,
function(i, skill_vnum)
local skill_level = pc.get_skill_level(skill_vnum)
if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then
table.insert(ret_vnum_list, skill_vnum)
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
if name == nil then name=skill_vnum end
table.insert(ret_name_list, name)
end
end)
return {ret_vnum_list, ret_name_list}
end
end
end
|
|
|
12/13/2011, 17:31
|
#4230
|
elite*gold: 0
Join Date: Jan 2011
Posts: 39
Received Thanks: 0
|
Hey .. Hab n problem mit dt
Wenn ich Dämonenkönig gekillt habe telts mich nicht hoch zu metin eben (Stock.3)
hier mal die quest
quest deviltower_zone begin
state start begin
when login begin
if pc.get_map_index() == 66 then
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
pc.warp((5376+532)*100, (512+596+4)*100, 65)
end
pc.set_warp_location(65, 5376+532, 512+596+4)
elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
pc.set_warp_location(65, 5376+532, 512+596+4)
end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
say_title("Wächter des Dämonturmes")
if pc . get_level ( ) < 40 then
say("Du hast noch nicht genügend Erfahrung gesammelt.")
say("Komme wieder, wenn du Level 40 bist!")
return
end
say("Möchtest du den Daemonenturm betreten?")
local s = select ("Betreten", "Abbrechen")
if s == 1 then
pc.warp (216500, 727000)
end
end
when devil_stone1.kill begin
timer("devil_stone1_1", 6)
end
when devil_stone1_1.timer begin
local mapto7= pc.count_item(30302)
pc.remove_item(30302,mapto7)
local boxto7= pc.count_item(30300)
pc.remove_item(30300,boxto7)
d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.regen_file("data/dungeon/deviltower2_regen.txt")
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
end
function get_4floor_stone_pos()
local positions = {
{368, 629},
{419, 630},
{428, 653},
{422, 679},
{395, 689},
{369, 679},
{361, 658},
}
for i = 1, 6 do
local j = number(i, 7)
if i != j then
local t = positions[i];
positions[i] = positions[j];
positions[j] = t;
end
end
return positions
end
when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.setf("level", 4)
local positions = deviltower_zone.get_4floor_stone_pos()
for i = 1, 6 do
chat(positions[i][1], positions[i][2])
d.set_unique("fake"..i, d.spawn_mob(8017, positions[i][1], positions[i][2]))
end
chat(positions[7][1], positions[7][2])
local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
d.set_unique("real", vid)
server_loop_timer("devil_stone4_update", 10, pc.get_map_index())
server_timer("devil_stone4_fail1", 5*60, pc.get_map_index())
d.notice("Findet den richtigen Metinstein und zerstört ihn.")
d.notice("Die falschen Metinsteine werden verschwinden!")
d.notice("Ihr habt 15 Minuten zeit!")
end
when devil_stone4_fail1.server_timer with d.getf("level")==4 begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 10 Minuten")
server_timer("devil_stone4_fail2", 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail2.server_timer with d.getf("level")==4 begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 5 Minuten")
server_timer("devil_stone4_fail", 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail.server_timer with d.getf("level")==4 begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen")
d.notice("Ihr werdet nun nach draußen teleportiert")
d.exit_all()
clear_server_timer("devil_stone4_update", get_server_timer_arg())
end
end
when devil_stone4_update.server_timer with d.getf("level")==4 begin
if d.select(get_server_timer_arg()) then
if not d.is_unique_dead("real") then
for i = 1, 6 do
if d.getf("fakedead" .. i) == 0 then
if d.unique_get_hp_perc("fake" .. i) < 50 then
d.purge_unique("fake" .. i)
d.setf("fakedead" .. i, 1)
d.notice("Die falschen Metinsteine verschwinden..");
end
end
end
else
server_timer("devil_stone4_end", 5, get_server_timer_arg())
d.notice("Ihr habt den richtigen Metinstein zerstört.")
d.notice("Ihr werdet nun in die nächste Etage teleportiert")
clear_server_timer("devil_stone4_fail1", get_server_timer_arg())
clear_server_timer("devil_stone4_fail2", get_server_timer_arg())
clear_server_timer("devil_stone4_fail", get_server_timer_arg())
end
else
server_timer("devil_stone4_stop_timer", 1, get_server_timer_arg())
end
end
when devil_stone4_stop_timer.server_timer begin
clear_server_timer("devil_stone4_update", get_server_timer_arg())
end
when devil_stone4_end.server_timer begin
if d.select(get_server_timer_arg()) then
d.setf("level", 5)
d.setf("stone_count", 5)
d.notice("Du bist nun in der 5. Ebene")
d.notice("Öffne alle Alten Siegel um in die nächste Ebene zu gelangen.")
d.notice("Du hast 20 Minuten Zeit um alle Siegel zu öffnen.")
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
server_timer("devil_stone5_fail1", 5*60, get_server_timer_arg())
clear_server_timer("devil_stone4_update", get_server_timer_arg())
d.set_regen_file("data/dungeon/deviltower5_regen.txt")
d.spawn_mob(20073, 421, 452)
d.spawn_mob(20073, 380, 460)
d.spawn_mob(20073, 428, 414)
d.spawn_mob(20073, 398, 392)
d.spawn_mob(20073, 359, 426)
end
end
when devil_stone5_fail1.server_timer with d.getf("level")==5 begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 15 Minuten")
server_timer("devil_stone5_fail2", 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail2.server_timer with d.getf("level") == 5 begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 10 Minuten")
server_timer("devil_stone5_fail3", 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail3.server_timer with d.getf("level") == 5 begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 5 Minuten")
server_timer("devil_stone5_fail", 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail.server_timer with d.getf("level") == 5 begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen")
d.notice("Ihr werdet nun nach draußen teleportiert")
d.exit_all()
end
end
when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
local KILL_COUNT_FOR_DROP_KEY = 50
local n = d.getf("count") + 1
d.setf("count", n)
if n == KILL_COUNT_FOR_DROP_KEY then
game.drop_item_with_ownership(50084, 1)
d.setf("count", 0)
end
end
when devil_stone5.take with item.vnum == 50084 begin
npc.purge()
item.remove()
d.setf("stone_count", d.getf("stone_count") - 1)
if d.getf("stone_count") != 0 then
d.notice("Es verbleibt eine Anzahl von "..d.getf("stone_count").." Siegeln")
return
end
d.setf("level", 6)
d.clear_regen()
d.regen_file("data/dungeon/deviltower6_regen.txt")
d.notice("Ihr habt alle alten Siegel geöffnet. Ihr werdet nun")
d.notice("in die 6. Ebene teleportiert.")
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
clear_server_timer("devil_stone5_fail1", get_server_timer_arg())
clear_server_timer("devil_stone5_fail2", get_server_timer_arg())
clear_server_timer("devil_stone5_fail3", get_server_timer_arg())
clear_server_timer("devil_stone5_fail", get_server_timer_arg())
end
when devil_stone6.kill begin
d.kill_all()
d.check_eliminated()
local reward_alchemist = {20074, 20075, 20076}
d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
d.setqf("can_refine", 1)
end
when 20074.chat."Die höheren Etagen.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say_title(mob_name(20074))
say("Ihr möchtet in die 7.Etage?")
say("Ihr haben Glück! Heute erlaube ich es ihnen vielleicht!")
say("Aber voher muss ich euch noch prüfen..")
say("Mal sehen..")
wait()
say_title(mob_name(20074))
if pc.level >=75 then
say("Ich erlaube euch weiterzugehen!")
say("Viel Glück und passt auf euch auf da oben!")
npc.purge()
timer("devil_jump_7", 6)
return
end
say_reward("Betreten der 7.Etage nicht erlaubt!")
say("Ihr seid nicht qualifiziert genug!")
say("Erreicht Level 75 oder höher,")
say("damit ihr eure Fertigkeiten steigern könnt")
say("und kommt dann wieder!")
wait()
pc.warp(590500, 110500)
return
end
when 20075.chat."Die höheren Etagen.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say_title(mob_name(20075))
say("Ihr möchtet in die 7.Etage?")
say("Ihr haben Glück! Heute erlaube ich es ihnen vielleicht!")
say("Aber voher muss ich euch noch prüfen..")
say("Mal sehen..")
wait()
say_title(mob_name(20075))
if pc.level >=75 then
say("Ich erlaube euch weiterzugehen!")
say("Viel Glück und passt auf euch auf da oben!")
timer("devil_jump_7", 6)
npc.purge()
return
end
say_reward("Betreten der 7.Etage nicht erlaubt!")
say("Ihr seid nicht qualifiziert genug!")
say("Erreicht Level 75 oder höher,")
say("damit ihr eure Fertigkeiten steigern könnt")
say("und kommt dann wieder!")
wait()
pc.warp(590500, 110500)
return
end
when 20076.chat."Die höheren Etagen.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say_title(mob_name(20076))
say("Ihr möchtet in die 7.Etage?")
say("Ihr haben Glück! Heute erlaube ich es ihnen vielleicht!")
say("Aber voher muss ich euch noch prüfen..")
say("Mal sehen..")
wait()
say_title(mob_name(20076))
if pc.level >=75 then
say("Ich erlaube euch weiterzugehen!")
say("Viel Glück und passt auf euch auf da oben!")
timer("devil_jump_7", 6)
npc.purge()
return
end
say_reward("Betreten der 7.Etage nicht erlaubt!")
say("Ihr seid nicht qualifiziert genug!")
say("Erreicht LvL 75 oder höher,")
say("damit ihr eure Fertigkeiten steigern könnt")
say("und kommt dann wieder!")
wait()
pc.warp(590500, 110500)
return
end
when devil_jump_7.timer begin
d.clear_regen()
d.spawn_mob(8018, 639, 658)
d.spawn_mob(8018, 611, 637)
d.spawn_mob(8018, 596, 674)
d.spawn_mob(8018, 629, 670)
d.setf("level", 7)
d.jump_all(2048+590, 6656+638)
end
when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local cont = d.getf("7_stone_kill") + 1
d.setf("7_stone_kill", cont)
if cont >= 4 then
d.setf("7_stone_kill", 0)
d.set_regen_file("data/dungeon/deviltower7_regen.txt")
end
end
when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
game.drop_item_with_ownership(30300, 1)
end
when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
pc.remove_item("30300", 1)
local pct = number(1,10)
if pct == 1 then
game.drop_item_with_ownership(30302, 1)
d.clear_regen()
else
game.drop_item_with_ownership(30301, 1)
end
end
when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say_title("Karte")
say("Die Karte wird euch alle in die nächste Ebene")
say("des Dämonenturms bringen.")
pc.remove_item("30302", 1)
timer("devil_jump_8", 6)
d.clear_regen()
end
when devil_jump_8.timer begin
d.setf("level", 8)
d.jump_all(2048+590, 6656+403)
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
d.spawn_mob(20366, 640, 460)
local _count= pc.count_item(30302)
pc.remove_item(30302,_count)
end
when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level")==8 begin
local pct1 = number(1, 5)
if pct1 == 1 then
local pct2 = number(1, 10)
if pct2 == 1 then
game.drop_item_with_ownership(30304, 1)
else
game.drop_item_with_ownership(30303, 1)
end
end
end
when 20366.take with item.vnum == 30304 begin
npc.purge()
item.remove()
timer("devil_jump_9", 6)
end
when devil_jump_9.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.regen_file("data/dungeon/deviltower9_regen.txt")
end
when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.kill_all()
d.kill_all()
d.notice("Ihr habt den Sensenmann getötet.")
d.notice("Jetzt überlasst euren Schiksal den Zufall...")
d.notice("Sag den Kriegergeist dreimal die richtige Zahl und du gelangst weiter.")
d.notice("Alle unter Level 90 werden rausteleportiert.")
pc.setqf("zufall", 0)
pc.setqf("klick", 0)
d.spawn_mob(30122, 607, 218)
timer("raus90", 5)
end
when raus90.timer with pc.get_level()<90 begin
pc.warp(590500, 110500)
end
when 30122.chat."Entscheidung" with pc.getqf("zufall")==0 begin
say_title("Kriegergeist")
say("Ab jetzt wird der Schwierigkeitsgrad der")
say("Aufgaben steigen.")
say("Wollt ihr weitermachen oder runter?")
local s=select("Weiter", "Runter")
if s==2 then
say_title("Kriegergeist")
say("So sei es.")
d.exit()
end
if s==1 then
pc.setqf("zufall", 1)
end
end
when 30122.chat."Zufallsspiel" with pc.getqf("zufall")>=1 and pc.getqf("zufall")<4 and pc.getqf("klick")==0 begin
d.kill_all()
d.kill_all()
say_title("Kriegergeist")
say("Nenne eine Zahl zwischen 1 und 3.")
local zahl= select("1", "2", "3")
local zahlr=number(1, 3)
if zahl==zahlr then
chat("Richtig!")
pc.setqf("zufall", pc.getqf("zufall")+1)
if pc.getqf("zufall")==4 then
d.notice("Ihr habt es geschafft. Tötet nun den blauen Tod")
npc.purge()
d.regen_file("data/dungeon/deviltower10_regen.txt")
d.spawn_mob(1095, 634, 142)
end
elseif zahl!=zahlr then
pc.setqf("klick", 1)
chat("Falsch!")
d.regen_file("data/dungeon/deviltower10_regen.txt")
pc.setqf("zufall", 1)
end
end
when 30122.take with item.vnum==30159 and pc.getqf("klick")==1 and pc.getqf("zufall")<4 begin
pc.remove_item("30159", 1)
pc.setqf("klick", 0)
end
when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and pc.getqf("zufall")>=1 begin
local pct3 = number(1, 256)
if pct3 == 250 then
game.drop_item_with_ownership(30159, 1)
else
return
end
end
when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.kill_all()
d.kill_all()
timer("exit_lows", 5)
end
when exit_lows.timer begin
if pc.getqf("raus")==1 then
pc.warp(590500, 110500)
end
d.notice("Töte alle vier Metine in fünf Minuten.");
timer("metin_hagel", 1)
end
when metin_hagel.timer begin
d.spawn_mob(8027, 600, 205)
timer("dragon_stones", 60*5)
end
when 8027.kill with pc.getqf("steinchen")==0 begin
d.spawn_mob(8027, 594, 158)
pc.setqf("steinchen", 1)
end
when 8027.kill with pc.getqf("steinchen")==1 begin
d.spawn_mob(8027, 645, 157)
pc.setqf("steinchen", 2)
end
when 8027.kill with pc.getqf("steinchen")==2 begin
d.spawn_mob(8027, 646, 203)
pc.setqf("steinchen", 3)
end
when 8027.kill with pc.getqf("steinchen")==3 begin
pc.setqf("steinchen", 4)
d.notice("Ihr habt alle Aufgaben bestanden. Jetzt wird der");
d.notice("legendäre Wächter des Dämonenturmes sich bereit erklären");
d.notice("gegen euch zu kämpfen.");
timer("dragon_summon", 5)
end
when dragon_stones.timer with pc.getqf("steinchen")<4 begin
d.notice("Ihr habt es nicht geschafft, die Zeit ist abgelaufen.");
d.exit_all()
end
when dragon_summon.timer begin
d.spawn_mob(2598, 621, 212)
end
when 2598.kill with pc.in_dungeon begin
d.notice("Ihr habt den Zombiegott, den legendären Wächter des Dämonenturmes");
d.notice("besiegt. Ihr werdet in 30 Sekunden zurück zum Anfang teleportiert");
timer("devil_end_jump", 30)
end
when devil_end_jump.timer begin
d.exit_all()
end
end
end
|
|
|
All times are GMT +1. The time now is 03:51.
|
|