Quest Problem

12/22/2013 18:40 Antigene#1
Moin,

ich schreibe grad eine Quest die mit dem Item 70036 versucht Skills von M1 auf G1 zu lesen pro Stufe muss man 70036 benutzen. Sozusagen wie ein Seelenstein bloß für die M1 skills und ohne das Rangpunkte abgezogen werden.

die Quest:

PHP Code:
quest training_grandmaster_skill begin
    state start begin
        when 70036.
use begin
            say_title
("Notiz")
            if 
pc.get_skill_group() == 0 then
                say
("Du besitzt keine Fertigkeiten, die")
                
say("gemeistert werden können.")
                return
            
end
            
if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
                
if pc.is_skill_book_no_delay() then
                    say
("Durch den gebrauch einer Exorzismuss-")
                    
say("Schriftrolle kannst du einen weiteren")
                    
say("Skill lesen!")                
                    
wait()
                    
say_title("Notiz")
                else
                    
say("Du hast heute bereits eine Notiz gelesen!")
                    return
                
end
            end
            local result 
= training_master_skill.BuildMasterSkillList(pc.get_job(), pc.get_skill_group())
            
local vnum_list = result[1]
            
local name_list = result[2]
            if 
table.getn(vnum_list) == 0 then
                say
("Du besitzt keine Fertigkeiten, die")
                
say("gemeistert werden können.")
                return
            
end
            say
("Welche Fertigkeit möchtest du trainieren?")
            
say("")
            
local menu_list = {}
            
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
            
table.insert(menu_list, "Abbrechen") 
            
local s=select_table(menu_list)
            if 
table.getn(menu_list) == s then
                
return
            
end
            local skill_name
=name_list[s]
            
local skill_vnum=vnum_list[s]
            
local skill_level = pc.get_skill_level(skill_vnum)
            
local title=string.format("%s auf G%d trainieren", skill_name, skill_level-20+1)
            if 
skill_level-20+1==10 then
                title
=string.format("%s auf P trainieren", skill_name)
            
end
                
if get_time() < pc.getqf("next_time") then
                
if pc.is_skill_book_no_delay() then
                    pc
.remove_skill_book_no_delay()
                else
                    
say("Bitte an die Admins wenden!")
                    return
                
end
            end
            pc
.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
                        if 
pc.learn_master_skill(skill_vnum) then
                        say_title
(string.format("%s erfolgreich", title))
                    if 
40 == pc.get_skill_level(skill_vnum) then
                        say
(string.format("%s ist nun Gemeistert.", skill_name))
                        
say("Herzlichen Glückwunsch!")
                    else
                        
say(string.format("Das Meistern war erfolgreich!", skill_name, skill_level-20+1+1))
                    
end
                    say
("")
                    
say_reward("Erfolgreich!")
                    
say("")
                
end
            
function BuildMasterSkillList(job, group)
            
MASTER_SKILL_LEVEL = 20
            GRAND_MASTER_SKILL_LEVEL 
= 29
            local skill_list 
= special.active_skill_list[job+1][group]
            
local ret_vnum_list = {}
            
local ret_name_list = {}
            
table.foreach(skill_list, 
            function(
i, skill_vnum) 
            
local skill_level = pc.get_skill_level(skill_vnum)
            if 
skill_level >= MASTER_SKILL_LEVEL and skill_level < GRAND_MASTER_SKILL_LEVEL then
                table
.insert(ret_vnum_list, skill_vnum)
                
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
                if 
name == nil then name=skill_vnum end
                table
.insert(ret_name_list, name)
            
end
            end
)
            return {
ret_vnum_list, ret_name_list}
        
end
    end
end 

Putty:

PHP Code:
WHEN  : 70036.use
assertion failure : nested==0
Sonstiges
/andereskillstyle.quest:88:Error occured on compile Sonstiges/andereskillstyle.quest 
würde mich über paar Ideen und Problemlösungen freuen
12/22/2013 19:00 x'Radon#2
PHP Code:
quest training_grandmaster_skill begin
    state start begin
        when 70036.
use begin
            say_title
("Notiz")
            if 
pc.get_skill_group() == 0 then
                say
("Du besitzt keine Fertigkeiten, die")
                
say("gemeistert werden können.")
                return
            
end
            
if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
                
if pc.is_skill_book_no_delay() then
                    say
("Durch den gebrauch einer Exorzismuss-")
                    
say("Schriftrolle kannst du einen weiteren")
                    
say("Skill lesen!")                
                    
wait()
                    
say_title("Notiz")
                else
                    
say("Du hast heute bereits eine Notiz gelesen!")
                    return
                
end
            end
            local result 
= training_master_skill.BuildMasterSkillList(pc.get_job(), pc.get_skill_group())
            
local vnum_list = result[1]
            
local name_list = result[2]
            if 
table.getn(vnum_list) == 0 then
                say
("Du besitzt keine Fertigkeiten, die")
                
say("gemeistert werden können.")
                return
            
end
            say
("Welche Fertigkeit möchtest du trainieren?")
            
say("")
            
local menu_list = {}
            
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
            
table.insert(menu_list, "Abbrechen") 
            
local s=select_table(menu_list)
            if 
table.getn(menu_list) == s then
                
return
            
end
            local skill_name
=name_list[s]
            
local skill_vnum=vnum_list[s]
            
local skill_level = pc.get_skill_level(skill_vnum)
            
local title=string.format("%s auf G%d trainieren", skill_name, skill_level-20+1)
            if 
skill_level-20+1==10 then
                title
=string.format("%s auf P trainieren", skill_name)
            
end
            
if get_time() < pc.getqf("next_time") then
                
if pc.is_skill_book_no_delay() then
                    pc
.remove_skill_book_no_delay()
                else
                    
say("Bitte an die Admins wenden!")
                    return
                
end
            end
            pc
.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
            if 
pc.learn_master_skill(skill_vnum) then
                say_title
(string.format("%s erfolgreich", title))
                if 
40 == pc.get_skill_level(skill_vnum) then
                    say
(string.format("%s ist nun Gemeistert.", skill_name))
                    
say("Herzlichen Glückwunsch!")
                else
                    
say(string.format("Das Meistern war erfolgreich!", skill_name, skill_level-20+1+1))
                
end
                say
("")
                
say_reward("Erfolgreich!")
                
say("")
            
end
            
function BuildMasterSkillList(job, group)
            
MASTER_SKILL_LEVEL = 20
            GRAND_MASTER_SKILL_LEVEL 
= 29
            local skill_list 
= special.active_skill_list[job+1][group]
            
local ret_vnum_list = {}
            
local ret_name_list = {}
            
table.foreach(skill_list, 
            function(
i, skill_vnum) 
            
local skill_level = pc.get_skill_level(skill_vnum)
            if 
skill_level >= MASTER_SKILL_LEVEL and skill_level < GRAND_MASTER_SKILL_LEVEL then
                table
.insert(ret_vnum_list, skill_vnum)
                
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
                if 
name == nil then name=skill_vnum end
                    table
.insert(ret_name_list, name)
                
end
            end
)
            return {
ret_vnum_list, ret_name_list}
            
end
        end
    end
end 
probiers mal so
12/22/2013 19:08 Antigene#3
Sag mir genau was du dort verändert hast will mein Fehler wissen
12/22/2013 19:19 x'Radon#4
Am ende hat ein end gefehlt. unter return