|
You last visited: Today at 22:23
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
01/23/2011, 21:45
|
#1321
|
elite*gold: 0
Join Date: Mar 2008
Posts: 146
Received Thanks: 196
|
@RealFreak
mach mal die größer vier abfrage in die ifabfrage rein:
PHP Code:
when 1403.kill begin if number(1,5)==1 then pc.give_item2(30188,1) pc.setqf("gläser",pc.getqf("gläser")+1) if pc.getqf("gläser")>=4 then setstate(rw2) say("Gut gemacht!") say("Besorge nun noch 6 Versteinerte Tränen!") say("Diese musst du dir erkämpfen.") say_item_vnum(30186) end --if end --if end --when end --state
und bau noch ein
pc.setqf("gläser",0)
vor
PHP Code:
say_item_vnum(30188) say_reward("4 Vulkanglas") setstate(vulkangas)
|
|
|
01/24/2011, 17:55
|
#1322
|
elite*gold: 0
Join Date: Jan 2011
Posts: 160
Received Thanks: 92
|
Hallo, wo liegt der fehler, ich kirge in VPC diesen Fehler:
syntax error: [string "run"]:1: `=´ expected near `pc´
high.quest_39:Abort trap (core dumped)
Und hier die Quest:
Code:
quest high begin
state run begin
when 91001.use begin
If pc.get_level() > 80 then
say_title("Ein neues Gebiet")
say("")
say("Mit Hilfe dieses magischen Amuletts")
say("bietet sich dir die Möglichkeit dich")
say("in ein neues Gebietzu teleportieren.")
say("")
say("")
say("Möchtest du dich in das neu entdeckte")
say("Gebiet Teleportieren?")
say("")
say("")
say_reward("Information:")
say("Das Item verschwindet nach dem teleportieren.")
say("")
local s = select ("Ja Teleportieren", "Nein, ich bleibe hier")
if s == 1 then
pc.warp (338900, 338900)
pc.remove_item(91001, 1)
else
return
else
say_title("Ein neues Gebiet")
say("")
say("Leider bist du noch nicht reif genug")
say("ffür dieses Gebiet. Es lauern gefährliche")
say("und hinterlistige Monster dort.")
say("")
say("")
say_reward("Versuche es erneut wenn du")
say_reward("stärker bist.")
say("")
return
end -- if.level
end -- item.usw
end -- state.begin
end -- quest.start
|
|
|
01/24/2011, 20:19
|
#1323
|
elite*gold: 0
Join Date: May 2010
Posts: 131
Received Thanks: 45
|
du hast vergessen die Auswahl zwischen Ja Teleportieren und Ich bleibe hier zu beenden.
sprich da muss noch nen end nach return rein, dann sollte es funktionieren.
grüße
Habs mir mal kurz angeschaut, da is noch was anderes..mein testserver muckt gerade ständig wegen i-was auf..
ich schaus mir morgen nochmal an wenn Mastermonkey nicht schneller ist
|
|
|
01/25/2011, 11:56
|
#1324
|
elite*gold: 0
Join Date: Jul 2008
Posts: 29
Received Thanks: 7
|
PHP Code:
----------------------------------------------------
-- Grotte der Verbannung -- Entry Quest ----90005---
-- @ Hwa-Hae eintritt -- ID 20092 -- Wasserstein --
----------------------------------------------------
quest kristallkammer begin
state start begin
when 20092.chat."Um Einlass bitten" begin
say_title("Hwa-Hae")
say("")
say("Halt! Ich bin Hwa-Hae vom Drachenorden, Hüterin")
say("des Portals. Nur mit Erlaubnis des Ordens und")
say("wenn du mir ein Wasserstein vorzeigen kannst,")
say("darfst du die Kammer von Beran-Setaou betreten!")
if pc.count_item(90005) >= 1 and pc.level >= 75 then
local s=select("Wasserstein geben", "Wasserstein behalten")
if s==1 then
pc.remove_item(90005,1)
pc.warp(1717,12204)
else
return
end
else
say_reward("Wassersteine kannst du vom Sensenmann bekommen!")
end
end
end
end
Hey leute mein problem ist das wenn ich den Npc anklicke nichts passiert Vpc Fehler habe ich keinen. Hoffe ihr könnt helfen danke im vorraus...
|
|
|
01/25/2011, 12:39
|
#1325
|
elite*gold: 20
Join Date: Oct 2010
Posts: 1,303
Received Thanks: 457
|
Haha Quest vom Betaserver nachgebaut
hat dein NPC in der DB on_click auf 1?
|
|
|
01/25/2011, 12:47
|
#1326
|
elite*gold: 0
Join Date: Jul 2008
Posts: 29
Received Thanks: 7
|
Joa hat er aber on_click war doch eigentlich nur für shops ?!
|
|
|
01/25/2011, 15:21
|
#1327
|
elite*gold: 0
Join Date: Jan 2010
Posts: 1,916
Received Thanks: 538
|
Was ist daran falsch?
Quote:
quest event_map begin
state start begin
when login or levelup with pc.level >0 begin
set_state(newmap_enter)
end
end
state newmap_enter begin
when 20006.chat."Neue Map" with pc.level >= 95 begin
say(""..mob_name(20006)..":")
say("")
say("Wilkommen Reisender !!")
say("")
say("Wohin soll ich dich denn Teleportieren??")
say("")
local a= select("Shajong Map","Nein Danke")
if 1==a then
say(""..mob_name(20006)..":")
say("")
say("Let's Go")
say("Ich wünsche dir viel spaß !!")
wait()
pc.warp(105200 , 10000)
elseif 2==a then
say(""..mob_name(20006)..":")
say("")
say("Ok")
say("Dann bleib hier")
end
end
end
end
|
|
|
|
01/25/2011, 15:40
|
#1328
|
elite*gold: 20
Join Date: Oct 2010
Posts: 1,303
Received Thanks: 457
|
PHP Code:
quest event_map begin state start begin when 20006.chat."Neue Map" with pc.level >= 95 begin say(""..mob_name(20006)..":") say("") say("Wilkommen Reisender !!") say("") say("Wohin soll ich dich denn Teleportieren??") say("") local a= select("Shajong Map","Nein Danke") if a == 1 then say(""..mob_name(20006)..":") say("") say("Let's Go") say("Ich wünsche dir viel spaß !!") wait() pc.warp(105200 , 10000) else say(""..mob_name(20006)..":") say("") say("Ok") say("Dann bleib hier") end end end end
Da hattest du aber einige Fehler...
|
|
|
01/25/2011, 21:10
|
#1329
|
elite*gold: 0
Join Date: Mar 2008
Posts: 146
Received Thanks: 196
|
@ .remiinD
Sehr simpler fehler diesmal:
ja ich war schneller shaylan
das end wie shaylan schon sagte fehlte und was viele nicht wissen, der erste queststate muss immer start heißen!
Hier bittesehr!
Über thx wäre ich sehr verbunden auch wenn das nichts bringt 
Vllt stärkt es mein ego^^.
PHP Code:
quest high begin state start begin when 91001.use begin If pc.get_level() > 80 then say_title("Ein neues Gebiet") say("") say("Mit Hilfe dieses magischen Amuletts") say("bietet sich dir die Möglichkeit dich") say("in ein neues Gebietzu teleportieren.") say("") say("") say("Möchtest du dich in das neu entdeckte") say("Gebiet Teleportieren?") say("") say("") say_reward("Information:") say("Das Item verschwindet nach dem teleportieren.") say("") local s = select ("Ja Teleportieren", "Nein, ich bleibe hier") if s == 1 then pc.warp (338900, 338900) pc.remove_item(91001, 1) else return end else say_title("Ein neues Gebiet") say("") say("Leider bist du noch nicht reif genug") say("ffür dieses Gebiet. Es lauern gefährliche") say("und hinterlistige Monster dort.") say("") say("") say_reward("Versuche es erneut wenn du") say_reward("stärker bist.") say("") return end -- if.level end -- item.usw end -- state.begin end -- quest.start
|
|
|
01/25/2011, 22:31
|
#1330
|
elite*gold: 6
Join Date: May 2010
Posts: 1,227
Received Thanks: 1,628
|
Quest sieht jetzt so aus:
PHP Code:
quest blutstein begin
state start begin
when login or levelup with pc.level >= 75 begin
set_state(info)
end
end
state info begin
when letter begin
send_letter("Geh zum Weisen Mann")
local v = find_npc_by_vnum(20095)
if v != 0 then
target.vid("__TARGET__", v, "Der Blutstein")
end
end
when info or button begin
say_title("Der Blutstein")
say("Der Weise Mann ist der Meinung du bist reif genug")
say("um dir einen Blutstein für den Zugang zur Grotte zu verdienen!")
end
when __TARGET__.target.click or 20095.chat."Der Blutstein" with pc.level >= 75 begin
target.delete("__TARGET__")
say_title("Weiser Mann:")
say("Hallo!")
say("Möchtest du dir einen Blutstein verdienen?")
say("Ich warne dich!")
say("Es ist keine leichte Aufgabe!")
say("Willst du beginnen?")
local s= select("Auf gehts!","Nein danke")
if s==1 then
say("Nungut!")
say("Als erstes musst du Vulkanglas besorgen!")
say("Dies kriegst du von Tausendkämpfern im Land der Riesen")
say_item_vnum(30188)
say_reward("4 Vulkanglas")
setstate(vulkangas)
pc.setqf("gläser",0)
else
say("Eine gute Entscheidung!")
say("Auf Wiedersehn")
end
end
end
state vulkangas begin
when letter begin
send_letter("Suche das Vulkanglas!")
end
when info or button begin
say("Besorge 4 Vulkanglas")
say("Dies erhälst du von Tausendkämpfern")
end
when 1403.kill begin
local pct = number(1,5)
if pct==1 then
pc.give_item2(30188,1)
pc.setqf("gläser",pc.getqf("gläser")+1)
end
if pc.getqf("gläser")>=4 then
say("Gut gemacht!")
say("Besorge nun noch 6 Versteinerte Tränen!")
say("Diese musst du dir erkämpfen.")
say_item_vnum(30186)
pc.setqf("tränen",0)
setstate(rw2)
end
end
end
state rw2 begin
when letter begin
send_letter("Erkämpfe dir die Tränen!")
end
when info or button begin
say("Besorge 6 Versteinerte Tränen")
say("Dies erhälst du von Tigergeistern")
end
when 1304.kill begin
local pct = number(1,2)
if pct==1 then
pc.give_item2(30186,1)
pc.setqf("tränen",pc.getqf("tränen")+1)
end
if pc.getqf("tränen")>=6 then
say("Gut gemacht!")
say("Kehre zurück zum Weisen Mann!")
setstate(rw)
end
end
end
state rw begin
when letter begin
local v = find_npc_by_vnum(20095)
if v != 0 then
target.vid("__TARGET__", v, "Quest")
end
send_letter("Gehe zurück zum Weisen Mann!")
end
when button or info begin
say("Gehe zum Weisen Mann zurück!")
end
when __TARGET__.target.click or
20095.chat."Quest" begin
target.delete("__TARGET__")
say("..das glaubst du!")
say("Aber das ist noch nicht alles!")
wait()
if pc.count_item(30186) >= 2 and pc.count_item(30188)>= 4 then
pc.remove_item(30186,2)
pc.remove_item(30188,4)
pc.give_item2(30189,1)
say("Gut gemacht")
say("Hier hast du Tränen von Baljit-Elvedi")
say("Gehe nun in den roten Wald")
say("")
say_item_vnum(30189)
say("")
say("Und suche die geheimnisvolle Stimme!")
say("Sie wird dir die Tränen zu einem Blutstropfen machen!")
setstate(blut)
else
say("Du hast nicht alle benötigten Items!")
end
end
end
state blut begin
when letter begin
send_letter("Suche die Stimme")
träne = {
{ 195, 211},
{ 326, 302},
{ 527, 90},
{ 616, 257},
{ 702, 262},
{ 674, 38},
}
local r2 = number(1,6)
target.pos("träne", träne[r2][1], träne[r2][2], 68, "")
end
when info or button begin
say("Suche die geheimnisvolle Stimme im roten Wald!")
end
when träne.target.arrive begin
target.delete("träne")
say("Sei gegrüßt!")
say("Ich bin die geheimnisvolle Stimme...")
wait()
if pc.count_item(30189) >0 then
pc.remove_item(30189,1)
pc.give_item2(30187,1)
say("Ich mache die Tränen von Baljit-Elvedi zu einem Blutstropfen")
say("...")
say("Hier bitte ein Blutstropfen!")
say_item_vnum(30187)
say_reward("Blutstropfen erhalten!")
setstate(stein)
else
say("Du hast die Träne nicht bei dir!")
say("Komm wieder wenn du sie gefunden hast...")
träne = {
{ 195, 211},
{ 326, 302},
{ 527, 90},
{ 616, 257},
{ 702, 262},
{ 674, 38},
}
local r2 = number(1,6)
target.pos("träne", träne[r2][1], träne[r2][2], 68, "")
end
end
end
state stein begin
when letter begin
local v = find_npc_by_vnum(20095)
if v != 0 then
target.vid("__TARGET__", v, "Quest2")
end
send_letter("Kehre zurück zum Weisen Mann")
end
when button or info begin
say("Gehe zu Weisen Mann zurück und gib ihm den Blutstropfen!")
say()
end
when __TARGET__.target.click or
20095.chat."Quest2" begin
target.delete("__TARGET__")
if pc.count_item(30187) <= 0 then
say("Lüge!")
else
pc.remove_item(30187,1)
pc.give_item2(30190,1)
say("Gut gemacht!")
say("Hier hast du den Blutstein!")
say("Du hast ihn dir verdient!")
say_reward("Blutstein erhalten")
say_item_vnum(30190)
clear_letter()
end
end
end
end
Falls ich auslogge und wieder einlogge klappen die counts nicht mehr.
Dann kann man bis zu 200 Vulkangläser haben ohne dass irgendwas passiert.
Was muss ich da ergänzen?
mfG RealFreak
|
|
|
01/26/2011, 19:38
|
#1331
|
elite*gold: 121
Join Date: Feb 2008
Posts: 654
Received Thanks: 411
|
Hey Com,
Hier mal meine quest womit Ich ein problem hab...
PHP Code:
quest pony_buy_pvp begin state start begin when 20349.chat."Horse" with horse.get_grade()==0 and pc.level >= 25 begin say("So you want a Horse to travel faster?") say("Then show me what you can!") say("Prove me that you are worth it by") say("killing 10 Players of another Kingdom!") say_reward("Kill 10 Players of another Kingdom!") say("") set_state(player_kill1) end end
state player_kill1 begin when letter begin send_letter("Kill enemies of other Kingdoms") end
when button or info begin say("So you want a Horse to travel faster?") say("Then show me what you can!") say("Prove me that you are worth it by") say("killing 10 Players of another Kingdom!") say_reward("Kill 10 Players of another Kingdom!") say("") pc.setqf("state", 10) q.set_counter("kills", 10) set_state (kills2) end end state kills2 begin when letter begin send_letter("Kill players") end when button or info or letter begin say_title("Stable Boy:") say_reward( "You have "..pc.getqf("state").." Players left to kill.") say("") end
when kill begin if npc.is_pc() and npc.empire != pc.empire then local count = pc.getqf("state") - 1 if count <= 10 then pc.setqf("state", count) q.set_counter("kills", -count) end if count == 0 then target.vid("__TARGET__", 20349, "") set_state(reward) end end
when TARGET.click with horse.get_grade()==0 and pc.level >= 25 begin if pc.getqf("state") - 1 <= 0 then say_title("Congratulation!") say("You proved to be courageous and strong!") say("You deserve to be rewarded.") say("Here, take this.") say_reward("Level 1 Pony") say_reward("500.000 Gold") say_reward("1.000.000 EXP") pc.change_money(500000) pc.give_item2(50051, 1) pc.give_exp2(1000000) horse.advance() horse.summon() clear_letter() set_state(__COMPLETE__) end end end
state __COMPLETE__ begin end end
Beim compilen dieser quest bekomme Ich diesen Fehler:
PHP Code:
syntax error : [string "kills2"]:12: unexpected symbol near `when´ pony_buy_pvp.quest:74:Abort trap (core dumped) Error occured on compile pony_buy_pvp.quest
Was ist falsch? Ich sehe da keine falsche "symbole" neben kein "when"..
Danke im voraus.
Legend
|
|
|
01/27/2011, 15:11
|
#1332
|
elite*gold: 0
Join Date: Jan 2011
Posts: 160
Received Thanks: 92
|
€: Diehier klappt immernoch nicht, auch nachdem ich sie von monkey "richtig" bekommen habe, aber da kommt immernoch im VPC :
syntax erorr : [string "start"]:17: `=´ expected near `pc´
high.quest:47:Abort trap (core dumped)
PHP Code:
quest high begin state start begin when 80010.use begin say_title("Ein neues Gebiet") say("") say("Mit Hilfe dieses magischen Amuletts") say("bietet sich dir die Möglichkeit dich") say("in ein neues Gebietzu teleportieren.") say("") say("") say("Möchtest du dich in das neu entdeckte") say("Gebiet Teleportieren?") say("") say("") say_reward("Information:") say("Das Item verschwindet nach dem teleportieren.") say("") local s = select ("Ja Teleportieren", "Nein, ich bleibe hier") if s == 1 then If pc.get_level() >= 80 then say_title("Du wirst teleportiert") say("") say("Du wirst nun teleportiert, das Amulett des Nebels") say("verschwindet nun.") say("Viel Glück!") say("") pc.warp (823900, 823900) pc.remove_item(80010, 1) else say_title("Du wurst nicht teleportiert") say("") say("Leider bist du noch nicht stark genug") say("um dich mit diesem Amulett zu teleportieren!") say("Kommespäter wieder.") say("") return end else say_title("Du wirst nicht teleportiert") say("") say("Die Göttin der Nacht aktzeptiert deine Entscheidung.") say("Du bleibst in diesem Gebiet.") say("") return end end end end end
|
|
|
01/27/2011, 16:49
|
#1333
|
elite*gold: 121
Join Date: Feb 2008
Posts: 654
Received Thanks: 411
|
Quote:
Originally Posted by .remiinD
€: Diehier klappt immernoch nicht, auch nachdem ich sie von monkey "richtig" bekommen habe, aber da kommt immernoch im VPC :
syntax erorr : [string "start"]:17: `=´ expected near `pc´
high.quest:47:Abort trap (core dumped)
|
PHP Code:
quest high begin state start begin when 80010.use begin say_title("Ein neues Gebiet") say("") say("Mit Hilfe dieses magischen Amuletts") say("bietet sich dir die Möglichkeit dich") say("in ein neues Gebietzu teleportieren.") say("") say("") say("Möchtest du dich in das neu entdeckte") say("Gebiet Teleportieren?") say("") say("") say_reward("Information:") say("Das Item verschwindet nach dem teleportieren.") say("") local s = select ("Ja Teleportieren", "Nein, ich bleibe hier") if s == 1 then If pc.get_level() >= 80 then say_title("Du wirst teleportiert") say("") say("Du wirst nun teleportiert, das Amulett des Nebels") say("verschwindet nun.") say("Viel Glück!") say("") pc.warp (823900, 823900) pc.remove_item(80010, 1) else say_title("Du wurst nicht teleportiert") say("") say("Leider bist du noch nicht stark genug") say("um dich mit diesem Amulett zu teleportieren!") say("Kommespäter wieder.") say("") return end else say_title("Du wirst nicht teleportiert") say("") say("Die Göttin der Nacht aktzeptiert deine Entscheidung.") say("Du bleibst in diesem Gebiet.") say("") return end end end end
Da war ein "end" zu viel. Außerdem muss das Item auch in der DB auf "ankilckbar" eingestellt werden sonst wirst du die Quest nicht ans laufen kriegen.
Benutz mal für dein quest item die antiflag, type, flag usw vom z.b. Seelenstein oder irgendeinen anderen item was anklickbar ist.
Müsste funktionieren.. zumindest hab ich es so gemacht mit einer meiner quests.
Gruß
Legend
|
|
|
01/27/2011, 17:08
|
#1334
|
elite*gold: 0
Join Date: Jan 2011
Posts: 160
Received Thanks: 92
|
Das itm ist anklickbar, und entbuggt, aber das end zuvuiel weiss ich, warn fehlern aber auch ohne das 5. end kommt der gleiche fehler, es muss ja iwas nicht mit dem state und dem end vom state nicht stimmen, sagt vpc ja
|
|
|
01/27/2011, 18:26
|
#1335
|
elite*gold: 121
Join Date: Feb 2008
Posts: 654
Received Thanks: 411
|
Haste versucht die beiden "return" zu entfernen? Sind eigentlich überflüßig weil das skript eh nichts weiter ausführen kann wegen den if-else statements..
|
|
|
All times are GMT +1. The time now is 22:25.
|
|