[SERVICE] Die Questkontrolle

11/12/2012 18:28 ©by Noa#7126
sorry hab meins nicht schnell korrigieren können, da waren beim Zitat schneller als ich ^^
in mein jetzigen post siehst du mein Kommentar neben der lvl Begrenzung.

€dit. besser wäre es wie du schon sagtest mit den Operatoren ">="

Hey Sportsfreund, die quest sollte eig funktionieren
11/12/2012 23:00 nightstalker112#7127
so habs mal ein wenig geändert nur jetzt bleibt er immer hängen weil ich nicht weiß wie ich weiter schreiben muss

PHP Code:
quest grotten_porter begin
    state grotten_porter begin
        when 20080.chat
."SD2" begin 
            
if pc.get_level() >= 50 then
                say
(""..mob_name(20080)..":")
                
say("Hallo mein Freund, du willst also in den SD2!")
                
say("")
                
say("Du musst lvl 50 sein!")
                
say("")
                
say("Möchtest du in den SD2?")
                
say("")
            return  
                
local a= select("Teleportier mich!", "Nein ich bleib hier!")
                if 
1==a then
                    say
(""..mob_name(20080)..":")
                    
say("")
                    
say("Ok")
                    
say("Viel Glück")
                    
wait()
                    
pc.warp(705000, 465000)
                elseif 
2==a then
                    say
(""..mob_name(20080)..":")
                    
say("")
                    
say("Ok")
                    
say("Eine Weise Entscheidung!")
                
end
            end
        end
    end   
end 

Mit eurer quest zeigt er mir nen fehler an

PHP Code:
expecting `state`
8: Error occured on compile 
11/12/2012 23:46 ©by Noa#7128
Quote:
Originally Posted by nightstalker112 View Post
so habs mal ein wenig geändert nur jetzt bleibt er immer hängen weil ich nicht weiß wie ich weiter schreiben muss

PHP Code:
quest grotten_porter begin
    state grotten_porter begin
        when 20080.chat
."SD2" begin 
            
if pc.get_level() >= 50 then
                say
(""..mob_name(20080)..":")
                
say("Hallo mein Freund, du willst also in den SD2!")
                
say("")
                
say("Du musst lvl 50 sein!")
                
say("")
                
say("Möchtest du in den SD2?")
                
say("")
            return  
                
local a= select("Teleportier mich!", "Nein ich bleib hier!")
                if 
1==a then
                    say
(""..mob_name(20080)..":")
                    
say("")
                    
say("Ok")
                    
say("Viel Glück")
                    
wait()
                    
pc.warp(705000, 465000)
                elseif 
2==a then
                    say
(""..mob_name(20080)..":")
                    
say("")
                    
say("Ok")
                    
say("Eine Weise Entscheidung!")
                
end
            end
        end
    end   
end 

Mit eurer quest zeigt er mir nen fehler an

PHP Code:
expecting `state`
8: Error occured on compile 
am Anfang muss state IMMER "start" sein.
versuch doch mal mit meiner quest, habe ich schon davor gepostet aber vll hast du die nur übersehen.

Hier nochmal.

PHP Code:
quest grotten_porter begin
    state start begin
        when login 
or levelup with pc.level >=50 begin        
            grotten_porter
.tTMe()
        
end
    end
        
    
function tTMe()
        
say(""..mob_name(20080)..":")
        
say("Hallo mein Freund, du willst also in den SD2!")
        
say("")
        
say("Du musst lvl 50 sein!")
        
say("")
        
say("Möchtest du in den SD2?")
        
say("")
                
        
local a= select("Teleportier mich!", "Nein ich bleib hier!")
        if 
1==a then
            say
(""..mob_name(20080)..":")
            
say("")
            
say("Ok")
            
say("Viel Glück")
            
wait()
            
pc.warp(705000, 465000)
        elseif 
2==a then
            say
(""..mob_name(20080)..":")
            
say("")
            
say("Ok")
            
say("Eine Weise Entscheidung!")
        
end
    end
end 
11/12/2012 23:52 nightstalker112#7129
mit deiner quest zeigt er mir halt den fehler an

expecting `state`
8: Error occured on compile
11/13/2012 00:41 ©by Noa#7130
PHP Code:
quest grotten_porter begin 
    state start begin 
        when login 
or levelup with pc.level >=50 begin         
            grotten_porter
.tTMe() 
        
end 
     
         
        
function tTMe() 
        
say(""..mob_name(20080)..":") 
        
say("Hallo mein Freund, du willst also in den SD2!") 
        
say("") 
        
say("Du musst lvl 50 sein!") 
        
say("") 
        
say("Möchtest du in den SD2?") 
        
say("") 
                 
        
local a= select("Teleportier mich!", "Nein ich bleib hier!") 
            if 
1==a then 
            say
(""..mob_name(20080)..":") 
            
say("") 
            
say("Ok") 
            
say("Viel Glück") 
            
wait() 
            
