[SERVICE] Die Questkontrolle

02/12/2014 16:44 falaga#9691
Quote:
Originally Posted by V0lvox View Post
hab ne buggy quest, weiß langsam nicht mehr woran es liegt..
zur Erkärung, hatte den 2. Teil(auswahl der 1.truhen) auch in einen extra state gepackt, da ging es auch nich...
PHP Code:
say("")
set_state(weiter)
wait()
end

state weiter begin 
das ging auch nicht.. hier der komplette quelltext
fehlermeldung ist
Truhen/truhe_tausch.quest:48:expecting "when" or "function"
Du musst nach
Code:
state wahl_zwei begin
eine Bedingung angeben.
02/12/2014 16:50 Monamus1895#9692
wenn ich namen eingebe auf den ich ich kopfgeld setzen will, schließt sich das fenster und es passiert einfach nichts
02/12/2014 17:18 V0lvox#9693
danke habs geklärt, hab den state rausgenommen und die neue truhe einfach immer eingefügt... naja is zwar bissl mehr, aber es geht erstmal =) danke^^
02/13/2014 01:08 moldhenr#9694
Guten Abend,

ich hab die Autoumhang Quest von einem Epvp User genommen und das Item, welches ich verwenden möchte reingepackt. Allerdings funktioniert es nicht. Ich denke es liegt am Intervall. Wäre über eine Aufklärung wie das mit den Intervallen funktioniert dankbar.

02/13/2014 14:49 KillHumans#9695
#solved
02/13/2014 15:03 Antara-mt2#9696
kann mir einer helfen die quest geht nicht


quest berg begin
state start begin
when 5001.chat."Der geheimnisvolle Berg" with pc.level >= 140 begin
say_title("Berg Boy")
say("Hallo Du Möchtest eine tolle Überraschung haben, dann kämpfe Dich hoch.")
say("Suche alle goldene Frösche und zerstöre sie.")
say("Wenn du alle zerstört hast, dann kommt ein Boss.")
say("Bewzinge ihn und lasse Dich überraschen.")
say("Vielleicht bekommst du etwas.")
say("Vergesse nicht alle zu zerstören!")
say("Wir wünschen Dir viel Spaß dabei, viel Glück.")
say("Geheimnisvoller Berg betreten?")
local s=select("Ja", "Nein")
if 2==s then
return
else
say("Super, Du hast alles!")
say("Halt dich fest, Du wirst gewarpt!")
local zufall = number(1,2)
if zufall == 1 then
pc.warp(35039800,35085800)
elseif zufall == 2 then
pc.warp(35039800,35085800)
end
end
end
when 11505.kill begin
d.setf("goldene Frösche", d.getf("goldene Frösche") - 1)
if d.getf("goldene Frösche") == 0 then
d.notice("Ihr habt alle goldene Frösche zerstört!")
d.notice("Nun wird der Bihan Drache!")
d.setf("Bihan Drache", 1)
end
when 11505.kill begin
d.setf("goldene Frösche", d.getf("goldene Frösche") - 1)
if d.getf("goldene Frösche") == 0 then
d.notice("Ihr habt alle goldene Frösche zerstört!")
d.notice("Nun ist die Bihan Drache erschienen!")
d.notice("Viel Glück!")
d.spawn_mob(2700, 599, 404)
end
when 2700.kill begin
notice_all(""..pc.get_name().." hat die Bihan Drache erlegt!")
timer("exit", 60)
end
when exit.timer begin
warp_all_to_village()
end
end
end
02/13/2014 15:55 Mr.Xhater#9697
PHP Code:
-- QUEST BY .MR.XHATER / FOR EUPHORIA2 --
quest preis begin
    state start begin   
        when login with pc
.name == "[Invoice]" begin
        send_letter
("Das OX Event") ---> Schriftrolle 
        end
        when button 
or info begin
        
        say
("Sei gerüßt "..pc.get_name())   ---> Chat Verlauf
        say
("Als Eventmanager bekommst du alle 24H") ---> Chat Verlauf
        say
("2X Zufalls Truhen.") ---> Chat Verlauf
        say
("Eine Truhe für das 1 OX Event und") ---> Chat Verlauf
        say
("Die 2 Truhe für das 2 OX Event.") ---> Chat Verlauf
        say
