[SERVICE] Die Questkontrolle

02/28/2011 20:24 Pαıп#1561
quest drache begin
state start begin
when 2493.kill begin
notice_all(pc.name .." hat den Wasserdrachen getötet.Repekt! Du hasst echt was auf´m Kasten")
local r=number(1, 3)

if 1==r then
game.drop_item(42000, 1)
chat("Du hast einen Smaragti gedroppt")
end

if 2==r then
game.drop_item(42010_id, 1)
chat("Du hast einen Saphir gedroppt")
end

if 3==r then
game.drop_item(42020, 1)
chat("Du hast einen Gifti gedroppt")
end
end
end
end


gibt coredump
02/28/2011 20:41 .Delta#1562
probier mal so
PHP Code:
quest drache begin
    state start begin
        when 2493.kill begin
            notice_all
(""..pc.get_name().." hat den Wasserdrachen getötet.Respekt! Du hast echt was aufm Kasten")
            
local r=number(13)
            if 
== 1 then
            game
.drop_item(420001)
            
chat("Du hast einen Smaragti gedroppt")
            elseif 
== 2 then
            game
.drop_item(42010_id1)
            
chat("Du hast einen Saphir gedroppt")
            elseif 
== 3 then
            game
.drop_item(420201)
            
chat("Du hast einen Gifti gedroppt")
            
end
        end
    end
end 
02/28/2011 20:45 .Scy#1563
Quote:
Originally Posted by P_Server View Post
Hey, wenn ich meine Quest einfüge dann kommt folgenenes im VPC :
giftplattenpanzer.quest wird umgewandelt
assertion failure : nested ==00
Abort trap (core dumped)
wird umgewandelt
wird umgewandelt
Mcncc#

Okay und hier die Quest:
PHP Code:
quest giftplattenpanzer begin
    state start begin
        when 30224.
use begin
            say_title
("Giftplattenpanzer")
            
say("Um dir diese Rüstung zuerstellen,")
            
say("brauchst du folgende Items:")
            
say("")
            
say_reward("1x Schwarzstahlplattenpanzer+9, 2x Weiße Perle,")
            
say_reward("2x Blaue Perle, 2x Rote Perle,")
            
say_reward("3x Wassersteine")
            
say("")
            
say_reward("Möchtest du dieses Item erstellen?")
            
local s select("Ja","Nein")
            if 
== 2 then
                
return
            
end
            
elseif == 1 then
                
if pc.count_item(27992) < 2 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine zwei weißen Perlen!")
                    return
                
end
                
elseif pc.count_item(27993) < 2 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine zwei blauen Perlen!")
                    return
                
end
                
elseif pc.count_item(27994) < 2 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine zwei roten Perlen!")
                    return
                
end
                
elseif pc.count_item(90005) < 3 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine drei Wassersteine!")
                    return
                
end
                
elseif pc.count_item(11299) < 1 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast kein Schwarzstahlplattenpanzer+9!")
                    return
                
end
                pc
.remove_item(27992,2)
                
pc.remove_item(27993,2)
                
pc.remove_item(27994,2)
                
pc.remove_item(90005,3)
                
pc.remove_item(11299,1)
                
item.remove()
                
pc.give_item2(42020,1)
                
say_title("Giftplattenpanzer")
                
say_reward("Du hast erfolgreich hergestellt:")
                
say_item_vnum(42020)
            
end
        end
        end
end 
fixxd

€: entweder 3 oder 4 ends musste testen
02/28/2011 20:51 P_Server#1564
Jetzt wurde die ganze Quest im VPC aufgelistet und noch immer Core Dump ;o

€:
Das letzte was da steht ist :

syntax error: [string "start"]:14: <eof< expected near 'elseif'
Abort trap (core dumped)
02/28/2011 21:01 .Delta#1565
probiers mal so
PHP Code:
quest giftplattenpanzer begin
    state start begin
        when 30224.
use begin
            say_title
("Giftplattenpanzer")
            
say("Um dir diese Rüstung zuerstellen,")
            
say("brauchst du folgende Items:")
            
say("")
            
say_reward("1x Schwarzstahlplattenpanzer+9, 2x Weiße Perle,")
            
say_reward("2x Blaue Perle, 2x Rote Perle,")
            
say_reward("3x Wassersteine")
            
say("")
            
say_reward("Möchtest du dieses Item erstellen?")
            
local s select("Ja","Nein")
            if 
== 1 then
                
if pc.count_item(27992) < 2 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine zwei weißen Perlen!")
                    return
                
end
                