pc.warp(705000, 465000) 
            elseif 
2==a then 
            say
(""..mob_name(20080)..":") 
            
say("") 
            
say("Ok") 
            
say("Eine Weise Entscheidung!") 
            
end 
        end
    end
end 
yup hatte ein end zu viel, sollte jetzt gehen
11/13/2012 20:16 nightstalker112#7131
hey hatte mal langeweile und versucht ne quest zu schreiben das ging wohl ziemlich in die hose :D

Systax errror hmm

hier die quest villt kann sie mir ja einer berichtigen

PHP Code:
quest reittier_kaufen begin
    state start begin
        when 20349.chat
."Kampfreittiere" begin
            say
("Hallo Fremder, du möchtest also")
            
say("ein neues Reittier haben?")
            
say("")
            
say("Dafür musst du mir aber ein besonderes Item")
            
say("besorgen. Würdest du das tun?")
            
            
local x = select("Ja, ich will ein neues Reittier!", "Nein lieber nicht!")
            
            if 
x == 1 then
                say
("Nun gut, bringe mir folgendes:")
                
say("")
                
say("Einen Wasserstein")
                
say("Wenn du das machst darfst du dir ein")
                
say("Reittier aussuchen!")
                if 
pc.count_item(90005) <= 1 then
                    say
("du besitzt keinen Wasserstein")
                    
say("Bringe mir einen!")
                    return
                
end
                
if pc.count_item(90005) >= 1 then
                    say
("Schön du hast einen Wasserstein")
                    
say("Such dir was aus")
                    
local v = select ("Keiler", "Tiger", "Löwe", "Ich will doch keins!")
                    
                    if 
v == 1 then
                        pc
.remove_item(90005, 1)
                        
pc.give_item(71114,1)
                        
say("Viel spaß mit deinem neuen Reittier.")
                        return
                    
end
                    
                
elseif v == 2 then
                    pc
.remove_item(90005, 1)
                    
pc.give_item(71118,1)
                    
say("Viel spaß mit deinem neuen Reittier.")
                    return
                
end
                
            
elseif v == 3 then
                pc
.remove_item(90005, 1)
                
pc.give_item(71120,1)
                
say("Viel spaß mit deinem neuen Reittier.")
                return
            
end
            
        
elseif v == 4 then
            say
("Ok")
            return
        
end
    
elseif x == 2 then
        
return
    
end
end
end
end
end 
11/13/2012 23:47 iSouli~#7132
Quote:
Originally Posted by nightstalker112 View Post
hey hatte mal langeweile und versucht ne quest zu schreiben das ging wohl ziemlich in die hose :D

Systax errror hmm

hier die quest villt kann sie mir ja einer berichtigen

PHP Code:
quest reittier_kaufen begin
    state start begin
        when 20349.chat
."Kampfreittiere" begin
            say
("Hallo Fremder, du möchtest also")
            
say("ein neues Reittier haben?")
            
say("")
            
say("Dafür musst du mir aber ein besonderes Item")
            
say("besorgen. Würdest du das tun?")
            
            
local x = select("Ja, ich will ein neues Reittier!", "Nein lieber nicht!")
            
            if 
x == 1 then
                say
("Nun gut, bringe mir folgendes:")
                
say("")
                
say("Einen Wasserstein")
                
say("Wenn du das machst darfst du dir ein")
                
say("Reittier aussuchen!")
                if 
pc.count_item(90005) <= 1 then
                    say
("du besitzt keinen Wasserstein")
                    
say("Bringe mir einen!")
                    return
                
end
                
if pc.count_item(90005) >= 1 then
                    say
("Schön du hast einen Wasserstein")
                    
say("Such dir was aus")
                    
local v = select ("Keiler", "Tiger", "Löwe", "Ich will doch keins!")
                    
                    if 
v == 1 then
                        pc
.remove_item(90005, 1)
                        
pc.give_item(71114,1)
                        
say("Viel spaß mit deinem neuen Reittier.")
                        return
                    
end
                    
                
elseif v == 2 then
                    pc
.remove_item(90005, 1)
                    
pc.give_item(71118,1)
                    
say("Viel spaß mit deinem neuen Reittier.")
                    return
                
end
                
            
elseif v == 3 then
                pc
.remove_item(90005, 1)
                
pc.give_item(71120,1)
                
say("Viel spaß mit deinem neuen Reittier.")
                return
            
end
            
        
elseif v == 4 then
            say
("Ok")
            return
        
end
    
elseif x == 2 then
        
return
    
end
end
end
end
end 
PHP Code:
quest reittier_kaufen begin 
    state start begin 
        when 20349.chat
.'Kampfreittiere' begin 
            say
('Hallo Fremder, du möchtest also') 
            
say('ein neues Reittier haben?') 
            
say()
            
say('Dafür musst du mir aber ein besonderes Item') 
            
say('besorgen. Würdest du das tun?') 
            if 
select('Ja, ich will ein neues Reittier!', 'Nein lieber nicht!') == 2 then return end
            say