("Mr.Xhater wünscht dir weiterhin viel Spaß") ---> Chat Verlauf
        say
("auf dem Server.") ---> Chat Verlauf
        pc
.give_item2(727252) ---> Gibt dem Spieler 2 Items
        
if pc.getqf("time")>get_time() then syschat("Warte noch bis die 24 Stunden vergangen sind.") return end
        pc
.setqf("time"get_time()+60)
        -------------------------- 
Ende -------------------
        
end    
    end
end 
Wenn ich auf die Schriftrolle drücke passiert kommt kein text sie schließt sich einfach wieder hatt jemand eine Lösung
02/13/2014 16:35 nOa##9698

Versuch es mal so:
PHP Code:
-- QUEST BY .MR.XHATER / FOR EUPHORIA2 -- 
quest preis begin 
    state start begin    
        when login with pc
.name == "[Invoice]" begin 
            send_letter
("Das OX Event") ---> Schriftrolle  
        end
        
        when button 
or info begin 
        say_title
("Das OX Event")
        
say("")
        
say("Sei gerüßt "..pc.get_name())   ---> Chat Verlauf 
        say
("Als Eventmanager bekommst du alle 24H") ---> Chat Verlauf 
        say
("2X Zufalls Truhen.") ---> Chat Verlauf 
        say
("Eine Truhe für das 1 OX Event und") ---> Chat Verlauf 
        say
("Die 2 Truhe für das 2 OX Event.") ---> Chat Verlauf 
        say
("Mr.Xhater wünscht dir weiterhin viel Spaß") ---> Chat Verlauf 
        say
("auf dem Server.") ---> Chat Verlauf 
        pc
.give_item2(727252) ---> Gibt dem Spieler 2 Items 
        
if pc.getqf("time")>get_time() then syschat("Warte noch bis die 24 Stunden vergangen sind.") return end 
                pc
