[SERVICE] Die Questkontrolle

05/31/2013 14:41 Astro.#8176
Irgentwas mache ich falsch :confused:

PHP Code:
quest bonus_item begin
    state start begin
        when 58001.
use or 58002.use begin
        local bonis 
= {
        [
58001] = {Verteidigung,apply.DEF_GRADE_BONUS,150,60*60*8},
        [
58002] = {TP,apply.MAX_HP,150,60*60*8},
        }
        
local get.item_vnum = vnum
        local bonis
[vnum] = a
        
if pc.getqf("bonus_aktiv") == 0 then
            pc
.setqf("bonus_aktiv", 1)
            
affect.add_collect(a[2], a[3], a[4])
            
chat(""..a[1].." +"..a[3].."")
        elseif 
pc.getqf("bonus_aktiv") == 1 then
            pc
.setqf("bonus_aktiv", 0)
            
affect.remove_collect(a[2], a[3], a[4])
            
chat(""..a[1].." -"..a[3].."")
        
end
    end
end 

[Only registered and activated users can see links. Click Here To Register...]
05/31/2013 16:06 |★|554#8177
@Astro.
Tja, das ist etwas tricky. ^^
In der Fehlermeldung steht ja folgendes:
PHP Code:
...unexpected symbol near `.´
pets.quest:19:... 
Die Quest "pets.quest" verursacht den Fehler, nicht die Quest "bonus_item.quest".
Es wurde im Bild auch nicht nur die Quest "bonus_item.quest" dargestellt, sondern alle Quests, die in der quest_list HINTER der Quest "pets.quest" sind, man sieht nur lediglich die letzte Quest in der quest_list.
Korrigiere erstmal die pets.quest bzw. poste sie, falls du das alleine nicht schaffst.

Trotzdem ist in der Quest "bonus_item.quest" ein kleiner Fehler vorhanden, da das "when" ebenfalls ein end benötigt, das "bonis" und alles andere muss also noch eins weiter eingerückt sein:
PHP Code:
quest bonus_item begin 
    state start begin 
        when 58001.
use or 58002.use begin 
            local bonis 
= { 
                [
58001] = {Verteidigung,apply.DEF_GRADE_BONUS,150,60*60*8}, 
                [
58002] = {TP,apply.MAX_HP,150,60*60*8}, 
            } 
            
local item.get_vnum() = vnum 
            local bonis
[vnum] = a 
            
if pc.getqf("bonus_aktiv") == 0 then 
                pc
.setqf("bonus_aktiv", 1) 
                
affect.add_collect(a[2], a[3], a[4]) 
                
chat(""..a[1].." +"..a[3].."") 
            elseif 
pc.getqf("bonus_aktiv") == 1 then 
                pc
.setqf("bonus_aktiv", 0) 
                
affect.remove_collect(a[2], a[3], a[4]) 
                
chat(""..a[1].." -"..a[3].."") 
            
end
        end 
    end 
end 
05/31/2013 16:15 Astro.#8178
Bin gerade am questen lernen aber ich verstehe nicht was ich an der quest falsch mache? wenn ich auf das item klicke passiert nichts

PHP Code:
quest bonusitem begin
    state start begin
        when 53001.
use or 53002.use begin
            local bonis 
= {
                [
53001] = {apply.ATT_GRADE_BONUS, 150, 60*60*8},
                [
53002] = {apply.MAX_HP, 5000, 60*60*8}
            }
            
local vnum = get.item_vnum
            local btyp 
= bonis[vnum][1]
            
local bwert = bonis[vnum][2]
            
local bzeit = bonis[vnum][3]
            if 
pc.getqf("bonus_aktiv") == 0 then
                pc
.setqf("bonus_aktiv", 1)
                
affect.add_collect(btyp, bwert, bzeit)
                
chat(" BONUS Aktiviert")
            elseif 
pc.getqf("bonus_aktiv") == 1 then
                pc
.setqf("bonus_aktiv", 0)
                
affect.remove_collect(btyp, bwert, bzeit)
                
chat(" BONUS Deaktiviert")
            
end
        end
    end
end 
05/31/2013 23:34 Vali2222#8179
Quote:
Originally Posted by Vali2222 View Post
Ich hab 3 quests die teilweise selbstgeschrieben sind und nicht kompilieren wollen, kann jemand drüberschaun? :)
Nr 1:

Nr 2:
Nr. 3
Nummer 1 und Nummer 3 haben immernoch Fehler :/
06/01/2013 10:49 swamswam#8180
kann mir jemand helfen ?
Ich frage mich wie man die quest rolle nochmal senden kann.
Man schließt ja die Rolle mit nein aber ich will das die Rolle bleibt und erst wenn man ja drückt die dauerhaft verschwindet!

bitte um hilfe

quest Truhe_der_Anfänger begin
state start begin
when VNUM.use with pc.get_level() >= 10 begin
send_letter("Truhe der Anfänger")
end

when button or info begin
say_title("Truhe der Anfänger")
say("Hast du genug platz im Inventar frei?")
local a = select ("ja","Nein")

if a == 1 then
if pc.job == 0 then
pc.give_item2("")
pc.give_item2("")
pc.give_item2("")
pc.give_item2("")
end

elseif pc.job == 1 then
pc.give_item2("")
pc.give_item2("")
pc.give_item2("")
pc.give_item2("")
end

elseif pc.job == 2 then
pc.give_item2("")
pc.give_item2("")
pc.give_item2("")
pc.give_item2("")
end

elseif pc.job == 3 then
pc.give_item2("")
pc.give_item2("")
pc.give_item2("")
pc.give_item2("")
end
end

elseif a == 2 then
return
end
end
end
end
06/01/2013 13:17 PeloQ#8181
@ swamswam

06/01/2013 18:08 swamswam#8182
Ich habe keine Ahnung wo der Fehler ist!
Ich bitte um Hilfe.

06/01/2013 18:32 Astro.#8183
Quote:
Originally Posted by Astro. View Post
Bin gerade am questen lernen aber ich verstehe nicht was ich an der quest falsch mache? wenn ich auf das item klicke passiert nichts

PHP Code:
quest bonusitem begin
    state start begin
        when 53001.
use or 53002.use begin
            local bonis 
= {
                [
53001] = {apply.ATT_GRADE_BONUS, 150, 60*60*8},
                [
53002] = {apply.MAX_HP, 5000, 60*60*8}
            }
            
local vnum = get.item_vnum
            local btyp 
= bonis[vnum][1]
            
local bwert = bonis[vnum][2]
            
local bzeit = bonis[vnum][3]
            if 
pc.getqf("bonus_aktiv") == 0 then
                pc
.setqf("bonus_aktiv", 1)
                
affect.add_collect(btyp, bwert, bzeit)
                
chat(" BONUS Aktiviert")
            elseif 
pc.getqf("bonus_aktiv") == 1 then
                pc
.setqf("bonus_aktiv", 0)
                
affect.remove_collect(btyp, bwert, bzeit)
                
chat(" BONUS Deaktiviert")
            
end
        end
    end
end 
immernoch nicht gelöst
06/01/2013 18:57 PeloQ#8184
@ Astro.


@ swamswam

06/02/2013 00:05 swamswam#8185
Ich brauche nochmals eure Hilfe. Ich habe schon wieder ein Quest mit Fehlern.

vbox sagt dazu:
when doesn't habe begin-end clause. (up)
geschichte_1.quest:4:Error occured on compile geschichte_1.quest

vielleicht hilft euch das!

Vielen dank schon mal im voraus

06/02/2013 09:58 PeloQ#8186
@ swamswam

06/02/2013 14:04 Zryyy#8187
Code:
Calls undeclared function! :
fkbread
Error occured on compile fertigkeitsbuch.quest
questlib von mijago ist eig drinne ?_?

was hab ich falsch gemacht?
06/02/2013 14:16 PeloQ#8188
@ Zryyy

06/02/2013 17:09 CR3AT1V3#8189
Hab ein problem mit meiner buffs.quest.

Die Attributwerte werden nicht enfernt wenn ich den Ring ablege.
Ich hoffe ihr könnt mir helfen. :)

PHP Code:
quest buffs begin
    state start begin
        when 71135.
use begin
            cmdchat
("buff1")
            
affect.add_collect(apply.GOLD_DOUBLE_BONUS, 50, 604800)
            
affect.add_collect(apply.ATT_SPEED, 20, 604800)
            
affect.add_collect(apply.CAST_SPEED, 20, 604800)
            
affect.add_collect(apply.ATT_GRADE_BONUS, 30, 604800)
            
affect.add_collect(apply.MAX_HP, 10, 604800)
            
affect.add_collect(apply.MAX_MP, 10, 604800)
        
end 
        when 71136.
use begin
            cmdchat
("buff2")
            
affect.add_collect(apply.GOLD_DOUBLE_BONUS, 50, 604800)
            
affect.add_collect(apply.ATT_SPEED, 20, 604800)
            
affect.add_collect(apply.CAST_SPEED, 20, 604800)
            
affect.add_collect(apply.ATT_BONUS_TO_MONSTER, 30, 604800)
            
affect.add_collect(apply.MAX_HP, 10, 604800)
            
affect.add_collect(apply.MAX_MP, 10, 604800)
        
end 
        when 71143.
use begin
            cmdchat
("buff3")
        
end 
        when 71145.
use begin
            cmdchat
("buff4")
        
end
        when 71148.
use begin
            cmdchat
("buff5")
        
end
        when 71149.
use begin
            cmdchat
("buff6")
        
end
    end
end 
06/02/2013 18:17 Zryyy#8190
Quote:
Originally Posted by CR3AT1V3 View Post
Hab ein problem mit meiner buffs.quest.

Die Attributwerte werden nicht enfernt wenn ich den Ring ablege.
Ich hoffe ihr könnt mir helfen. :)

PHP Code:
quest buffs begin
    state start begin
        when 71135.
use begin
            cmdchat
("buff1")
            
affect.add_collect(apply.GOLD_DOUBLE_BONUS, 50, 604800)
            
affect.add_collect(apply.ATT_SPEED, 20, 604800)
            
affect.add_collect(apply.CAST_SPEED, 20, 604800)
            
affect.add_collect(apply.ATT_GRADE_BONUS, 30, 604800)
            
affect.add_collect(apply.MAX_HP, 10, 604800)
            
affect.add_collect(apply.MAX_MP, 10, 604800)
                
pc.setqf(vnum, 0)
                
affect.remove_collect(btyp, bwert, bzeit)
                
chat(" Du hast "..btyp.." -"..bwert.." für "..bzeit.." Minuten entfernt.")
        
end 
        when 71136.
use begin
            cmdchat
("buff2")
            
affect.add_collect(apply.GOLD_DOUBLE_BONUS, 50, 604800)
            
affect.add_collect(apply.ATT_SPEED, 20, 604800)
            
affect.add_collect(apply.CAST_SPEED, 20, 604800)
            
affect.add_collect(apply.ATT_BONUS_TO_MONSTER, 30, 604800)
            
affect.add_collect(apply.MAX_HP, 10, 604800)
            
affect.add_collect(apply.MAX_MP, 10, 604800)
                
pc.setqf(vnum, 0)
                
affect.remove_collect(btyp, bwert, bzeit)
                
chat(" Du hast "..btyp.." -"..bwert.." für "..bzeit.." Minuten entfernt.")
        
end 
        when 71143.
use begin
            cmdchat
("buff3")
        
end 
        when 71145.
use begin
            cmdchat
("buff4")
        
end
        when 71148.
use begin
            cmdchat
("buff5")
        
end
        when 71149.
use begin
            cmdchat
("buff6")
        
end
    end
end 
glaube müsste so gehen, wenn nicht dann bei "vnum, 0" die vnum von dem siegels eintragen