('Nun gut, bringe mir folgendes:') 
            
say()
            
say('Einen Wasserstein') 
            
say('Wenn du das machst darfst du dir ein') 
            
say('Reittier aussuchen!') 
            if 
pc.count_item(90005) == 0 then 
                say
('du besitzt keinen Wasserstein') 
                
say('Bringe mir einen!') 
                return 
            
end
            say
('Schön du hast einen Wasserstein') 
            
say('Such dir was aus') 
            
local v = select ('Keiler', 'Tiger', 'Löwe','Ich will doch keins!') 
            if 
v == 1 then 
                pc
.give_item2(71114,1) 
            elseif 
v == 2 then 
                pc
.give_item2(71118,1) 
            elseif 
v == 3 then 
                pc
.give_item2(71120,1) 
            elseif 
v == 4 then 
                say
('Ok') 
                return 
            
end
            say
('Viel spaß mit deinem neuen Reittier.')  
            
pc.remove_item(90005, 1) 
        
end
    end
end 
11/17/2012 02:22 .BeKiiR##7133
Kann mich nicht in OX-Teleporteiren - passiert NICHTS

bitte um Kontrolle



PHP Code:
quest guild_war_join begin 
    state start begin 
        when letter begin 
            local e 
= guild.get_any_war() 
            if 
e != 0 and pc.get_war_map() == 0 then 
                setskin
(NOWINDOW) 
                
send_letter("Gildenkrieg beitreten") 
            
end 
        end 
        when button begin 
            local e 
= guild.get_any_war() 
            
say_title("Gildenkrieg") 
            if 
e == 0 then                 
                say
("Der Gildenkrieg ist bereits beendet.") 
            else 
                
say("Möchtest du den Gildenkrieg beitreten?") 
                
local s = select("Beitreten", "Abbrechen") 
                if 
s == 1 then 
                    guild
.war_enter(e) 
                else 
                    
setskin(NOWINDOW) 
                    
makequestbutton("Gildenkrieg beitreten") 
                
end 
            end 
        end 
    end 
end 
11/17/2012 12:38 CanbiZ#7134
Moin,

ich bin nicht so der lieblingsquester am morgen

Kann mir jemand aus foldender Quest, eine quest machen, die mit einen Item funktioniert nicht mit Letter, und kann derjenige bitte 6 weitere Leere Slots einfügen? Also Map1, Map2,Map3,Map4 nach den anderen!
Danke!


Code:
quest warp begin
	state start begin
		when letter with pc.get_level()>=60 begin
			send_letter("Teleportieren")
		end
		when button or info begin
			say_title("Teleportieren")
			if pc.is_mount() then				
				say("Dies Kannst du nicht machen! Du musst zuerst von deinen Pferd absteigen")
				wait()
				send_letter("Teleportieren")				
				return				
			end
			say("Wohin willst du dich Teleportieren?")			
			local s = select("Map1", "Map2", "SD2", "Roter Wald", "Zombiemap", "Weiter", "Abbrechen")
			if s==6 then
				local t = select("Tal der Verfluchten", "Land der Gnome", "SD3", "Der Friedhof", "Handels Map", "Abbrechen")
				if t==1 then
					pc.warp(605461, 1124886)
				end	
				if t==2 then
					pc.warp(134370 , 1068854)
				end
				if t==3 then
					pc.warp(123495184, 123484277)
				end 
				if t==4 then
					pc.warp(25309182, 25337133)
				end 
				if t==5 then
					pc.warp(912384594, 91246594)
				end
				if t==6 then				
					send_letter("Teleportieren")				
					return
				end
			end
			if s==1 then			
				local empire = pc.get_empire()
				if empire == 1 then 
					pc.warp (469300 , 964200) 
				elseif empire == 2 then 
					pc.warp (55700, 157900) 
				elseif empire == 3 then 
					pc.warp (969600, 278400) 
				end 
			end
			if s==2 then
				local empire = pc.get_empire()
				if empire == 1 then 
					pc.warp (353100, 882900) 
				elseif empire == 2 then 
					pc.warp (145500, 240000) 
				elseif empire == 3 then 
					pc.warp (863900, 246000) 
				end 			
			end			
			if s==3 then
				pc.warp(703966, 463164)
			end
			if s==4 then
				pc.warp(1049600, 0)
			end
			if s==5 then
				pc.warp(679772, 1192150)
			end 					 			
			if s==7 then				
				send_letter("Teleportieren")				
				return
			end
		end	
	end		
end
11/17/2012 13:22 .SliceR#7135
Das ist die Quest. Kann einer den Fehler finden? Bin noch relativ neu in dem Gebiet..

PHP Code:
quest kill1 begin
    state start begin
        when login with pc
.level >= 120 begin
            set_state
(information)
        
end
    end

    state information begin
        when letter begin
            send_letter
("Erlege Wasserdrachen!")
        
end

        when info 
or button begin
            say
