#push :SQuote:
Danke schonmal für eure Hilfe :)
Aber weil ich so nervig bin und kein Quest profi...
Das Problem ist das ich sobald ich den Metin (8031) kille nichts passiert und ich festsitze :s
€: Die Pferdequest geht leider immernoch nicht. Man kann das Pferd auch steiger wenn es höher als Level 11 ist :/
----------------------------------
-- Main Quest LV1
-- Auftrag 1
----------------------------------
quest main_quest_lv1 begin
state start begin
when login or levelup with pc.get_level() == 1 begin
set_state( gotoinfomation )
end
end
state gotoinfomation begin
when letter begin
send_letter("Willkommen")
end
when button or info begin
say_title("Willkommen")
----"12345678901234567890123456789012345678901234567890"|
say("Da ich, der SA dieses Servers, leider nicht")
say("im stande bin jeden neuen Spieler persönlich")
say("zu begrüßen, übernimmt das an dieser Stelle")
say("diese Quest für mich.")
say("")
say("Und damit sei gegrüßt, und viel Glück!")
say("")
pc . give_item2 ( "27115" , 5 )
pc . give_item2 ( "27001" , 200 )
pc . give_item2 ( "50052" , 1 )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
end
end
state gototeacher begin
when letter begin
local v=find_npc_by_vnum(20354)
if 0==v then
else
target.vid("__TARGET__", v, "Gehe zum Stadtwächter")
end
end
when letter begin
send_letter("Gehe zum Stadtwächter!")
end
when button or info begin
say_title("Gehe zum Stadtwächter!")
say("Suche den Stadtwächter auf der Karte.")
say("")
----------"12345678901234567890123456789012345678901234567890"|
say_reward("Den weg findest du...")
say_reward("Ach das findest du schon selber raus.")
say_reward("Gehe möglichst bald zu ihm.")
say("")
end
when __TARGET__.target.click begin
target.delete("__TARGET__")
say("Stadtwächter:")
----"12345678901234567890123456789012345678901234567890"|
say("Du scheinst neu hier im Ort zu sein! Wie ich")
say("sehe, haben sie aus dir noch keinen Soldaten")
say("gemacht. hast du überhaupt irgendeine Ausbildung")
say("erhalten? Sieh dich nur an! Du hast bestimmt")
say("die wilden Hunde mit der blanken Faust bekämpft!")
say("anstatt eine ordentliche Waffe zu benutzen")
say("Also hör zu! Du musst einfach sehr sehr viele")
say("Monster töten. Übung macht den Meister, und der")
say("Willst du doch werden oder? Du wirst als Soldat")
say("natürlich einen Sold für deine Arbeit herhalten")
say("Hier ist dein erster Sold, gebe nicht alles auf")
pc . change_money ( 5000 )
say("")
wait()
say("Stadtwächter:")
say("Mach dich auf den Weg und lerne die")
say("grundlegenden Methoden anderen den Kopf einzuschlagen!")
say("Sobald du etwas mehr Erfahrung gesammelt hast,")
say("wird auch dein Sold steigen.")
say("Was stehst du noch herum? An die Arbeit!")
say("")
clear_letter()
set_quest_state("find_squareguard", "find")
set_quest_state("main_quest_lv2","run")
set_state( __COMPLETE__ )
end
end
state __COMPLETE__ begin
end
end
----------------------------------
-- Main Quest LV1
-- Auftrag 1
----------------------------------
quest main_quest_lv1 begin
state start begin
when login or levelup with pc.get_level() == 1 begin
set_state( gotoinfomation )
end
end
state gotoinfomation begin
when letter begin
send_letter("Willkommen")
end
when button or info begin
say_title("Willkommen")
----"12345678901234567890123456789012345678901234567890"|
say("Da ich, der SA dieses Servers, leider nicht")
say("im stande bin jeden neuen Spieler persönlich")
say("zu begrüßen, übernimmt das an dieser Stelle")
say("diese Quest für mich.")
say("")
say("Und damit sei gegrüßt, und viel Glück!")
say("")
pc . give_item2 ( "27115" , 5 )
pc . give_item2 ( "27001" , 200 )
pc . give_item2 ( "50052" , 1 )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
set_state( gototeacher ) // Hier
end
end
state gototeacher begin
when letter begin
local v=find_npc_by_vnum(20354)
if 0==v then
else
target.vid("__TARGET__", v, "Gehe zum Stadtwächter")
end
end
when letter begin
send_letter("Gehe zum Stadtwächter!")
end
when button or info begin
say_title("Gehe zum Stadtwächter!")
say("Suche den Stadtwächter auf der Karte.")
say("")
----------"12345678901234567890123456789012345678901234567890"|
say_reward("Den weg findest du...")
say_reward("Ach das findest du schon selber raus.")
say_reward("Gehe möglichst bald zu ihm.")
say("")
end
when __TARGET__.target.click begin
target.delete("__TARGET__")
say("Stadtwächter:")
----"12345678901234567890123456789012345678901234567890"|
say("Du scheinst neu hier im Ort zu sein! Wie ich")
say("sehe, haben sie aus dir noch keinen Soldaten")
say("gemacht. hast du überhaupt irgendeine Ausbildung")
say("erhalten? Sieh dich nur an! Du hast bestimmt")
say("die wilden Hunde mit der blanken Faust bekämpft!")
say("anstatt eine ordentliche Waffe zu benutzen")
say("Also hör zu! Du musst einfach sehr sehr viele")
say("Monster töten. Übung macht den Meister, und der")
say("Willst du doch werden oder? Du wirst als Soldat")
say("natürlich einen Sold für deine Arbeit herhalten")
say("Hier ist dein erster Sold, gebe nicht alles auf")
pc . change_money ( 5000 )
say("")
wait()
say("Stadtwächter:")
say("Mach dich auf den Weg und lerne die")
say("grundlegenden Methoden anderen den Kopf einzuschlagen!")
say("Sobald du etwas mehr Erfahrung gesammelt hast,")
say("wird auch dein Sold steigen.")
say("Was stehst du noch herum? An die Arbeit!")
say("")
clear_letter()
set_quest_state("find_squareguard", "find")
set_quest_state("main_quest_lv2","run")
set_state( __COMPLETE__ )
end
end
state __COMPLETE__ begin
end
end
Hier is das Foto :Quote:
quest ingamebann2 begin
state start begin
when 70045.use with pc.is_gm() begin
say("Was möchtest du tun?")
local s = select('Bannen','Entbannen',"Nichts")
if s == 3 then return end
local ban,bantxt,bantxt2 = "BLOCK","bannen","gebannt"
if s == 2 then
ban,bantxt,bantxt2 = "OK","entbannen","entbannt"
end
say(col.blue('Spieler '..bantxt)); say('[ENTER]Gib den Spielernamen ein.[ENTER](ein Teil reicht auch)')
local inp = input(); inp = mysql_escape(inp)
if inp == "" or inp == pc.get_name() then
say(col.red('Ungültige Eingabe.[ENTER]Abbruch!'))
return
end
local q = mysql_query('select * from player.player WHERE name LIKE \\"%'..inp..'%\\" AND name NOT like "%[%\\"','root','Ming1995',nil,'5.4.22.62')
if q == "ERROR" then
say(col.red('Fehler beim Lesen der Daten oder es existiert niemand mit diesem Namen.'))
return
end
say('Wähle den User, der '..bantxt2..' werden soll:')
local wahl = q.name; table.insert(wahl,"-Abbruch-")
table.insert(wahl,1,6) -- 6 ist die Anzahl der Maximalen User auf einer Seite.
local auswahl = select2(wahl)
if wahl[auswahl] == "-Abbruch-" then return end
say('Den Spieler \\"'..q.name[auswahl]..'\\" wirklich '..bantxt..'?')
if select("Ja","Nein") == 2 then return end
mysql_query('UPDATE account.account SET status = "'..ban..'\\" WHERE id = '..q.account_id[auswahl]..' LIMIT 1','root','Ming1995','5.4.22.62')
say('Der Spieler wurde gebannt.')
end
end
end
----------------------------------
-- Main Quest LV1
-- Auftrag 1
----------------------------------
quest main_quest_lv1 begin
state start begin
when login or levelup with pc.get_level() == 1 begin
set_state( gotoinfomation )
end
end
state gotoinfomation begin
when letter begin
send_letter("Willkommen")
end
when button or info begin
say_title("Willkommen")
----"12345678901234567890123456789012345678901234567890"|
say("Da ich, der SA dieses Servers, leider nicht")
say("im stande bin jeden neuen Spieler persönlich")
say("zu begrüßen, übernimmt das an dieser Stelle")
say("diese Quest für mich.")
say("")
say("Und damit sei gegrüßt. Und viel Glück!")
say("")
pc . give_item2 ( "27115" , 5 )
pc . give_item2 ( "27001" , 200 )
pc . give_item2 ( "50052" , 1 )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
set_state( gototeacher )
end
end
state gototeacher begin
when letter begin
local v=find_npc_by_vnum(20354)
if 0==v then
else
target.vid("__TARGET__", v, "Gehe zum Stadtwächter")
end
end
when letter begin
send_letter("Gehe zum Stadtwächter!")
end
when button or info begin
say_title("Gehe zum Stadtwächter!")
say("")
----------"12345678901234567890123456789012345678901234567890"|
say_reward("Den weg findest du...")
say_reward("Ach das findest du schon selber raus.")
say_reward("Gehe möglichst bald zu ihm.")
say("")
end
when __TARGET__.target.click begin
target.delete("__TARGET__")
say("Stadtwächter:")
----"12345678901234567890123456789012345678901234567890"|
say("Du scheinst neu hier im Ort zu sein! Aufgrund")
say("der großen bedrohung durch die vielen Monster hier")
say("erhält derzeit jeder neue der Kampfesfähig ist")
say("eine einfache ausbildung und eine grundausrüstung")
say("so wie du ausschaust wirst du diese gut gebrauchen")
say("können. Du hast bestimmt die wildhunde mit der")
say("blanken Faust bekämpft, anstatt eine ordentliche")
say("Waffe zu benutzen!")
say("Deine aufgabe wird sein das Dorf im falle eines")
say("Angriffes zu verteidigen. Du wirst")
say("natürlich einen Sold für deine Arbeit erhalten")
say("Hier ist dein erster Sold und deine Ausrüstung.")
say("Gebe nicht alles auf einmal aus.")
pc . change_money ( 2000 )
if pc . job == 0 then
pc . give_item2 ( "12" , 1 )
pc . give_item2 ( "12202" , 1 )
pc . give_item2 ( "13002" , 1 )
pc . give_item2 ( "15002" , 1 )
pc . give_item2 ( "11202" , 1 )
elseif pc . job == 1 then
pc . give_item2 ( "1002" , 1 )
pc . give_item2 ( "11402" , 1 )
pc . give_item2 ( "12342" , 1 )
pc . give_item2 ( "13002" , 1 )
pc . give_item2 ( "15002" , 1 )
elseif pc . job == 2 then
pc . give_item2 ( "12" , 1 )
pc . give_item2 ( "11602" , 1 )
pc . give_item2 ( "12482" , 1 )
pc . give_item2 ( "13002" , 1 )
pc . give_item2 ( "15002" , 1 )
elseif pc . job == 3 then
pc . give_item2 ( "7002" , 1 )
pc . give_item2 ( "11802" , 1 )
pc . give_item2 ( "12622" , 1 )
pc . give_item2 ( "13002" , 1 )
pc . give_item2 ( "15002" , 1 )
say("")
wait()
say("Stadtwächter:")
say("Mach dich auf den Weg und lerne die")
say("grundlegenden Methoden anderen den Kopf einzuschlagen!")
say("Ich denke es wäre das beste wenn du erst einmal")
say("selbst etwas dazu lernst und ein paar einfache Monster besiegst")
say("Sobald du etwas Erfahrung gesammelt hast,")
say("Werde ich neue Aufgaben für dich haben.")
say("Enttäusche mich nicht!")
say("")
clear_letter()
set_quest_state("find_squareguard", "find")
set_quest_state("main_quest_lv2","run")
set_state( __COMPLETE__ )
end
end
state __COMPLETE__ begin
end
end
quest main_quest_lv2 begin
state start begin
when levelup with pc.get_level() == 5 begin
set_state( gototeacher )
end
end
when letter begin
local v=find_npc_by_vnum(20354)
if 0==v then
else
target.vid("__TARGET__", v, "Spezielle Quest")
end
end
when letter begin
send_letter("Besondere Aufgabe")
end
when button or info begin
say_title("Besondere Aufgabe")
say("")
----------"12345678901234567890123456789012345678901234567890"|
say("Der Stadtwächter sucht dich.")
say("Gehe baldmöglichst zu ihm.")
end
when __TARGET__.target.click begin
target.delete("__TARGET__")
say("Stadtwächter:")
----"12345678901234567890123456789012345678901234567890"|
say("Du hast in sehr kurzer zeit viel dazu gelernt")
say("Daher habe ich einen besonderen Auftrag für dich")
say("Du wirst 10 Wildhunde für mich töten müsssen,")
say("sie werden bei uns langsam zur regelrechten plage.")
say("Tötet man einen, kommen zwei neue, so scheint es mir")
say("Kümmere dich möglichst bald darum, es wird natürlich auch")
say("eine Belohnung geben")
say("")
set_state( killdog )
pc.setqf("state", 0)
q.set_counter("Wildhunde", 0)
end
end
state killdog begin
when letter begin
send_letter("Spezielle Quest")
end
when button or info begin
say_title("Spezielle Quest")
say("Töte 10 Wildhunde.")
say("")
say_reward( "Du hast bereits ".." "..pc.getqf("state").."getötet")
say("")
end
when 101.kill begin
local count = pc.getqf("state") + 1
if count <= 10 then
pc.setqf("state", count)
q.set_counter("Es fehlen noch", 10 - count)
if count == 10 then
say_title("Spezielle Quest")
say("Du hast alle 10 Wildhunde getötet, kehre nun zum")
say("Stadtwaechter zurück, um deine Belohnung zu erhalten.")
set_state(gototeacher2)
end
end
end
state gototeacher2 begin
when letter begin
local v=find_npc_by_vnum(20354)
if 0==v then
else
target.vid("__TARGET__", v, "Kehre zum Stadtwächter zurück")
end
end
when letter begin
send_letter("Auftrag abgeschlossen")
end
when button or info begin
say_title("Auftrag abgeschlossen")
say("")
----------"12345678901234567890123456789012345678901234567890"|
say_reward("Kehre zum Stadtwächter zurück.")
say("")
end
when __TARGET__.target.click begin
target.delete("__TARGET__")
say("Stadtwächter:")
----"12345678901234567890123456789012345678901234567890"|
say("Das ging schneller als ich erwartet hatte!")
say("Deine Belohnung ist zwar fertig, aber ich habe")
say("sie noch nicht bei mir. Am besten du holst sie dir")
say("selber ab, damit du nicht warten musst. Begebe dich zum")
say("Schmied. Er weiß bescheid und wird sie dir Übergeben.")
say("")
set_state(__reward)
end
end
state __reward begin
when letter begin
send_letter("Die Belohnung")
local v = find_npc_by_vnum(20016)
if v != 0 then
target.vid("__TARGET__", v, "Schmied")
end
end
when __TARGET__.target.click or
20018.chat."Deine Belohnung" begin
target.delete("__TARGET__")
say("Schmied:")
say("Sage nichts, ich weiß schon warum")
say("du hier bist. Hier, deine Belohnung,")
say("eine bessere Ausrüstung. Damit wirst du weniger")
say("Probleme im kampf gegen all die Monster haben")
say("Wenn du deine Ausrüstung verbessern willst")
say("kannst du zu mir kommen. Vergiss aber nicht")
say("das nötige Yang mitzubringen.")
if pc . job == 0 then
pc . give_item2 ( "25" , 1 )
pc . give_item2 ( "12205" , 1 )
pc . give_item2 ( "13005" , 1 )
pc . give_item2 ( "15005" , 1 )
pc . give_item2 ( "11215" , 1 )
elseif pc . job == 1 then
pc . give_item2 ( "1015" , 1 )
pc . give_item2 ( "11415" , 1 )
pc . give_item2 ( "12345" , 1 )
pc . give_item2 ( "13005" , 1 )
pc . give_item2 ( "15005" , 1 )
elseif pc . job == 2 then
pc . give_item2 ( "25" , 1 )
pc . give_item2 ( "11615" , 1 )
pc . give_item2 ( "12485" , 1 )
pc . give_item2 ( "13005" , 1 )
pc . give_item2 ( "15005" , 1 )
elseif pc . job == 3 then
pc . give_item2 ( "7015" , 1 )
pc . give_item2 ( "11815" , 1 )
pc . give_item2 ( "12625" , 1 )
pc . give_item2 ( "13005" , 1 )
pc . give_item2 ( "15005" , 1 )
say("")
wait()
say("Schmied:")
say("Ich hoffe dir gefällt deine neue Ausrüstung!")
say("")
clear_letter()
set_state( __COMPLETE__ )
end
end
state __COMPLETE__ begin
end
end
quest lvl begin
state start begin
when login begin
if pc.get_level == 25 then
notice_all(""..pc.get_name().." hat level 25 erreicht.")
elseif pc.get_level == 30 then
notice_all(""..pc.get_name().." hat level 30 erreicht.")
elseif pc.get_level == 35 then
notice_all(""..pc.get_name().." hat level 35 erreicht.")
elseif pc.get_level == 40 then
notice_all(""..pc.get_name().." hat level 40 erreicht.")
elseif pc.get_level == 45 then
notice_all(""..pc.get_name().." hat level 45 erreicht.")
elseif pc.get_level == 50 then
notice_all(""..pc.get_name().." hat level 50 erreicht.")
elseif pc.get_level == 55 then
notice_all(""..pc.get_name().." hat level 55 erreicht.")
elseif pc.get_level == 60 then
notice_all(""..pc.get_name().." hat level 60 erreicht.")
elseif pc.get_level == 65 then
notice_all(""..pc.get_name().." hat level 65 erreicht.")
elseif pc.get_level == 70 then
notice_all(""..pc.get_name().." hat level 70 erreicht.")
elseif pc.get_level == 75 then
notice_all(""..pc.get_name().." hat level 75 erreicht.")
elseif pc.get_level == 80 then
notice_all(""..pc.get_name().." hat level 80 erreicht.")
elseif pc.get_level == 85 then
notice_all(""..pc.get_name().." hat level 85 erreicht.")
elseif pc.get_level == 90 then
notice_all(""..pc.get_name().." hat level 90 erreicht.")
elseif pc.get_level == 95 then
notice_all(""..pc.get_name().." hat level 95 erreicht.")
elseif pc.get_level == 99 then
notice_all(""..pc.get_name().." hat level 99 erreicht.")
end
end
end
end
Das wird dir jetzt zwar nicht wirklich viel helfen, aber wenn du das "when" durch nen "login" beginnen lässt, heißt das, dass jedes mal wenn sich jemand mit lvl 5, 10 , 95 einloggt die Nachricht erneut erscheint, da sowohl "login" als auch "pc.get_level == 5, 10, 95" erfüllt sind.Quote:
PHP Code:quest lvl begin
state start begin
when login begin
if pc.get_level == 25 then
notice_all(""..pc.get_name().." hat level 25 erreicht.")
elseif pc.get_level == 30 then
notice_all(""..pc.get_name().." hat level 30 erreicht.")
elseif pc.get_level == 35 then
notice_all(""..pc.get_name().." hat level 35 erreicht.")
elseif pc.get_level == 40 then
notice_all(""..pc.get_name().." hat level 40 erreicht.")
elseif pc.get_level == 45 then
notice_all(""..pc.get_name().." hat level 45 erreicht.")
elseif pc.get_level == 50 then
notice_all(""..pc.get_name().." hat level 50 erreicht.")
elseif pc.get_level == 55 then
notice_all(""..pc.get_name().." hat level 55 erreicht.")
elseif pc.get_level == 60 then
notice_all(""..pc.get_name().." hat level 60 erreicht.")
elseif pc.get_level == 65 then
notice_all(""..pc.get_name().." hat level 65 erreicht.")
elseif pc.get_level == 70 then
notice_all(""..pc.get_name().." hat level 70 erreicht.")
elseif pc.get_level == 75 then
notice_all(""..pc.get_name().." hat level 75 erreicht.")
elseif pc.get_level == 80 then
notice_all(""..pc.get_name().." hat level 80 erreicht.")
elseif pc.get_level == 85 then
notice_all(""..pc.get_name().." hat level 85 erreicht.")
elseif pc.get_level == 90 then
notice_all(""..pc.get_name().." hat level 90 erreicht.")
elseif pc.get_level == 95 then
notice_all(""..pc.get_name().." hat level 95 erreicht.")
elseif pc.get_level == 99 then
notice_all(""..pc.get_name().." hat level 99 erreicht.")
end
end
end
end
Warum funktioniert diese quest ingame nicht?
pc.get_level()
state gototeacher begin
when letter begin
local v=find_npc_by_vnum(20354)
if 0==v then
else
target.vid("__TARGET__", v, "Gehe zum Stadtwächter") --- Stelle 1
end
end
when letter begin
send_letter("Gehe zum Stadtwächter!") --- Stelle 2
end
wie läss man denn die Quest so abfragen WENN einer das level erreicht, das es dann im chat steht?Quote:
Das wird dir jetzt zwar nicht wirklich viel helfen, aber wenn du das "when" durch nen "login" beginnen lässt, heißt das, dass jedes mal wenn sich jemand mit lvl 5, 10 , 95 einloggt die Nachricht erneut erscheint, da sowohl "login" als auch "pc.get_level == 5, 10, 95" erfüllt sind.
Als Fehler vermute ich, dass sie nicht ganz korrekt eingefügt ist.
Und ich bin mir grad nicht ganz sicher, aber es kann sein, dass wenn du nur eine if-funktion in einer when-funktion hast, diese auch eine "allgemeine Alternative" benötigt, also dass sie am Ende noch ein "else - return" braucht... bin mir da aber nicht sicher...
Edit: grad bemerkt, woran es wahrscheinlich liegt, der befehl zur Levelabfrage lautet richtig:
Also dir fehlen die zwei Klammern da am Ende.Code:pc.get_level()
quest beran_dropp begin
state start begin
when login with pc.get_level() >= 1 begin
set_state(kill)
end
end
state kill begin
when 2493.kill begin
chat("Du hast den Beran-Setou getoetet!")
pc.give_item2(500001, 1)
end
end
end
Der Befehl heißt richtig:Quote:
Es kommt kein Fehler in Virtual Box aber die Quest schreibt weder den chat noch gibt sie mir das Item. Was steckt dahinter? :)HTML Code:quest beran_dropp begin state start begin when login with pc.get_level() >= 1 begin set_state(kill) end end state kill begin when 2493.kill begin chat("Du hast den Beran-Setou getoetet!") pc.give_item2(500001, 1) end end end
set_state( kill )
quest beran_dropp begin
state start begin
when 2493.kill begin
chat("Du hast den Beran-Setou getoetet!")
pc.give_item2(500001, 1)
end
end
end