.setqf("time"get_time()+60
            
end
        end     
    end 
end 

Auch du, probier es mal bitte so aus:
PHP Code:
quest berg begin
    state start begin
        when 5001.chat
."Der geheimnisvolle Berg" with pc.level >= 140 begin
        say_title
("Berg Boy")
        
say("Hallo Du Möchtest eine tolle Überraschung haben, dann kämpfe Dich hoch.")
        
say("Suche alle goldene Frösche und zerstöre sie.")
        
say("Wenn du alle zerstört hast, dann kommt ein Boss.")
        
say("Bewzinge ihn und lasse Dich überraschen.")
        
say("Vielleicht bekommst du etwas.")
        
say("Vergesse nicht alle zu zerstören!")
        
say("Wir wünschen Dir viel Spaß dabei, viel Glück.")
        
say("Geheimnisvoller Berg betreten?")    
        
local s=select("Ja""Nein"
        if 
2==s then 
            
return 
        else 
            
say("Super, Du hast alles!")
            
say("Halt dich fest, Du wirst gewarpt!")
            
local zufall number(1,2
            if 
zufall == 1 then 
                pc
.warp(35039800,35085800)
            elseif 
zufall == 2 then 
                pc
.warp(35039800,35085800)    
            
end
        end
        end
        when 11505.kill begin
        d
.setf("goldene Frösche"d.getf("goldene Frösche") - 1)
        if 
d.getf("goldene Frösche") == 0 then
            d
.notice("Ihr habt alle goldene Frösche zerstört!")
            
d.notice("Nun wird der Bihan Drache!")
            
d.setf("Bihan Drache"1)
        
end
        end
        when 11505.kill begin
        d
.setf("goldene Frösche"d.getf("goldene Frösche") - 1)
        if 
d.getf("goldene Frösche") == 0 then
            d
.notice("Ihr habt alle goldene Frösche zerstört!")
            
d.notice("Nun ist die Bihan Drache erschienen!")
            
d.notice("Viel Glück!")
            
d.spawn_mob(2700599404)
        
end
        end
        when 2700.kill begin
        notice_all
(""..pc.get_name().." hat die Bihan Drache erlegt!")
        
timer("exit"60)
        
end
        when 
exit.timer begin
        warp_all_to_village
()
        
end
    end
end 
02/13/2014 19:05 .yorliK#9699
Quote:
Originally Posted by 123Crusher123 View Post

Versuch es mal so:
So ist es noch schöner :P

PHP Code:
-- QUEST BY .MR.XHATER / FOR EUPHORIA2 -- 
quest preis begin 
    state start begin    
        when letter with pc
.get_name() == "[Invoice]" begin 
            send_letter
("Das OX Event") ---> Schriftrolle  
        end
        
        when button 
or info begin
            
if pc.getqf("time")>get_time() then
                syschat
("Warte noch bis die 24 Stunden vergangen sind.")
                
send_letter("Das OX Event")        
                return
            
end
            say_title
("Das OX Event")
            
say("")
            
say("Sei gerüßt "..pc.get_name())   ---> Chat Verlauf 
            say
("Als Eventmanager bekommst du alle 24H") ---> Chat Verlauf 
            say
("2X Zufalls Truhen.") ---> Chat Verlauf 
            say
("Eine Truhe für das 1 OX Event und") ---> Chat Verlauf 
            say
("Die 2 Truhe für das 2 OX Event.") ---> Chat Verlauf 
            say
("Mr.Xhater wünscht dir weiterhin viel Spaß") ---> Chat Verlauf 
            say
("auf dem Server.") ---> Chat Verlauf 
            pc
.give_item2(727252) ---> Gibt dem Spieler 2x Das Item 72725
            wait
()
            
pc.setqf("time"get_time()+86400) -- 24Stunden 86400Sec
            
send_letter("Das OX Event")
        
end     
    end 
end 
02/13/2014 19:34 Tiger121282#9700
Habe in der Syserr den Fehler:

Code:
SYSERR: Feb 12 22:01:50 :: RunState: LUA_ERROR: [string "tausch"]:19: attempt to index field `?' (a nil value)
SYSERR: Feb 12 22:01:50 :: WriteRunningStateToSyserr: LUA_ERROR: quest tausch.start leave
Das die Quest

PHP Code:
quest tausch begin
    state start begin
        when 9007.chat
."Steinstücke eintauschen" begin
            local items 
= {
                {
2798725},
                {
27992125},
                {
27993125},
                {
27994125},
            }
            
say_title("Steinstücke eintauschen")
            
say("")
            
say("Hallo lieber Abenteurer,")
            
say("willst du deine Steinstücke, bei mir eintauschen.")
            
say("Hier eine kleine Liste für dich:")
            
say("")
            
say("5 Steinstücke: 2 Muscheln")
            
say("25 Steinstücke: beliebige Perle")
            
say("")
            
say_reward("Gegen was willst du deine Steinstücke eintauschen?:")
            
say("")
            
local s select("2 Muscheln""W. Perle""B. Perle""R. Perle""Abbrechen!")
            if 
pc.count_item(27990) < items[s][3then
                say
("Du hast nicht genügend Steinstücke")
                return
            
end
            say
("Du hast erfolgreich gegen "..items[s][2].." "..item_name(items[s][1]).." getauscht")
            
pc.remove_item(27990items[s][3])
            
pc.give_item2(items[s][1], items[s][2])
        
end
    end
end 
Kann mir jemand sagen was falsch ist?
02/13/2014 20:03 Noa_#9701
PHP Code:
quest tausch begin 
    state start begin 
        when 9007.chat
."Steinstücke eintauschen" begin 
            local items 
= {27987,27992,27993,27994}
            
table.insert(items,"Abbrechen!")
            
say_title("Steinstücke eintauschen"
            
say(""
            
say("Hallo lieber Abenteurer,"
            
say("willst du deine Steinstücke, bei mir eintauschen."
            
say("Hier eine kleine Liste für dich:"
            
say(""
            
say("5 Steinstücke: 2 Muscheln"
            
say("25 Steinstücke: beliebige Perle"
            
say(""
            
say_reward("Gegen was willst du deine Steinstücke eintauschen?:"
            
say(""
            
local s select(unpack(items)) 
            if 
== table.getn(itemsthen
                
return
            else
                
local steine,rew_c,item = (s==and or 25),(s==and or 1),items[s]
                if 
pc.count_item(27990) < steine then 
                    say
("Du hast nicht genügend Steinstücke"
                    return 
                
end 
                say
("Du hast erfolgreich gegen "..rew_c.." "..item_name(item).." getauscht"
                
pc.remove_item(27990steine
                
pc.give_item2(itemrew_c
            
end
        end 
    end 
end 
02/13/2014 20:05 Antara-mt2#9702
quest berg begin
state start begin
when 5001.chat."Der geheimnisvolle Berg" with pc.level >= 140 begin
say_title("Berg Boy")
say("Hallo Du Möchtest eine tolle Überraschung haben, dann kämpfe Dich hoch.")
say("Suche alle goldene Frösche und zerstöre sie.")
say("Wenn du alle zerstört hast, dann kommt ein Boss.")
say("Bewzinge ihn und lasse Dich überraschen.")
say("Vielleicht bekommst du etwas.")
say("Vergesse nicht alle zu zerstören!")
say("Wir wünschen Dir viel Spaß dabei, viel Glück.")
say("Geheimnisvoller Berg betreten?")
local s=select("Ja", "Nein")
if 2==s then
return
else
say("Super, Du hast alles!")
say("Halt dich fest, Du wirst gewarpt!")
local zufall = number(1,2)
if zufall == 1 then
pc.warp(35039800,35085800)
elseif zufall == 2 then
pc.warp(35039800,35085800)
end
end
end
when 11505.kill begin
d.setf("goldene Frösche", d.getf("goldene Frösche") - 1)
if d.getf("goldene Frösche") == 0 then
d.notice("Ihr habt alle goldene Frösche zerstört!")
d.notice("Nun wird der Bihan Drache!")
d.setf("Bihan Drache", 1)
end
end
when 11505.kill begin
d.setf("goldene Frösche", d.getf("goldene Frösche") - 1)
if d.getf("goldene Frösche") == 0 then
d.notice("Ihr habt alle goldene Frösche zerstört!")
d.notice("Nun ist die Bihan Drache erschienen!")
d.notice("Viel Glück!")
d.spawn_mob(2700, 599, 404)
end
end
when 2700.kill begin
notice_all(""..pc.get_name().." hat die Bihan Drache erlegt!")
timer("exit", 60)
end
when exit.timer begin
warp_all_to_village()
end
end
end

jetzt kommt der boss aber immer noch nicht wenn man die 4 frösche gekillt hat was ist denn noch falsch
02/13/2014 20:17 KillHumans#9703
#solved
02/14/2014 19:44 .yorliK#9704
Ich versuche ein Wort nach Sonderzeichen abzusuchen.

PHP Code:
input input()
local notallowed = ("!§$%&/()=?`´²³{[]}\\*+~#-_.:,;")
    for 
1string.len(notallowed), do
        if 
string.find(inputstring.sub(notallowedii)) ~= nil then
            say
("Nicht ok")
        
end
    end 
Egal was in der Input steht, er sagt mir immer "Nicht Ok". Sogar wenn keine Sonderzeichen vorhanden sind.

Dazu noch, nur um zu schauen ob ichs richtig verstanden habe. String.find ist >= 1 wenn ein Sonderzeichen gefunden wurde, somit sollte ~=(ungleich) nil anschlagen und mir den Text "Nicht Ok" ausgeben. Warum gibt er mir dann auch ein "Nicht Ok" bei keinem Sonderzeichen aus???
02/15/2014 19:48 Noa_#9705
Quote:
Originally Posted by Kilroy. View Post
Ich versuche ein Wort nach Sonderzeichen abzusuchen.

PHP Code:
input input()
local notallowed = ("!§$%&/()=?`´²³{[]}\\*+~#-_.:,;")
    for 
1string.len(notallowed), do
        if 
string.find(inputstring.sub(notallowedii)) ~= nil then
            say
("Nicht ok")
        
end
    end 
Egal was in der Input steht, er sagt mir immer "Nicht Ok". Sogar wenn keine Sonderzeichen vorhanden sind.

Dazu noch, nur um zu schauen ob ichs richtig verstanden habe. String.find ist >= 1 wenn ein Sonderzeichen gefunden wurde, somit sollte ~=(ungleich) nil anschlagen und mir den Text "Nicht Ok" ausgeben. Warum gibt er mir dann auch ein "Nicht Ok" bei keinem Sonderzeichen aus???
[Only registered and activated users can see links. Click Here To Register...]

PHP Code:
input input()
_,_,found string.find(input"(%W)")
if 
~= nil then
    say
("Gefundener Sonderzeichen ("..found..")")
end