("Erlege Wasserdrachen!")
            
say("Ja, du liest richtig. Dies ist ein")
            
say("Brief des Hauptmanns. Er braucht deine")
            
say("Hilfe. Er schafft es nicht alleine die")
            
say("Drachen zu erlegen.")
            
say("Hilf ihm dabei! Er wird dich auch belohnen.")
            
say("")
            
say_reward("Erlege 20 Wasserdrachen!")
            
say("")
        
end

        when 2493.kill begin
            local count 
= pc.getqf("state") + 1
            
if count <= 20 then
                pc
.setqf("state", count)
                
q.set_counter("Erlegte Wasserdrachen", count)
            
end
                
if count == 20 then
                    say
("Sehr schön, du hast es geschafft!")
                    
say("Nach langem kämpfen hast du nun endlich")
                    
say("20 Wasserdrachen erlegt. Gratulation!")
                    
say("Diese Mühen sollen natürlich nicht unbelohnt")
                    
say("bleiben, deshalb kannst du zwischen folgenden")
                    
say("Preisen wählen:")
                    
                    if 
pc.job == 0 then
                        say
("Da du ein Krieger bist, kannst du zwischen")
                        
say("folgenden Preisen entscheiden:")
                        
say("")
                        
local s = select("Tritonschwert+0")
                        if 
s == 1 then
                            say
("Gut, du hast dich für das Tritonschwert+0 entschieden!")
                            
say("Viel Spaß mit deinem Gewinn!")
                            
pc.give_item2(270, 1)
                            
notice_all(""..pc.get_name().." hat soeben Drachen - Quest abgeschlossen!")
                        
end
                        
                    
elseif pc.job == 1 then
                        say
("Da du ein Ninja bist, kannst du zwischen")
                        
say("folgenden Preisen entscheiden:")
                        
local g = select("Drachenmesser+7")
                        if 
g == 1 then
                            say
("Gut, du hast dich für die Drachenmesser+7 entschieden!")
                            
say("Viel Spaß mit deinem Gewinn!")
                            
pc.give_item2(1107, 1)
                            
notice_all(""..pc.get_name().." hat soeben die Drachen - Quest abgeschlossen!")
                        
end
                        
                    
elseif pc.job == 2 then
                        say
("Da du ein Sura bist, kannst du zwischen")
                        
say("folgenden Preisen entscheiden:")
                        
local f = select("Schlachtschwert+7")
                        if 
f == 1 then
                            say
("Gut, du hast dich für das Schlachtschwert+7 entschieden!")
                            
say("Viel Spaß mit deinem Gewinn!")
                            
pc.give_item2(147, 1)
                            
notice_all(""..pc.get_name().." hat soeben die Drachen - Quest abgeschlossen!")
                        
end
                        
                    
elseif pc.job == 3 then
                        say
("Da du eine Schamane bist, kannst du zwischen")
                        
say("folgenden Preisen entscheiden:")
                        
local a = select("Erlösungsfächer+7")
                        if 
a == 1 then
                            say
("Gut, du hast dich für den Erlösungsfächer+7 entschieden!")
                            
say("Viel Spaß mit deinem Gewinn!")
                            
pc.give_item2(7137, 1)
                            
notice_all(""..pc.get_name().." hat soeben die Drachen - Quest abgeschlossen!")
                        
end
                    end
                end
                clear_letter
()
                
set_state(__COMPLETE__)
            
end
        end
    end
end 
Der Fehler:
[Only registered and activated users can see links. Click Here To Register...]

Ich freue mich auf eine Antwort :)