if pc.count_item(27993) < 2 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine zwei blauen Perlen!")
                    return
                
end
                
if pc.count_item(27994) < 2 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine zwei roten Perlen!")
                    return
                
end
                
if pc.count_item(90005) < 3 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine drei Wassersteine!")
                    return
                
end
                
if pc.count_item(11299) < 1 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast kein Schwarzstahlplattenpanzer+9!")
                    return
                
end
                
if pc.count_item(27992) >= and pc.count_item(27993) >= and pc.count_item(27994) >= and pc.count_item(90005) >= and pc.count_item(11299) >= 1 then
                    pc
.remove_item(27992,2)
                    
pc.remove_item(27993,2)
                    
pc.remove_item(27994,2)
                    
pc.remove_item(90005,3)
                    
pc.remove_item(11299,1)
                    
item.remove()
                    
pc.give_item2(42020,1)
                    
say_title("Giftplattenpanzer")
                    
say_reward("Du hast erfolgreich hergestellt:")
                    
say_item_vnum(42020)
                
end
            
elseif == 2 then
                
return
            
end
        end
    end
end 
02/28/2011 21:02 .Scy#1566
Quote:
Originally Posted by Delta619 View Post
probiers mal so
PHP Code:
quest giftplattenpanzer begin
    state start begin
        when 30224.
use begin
            say_title
("Giftplattenpanzer")
            
say("Um dir diese Rüstung zuerstellen,")
            
say("brauchst du folgende Items:")
            
say("")
            
say_reward("1x Schwarzstahlplattenpanzer+9, 2x Weiße Perle,")
            
say_reward("2x Blaue Perle, 2x Rote Perle,")
            
say_reward("3x Wassersteine")
            
say("")
            
say_reward("Möchtest du dieses Item erstellen?")
            
local s select("Ja","Nein")
            if 
== 1 then
                
if pc.count_item(27992) < 2 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine zwei weißen Perlen!")
                    return
                
end
                
if pc.count_item(27993) < 2 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine zwei blauen Perlen!")
                    return
                
end
                
if pc.count_item(27994) < 2 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine zwei roten Perlen!")
                    return
                
end
                
if pc.count_item(90005) < 3 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine drei Wassersteine!")
                    return
                
end
                
if pc.count_item(11299) < 1 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast kein Schwarzstahlplattenpanzer+9!")
                    return
                
end
                
if pc.count_item(27992) >= and pc.count_item(27993) >= and pc.count_item(27994) >= and pc.count_item(90005) >= and pc.count_item(11299) >= 1 then
                    pc
.remove_item(27992,2)
                    
pc.remove_item(27993,2)
                    
pc.remove_item(27994,2)
                    
pc.remove_item(90005,3)
                    
pc.remove_item(11299,1)
                    
item.remove()
                    
pc.give_item2(42020,1)
                    
say_title("Giftplattenpanzer")
                    
say_reward("Du hast erfolgreich hergestellt:")
                    
say_item_vnum(42020)
                
end
            
elseif == 2 then
                
return
            
end
        end
    end
end 
kann man if mehrmals benutzen ohne else? xD
02/28/2011 21:04 .Delta#1567
natürlich.
In dem Fall ziehe ich das sogar vor ;)
02/28/2011 21:09 P_Server#1568
Kein Core Fehler, ihr seid die Besten !
Vielen Dank



So aber Ingame:
Der Quest wurde umgewandelt ohne Fehler. Aber das Item '30224' hab ich in der DB auf type 18 gestellt.
Aber wenn ich Ingame Rechtsklick raufmache tut sich nicht :o
03/01/2011 00:59 LxR'EsoZiaL#1569
Quote:
Originally Posted by ~АLeЖ~ View Post
Wir das funktionieren oder war ich wieder zu blöd :awesome: ?
PHP Code:
 -- Gewinnspiel (aktivert über /e gewinnspiel1 1)
 
quest pep begin
    state start begin
        when login with game
.get_event_flag("gewinnspiel1")== 1 begin
        set_state
(gewinnspiel1)
        
send_letter("Gewinnspiel")
        
end
    end
            state gewinnspiel1 begin
            when button 
or info begin
            say_title
("Gewinnspiel")
            
say("Es naht der 1. Monat wo Future World3 online ist")
            
say("damit es nicht gerade langweilig werden soll")
            
say("hatt das Team eini Gewinnspiel auf der Homepage hinterlassen,")
            
say("was dir tolle Items verschaft beim Gewinn.")
            
say("")
            
say_reward("Wähle eine Aufgabe!")
            
