[SERVICE] Die Questkontrolle

01/21/2011 17:15 alex9560#1306
Quote:
Originally Posted by .2good4you111 View Post
@Alex,

ist 2595 überhaupt ein NPC?

Tippe mal eher das du den 20095er gemeint hast...
Du kannst nemlich bei einem Mob keinen Quest annehmen/abgeben.
Ne, ich habe eine Stadt mit Dämonen als NPC`s gebaut. ^_^

Einer der Dämonen steht in der Grotte als "Dämonischer Schamane". Dieser soll die Dracheneier wegnehmen und Drachen hinspawnen. Es funktioniert auch bis auf das, dass der NPC keinen Roten- / Wasser- Drachen spawnt. :(

HELP, quest hab ich bereits weiter vorne gepostet :rolleyes:
01/21/2011 17:18 .NoThx#1307
ja dann sag mir was die make.sh dazu sagt und ich schau ma rüber
01/21/2011 17:19 alex9560#1308
Nix, die Quest funzt. Aber es kommt kein Drachen :(


hier hab ich Quest gepostet:
[Only registered and activated users can see links. Click Here To Register...]
01/21/2011 17:22 .NoThx#1309
PHP Code:
quest drachen2 begin 
    state start begin 
        when 2595.chat
."Roter Drache" begin 
            say_title
(""..mob_name(2595)..""
            
say("Der Rote Drache ist eine Legende. Angeblich lebt"
            
say("der Drache in dieser Grotte. Vielleicht laesst"
            
say("er sich durch ein legendaeres Drachenei aus"
            
say("seinem versteck locken!"
            
say(""
            
say("Wenn du willst, dass ich ihn für dich raus locke,"
            
say("benoetigen wir folgendes:"
            
say_reward("1 Legendaeres Drachenei"
            
say(""
            
wait()             
            if 
pc.count_item("54321")>=1 then 
                say
(""
                
say_title(""..mob_name(2595)..""
                
say("Du besitzt ein Legendaeres Drachenei!"
                
say("Gib es mir, ich versuche es..."
                
say(""
                
say(""
                
say_reward("Da kommt er, kannst du ihn hören?"
                
pc.remove_item(543211
                
mob.spawn(22911
            else 
                
say(""
                
say_title(""..mob_name(2595)..""
                
say("Du bist leider nicht im Besitz von"
                
say("1 Legendaeren Drachenei!"
                
say("Ohne es kann es nicht funktionieren."
                return 
            
end 
        end 
            
        when 2595.chat
."Wasser Drache" begin 
            say_title
(""..mob_name(2595)..""
            
say("Von dem Wasserdrachen gibt es einen Mythos,"
            
say("angeblich bruetet sie an der Seite des"
            
say("Roten Drachen versteckt in dieser Grotte ihre"
            
say("mystischen Dracheneier aus. Vielleicht kann man"
            
say("sie mit einem dieser Eier aus ihrem Versteck locken"
            
say("Wenn du einen Kampf gegen sie willst,"
            
say("benoetigst du folgendes:"
            
say_reward("1 Mystisches Drachenei"
            
say(""
            
say(""
            
wait() 
            if 
pc.count_item("54322")>=0 then 
                say
(""
                
say_title(""..mob_name(2595)..""
                
say("Du hast ein mystisches Drachenei!"
                
say(""
                
say("Erfolg... omg, da kommt sie ja schon!"
                
pc.remove_item(543221
                
mob.spawn(2493
            else 
                
say(""
                
say_title(""..mob_name(2595)..""
                
say("Du bist nicht im Besitz von einem mystischen"
                
say("Drachenei. Ohne Drachen kein Drache!"
                return 
            
end 
        end 
         
        when 2595.chat
."Raus Hier!" begin 
            say_title
(""..mob_name(2595)..""
            
say("Du willst also hier raus?"
            
say("Hast du vielleicht ein Drachenei?"
            
say("Nur hier kannst du die mystischen Wesen"
            
say("Rufen! an dem Ort mit der größten Magie!"
            
say(""
            
say("Wenn du zu deiner Mutter willst,"
            
say("sollst du halt gehen"
            
say_reward("ich bringe dich nach Hause..."
            
say(""
            
say(""
            
wait() 
            if 
pc.count_item("30024")>=0 then 
                say
(""
                
say_title(""..mob_name(2595)..""
                
say("Hoffe du kommst bald wieder..."
                
say(""
            else 
                
say(""
                
say_title(""..mob_name(2595)..""
                
say("Ich helfe dir gerne beim Drachen rufen!"
                
say("Bring auf jeden Fall ein Drachenei mit!"
                
say("Bis Bald!"
                return 
                
pc.warp(28418097)                
            
end 
        end 
         
    end 
end 
Ich habe beim mob spawnen ma das , 1 entfernt und
pc.countitem()
gegen
pc.count_item()
ersetzt
01/21/2011 23:21 ~shaylan~#1310
@ .NoThx

tausche das
PHP Code:
mob.spawn(22911
mal gegen
PHP Code:
oh.spawnmob(2291
aus.

Jetzt zu meinem Problem ^^

PHP Code:
quest test begin
    state start begin
        when 20018.chat
."Test Bonus" begin
            say
("Wähle bonus ID")
            
local ID=input()
            
say("Wähle einen Wert")
            
local wert=input()
            
say("wähle eine zeit aus in sekunden")
            
local time=input()
            
say("Bonus ID: "..ID.."")
            
say("Bonus Wert: "..wert.."")
            
say("Zeit Wert: "..time.."")
            
affect.add_collect("..ID..","..wert..","..time..")
        
end  
    end
end 
Kein Fehler in VPC, NPC sagt die fragen und Inputboxen auch an.
nur der bonus wird nicht angehangen..

grüße
01/22/2011 01:03 alex9560#1311
Quote:
Originally Posted by ~shaylan~ View Post
@ .NoThx

tausche das
PHP Code:
mob.spawn(22911
mal gegen
PHP Code:
oh.spawnmob(2291
aus.
Jaaa, es funktioniert *_*
<3lichen Dank, ich such jetzt ein paar Posts von dir und hau da ein THX rein :D:handsdown:
01/22/2011 01:37 .2good4you111#1312
ihr wisst schon das oh.xy für monarch steht...

Also wenn ihr könig seid,
mob.spawn(2291)
müsste eig genügen
01/22/2011 03:45 Mastermonkey#1313
@.NoThx

du möchtest in deiner Quest locale Variabeln benutzen, machst das in deiner Quest aber nicht immer richtig...

Eine locale Variable erzeugt man mit

Code:
local nameDERvariable= undHIERwasDARINgespeichertWERDENsoll
oder
Code:
local nameDERvariable
später kann man dann auf diesen erzeugten Platzhalter mit
Code:
nameDERvariable= undHIERwasDARINgespeichertWERDENsoll
zurückgreifen.

Also mit dem Befehl local erzeugt man locale Variablen.

Du benutzt allerdings einige Male 'locale' statt 'local' somit erzeugst du keine locale Variable...

Dann benutzt du folgende abfrage:
Code:
 if send then
Was soll hiermit bezweckt werden?
ich vermute mal es soll überprüft werden ob gesendet werden soll..
also ->
Code:
  local news = input()
say(news)         
local send = select("Senden","Abbrechen")
if send==1 then
notice_all("..news..")
end
Jetzt zu ein paar unwichtigen Schönheitsfehlern:
1. (..nameDERvariable..) die Punkte und Klammern werden nicht benötigt.
Diese benötigt man erst, wenn man zusätze mitgeben will z.B. Zahlen dann säe es so aus:
(nameDERvariable..3) das wäre das gleiche als hätte man mit local die Variable nameDERvariable3 erzeugt ;D

2.Wo du die Mobnummer abfragst nennst du die Variable 'how'
Nach meinen Englischkenntnissen heißt das 'Wie'. Wenn du es als 'Wer' abspeichern willst müsstest du die Variable 'who' nennen.
(Aber das ist nicht wichtig für die Quest nur für den Scripter um die Quest später mal wieder nachzuvollziehen.)

Und nun deine teilweise fertige Quest....
Sie wird nicht so funktionieren, wie du es dir vorgestellt hast, da du bei den GM-Optionen kein Auswahlmenü eingebaut hast.
Code:
local auswahl= select("OX-Event","Spawn-Event","Serverboni-Event","Ankündigung schreiben","Schließen")
Du solltest aber in der Lage sein das einzubauen ;)

PHP Code:
quest markusquest begin
    state start begin
        when 9003.chat
."Tränke" begin
        npc
.open_shop(1)
        
end
        when 9003.chat
."Itemshop" begin
        npc
.open_shop(2)
        
end
        when 9003.chat
."Frisuren" begin
        npc
.open_shop(3)
        
end
        when 9003.chat
."Uppitems" begin
        npc
.open_shop(3)
        
end
        when 9003.chat
."Steine" begin
        npc
.open_shop(3)
        
end
        when 9003.chat
."Das Alter" begin
        
if pc.is_gm() then
        npc
.open_shop(4)
        else
        
say("Ist das altwerden nich schrecklich?")
        
end
        end
        when 9003.chat
."Diese welt°!" begin
        
if pc.is_gm() then
        say_title
("GM Komando Zentrale")
        
say("Möchtest du OX Starten?")
        
local ox select("Ja""Nein")
        if 
ox == 2 then
            
return
        
end
        
if ox == 1 then
        oxevent
.open()
        
command("go ox")
        
end
        say
("Möchtest du ein Spawn event starten?")
        
local sp select("Ja""Nein")
        if 
sp == 2 then
            
return
        
end
        
if sp == 1 then
        say
("Welches Monster Soll Gespawnt werden?")
        
local how input()
        
say("Wie oft? bei 0 wird 1 monster gespwnt")
        
local many input()
        
say(" Jetzt Spawn event beginnen?")
        
local bes select("Ja""Nein")
        if 
bes 2 then
            
return
        
end
        
if bes 1 then
        mob
.spawn(howmany)
        
end
        say
("Server Boni Event")
        
say("")
        
say("Was Soll Erhöht werden?")
        
local eboni select("Item""Yang""Exp""Nichts")
        
say("um Wv %?")
        
local emuch input()
        
say("Wie lange")
        
local elong input()
        if 
eboni 4 then
            
return
        
end
           
if eboni 1 then 
            command
("priv_empire 0 1:item_drop "..emuch.." "..elong.."")
            
end 
        
if eboni 2 then
        command
("priv_empire 0 2:gold_drop "..emuch.." "..elong.."")
        
end
            
if eboni 3 then
            command
("priv_empire 0 4:exp "..emuch.." "..elong.."")
            
            
end
        say
("Ankündigung schreiben")
         
local news input()
         
local send select(Send)
         if 
send then
         notice_all
("..news..")
         else
         
say("Ich muss imemr weinen wenn ich uriel sehen")
         
end
         end
         
--Seon-Pyeong
         when 20091.chat
."Das Wunder" begin
         say_title
("Wunder")
         
say("Hey! ja du!")
         
say("Ich habe ein verfahren entwickelt um Steine und Waffen zu steigern!")
         
say("Jedoch geht das nur mit speziellen steinen und waffen")
         
say_reward("Um steine ab +3 zu uppen zieh den stein einfach auf den NPC")
         
local geil select("Ich hab es verstanden!""Erzähl weiter")
         if 
"..geil.." == 1 then
            
return
            
end
        
if "..geil.." == 2 then
        say
("Okay Du willst mehr?")
        
say("ich Biete dir Spezielle items an di du zum uppen der steine braust an KOSTENLOS")
        
say("Jedoch kostet das öffnen des 1kk also 1 Millionen yang")
        
pc.change_money(-1000000)
        
npc.open_shop(5)
        
say("Hier hats du dein Shop")
         
end
        end
         when 20091.chat
."Ein Neuer König muss her!" with pc.is_gm begin
         say
("Möchtest du die wahlen eröffnen?")
         
local wahl select("Ja""Nein")
         
end
         
if wahl == 2 then
            
return
        
end
        
if wahl == 1 then
        say
("Die Wahlen haben Begonnen")
        
notice_all("Die Wahlen zum server König Haben begonnen!")
        
notice_all("Geht zu Seon-Pyeong um eure stimme abzugeben")
        
game.set_event_flag("wahlbegin")
        
end
        end
        when 20091.chat
."Die königswahlen schlißen" with pc.is_gm() begin
        say
("Möchtest du die wahlen schlißben?")
        
local wahlzumachen select("Ja""nein")
        
end
        
if wahlzumachen == 2 then
        
return
        
end
        
if wahlzumachen == 1 then
        game
.set_event_flag("votingclosed")
        
end
        when 20091.chat
."Ich moechte wählen" begin
        
if game.get_event_flage() == votingclosed then
        say
("Sorry,die wahlen sind zu!")
        
confirm(Okay)
        else
        
say_title("Wahlen")
        
say("Die Wahlen haben begonnen!")
        
say("Möchtest Du deine stimme abgeben?")
        
say("Aber Beachte,das du nur eine stimme hast!")
        
say_reward("Wählen?")
        
local mwahl select("Ja""Nein")
        
end
        end
        
if mwahl == 2 then
            
return
        
end
        
if mwahl == 1 then
        say
("Okay, du kannst nun wählen")
        
say_reward("Gib bitte den Korrekten namen ein!")
        
local thename input()
        
end
        
if == pc.get_name then
        say
("Wie bitte?")
        
say("Ich dein versuch dich selbst zu wählen hat dich deine stimme gekostet!")
        
q.set_state(diewahliszu)
        else
        
say("Deine Stimme wurde wurde erfolgreich entgegen genommen")
        if 
game.get_event_flag("thename") == 1 then
        pc
.setqf("thename"pc.getqf("name") + 1)
        
end
        end
    end
end 
##################################################
##################################################
@~shaylan~

benutze beim abspeichern in die localen Variablen diese Funktion:
Code:
tonumber(input(""))
das wandelt deine eingabe in eine zahl um
verschiedene Datentypen sag ich nur (String, INT,...)
input() speichert als String (Zeichenkette) und tonumber() wandelt diese Zeichenkette dann in eine Zahl um.

Außerdem werden auch bei dir die überflüssigen Punkte und Klammern nicht benötigt..
Code:
affect.add_collect("..ID..","..wert..","..time..")
Hier nun deine Quest:
PHP Code:
quest test begin
    state start begin
        when 20018.chat
."Test Bonus" begin
            say
("Wähle bonus ID")
            
local ID=tonumber(input(""))
            
say("Wähle einen Wert")
            
local wert=tonumber(input(""))
            
say("wähle eine zeit aus in sekunden")
            
local time=tonumber(input(""))
            
say("Bonus ID: "..ID)
            
say("Bonus Wert: "..wert)
            
say("Zeit Wert: "..time)
            
affect.add_collect(ID,wert,time)
        
end  
    end
end 
01/22/2011 10:46 ~shaylan~#1314
man lernt nie aus :rolleyes:
klappt super, danke.

grüße
01/22/2011 17:43 DasKuchen#1315
schön das ihr alle so berichtigt aber wäre nett wenn ihr mir bei meiner helft
werde immer übersehen


PHP Code:
quest poly2 begin
    state start begin
        when 40004.
use."Weißer Tiger" begin
            say_title 
"" .. mob_name 40004 ) .. " : " )
            
say("Hallo willst du dich verwandeln?")
            
say("In einen weißen Tiger?")
            
say("Für 5 Minuten")
            
say("Sicher das du dich verwandeln willst?")
            
local b=select "Ja" "Nein" )
            if 
1==b then
                    say_title 
"" .. mob_name 40004 ) .. " : " )
                    
say("Du wurdest verwandelt")
                    
wait()
                    
pc.polymorph(115300)
                
end
            
elseif 2==b then
                say_title 
"" .. mob_name 40004 ) .. " : " )
                
say("Dann halt nicht.")
                return
            
end
        end
        when 40004.
use."Schwarzwindbesessener" begin
            say_title 
"" .. mob_name 40004 ) .. " : " )
            
say("Hallo willst du dich verwandeln?")
            
say("In einen Schwarzwindbessesenen?")
            
say("Für 5 Minuten")
            
say("Sicher das du dich verwandeln willst?")
            
local b=select "Ja" "Nein" )
            if 
1==b then
                    say_title 
"" .. mob_name 40004 ) .. " : " )
                    
say("Du wurdest verwandelt")
                    
wait()
                    
pc.polymorph(402300)
                
end
            
elseif 2==b then
                say_title 
"" .. mob_name 40004 ) .. " : " )
                
say("Dann halt nicht.")
                return
            
end
        end
        when 40004.
use."Wilder Ergebener" begin
            say_title 
"" .. mob_name 40004 ) .. " : " )
            
say("Hallo willst du dich verwandeln?")
            
say("In einen Wilden ergebenen?")
            
say("Für 5 Minuten")
            
say("Sicher das du dich verwandeln willst?")
            
local b=select "Ja" "Nein" )
            if 
1==b then
                    say_title 
"" .. mob_name 40004 ) .. " : " )
                    
say("Du wurdest verwandelt")
                    
wait()
                    
pc.polymorph(552300)
                
end
            
elseif 2==b then
                say_title 
"" .. mob_name 40004 ) .. " : " )
                
say("Dann halt nicht.")
                return
            
end
        end
        when 40004.
use."Wilder Infanterist" begin
            say_title 
"" .. mob_name 40004 ) .. " : " )
            
say("Hallo willst du dich verwandeln?")
            
say("in einen Wilden Inferantrist")
            
say("Für 5 Minuten")
            
say("Sicher das du dich verwandeln willst?")
            
local b=select "Ja" "Nein" )
            if 
1==b then
                    say_title 
"" .. mob_name 40004 ) .. " : " )
                    
say("Du wurdest verwandelt")
                    
wait()
                    
pc.polymorph(551300)
                
end
            
elseif 2==b then
                say_title 
"" .. mob_name 40004 ) .. " : " )
                
say("Dann halt nicht.")
                return
            
end
        end
        when 40004.
use."Giftspinne" begin
            say_title 
"" .. mob_name 40004 ) .. " : " )
            
say("Hallo willst du dich verwandeln?")
            
say("In eine Giftspinne?")
            
say("Für 5 Minuten")
            
say("Sicher das du dich verwandeln willst?")
            
local b=select "Ja" "Nein" )
            if 
1==b then
                    say_title 
"" .. mob_name 40004 ) .. " : " )
                    
say("Du wurdest verwandelt")
                    
wait()
                    
pc.polymorph(2062300)
                
end
            
elseif 2==b then
                say_title 
"" .. mob_name 40004 ) .. " : " )
                
say("Dann halt nicht.")
                return
            
end
        end
        when 40004.
use."Flammenkönig" begin
            say_title 
"" .. mob_name 40004 ) .. " : " )
            
say("Hallo willst du dich verwandeln?")
            
say("In einen Flammenkönig?")
            
say("Für 5 Minuten")
            
say("Sicher das du dich verwandeln willst?")
            
local b=select "Ja" "Nein" )
            if 
1==b then
                    say_title 
"" .. mob_name 40004 ) .. " : " )
                    
say("Du wurdest verwandelt")
                    
wait()
                    
pc.polymorph(2206300)
                
end
            
elseif 2==b then
                say_title 
"" .. mob_name 40004 ) .. " : " )
                
say("Dann halt nicht.")
                return
            
end
        end
        when 40004.
use."Gem.Geist Schwertmeister" begin
            say_title 
"" .. mob_name 40004 ) .. " : " )
            
say("Hallo willst du dich verwandeln?")
            
say("In einen Gem.Geist Schwertmeister?")
            
say("Für 5 Minuten")
            
say("Sicher das du dich verwandeln willst?")
            
local b=select "Ja" "Nein" )
            if 
1==b then
                    say_title 
"" .. mob_name 40004 ) .. " : " )
                    
say("Du wurdest verwandelt")
                    
wait()
                    
pc.polymorph(1068300)
                
end
            
elseif 2==b then
                say_title 
"" .. mob_name 40004 ) .. " : " )
                
say("Dann halt nicht.")
                return
            
end
        end
        when 40004.
use."Neunschwanz" begin
            say_title 
"" .. mob_name 40004 ) .. " : " )
            
say("Hallo willst du dich verwandeln?")
            
say("In einen Neunschwanz?")
            
say("Für 5 Minuten")
            
say("Sicher das du dich verwandeln willst?")
            
local b=select "Ja" "Nein" )
            if 
1==b then
                    say_title 
"" .. mob_name 40004 ) .. " : " )
                    
say("Du wurdest verwandelt")
                    
wait()
                    
pc.polymorph(1901300)
                
end
            
elseif 2==b then
                say_title 
"" .. mob_name 40004 ) .. " : " )
                
say("Dann halt nicht.")
                return
            
end
        end
        when 40004.
use."Gelber Tigergeist" begin
            say_title 
"" .. mob_name 40004 ) .. " : " )
            
say("Hallo willst du dich verwandeln?")
            
say("In einen Gelben Tigergeist?")
            
say("Für 5 Minuten")
            
say("Sicher das du dich verwandeln willst?")
            
local b=select "Ja" "Nein" )
            if 
1==b then
                    say_title 
"" .. mob_name 40004 ) .. " : " )
                    
say("Du wurdest verwandelt")
                    
wait()
                    
pc.polymorph(1304300)
                
end
            
elseif 2==b then
                say_title 
"" .. mob_name 40004 ) .. " : " )
                
say("Dann halt nicht.")
                return
            
end
        end
        when 40004.
use."Tausendkämpfer" begin
            say_title 
"" .. mob_name 40004 ) .. " : " )
            
say("Hallo willst du dich verwandeln?")
            
say("In einen Tausendkämpfer?")
            
say("Für 5 Minuten")
            
say("Sicher das du dich verwandeln willst?")
            
local b=select "Ja" "Nein" )
            if 
1==b then
                    say_title 
"" .. mob_name 40004 ) .. " : " )
                    
say("Du wurdest verwandelt")
                    
wait()
                    
pc.polymorph(1403300)
                
end
            
elseif 2==b then
                say_title 
"" .. mob_name 40004 ) .. " : " )
                
say("Dann halt nicht.")
                return
            
end
        end
        when 40004.
use."Blauer Tod" begin
            say_title 
"" .. mob_name 40004 ) .. " : " )
            
say("Hallo willst du dich verwandeln?")
            
say("In einen Blauen Tod?")
            
say("Für 5 Minuten")
            
say("Sicher das du dich verwandeln willst?")
            
local b=select "Ja" "Nein" )
            if 
1==b then
                    say_title 
"" .. mob_name 40004 ) .. " : " )
                    
say("Du wurdest verwandelt")
                    
wait()
                    
pc.polymorph(1095300)
                
end
            
elseif 2==b then
                say_title 
"" .. mob_name 40004 ) .. " : " )
                
say("Dann halt nicht.")
                return
            
end
        end 
Fehler :
[Only registered and activated users can see links. Click Here To Register...]
01/22/2011 18:12 mufkeksy#1316
Quote:
Originally Posted by DasKuchen View Post
schön das ihr alle so berichtigt aber wäre nett wenn ihr mir bei meiner helft
werde immer übersehen

Einfach "elseif" durch "if" ersetzen ...
würde dann so aussehen :
PHP Code:
quest poly2 begin
    state start begin
        when 40004.
use."Weißer Tiger" begin
            say_title 
("Verwandeln : ")
            
say("Hallo willst du dich verwandeln?")
            
say("In einen weißen Tiger?")
            
say("Für 5 Minuten")
            
say("Sicher das du dich verwandeln willst?")
            
local b=select ("Ja","Nein")
            if 
1==b then
                    say_title 
("Verwandeln : ")
                    
say("Du wurdest verwandelt")
                    
wait()
                    
pc.polymorph(115300)
                
end
            
if 2==b then
                say_title 
Verwandeln ")
                say("
Dann halt nicht.")
                return
            end
        end
        when 40004.use."
Schwarzwindbesessener" begin
            say_title ("
Verwandeln :")
            say("
Hallo willst du dich verwandeln?")
            say("
In einen Schwarzwindbessesenen?")
            say("
Für 5 Minuten")
            say("
Sicher das du dich verwandeln willst?")
            local c=select ("
Ja","Nein")
            if 1==c then
                    say_title ("
Verwandeln :")
                    say("
Du wurdest verwandelt")
                    wait()
                    pc.polymorph(402, 300)
                end
            if 2==c then
                say_title ( "
Verwandeln " )
                say("
Dann halt nicht.")
                return
            end
        end
        when 40004.use."
Wilder Ergebener" begin
            say_title ("
Verwandeln :")
            say("
Hallo willst du dich verwandeln?")
            say("
In einen Wilden ergebenen?")
            say("
Für 5 Minuten")
            say("
Sicher das du dich verwandeln willst?")
            local d=select ("
Ja" ,"Nein")
            if 1==d then
                    say_title ("
Verwandeln :")
                    say("
Du wurdest verwandelt")
                    wait()
                    pc.polymorph(552, 300)
                end
            if 2==d then
                say_title ("
Verwandeln :")
                say("
Dann halt nicht.")
                return
            end
        end
        when 40004.use."
Wilder Infanterist" begin
            say_title ("
Verwandeln :")
            say("
Hallo willst du dich verwandeln?")
            say("
in einen Wilden Inferantrist")
            say("
Für 5 Minuten")
            say("
Sicher das du dich verwandeln willst?")
            local e=select ( "
Ja" , "Nein" )
            if 1==e then
                    say_title ("
Verwandeln ")
                    say("
Du wurdest verwandelt")
                    wait()
                    pc.polymorph(551, 300)
                end
            if 2==e then
                say_title ("
Verwandeln ")
                say("
Dann halt nicht.")
                return
            end
        end
        when 40004.use."
Giftspinne" begin
            say_title ("
Verwandeln :")
            say("
Hallo willst du dich verwandeln?")
            say("
In eine Giftspinne?")
            say("
Für 5 Minuten")
            say("
Sicher das du dich verwandeln willst?")
            local b=select ("
Ja","Nein")
            if 1==f then
                    say_title ("
Verwandeln :")
                    say("
Du wurdest verwandelt")
                    wait()
                    pc.polymorph(2062, 300)
                end
            if 2==f then
                say_title ("
Verwandeln :")
                say("
Dann halt nicht.")
                return
            end
        end
        when 40004.use."
Flammenkönig" begin
            say_title ("
Verwandeln ")
            say("
Hallo willst du dich verwandeln?")
            say("
In einen Flammenkönig?")
            say("
Für 5 Minuten")
            say("
Sicher das du dich verwandeln willst?")
            local b=select ("
Ja","Nein")
            if 1==g then
                    say_title ("
Verwandeln :")
                    say("
Du wurdest verwandelt")
                    wait()
                    pc.polymorph(2206, 300)
                end
            if 2==g then
                say_title ("
Verwandeln ")
                say("
Dann halt nicht.")
                return
            end
        end
        when 40004.use."
Gem.Geist Schwertmeister" begin
            say_title ("
Verwandeln ")
            say("
Hallo willst du dich verwandeln?")
            say("
In einen Gem.Geist Schwertmeister?")
            say("
Für 5 Minuten")
            say("
Sicher das du dich verwandeln willst?")
            local b=select ("
Ja","Nein")
            if 1==h then
                    say_title ("
Verwandeln ")
                    say("
Du wurdest verwandelt")
                    wait()
                    pc.polymorph(1068, 300)
                end
            if 2==h then
                say_title ("
Verwandeln ")
                say("
Dann halt nicht.")
                return
            end
        end
        when 40004.use."
Neunschwanz" begin
            say_title ("
Verwandeln ")
            say("
Hallo willst du dich verwandeln?")
            say("
In einen Neunschwanz?")
            say("
Für 5 Minuten")
            say("
Sicher das du dich verwandeln willst?")
            local i=select ("
Ja","Nein")
            if 1==i then
                    say_title ("
Verwandeln :")
                    say("
Du wurdest verwandelt")
                    wait()
                    pc.polymorph(1901, 300)
                end
            if 2==i then
                say_title ("
Verwandeln :")
                say("
Dann halt nicht.")
                return
            end
        end
        when 40004.use."
Gelber Tigergeist" begin
            say_title ("
Verwandeln :")
            say("
Hallo willst du dich verwandeln?")
            say("
In einen Gelben Tigergeist?")
            say("
Für 5 Minuten")
            say("
Sicher das du dich verwandeln willst?")
            local b=select ("
Ja","Nein")
            if 1==b then
                    say_title ("
Verwandeln :")
                    say("
Du wurdest verwandelt")
                    wait()
                    pc.polymorph(1304, 300)
                end
            if 2==b then
                say_title ("
Verwandeln ")
                say("
Dann halt nicht.")
                return
            end
        end
        when 40004.use."
Tausendkämpfer" begin
            say_title ("
Verwandeln :")
            say("
Hallo willst du dich verwandeln?")
            say("
In einen Tausendkämpfer?")
            say("
Für 5 Minuten")
            say("
Sicher das du dich verwandeln willst?")
            local b=select ("
Ja","Nein")
            if 1==b then
                    say_title ("
Verwandeln ")
                    say("
Du wurdest verwandelt")
                    wait()
                    pc.polymorph(1403, 300)
                end
            if 2==b then
                say_title ("
Verwandeln ")
                say("
Dann halt nicht.")
                return
            end
        end
        when 40004.use."
Blauer Tod" begin
            say_title ("
Verwandeln :")
            say("
Hallo willst du dich verwandeln?")
            say("
In einen Blauen Tod?")
            say("
Für 5 Minuten")
            say("
Sicher das du dich verwandeln willst?")
            local b=select ("
Ja","Nein")
            if 1==b then
                    say_title ("
Verwandeln :")
                    say("
Du wurdest verwandelt")
                    wait()
                    pc.polymorph(1095, 300)
                end
            if 2==b then
                say_title ("
Verwandeln :")
                say("
Dann halt nicht.")
                return
            end
            when 40004.use."
Zurueck Verwandeln" begin
            pc.polymorph(0)
            return
        end
        end
        end 
01/23/2011 12:52 DasKuchen#1317
geht nicht
01/23/2011 14:03 ~shaylan~#1318
Vom Grundgedanken her ist die Quest ja gut aufgebaut nur ein paar Formulierungen sind nicht so hübsch gewählt.

PHP Code:
if 1==b then
    say_title 
"" .. mob_name 40004 ) .. " : " )
    
say("Du wurdest verwandelt")
    
wait()
    
pc.polymorph(115300)
end
elseif 2==b then
    say_title 
"" .. mob_name 40004 ) .. " : " )
    
say("Dann halt nicht.")
    return
end 
Vor dem Verwandlungsbefehl kannst du das wait() weglassen.
Desweiteren nimmt man bei Entscheidungen wo nur 2 was vorgegeben wird die Variante
PHP Code:
if b==1 then
    say_title
(""")
else
    say_title ("")
end 
Musst du nicht machen, aber es sieht übersichtlicher aus (Meine Meinung).

dann steht noch bei dir drinn
PHP Code:
if 1==b then 
Das bedeutet wenn 1 exakt dem b entspricht dann...
Du hast aber vorher festgelegt das die Auswahl die Variabel "b" bekommen soll.

Es geht glaube auch so wie du es genommen hast, bin mir aber nicht sicher ;)

Bei mir hat es nicht geklappt auf ein Item mehrere Funktionen zu legen wie auf einen NPC. Da hab ich die Auswahl mal auf die erste Seite gelegt und man wird danach gleich verwandelt.


Grüße
01/23/2011 14:27 Mastermonkey#1319
@shaylan

Warst etwas schneller ;D

Aber noch ne kleine Anmerkung zu deinem ifschleifenablauf:

Nachdem er die erste ifschleife : if a==1 then
durchlaufen hat beendest du die abfrage mit einem end waorauf diese schleife zuende ist. allerdings stehen dann noch 11 andere ifschleifen da... diese durchläuft er auch obwohl er schon die verwandlung ausgefürht hat deshalb sind elseif's hier angebrachter

die ends dürfen dann nichtmehr nach den ifs stehn sondern es ist nur noch eine if-schleife die ganz unten beendet werden muss. =)

01/23/2011 20:22 RealFreak#1320
So mal zu meinem Problem:
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 
!= 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 sselect("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)
            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)
                
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 
!= 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) >= 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 = {
            { 
195211},
            { 
326302},
            { 
52790},
            { 
616257},
            { 
702262},
            { 
67438},
        }
        
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 = {
            { 
195211},
            { 
326302},
            { 
52790},
            { 
616257},
            { 
702262},
            { 
67438},
        }
        
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 
!= 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 
Ansich funktioniert der Quest einwandfrei, mein Problem ist aber:
Teilweise haben die User dann alle benötigten Sachen, werden aber nicht weitergeleitet bzw dem nächsten State zugewiesen.....
Kann man noch irgendwas anderes machen, damit man auch richtig weitergeleitet wird?
Sozusagen eine doppelte Absicherung?
70% bekommen etwa den richtigen State zugewiesen
30% bleiben ewig bei Vulkanglas oder Versteinerten Tränen State stehen

Help pls

MfG RealFreak