MfG. klum
11/17/2012 15:00 Tentos123#7136
Fehlermeldung:
syntax error : [string "start"]:9: <eof> expected near `elseif'
grotte_warp.quest:22:Error occured on compile grotte_warp.quest

Quest:
PHP Code:
quest grotte_warp begin
    state start begin
        when letter with pc
.get_level >= 75 begin
            send_letter
("In die Grotte")
        
end
        when info 
or button begin
            say_title
("In die Grotte...")
            
say("In welche Grotte möchtest du?")
                if 
pc.get_level >= 75 and pc.get_level <= 89 then
                    local s 
= select("Grotte 1", "Schließen")
                        if 
s == 1 then
                            pc
.warp(100, 12078)
                        
end
                    end
                
elseif pc.get_level >= 90 and pc.get_level <= 99 then
                    local b 
= select("Grotte 1", "Grotte 2", "Schließen")
                        if 
b == 1 then
                            pc
.warp(100, 12078)
                        elseif 
b == 2 then
                            pc
.warp(2417, 12749)
                        
end
                
elseif pc.get_level >= 100 then
                    local a 
= select("Grotte 1", "Grotte 2", "Bossraum", "Schließen")
                        if 
a == 1 then
                            pc
.warp(100, 12078)
                        elseif 
a == 2 then
                            pc
.warp(2417, 12749)
                        elseif 
a == 3 then
                            pc
.warp(1717, 12204)
                        
end
                    end
                end        
        end 
Bitte um Hilfe
11/17/2012 16:32 Kriegergeist^^#7137
Mal wieder ein Problem mit einer Quest.
Diesmal mit der quest, für den Gilden Alchemist:
PHP Code:
quest guild_building_melt begin
    state start begin
        
function GetOreRefineCost(cost)
            if 
pc.empire != npc.empire then
                
return 3 * cost
            end
            
if pc.get_guild() == npc.get_guild() then
                
return cost * 0.9
            end
            
return cost
        end

        
function GetOreRefineGoodPct()
            return 
60
        end

        
function GetOreRefineBadPct()
            return 
60
        end

        
function GetMyRefineNum(race)
            return 
race - 20060 + 50601
        end

        
function IsRefinableRawOre(vnum)
            return 
vnum >= 50601 and vnum <= 50618
        end

        
function DoRefineDiamond(pct)
            
local from_postfix
            local from_name 
= item_name(item.vnum)
            
local to_vnum = item.vnum + 20
            local to_name 
= item_name(to_vnum)
            
local to_postfix 

            
if under_han(from_name) then
                from_postfix 
= " "
            
else
                
from_postfix = " "
            
end

            
if under_han(to_name) then
                to_postfix 
= ""
            
else
                
to_postfix = ""
            
end

            say_title
("Gildenalchemist")
            
say("Du musst mir 100 " .. from_name .. " bringen,")
            
say("damit ich daraus " .. to_name .. " fertigen kann.")
            if 
item.count >= 100 then
                say
("Die Wahrscheinlichkeit beträgt "..pct.."%.")
                
say("Du benötigst "..guild_building_melt.GetOreRefineCost(10000).." Yang")
                
say("Möchtest du es versuchen?")
                
local s = select("Ja", "Nein")
                if 
s == 1 then
                    
if pc.get_gold() < guild_building_melt.GetOreRefineCost(10000) then
                        say_title
("Gildenalchemist")
                        
say("Du hast nicht genug Yang.")
                        return
                    
end

                    
if pc.diamond_refine(10000, pct) then
                        say_title
("Gildenalchemist")
                        
say("Die Herstellung war erfolgreich. Du erhälst")
                        
say_item(to_name, to_vnum, "")
                    else
                        
say_title("Gildenalchemist")
                        
say("Die Herstellung ist fehlgeschlagen.")
                    
end
                end
            
else
                
say_reward("Du hast nicht genug " .. from_name .. ".")
            
end
        end
        
function DoRefine(pct)
            
local from_postfix
            local from_name 
= item_name(item.vnum)
            
local to_vnum = item.vnum + 20
            local to_name 
= item_name(to_vnum)
            
local to_postfix 

            
if under_han(from_name) then
                from_postfix 
= ""
            
else
                
from_postfix = ""
            
end

            
if under_han(to_name) then
                to_postfix 
= ""
            
else
                
to_postfix = ""
            
end

            say_title
("Gildenalchemist")
            
say("Du musst mir 100 " .. from_name .. " sowie einen")
            
say("Geiststein +0, +1 oder +2 bringen,")
            
say("damit ich daraus " .. to_name .. " fertigen kann.")
            if 
item.count >= 100 then
                say
("Die Wahrscheinlichkeit beträgt "..pct.."%.")
                
say("Du benötigst "..guild_building_melt.GetOreRefineCost(3000).." Yang.")
                
say("Möchtest du es versuchen?")
                
local s = select("Ja", "Nein")
                if 
s == 1 then
                    
if pc.get_gold() < guild_building_melt.GetOreRefineCost(3000) then
                        say_title
("Gildenalchemist")
                        
say("Du hast zuwenig Yang.")
                        return
                    
end

                    local selected_item_cell 
= select_item()
                    if 
selected_item_cell == 0 then
                        say_title
("Gildenalchemist")
                        
say("Ohne Geiststein kann ich es nicht herstellen.")
                        return
                    
end
                    local old_item 
= item.get_id()

                    if 
not item.select_cell(selected_item_cell) then
                        say_title
("Gildenalchemist")
                        
say("³o*Óª««~¨Ã¤£¥¿½T.")
                        return
                    
end

                    
if item.vnum < 28000 or item.vnum >= 28300 then
                        say_title
("Gildenalchemist")
                        
say("¿ï¾Üªºª««~¨Ã¤£¥¿½T.")
                        return
                    
end

                    item
.select(old_item)

                    if 
pc.ore_refine(3000, pct, selected_item_cell) then
                        say_title
("Gildenalchemist")
                        
say("Die Herstellung war erfolgreich. Du erhälst")
                        
say_item(to_name, to_vnum, "")
                    else
                    
say_title("Gildenalchemist")
                    
say("Die Herstellung ist fehlgeschlagen.")
                    
end
                end
            
else
                
say_reward("Du hast nicht genug " .. from_name .. ".")
            
end
        end

        when 
            20060.take 
or
            
20061.take or
            
20062.take or
            
20063.take or
            
20064.take or
            
20065.take or
            
20066.take or
            
20067.take or
            
20068.take or
            
20069.take or
            
20070.take or
            
20071.take or
            
20072.take 
            with guild_building_melt
.GetMyRefineNum(npc.race) == item.vnum
            begin
            
if item.vnum == 50601 then
                guild_building_melt
.DoRefineDiamond(guild_building_melt.GetOreRefineGoodPct())
            else
                
guild_building_melt.DoRefine(guild_building_melt.GetOreRefineGoodPct())
            
end
        end

        when 
            20060.take 
or
            
20061.take or
            
20062.take or
            
20063.take or
            
20064.take or
            
20065.take or
            
20066.take or
            
20067.take or
            
20068.take or
            
20069.take or
            
20070.take or
            
20071.take or
            
20072.take 
            with guild_building_melt
.IsRefinableRawOre(item.vnum) and guild_building_melt.GetMyRefineNum(npc.race) != item.vnum
            begin
            
if item.vnum == 50601 then
                guild_building_melt
.DoRefineDiamond(guild_building_melt.GetOreRefineBadPct())
            else
                
guild_building_melt.DoRefine(guild_building_melt.GetOreRefineBadPct())
            
end
        end
    end
end 
Ich habe die Quest eigentlich bis zu dem item 50618 erweitert, war vorher bis item 50613. Es wird zwar angenommen, aber schlägt immer Fehl und kein Item verschwindet, aber nur bei den neuen.
Weiß jemand woran das liegt? wäre sehr nett wen ihr mir helfen könntet:rolleyes:

MfG
Kriegergeist^^
11/17/2012 16:35 iSouli~#7138
Quote:
Originally Posted by Tentos123 View Post
Fehlermeldung:
syntax error : [string "start"]:9: <eof> expected near `elseif'
grotte_warp.quest:22:Error occured on compile grotte_warp.quest