local s select("Wie funkioniert das?","Ich will mein Gewinn abholen","Ich habe noch keinen Code")
            if 
== 3 then
                send_letter
("Gewinnspiel")
                return
            
end
            
if == 1 then
                say_title
("Gewinnspiel")
                
say("Soso..du möchest also Erfahren, wie das ")
                
say("ganze Funktioniert! Also..zuerst musst du auf")
                
say_reward("http://Gewinnspiel.FutureWorld3.eu")
                
say("Und löse das Spiel.")
                
say("Wen du mit den Spiel fertig bist bekommst du ein Code.")
                
say("den kannt du in dieser Questrolle eingeben")
                
say("und ein tolles Item bekommen")
                
wait()
                
send_letter("Gewinnspiel")
                return
            
end
            
if == 2 then
                say_title
("Gewinnspiel")
                
say("Nungut, du hast also einen Code für den")
                
say("aktuellen Monat..")
                
say("")
                
say_reward("Gebe den Code ein:")
                
local string input()
                if 
string <= 4 then
                    say_title
("Gewinnspiel")
                    
say_reward("Der Code ist zu kurz.")
                    
send_letter("Gewinnspiel")
                    return
                
end
                
if string >= 10 then
                    say_title
("Gewinnspiel")
                    
say_reward("Der Code ist zu lang.")
                    
send_letter("Gewinnspiel")
                    return
                
end
                
if string == "deine_mudda" then
                    say_title
("Gewinnspiel")
                    
say_reward("Du hast den Code erfolgreich eingegeben!")
                    
say("")
                    
say("F")
                    
say("")
                    
say("Für diesen Monat erhällst du:")
                    
say_item_vnum(142)
                    
pc.setqf("erstergewinn",1)
                    
wait()
                    
send_letter("Gewinnspiel")
                    return
                
end
                say_title
("Gewinnspiel")
                
say_reward("Dieser Code wurde von dir bereits")
                
say_reward("eingegeben oder er war falsch!")
            
end
        end
    end
end 
Die Frage gibts immernoch >.<
03/01/2011 11:04 .Delta#1570
hm einige Fehler dazu:
1. ich bin mir nicht sicher ob if string <= 4 funktioniert, löse das lieber mit if string != "deine_mudda", dann gehts.
2. du erhältst nie das item 142, du zeigst es nur in der Quest.
3. wo fragst du pc.setqf("erstergewinn") wieder ab?
In der quet anscheinend nicht :D
03/01/2011 12:17 .Temperies#1571
Freaks :D
03/01/2011 12:22 .Delta#1572
Quote:
Originally Posted by .GreenAngel View Post
Freaks :D
und sowas nennt man spam , der hier definitiv nicht reingehört!
03/01/2011 14:30 rebery11#1573
Delta ? ^^ wann haste Zeit meine Quest einmal durchzuschauen ? ^^
03/01/2011 14:37 .Delta#1574
probiers mal damit:
PHP Code:
quest port begin
    state start begin
        when login begin
            set_state
(brief)
        
end
    end
    state brief begin
        when letter begin
            send_letter
("Teleportieren")
        
end
        when button 
or info begin
            say
("Du willst dich also teleportieren?")
            
local j select("Ja""Nein")
            if 
== 1 then
                say_reward
("Wo möchtest du hin?")
                
local k select("Map1-Rot""Map1-Blau""Map1-Gelb""Nirgendwohin")
                if 
== 1 then
                    pc
.warp(469300964200)
                elseif 
== 2 then
                    pc
.warp(969600278400)
                elseif 
== 3 then
                    pc
.warp(55700157900)
                elseif 
== 4 then
                    
return
                
end
            
elseif == 2 then
                
return
            
end
        end
    end
end 
03/01/2011 14:38 LxR'EsoZiaL#1575
Quote:
Originally Posted by Delta619 View Post
hm einige Fehler dazu:
1. ich bin mir nicht sicher ob if string <= 4 funktioniert, löse das lieber mit if string != "deine_mudda", dann gehts.
2. du erhältst nie das item 142, du zeigst es nur in der Quest.
3. wo fragst du pc.setqf("erstergewinn") wieder ab?
In der quet anscheinend nicht :D
1. verstehe ich nicht so ganz >.< weil ich habe die gleiche Struktur genommen wie die andere Quest die man mit /e spenden 1 aktivert.
2.Naja das man das Item bekommt kriegt man in ein paar Sekunden in der Quest selber rein.
3. warum Poste ich die Quest den wen sie "fehlerfrei" währe? ^^