|
You last visited: Today at 22:18
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
04/27/2011, 00:15
|
#2131
|
elite*gold: 5
Join Date: Dec 2010
Posts: 356
Received Thanks: 181
|
Dann versuch es mal so:
PHP Code:
quest Information begin
state start begin
when login begin
set_state("information")
end
end
state information begin
when letter begin
send_letter("Server Regeln")
end
when button or info begin
say_title("Server Regeln")
----"12345678901234567890123456789012345678901234567890"|
say("Gehe zum Informationsstand, er wird dir,")
say("unsere Server Regeln erklären.")
say("Euer HollisterMt2 Team.")
say("")
set_state(gotoinfostand)
end
end
state gotoinfostand begin
when letter begin
local v=find_npc_by_vnum(30000)
if v!=0 then
target.vid("__TARGET__", v, "Geh zum Info-Stand")
send_letter("Komm zu mir!")
end
end
when __TARGET__.target.click or 30000.chat."Info-Stand" begin
target.delete("__TARGET__")
say("Info-Stand :")
----"12345678901234567890123456789012345678901234567890"|
say("Erst erklär ich dir mal, warum du unsere Regeln,")
say("lesen sollst.")
say("Also, unsere Regeln sind wichtig, da du wissen sollst,")
say("dass du keine Scheiße bauen sollst, denn sonst kriegste,")
say("einen saftigen Bann.")
say("Nun denn, willst du unsere Regeln lesen? Es wäre hilfreich.")
say("")
local s = select("Ja, bin mal brav","Nein, keine Zeit")
if s==1 then
set_state(regelnfangenan)
else
say("Naja, nicht wundern, wenn du auf einmal,")
say("einen Bann hast..")
say("")
clear_letter()
q.done()
end
end
end
state regelnfangenan begin
when letter begin
send_letter("Regeln fangen an.")
end
when button or info begin
say("Info-Stand:")
----"12345678901234567890123456789012345678901234567890"|
say("#1 Kein Hacken")
say("#2 Keine Beleidigungen")
say("#3 Keine Erpressung")
say("#4 Der GM, hat immer RECHT.")
say("#5 Alle Regeln sind einzuhalten.")
say("Bei weiteren Fragen frage einen [GM].")
say("Wirst du diese Regeln einhalten?")
say("")
local s = select("Ja","Nein")
if s==1 then
say("Guuuut, dann sag ich dem Stadtwächter,")
say("dass er dich nicht besuchen soll.")
clear_letter()
else
say("Ich glaube, mein Freund der Stadtwächter,")
say("muss dir einen Besuch abstatten :P")
say("Naja, weiterhin Viel Spaß, auf")
say("HollisterMt2")
say("")
clear_letter()
q.done()
end
end
end
end
|
|
|
04/27/2011, 00:15
|
#2132
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Quote:
Originally Posted by 53enes
Ups failed aber lies dir mal mein edit durch pls
€dit:Kannst du das pls machen? Ich blick bei dir nicht durch 
|
Ich wollte nur wissen ob du ingame den ersten Brief schon geöffnet hast
€: ja nimm mal die von .ReDDoX™
|
|
|
04/27/2011, 00:19
|
#2133
|
elite*gold: 0
Join Date: Apr 2010
Posts: 135
Received Thanks: 50
|
Soo, nun endlich geschafft. Danke nochmals
|
|
|
04/27/2011, 12:16
|
#2134
|
elite*gold: 0
Join Date: Jan 2011
Posts: 499
Received Thanks: 82
|
ich habe ausversehen alle horse.quests gelöscht. quests die ich noch retten konnte:
horse_ride.quest
horse_upgrade.quest
horse_upgrade2.quest
horse_mg.quest (selbst gemacht!)
ich brauche die horse_quest wo man pferd ruft. wenn ich auf miligaul-buch klicke, passiert nix, garnix!  help me.
könntet ihr die datei in anhang reintuhen ODER den text rein? ich kann ja den text dann in eine neue quest.datei reintuhen und filezilla rein. hauptsache ich rufe dieses pferd..
#edit
problem gelöst, hab mein köpfchen angestrengt und die sufu benutzt.. (warum hab ich das nicht früher gemacht?  )
|
|
|
04/27/2011, 12:30
|
#2135
|
elite*gold: 32
Join Date: Dec 2010
Posts: 1,294
Received Thanks: 862
|
PHP Code:
quest horse_summon begin state start begin function get_horse_summon_prob_pct() local skill_level=pc.get_skill_level(131) if skill_level==1 then return 15 elseif skill_level==2 then return 20 elseif skill_level==3 then return 30 elseif skill_level==4 then return 40 elseif skill_level==5 then return 50 elseif skill_level==6 then return 60 elseif skill_level==7 then return 70 elseif skill_level==8 then return 80 elseif skill_level==9 then return 90 elseif skill_level>=10 then return 100 end return 10 end when 20349.chat."Pferdebild verloren." with horse.get_grade()==1 and pc.countitem("50051")<1 begin say("Wie ich sehe hast") say("du dein Pferdebild verloren.") local b=select("Ein neues bitte.", "Ist doch egal.") if 1==b then if pc.money>=10000 then pc.changemoney(-10000) say("Hier ist dein neues Pferdebild.") say("Verlier es nicht wieder.") pc.give_item2("50051", 1) else say("Du hast nicht genug Yang.") end elseif 2==b then else say("UNKNOWN BUTTON ["..b.."]") end end when 20349.chat."Waffen-Pferdebuch verloren." with horse.get_grade()==2 and pc.countitem("50052")<1 begin say("Wie ich sehe hast") say("du dein Waffen-Pferdebuch verloren.") local b=select("Ein neues bitte.", "Ist doch egal.") if 1==b then if pc.money>=50000 then pc.changemoney(-50000) say("Hier ist dein neues Waffen-Pferdebuch.") say("Verlier es nicht wieder.") pc.give_item2("50052", 1) else say("Du hast nicht genug Yang.") end elseif 2==b then else say("UNKNOWN BUTTON ["..b.."]") end end when 20349.chat."Militär-Pferdebuch verloren." with horse.get_grade()==3 and pc.countitem("50053")<1 begin say("Wie ich sehe hast") say("du dein Militär-Pferdebuch verloren.") local b=select("Ein neues bitte.", "Ist doch egal.") if 1==b then if pc.money>=100000 then pc.changemoney(-100000) say("Hier ist dein neues Militär-Pferdebuch.") say("Verlier es nicht wieder.") pc.give_item2("50053", 1) else say("Du hast nicht genug Yang.") end elseif 2==b then else say("UNKNOWN BUTTON ["..b.."]") end end when 50051.use with horse.get_grade()==0 begin say("Du besitzt kein Pferd!") end when 50051.use with horse.get_grade()==1 begin if pc.getsp()>=100 then if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then say("Dein Pferd wurde gerufen.") say("") horse.summon() else say("Es hat leider nicht geklappt") say("dein Pferd zu rufen.") say("Versuche es noch einmal.") end pc.change_sp(-100) else say("Du hast nicht genug Mana") say("um dein Pferd zu rufen.") say("Du benötigst 100 Mana") end end when 50051.use with horse.get_grade()==2 begin say("Du benutzt ein falsches Pferdebild.") end when 50051.use with horse.get_grade()==3 begin say("Du benutzt ein falsches Pferdebild.") end when 50052.use with horse.get_grade()==0 begin say("Du benutzt ein falsches Pferdebild.") end when 50052.use with horse.get_grade()==1 begin say("Du benutzt ein falsches Pferdebild.") end when 50052.use with horse.get_grade()==2 begin if pc.getsp()>=200 then if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then say("Dein Pferd wurde gerufen.") say("") horse.summon() else say("Es hat leider nicht geklappt") say("dein Pferd zu rufen.") say("Versuche es noch einmal.") end pc.change_sp(-200) else say("Du hast nicht genug Mana") say("um dein Pferd zu rufen.") say("Du benötigst 200 Mana") end end when 50052.use with horse.get_grade()==3 begin say("Du benutzt ein falsches Pferdebild.") end when 50053.use with horse.get_grade()==0 begin say("Du benutzt ein falsches Pferdebild.") end when 50053.use with horse.get_grade()==1 begin say("Du benutzt ein falsches Pferdebild.") end when 50053.use with horse.get_grade()==2 begin say("Du benutzt ein falsches Pferdebild.") end when 50053.use with horse.get_grade()==3 begin if pc.getsp()>=300 then if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then say("Dein Pferd wurde gerufen.") say("") horse.summon() else say("Es hat leider nicht geklappt") say("dein Pferd zu rufen.") say("Versuche es noch einmal.") end pc.change_sp(-300) else say("Du hast nicht genug Mana") say("um dein Pferd zu rufen.") say("Du benötigst 300 Mana") end end end state __COMPLETE__ begin when enter begin q.done() end end end
Das ist die horse_summon.quest aus den '10er Files
|
|
|
04/27/2011, 12:40
|
#2136
|
elite*gold: 0
Join Date: Jan 2011
Posts: 499
Received Thanks: 82
|
Quote:
Originally Posted by Googler77
PHP Code:
quest horse_summon begin
state start begin
function get_horse_summon_prob_pct() local skill_level=pc.get_skill_level(131) if skill_level==1 then return 15 elseif skill_level==2 then return 20 elseif skill_level==3 then return 30 elseif skill_level==4 then return 40 elseif skill_level==5 then return 50 elseif skill_level==6 then return 60 elseif skill_level==7 then return 70 elseif skill_level==8 then return 80 elseif skill_level==9 then return 90 elseif skill_level>=10 then return 100 end return 10 end
when 20349.chat."Pferdebild verloren." with horse.get_grade()==1 and pc.countitem("50051")<1 begin
say("Wie ich sehe hast")
say("du dein Pferdebild verloren.")
local b=select("Ein neues bitte.", "Ist doch egal.")
if 1==b then
if pc.money>=10000 then
pc.changemoney(-10000)
say("Hier ist dein neues Pferdebild.")
say("Verlier es nicht wieder.")
pc.give_item2("50051", 1)
else
say("Du hast nicht genug Yang.")
end
elseif 2==b then
else
say("UNKNOWN BUTTON ["..b.."]")
end
end
when 20349.chat."Waffen-Pferdebuch verloren." with horse.get_grade()==2 and pc.countitem("50052")<1 begin
say("Wie ich sehe hast")
say("du dein Waffen-Pferdebuch verloren.")
local b=select("Ein neues bitte.", "Ist doch egal.")
if 1==b then
if pc.money>=50000 then
pc.changemoney(-50000)
say("Hier ist dein neues Waffen-Pferdebuch.")
say("Verlier es nicht wieder.")
pc.give_item2("50052", 1)
else
say("Du hast nicht genug Yang.")
end
elseif 2==b then
else
say("UNKNOWN BUTTON ["..b.."]")
end
end
when 20349.chat."Militär-Pferdebuch verloren." with horse.get_grade()==3 and pc.countitem("50053")<1 begin
say("Wie ich sehe hast")
say("du dein Militär-Pferdebuch verloren.")
local b=select("Ein neues bitte.", "Ist doch egal.")
if 1==b then
if pc.money>=100000 then
pc.changemoney(-100000)
say("Hier ist dein neues Militär-Pferdebuch.")
say("Verlier es nicht wieder.")
pc.give_item2("50053", 1)
else
say("Du hast nicht genug Yang.")
end
elseif 2==b then
else
say("UNKNOWN BUTTON ["..b.."]")
end
end
when 50051.use with horse.get_grade()==0 begin
say("Du besitzt kein Pferd!")
end
when 50051.use with horse.get_grade()==1 begin
if pc.getsp()>=100 then
if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then
say("Dein Pferd wurde gerufen.")
say("")
horse.summon()
else
say("Es hat leider nicht geklappt")
say("dein Pferd zu rufen.")
say("Versuche es noch einmal.")
end
pc.change_sp(-100)
else
say("Du hast nicht genug Mana")
say("um dein Pferd zu rufen.")
say("Du benötigst 100 Mana")
end
end
when 50051.use with horse.get_grade()==2 begin
say("Du benutzt ein falsches Pferdebild.")
end
when 50051.use with horse.get_grade()==3 begin
say("Du benutzt ein falsches Pferdebild.")
end
when 50052.use with horse.get_grade()==0 begin
say("Du benutzt ein falsches Pferdebild.")
end
when 50052.use with horse.get_grade()==1 begin
say("Du benutzt ein falsches Pferdebild.")
end
when 50052.use with horse.get_grade()==2 begin
if pc.getsp()>=200 then
if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then
say("Dein Pferd wurde gerufen.")
say("")
horse.summon()
else
say("Es hat leider nicht geklappt")
say("dein Pferd zu rufen.")
say("Versuche es noch einmal.")
end
pc.change_sp(-200)
else
say("Du hast nicht genug Mana")
say("um dein Pferd zu rufen.")
say("Du benötigst 200 Mana")
end
end
when 50052.use with horse.get_grade()==3 begin
say("Du benutzt ein falsches Pferdebild.")
end
when 50053.use with horse.get_grade()==0 begin
say("Du benutzt ein falsches Pferdebild.")
end
when 50053.use with horse.get_grade()==1 begin
say("Du benutzt ein falsches Pferdebild.")
end
when 50053.use with horse.get_grade()==2 begin
say("Du benutzt ein falsches Pferdebild.")
end
when 50053.use with horse.get_grade()==3 begin
if pc.getsp()>=300 then
if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then
say("Dein Pferd wurde gerufen.")
say("")
horse.summon()
else
say("Es hat leider nicht geklappt")
say("dein Pferd zu rufen.")
say("Versuche es noch einmal.")
end
pc.change_sp(-300)
else
say("Du hast nicht genug Mana")
say("um dein Pferd zu rufen.")
say("Du benötigst 300 Mana")
end
end
end
state __COMPLETE__ begin
when enter begin
q.done()
end
end
end
Das ist die horse_summon.quest aus den '10er Files
|
hab die quest schon^^ vor 10 min schnell neue quest mit dem text was du da hast und einfach filezilla rein  trotzdem danke!
|
|
|
04/27/2011, 18:36
|
#2137
|
elite*gold: 0
Join Date: Sep 2009
Posts: 1,489
Received Thanks: 1,221
|
PHP Code:
quest Pferdemedaille begin
state start begin
local cost = 10000000
when 50050.use begin
say_title("Pferdemedaille")
say("Hiermit kannst du dein Pferd 1 Level steigern.")
say("Dies kostet dich 10.000.000 Yang!")
say("")
say("Möchtest du wirklich fortfahren?")
local main_set = select("Ja", "Nein")
if main_set == 2 then
return
end
if horse.get_level() == 30 then
say_title("Pferdemedaille")
say("Dein Pferd ist schon Level 30!")
say("Du kannst es nicht weiter trainieren.")
return
end
if pc.gold < cost then
say_title("Pferdemedaille")
say("Du hast leider nicht genug Yang!")
return
end
if main_set == 1 then
say_title("Pferdemedaille")
say_reward("Dein Pferd ist ein Level gestiegen!")
say_reward("Du hast nun 10.000.000 Yang weniger!")
horse.advance()
pc.changegold(-cost)
item.remove()
return
end
end
end
end
Meine erste Quest (:
Richtig so?
|
|
|
04/27/2011, 18:47
|
#2138
|
elite*gold: 5
Join Date: Dec 2010
Posts: 356
Received Thanks: 181
|
Quote:
Originally Posted by .xD1997™
PHP Code:
quest Pferdemedaille begin state start begin local cost = 10000000 when 50050.use begin say_title("Pferdemedaille") say("Hiermit kannst du dein Pferd 1 Level steigern.") say("Dies kostet dich 10.000.000 Yang!") say("") say("Möchtest du wirklich fortfahren?") local main_set = select("Ja", "Nein") if main_set == 2 then return end if horse.get_level() == 30 then say_title("Pferdemedaille") say("Dein Pferd ist schon Level 30!") say("Du kannst es nicht weiter trainieren.") return end if pc.gold < cost then say_title("Pferdemedaille") say("Du hast leider nicht genug Yang!") return end if main_set == 1 then say_title("Pferdemedaille") say_reward("Dein Pferd ist ein Level gestiegen!") say_reward("Du hast nun 10.000.000 Yang weniger!") horse.advance() pc.changegold(-cost) item.remove() return end end end end
Meine erste Quest (:
Richtig so?
|
Hey
Das freut mich das in letzter Zeit die " Neulinge" in Sachen Quest schreiben nur noch so wenig Fehler machen 
Ich habe trotzdem ein wenig umgeschrieben, damit sie auch 100% so klappt, wie sie soll.
PHP Code:
quest Pferdemedaille begin state start begin when 50050.use begin say_title("Pferdemedaille") say("Hiermit kannst du dein Pferd 1 Level steigern.") say("Dies kostet dich 10.000.000 Yang!") say("") say("Möchtest du wirklich fortfahren?") local main_set = select("Ja", "Nein") local cost = 10000000 if main_set == 2 then return elseif main_set == 1 then if horse.get_level() == 30 then say_title("Pferdemedaille") say("Dein Pferd ist schon Level 30!") say("Du kannst es nicht weiter trainieren.") return elseif pc.gold < cost then say_title("Pferdemedaille") say("Du hast leider nicht genug Yang!") return elseif pc.get_money() >= cost and horse.get_level() < 30 then say_title("Pferdemedaille") say_reward("Dein Pferd ist ein Level gestiegen!") say_reward("Du hast nun 10.000.000 Yang weniger!") horse.advance() pc.changegold(-cost) item.remove() return end end end end end
Vergleich einfach mal beide Quests & falls du noch Fragen hast, warum ich das so gemacht habe, kannst du mich gerne per PN oder einfach hier fragen.
|
|
|
04/27/2011, 18:55
|
#2139
|
elite*gold: 0
Join Date: Sep 2009
Posts: 1,489
Received Thanks: 1,221
|
Werd mich gleich nochmal daransetzen. Macht irgendwie fun
Was der Unterschied zwischen if und elseif?
|
|
|
04/27/2011, 18:57
|
#2140
|
elite*gold: 15
Join Date: Jul 2010
Posts: 3,926
Received Thanks: 1,158
|
Quote:
Originally Posted by .xD1997™
Werd mich gleich nochmal daransetzen. Macht irgendwie fun
Was der Unterschied zwischen if und elseif?
|
z.b.
if blalba then
say("hi")
elseif blablabla then
return
end
|
|
|
04/27/2011, 19:01
|
#2141
|
elite*gold: 0
Join Date: Sep 2009
Posts: 1,489
Received Thanks: 1,221
|
Quote:
Originally Posted by .Scy
z.b.
if blalba then
say("hi")
elseif blablabla then
return
end
|
Achso, Danke.
Kenn ich auch so ähnlich von C++, da heißt es halt statt elseif nur else ^^
|
|
|
04/27/2011, 19:03
|
#2142
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Quote:
Originally Posted by .xD1997™
Achso, Danke.
Kenn ich auch so ähnlich von C++, da heißt es halt statt elseif nur else ^^
|
wenn du nur 2 Auswahlmöglicheiten/Ereignise hast kannst du auch if und else nehmen
|
|
|
04/27/2011, 19:04
|
#2143
|
elite*gold: 5
Join Date: Dec 2010
Posts: 356
Received Thanks: 181
|
Quote:
Originally Posted by .xD1997™
Was der Unterschied zwischen if und elseif?
|
Naja, eigentlich ist da kein Unterschied, ich habs früher auch immer mit if gemacht, aber dann wurde mir mal gesagt, dass wenn die Quest lange ist und es viele if's gibt man besser elseif benutzen soll.
Quote:
Originally Posted by .Delta
wenn du nur 2 Auswahlmöglicheiten/Ereignise hast kannst du auch if und else nehmen 
|
^meins in Kurzfassung 
€: Waren noch ein paar Fehler drin die ich übersehen hab e.e' Sollte aber jetzt richtig sein.
|
|
|
04/27/2011, 19:18
|
#2144
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
auch wenn ich nicht gerne über Reddox's Version poste, würde ich das in dem Fall doch so machen 
Kannst aber gerne Reddox version nehmen, die er jetzt ja gefixxt hat.
Ist nur ein anderer Vorschlag, den ich für besser halte
PHP Code:
quest Pferdemedaille begin
state start begin
when 50050.use begin
say_title("Pferdemedaille")
say("Hiermit kannst du dein Pferd 1 Level steigern.")
say("Dies kostet dich 10.000.000 Yang!")
say("")
say("Möchtest du wirklich fortfahren?")
local main_set = select("Ja", "Nein")
local cost = 10000000
if main_set == 1 then
if horse.get_level() == 30 then
say_title("Pferdemedaille")
say("Dein Pferd ist schon Level 30!")
say("Du kannst es nicht weiter trainieren.")
return
end
if pc.get_money() < cost then
say_title("Pferdemedaille")
say("Du hast leider nicht genug Yang!")
return
end
if pc.get_money() >= cost and horse.get_level() < 30 then
say_title("Pferdemedaille")
say_reward("Dein Pferd ist ein Level gestiegen!")
say_reward("Du hast nun 10.000.000 Yang weniger!")
horse.advance()
pc.changegold(-cost)
item.remove()
end
elseif main_set == 2 then
return
end
end
end
end
PS: Sry .ReDDoX™
|
|
|
04/27/2011, 19:21
|
#2145
|
elite*gold: 5
Join Date: Dec 2010
Posts: 356
Received Thanks: 181
|
Quote:
Originally Posted by .Delta
auch wenn ich nicht gerne über Reddox's Version poste, würde ich das in dem Fall doch so machen 
Kannst aber gerne Reddox version nehmen, die er jetzt ja gefixxt hat.
Ist nur ein anderer Vorschlag, den ich für besser halte
PHP Code:
quest Pferdemedaille begin
state start begin
when 50050.use begin
say_title("Pferdemedaille")
say("Hiermit kannst du dein Pferd 1 Level steigern.")
say("Dies kostet dich 10.000.000 Yang!")
say("")
say("Möchtest du wirklich fortfahren?")
local main_set = select("Ja", "Nein")
local cost = 10000000
if main_set == 1 then
if horse.get_level() == 30 then
say_title("Pferdemedaille")
say("Dein Pferd ist schon Level 30!")
say("Du kannst es nicht weiter trainieren.")
return
end
if pc.get_money() < cost then
say_title("Pferdemedaille")
say("Du hast leider nicht genug Yang!")
return
end
if pc.get_money() >= cost and horse.get_level() < 30 then
say_title("Pferdemedaille")
say_reward("Dein Pferd ist ein Level gestiegen!")
say_reward("Du hast nun 10.000.000 Yang weniger!")
horse.advance()
pc.changegold(-cost)
item.remove()
end
elseif main_set == 2 then
return
end
end
end
end
PS: Sry .ReDDoX™ 
|
Die end's zwischen den " if pc.get_money() < cost then" und so müssen aber eigentlich auch noch weg. 
Außerdem hab ich die Quest schon in meinem anderen Beitrag editiert. (  ) 
|
|
|
All times are GMT +1. The time now is 22:18.
|
|