Quest:
PHP Code:
quest grotte_warp begin
    state start begin
        when letter with pc
.get_level >= 75 begin
            send_letter
("In die Grotte")
        
end
        when info 
or button begin
            say_title
("In die Grotte...")
            
say("In welche Grotte möchtest du?")
                if 
pc.get_level >= 75 and pc.get_level <= 89 then
                    local s 
= select("Grotte 1", "Schließen")
                        if 
s == 1 then
                            pc
.warp(100, 12078)
                        
end
                    end
                
elseif pc.get_level >= 90 and pc.get_level <= 99 then
                    local b 
= select("Grotte 1", "Grotte 2", "Schließen")
                        if 
b == 1 then
                            pc
.warp(100, 12078)
                        elseif 
b == 2 then
                            pc
.warp(2417, 12749)
                        
end
                
elseif pc.get_level >= 100 then
                    local a 
= select("Grotte 1", "Grotte 2", "Bossraum", "Schließen")
                        if 
a == 1 then
                            pc
.warp(100, 12078)
                        elseif 
a == 2 then
                            pc
.warp(2417, 12749)
                        elseif 
a == 3 then
                            pc
.warp(1717, 12204)
                        
end
                    end
                end        
        end 
Bitte um Hilfe
PHP Code:
quest grotte_warp begin
    state start begin
       when letter with pc
.get_level > 74 begin
            send_letter
("In die Grotte")
        
end
        
        when info 
or button begin
            local gr
,gr1,gr2,req = nil,nil,nil,nil
            
if pc.get_level() < 75 then
                gr 
= "Nicht verfügbar"
                
gr1 = "Nicht verfügbar"
                
gr2 = "Nicht verfügbar"
                
req = 0
            
elseif pc.get_level() > 74 and pc.get_level() < 90 then
                gr 
= "Grotte1"
                
gr1 = "Nicht verfügbar"
                
gr2 = "Nicht verfügbar"
                
req = 1
            
elseif pc.get_level() > 89 and pc.get_level() < 100 then
                gr 
= "Grotte1"
                
gr1 = "Grotte2"
                
gr2 = "Nicht verfügbar"
                
req = 2
            
elseif pc.get_level() > 99 then
                gr 
= "Grotte1"
                
gr1 = "Grotte2"
                
gr2 = "Bossraum"
                
req = 3 
            end
            say_title
("In die Grotte...")
            
say()
            
say("In welche Grotte möchtest du?")
            
local s = select(gr,gr1,gr2,"Schließen")
            
            if 
s == 1 then
                
if req > 0 then
                    pc
.warp(100, 12078)
                
end
            
elseif s == 2 then
                
if req > 1 then
                    pc
.warp(2417, 12749)
                
end
            
elseif s == 3 then
                
if req > 2 then
                    pc
.warp(1717, 12204)
                
end
            end
        end
    end
end 
Quote:
Originally Posted by CanbiZ View Post
Moin,

ich bin nicht so der lieblingsquester am morgen

Kann mir jemand aus foldender Quest, eine quest machen, die mit einen Item funktioniert nicht mit Letter, und kann derjenige bitte 6 weitere Leere Slots einfügen? Also Map1, Map2,Map3,Map4 nach den anderen!
Danke!


Code:
quest warp begin
	state start begin
		when letter with pc.get_level()>=60 begin
			send_letter("Teleportieren")
		end
		when button or info begin
			say_title("Teleportieren")
			if pc.is_mount() then				
				say("Dies Kannst du nicht machen! Du musst zuerst von deinen Pferd absteigen")
				wait()
				send_letter("Teleportieren")				
				return				
			end
			say("Wohin willst du dich Teleportieren?")			
			local s = select("Map1", "Map2", "SD2", "Roter Wald", "Zombiemap", "Weiter", "Abbrechen")
			if s==6 then
				local t = select("Tal der Verfluchten", "Land der Gnome", "SD3", "Der Friedhof", "Handels Map", "Abbrechen")
				if t==1 then
					pc.warp(605461, 1124886)
				end	
				if t==2 then
					pc.warp(134370 , 1068854)
				end
				if t==3 then
					pc.warp(123495184, 123484277)
				end 
				if t==4 then
					pc.warp(25309182, 25337133)
				end 
				if t==5 then
					pc.warp(912384594, 91246594)
				end
				if t==6 then				
					send_letter("Teleportieren")				
					return
				end
			end
			if s==1 then			
				local empire = pc.get_empire()
				if empire == 1 then 
					pc.warp (469300 , 964200) 
				elseif empire == 2 then 
					pc.warp (55700, 157900) 
				elseif empire == 3 then 
					pc.warp (969600, 278400) 
				end 
			end
			if s==2 then
				local empire = pc.get_empire()
				if empire == 1 then 
					pc.warp (353100, 882900) 
				elseif empire == 2 then 
					pc.warp (145500, 240000) 
				elseif empire == 3 then 
					pc.warp (863900, 246000) 
				end 			
			end			
			if s==3 then
				pc.warp(703966, 463164)
			end
			if s==4 then
				pc.warp(1049600, 0)
			end
			if s==5 then
				pc.warp(679772, 1192150)
			end 					 			
			if s==7 then				
				send_letter("Teleportieren")				
				return
			end
		end	
	end		
end
PHP Code:
quest warp begin
    state start begin
        
function maps()
            return {
                [
1] = {'Map1','123','123'}
                [
2] = {'Map2','123','123'}
                [
3] = {'Map3','123','123'}
                [
4] = {'Map4','123','123'}
            }
        
end
        when 9008.chat
.'Teleportieren' begin
            say_reward
(mob_name(npc.get_race())..':')
            
say()
            
say('Wo möchtest du hin?')
            
local a = select('Map1','Map2','Map3','Map4','Map5','Nirgendswo')
            if 
a == 6 then return end
            say_reward
(mob_name(npc.get_race())..':')
            
say()
            
say('Möchtest du zur '..warp.maps()[a][1]..'?')
            if 
select('Ja','Nein') == 2 then return end
            pc
.warp(warp.maps()[a][2],warp.maps()[a][3])
        
end
    end
end 
11/17/2012 21:36 '-SkyLiiNe-'#7139
PHP Code:
quest bio92 begin
    state collect_quest_lv92 begin  
        when login 
or levelup with pc.level>91 begin  
            set_state
(talk_to_disciple_lv92)  
        
end      
    end  
    state talk_to_disciple_lv92 begin  
        when letter begin  
            local v 
= find_npc_by_vnum(20084)  
            if 
v != 0 then target.vid("__TARGET__", v, "Biologe")  
            
end  
            send_letter
("Forschung des Biologen Nr. 8")  
        
end  
        when button 
or info begin  
            say_title
("Forschung des Biologen Nr. 8")  
            
say("")  
            
say("Der Biologe benötigt ein weiteres Mal Hilfe.")  
            
say("Er meinte, er bräuchte Hilfe auf der Suche")  
            
say("nach speziellen Gegenständen.")  
            
say("Sprich mit ihm,")  
            
say("um eine genauere Beschreibung zu erhalten.")  
            
say("")  
            
say_reward("Sprich mit dem Biologen")  
            
say("")  
        
end  
        when __TARGET__
.target.click or 20084.chat."Juwelen der Missgunst" begin  
            target
.delete("__TARGET__")  
            
say("Biologe:")  
            
say("Gut, dass du gekommen bist...")  
            
say("Die Untersuchung der Notizen der Anführer")  
            
say("habe ich abgeschlossen.")  
            
say("Nun habe ich neue Objekte gefunden,")  
            
say("die ich gerne untersuchen würde.")  
            
wait()  
            
say("Biologe:")  
            
say("Ich würde sie ja selber sammeln,")  
            
say("aber ich habe zuviel zu tun...")  
            
say("Es wäre sehr nett, wenn du dies")  
            
say("für mich erledigen könntest.")  
            
wait()  
            
say("Biologe:")  
            
say("Ich möchte Juwelen der Missgunst untersuchen.")  
            
say("Davon benötige ich 10 Stück.")  
            
say("Es kann jedoch sein, dass sich einige")  
            
say("Juwelen als alt und unlesbar herausstellen.")  
            
say("")                                                                                                                                                            
            
set_state(collect_gems)  
            
pc.setqf("duration",0)  
            
pc.setqf("collect_count",0)  
        
end  
    end  
    state collect_gems begin  
        when letter begin  
            send_letter
("Forschung des Biologen Nr. 8")  
        
end  
        when button 
or info begin  
            say_title
("Juwelen der Missgunst")  
            
say("")  
            
say("Der Biologe gab euch den Auftrag,")  
            
say("10 Juwelen der Missgunst zu besorgen.")  
            
say("Diese kannst du vom Unterwelt Eisgolem und")  
            
say("Unterwelt Eismann bekommen.")  
            
say("")  
            
say_item_vnum(30251)  
            
say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!")  
            
say("")  
        
end  
        when 1135.kill 
or
             
1137.kill  begin
            local s 
= number(1, 200)
            if 
s<5 then 
                pc
.give_item2(30251, 1)  
            
end  
        end  
        when 20084.chat
."Juwelen der Missgunst" with pc.count_item(30251)>0 begin  
            
if get_time()>pc.getqf("duration") then  
                say
("Einen Moment ...")  
                
say("Vielen Dank,")  
                
say("lasst mich schnell überprüfen")  
                
say("ob dieser Juwel brauchbar ist ...")  
                
say("")  
                
pc.remove_item("30251", 1)  
                if 
pc.is_gm() == 1 then 
                    pc
.setqf("duration", get_time()+1) 
                else 
                    
pc.setqf("duration", get_time()+1*60*60) 
                
end -- Wenn Spieler GM ist 1SEK wartezeit, sonst 1h   
                wait
()  
                
local rand = number(0,99)  
                if 
rand<50 then  
                    local count 
= pc.getqf("collect_count")+1  
                    
if count<10 then  
                        pc
.setqf("collect_count", count)  
                        
say("Biologe:")  
                        
say("Hervorragend,")  
                        
say("dieser Juwel ist in Ordnung.")  
                        
say("Bringt mir noch welche, damit ich meine")  
                        
say("Forschungen abschließen kann.")  
                        
say("")  
                        
say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!")  
                        
say("")  
                    else   
                        
say("Biologe:")  
                        
say("Du hast mir die 10 Juwelen gebracht.")  
                        
say("Wähle nun zwischen einer der drei Belohnungen:")  
                        
say("")
                        
local s=select("TP +1000","Verteidigung +300","Angriffswert +100")
                        if 
1 == s then
                            affect
.add_collect(1, 1000, 60*60*24*365*60) 
                        elseif 
2 == s then
                            affect
.add_collect(apply.DEF_GRADE_BONUS, 300, 60*60*24*365*60) 
                        elseif 
3 == s then 
                            affect
.add_collect(apply.ATT_GRADE_BONUS,100,60*60*24*365*60)        
                        
end
                        
return                        
                        
pc.setqf("collect_count",0)  
                        
pc.setqf("duration",0)
                                                
                    
end  
                
else                                  
                    
say("Biologe:")  
                    
say("Es tut mir leid, dieser Juwel")  
                    
say("hat sich als unbrauchbar herausgestellt.")  
                    
say("Bitte hol mir eine Neue.")  
                
end  
            
else  
                
say("Biologe:")  
                
say("Entschuldige, ich habe die letzten")  
                
say("Studien noch nicht beendet ...")  
                
say("Bitte bring mir den Juwel später.")  
            
end  
        end  
    end
end 
PuTTY Fehler bei make.py:
PHP Code:
syntax error : [string "collect_gemspc . count_item ( 30251 ) > 0"]:42: `end' expected (to close `if' at line 17) near `pc'
bio92.quest:1540:Error occured on compile bio92.quest 
11/17/2012 21:48 xxxTribelx#7140
hay ich habe ein problem mit meiner online anzeige
des ist jetzt nur der auszug aus einer quest

PHP Code:
    if game.get_event_flag() == 1 then
        say_color
("green", "[SA]xxx ist online.")
    else
        
say_color("red", "[SA]xxx ist offline.")
    
end
    
if game.get_event_flag() == 1 then
        say_color
("green", "[SA]yyy ist online.")
    else
        
say_color("red", "[SA]yyy ist offline.")
    
end
    
if game.get_event_flag() == 1 then
        say_color
("green", "[GA]yyy ist online.")
    else
        
say_color("red", "[GA]yyy ist offline.")
    
end
                        
                        
    when login with pc
.is_gm() begin 
        command
("e "..pc.get_name().." 1")
    
end 
so wenn ich den online status abfrage kommt immer offline obwohl welche online sind

hat einer da eine lösung?