[SERVICE] Die Questerstellung

08/31/2015 20:39 WieLaDeNeax3#3106
Hallo epvp ich habe ein Problem mit einer Warpquest:

PHP Code:
quest warptest begin 
    state start begin 
        when 20093.click begin 
            say_title
("Hallo ".. pc.get_name() ..",")
            
say("Ich kann dich auf wichtige Maps Teleportieren.")
            
say("Jede Map hat ein Minimales und Maximales LvL.")
            
say("D.h du siehst die Maps nur wenn du in derem LvL")
            
say("bereich bist!")
            
say_reward("Levelbereiche der Maps:")
            
say_reward("Lv75-105 - Lv105-115 - Lv115-140 - Lv140-150 - Lv150")
            
local warptab = { 
                --[[ 
Möglich
                 
empire 
                 minlvl 
                 maxlvl 
                 minalign 
                 maxalign 
                 is_gm 
(true
                 
eventflag
                
]]
                [
"Farmmaps (Lv75 - 150)"] = { 
                    [
"minlvl"] = 75,
                    [
"subs"] = { 
                        [
"1. Farmmap1 Lv75"] = {["x"] = 5994, ["y"] = 7563, ["minlvl"] = 75},
                        [
"2. Farmmap2 Lv105"] = {["x"] = 2887, ["y"] = 57, ["minlvl"] = 105}, 
                        [
"3. Farmmap3 Lv115"] = {["x"] = 11199, ["y"] = 708, ["minlvl"] = 115}, 
                        [
"4. Farmmap4 Lv140"] = {["x"] = 8451, ["y"] = 7459, ["minlvl"] = 140}, 
                        [
"5. Farmmap5 Lv150"] = {["x"] = 5905, ["y"] = 1105, ["minlvl"] = 150}, 
                    }, 
                }, 
                [
"Dungeons (Lv75 - 150)"] = { 
                    [
"minlvl"] = 75,
                    [
"subs"] = { 
                        [
"1. Beran Setaou Lv75"] = {["x"] = 5994, ["y"] = 7563, ["minlvl"] = 75},
                        [
"2. Spinnenbaroness Lv105"] = {["x"] = 2887, ["y"] = 57, ["minlvl"] = 105}, 
                        [
"3. Devil Catacomb Lv115"] = {["x"] = 11199, ["y"] = 708, ["minlvl"] = 115}, 
                        [
"4. Rotdrachen-Festung Lv140"] = {["x"] = 8451, ["y"] = 7459, ["minlvl"] = 140}, 
                        [
"5. Nemeres Warte Lv150"] = {["x"] = 5905, ["y"] = 1105, ["minlvl"] = 150}, 
                    }, 
                }, 
                [
"Levelmaps (Lv75 - 150)"] = { 
                    [
"minlvl"] = 75,
                    [
"subs"] = { 
                        [
"1. Levelmap1 Lv75"] = {["x"] = 5994, ["y"] = 7563, ["minlvl"] = 75},
                        [
"2. Levelmap2 Lv105"] = {["x"] = 2887, ["y"] = 57, ["minlvl"] = 105}, 
                        [
"3. Levelmap3 Lv115"] = {["x"] = 11199, ["y"] = 708, ["minlvl"] = 115}, 
                        [
"4. Levelmap4 Lv140"] = {["x"] = 8451, ["y"] = 7459, ["minlvl"] = 140}, 
                        [
"5. Levelmap5 Lv150"] = {["x"] = 5905, ["y"] = 1105, ["minlvl"] = 150}, 
                    }, 
                }, 
            }
            -- 
Ab hier nichts mehr Ändern
            
local wp = {} 
            -- 
Kategorien 
            local 
function create_list(nm,index
                
table.foreach((index or warptab), 
                    function(
i,l
                        
local x = (nm or '')..'#/'..
                        
--print(i,x
                        if 
l.subs ~= nil then 
                            create_list
(x,l.subs
                            
wp[x] = {["type"] = "kat"
                        else 
                            
wp[x] = 
                            wp
[x]["type"] = "warp" 
                            
wp[x]["kat"] = (nm or ''
                        
end 
                    end 
                

            
end 
            
--Erstelle Liste der vorhandenen Warps 
            create_list
() 
            
local function show_menu(id,kat
                
local index id or 
                
-- Funktionen START 
                local 
function count(str,del
                    
local out 
                    
for i in string.gfind(str,del) do 
                        
out out+
                    end 
                    
return out 
                end 
                local 
function trim(str
                    
str string.gsub(str,'.-#/','',index
                    return 
str 
                end 
                
-- Funktionen ENDE 
                 
                
-- Erstellen der Warpliste f??elect2 
                local wl
,co = { 
                    [
"list"] = {}, 
                    [
"data"] = {}, 
                },

                table
.sort(wp
                
table.foreach(wp
                    function(
i,l
                        if 
count(i,'.-#/') == index then 
                            local 
function cc() 
                                -- 
Da es viele If's sind, nicht extra eingerückt 
                                if l.empire == nil or l.empire == pc.get_empire() then 
                                if l.maxlvl == nil or pc.get_level() <= l.maxlvl then 
                                if l.minlvl == nil or pc.get_level() >= l.minlvl then 
                                if l.minalign == nil or pc.get_real_alignment() >= l.minalign then 
                                if l.maxalign == nil or pc.get_real_alignment() <= l.maxalign then 
                                if l.eventflag == nil or game.get_event_flag(l.eventflag) == 1 then 
                                if l.is_gm == nil or pc.is_gm() == l.is_gm then 
                                    if l.type == "kat" then 
                                        local str = ' '..(string.gsub(trim(i),'
#%d+',''))..' ' 
                                        
wl.list[co] = str 
                                        wl
.data[str] = 
                                        wl
.data[str]["name"] = 
                                    
else 
                                        
local str = (string.gsub(trim(i),'#%d+','')) 
                                        
wl.list[co] = str 
                                        wl
.data[str] = 
                                    end 
                                    co 
co+
                                end 
-- gamemaster 
                                end 
-- eventflag 
                                end 
-- maxalign 
                                end 
-- minalign 
                                end 
-- minlvl 
                                end 
-- maxlvl 
                                end 
-- empire 
                                
-- if Block ende 
                            end 
                            
if index == 1 then 
                                cc
() 
                            elseif 
kat ~= nil and string.sub(i,1,string.len(kat)) == kat then 
                                cc
() 
                            
end 
                        end 
                    end 
                

                -- 
Ausgabe 
                table
.sort(wl.list) 
                
table.insert(wl.list,1,8
                if 
index ~= 1 then 
                    table
.insert(wl.list,'Zurück'
                
end 
                table
.insert(wl.list,'Abbrechen'
                
local sel select2(wl.list) 
                if 
sel == table.getn(wl.list) then return end 
                
if index ~= and sel == table.getn(wl.list)-1 then 
                    local nextkat 
= function() 
                        
local t,out split(kat,'#/'),'' 
                        
table.foreach(t
                            function(
i,l
                                if 
table.getn(t) and 1 then 
                                    out 
out..'#/'..
                                end 
                            end 
                        

                        return 
out 
                    end 
                    show_menu
(index-1,nextkat()) 
                    return 
                
end 
                
if wl.data[wl.list[sel]]["type"] == "kat" then  
                    show_menu
(index+1wl.data[wl.list[sel]]["name"],kat or nil
                    return 
                else 
                    
pc.warp(wl.data[wl.list[sel]]["x"]*100,wl.data[wl.list[sel]]["y"]*100
                
end 
            end 
            show_menu
() 
        
end 
    end 
end 
Wenn man auf abbrechen klickt dann bleibt der Text im bild aber das fenster ist zu.
08/31/2015 21:18 rollback#3107
Quote:
Originally Posted by WieLaDeNeax3 View Post
Hallo epvp ich habe ein Problem mit einer Warpquest:

PHP Code:
quest warptest begin 
    state start begin 
        when 20093.click begin 
            say_title
("Hallo ".. pc.get_name() ..",")
            
say("Ich kann dich auf wichtige Maps Teleportieren.")
            
say("Jede Map hat ein Minimales und Maximales LvL.")
            
say("D.h du siehst die Maps nur wenn du in derem LvL")
            
say("bereich bist!")
            
say_reward("Levelbereiche der Maps:")
            
say_reward("Lv75-105 - Lv105-115 - Lv115-140 - Lv140-150 - Lv150")
            
local warptab = { 
                --[[ 
Möglich
                 
empire 
                 minlvl 
                 maxlvl 
                 minalign 
                 maxalign 
                 is_gm 
(true
                 
eventflag
                
]]
                [
"Farmmaps (Lv75 - 150)"] = { 
                    [
"minlvl"] = 75,
                    [
"subs"] = { 
                        [
"1. Farmmap1 Lv75"] = {["x"] = 5994, ["y"] = 7563, ["minlvl"] = 75},
                        [
"2. Farmmap2 Lv105"] = {["x"] = 2887, ["y"] = 57, ["minlvl"] = 105}, 
                        [
"3. Farmmap3 Lv115"] = {["x"] = 11199, ["y"] = 708, ["minlvl"] = 115}, 
                        [
"4. Farmmap4 Lv140"] = {["x"] = 8451, ["y"] = 7459, ["minlvl"] = 140}, 
                        [
"5. Farmmap5 Lv150"] = {["x"] = 5905, ["y"] = 1105, ["minlvl"] = 150}, 
                    }, 
                }, 
                [
"Dungeons (Lv75 - 150)"] = { 
                    [
"minlvl"] = 75,
                    [
"subs"] = { 
                        [
"1. Beran Setaou Lv75"] = {["x"] = 5994, ["y"] = 7563, ["minlvl"] = 75},
                        [
"2. Spinnenbaroness Lv105"] = {["x"] = 2887, ["y"] = 57, ["minlvl"] = 105}, 
                        [
"3. Devil Catacomb Lv115"] = {["x"] = 11199, ["y"] = 708, ["minlvl"] = 115}, 
                        [
"4. Rotdrachen-Festung Lv140"] = {["x"] = 8451, ["y"] = 7459, ["minlvl"] = 140}, 
                        [
"5. Nemeres Warte Lv150"] = {["x"] = 5905, ["y"] = 1105, ["minlvl"] = 150}, 
                    }, 
                }, 
                [
"Levelmaps (Lv75 - 150)"] = { 
                    [
"minlvl"] = 75,
                    [
"subs"] = { 
                        [
"1. Levelmap1 Lv75"] = {["x"] = 5994, ["y"] = 7563, ["minlvl"] = 75},
                        [
"2. Levelmap2 Lv105"] = {["x"] = 2887, ["y"] = 57, ["minlvl"] = 105}, 
                        [
"3. Levelmap3 Lv115"] = {["x"] = 11199, ["y"] = 708, ["minlvl"] = 115}, 
                        [
"4. Levelmap4 Lv140"] = {["x"] = 8451, ["y"] = 7459, ["minlvl"] = 140}, 
                        [
"5. Levelmap5 Lv150"] = {["x"] = 5905, ["y"] = 1105, ["minlvl"] = 150}, 
                    }, 
                }, 
            }
            -- 
Ab hier nichts mehr Ändern
            
local wp = {} 
            -- 
Kategorien 
            local 
function create_list(nm,index
                
table.foreach((index or warptab), 
                    function(
i,l
                        
local x = (nm or '')..'#/'..
                        
--print(i,x
                        if 
l.subs ~= nil then 
                            create_list
(x,l.subs
                            
wp[x] = {["type"] = "kat"
                        else 
                            
wp[x] = 
                            wp
[x]["type"] = "warp" 
                            
wp[x]["kat"] = (nm or ''
                        
end 
                    end 
                

            
end 
            
--Erstelle Liste der vorhandenen Warps 
            create_list
() 
            
local function show_menu(id,kat
                
local index id or 
                
-- Funktionen START 
                local 
function count(str,del
                    
local out 
                    
for i in string.gfind(str,del) do 
                        
out out+
                    end 
                    
return out 
                end 
                local 
function trim(str
                    
str string.gsub(str,'.-#/','',index
                    return 
str 
                end 
                
-- Funktionen ENDE 
                 
                
-- Erstellen der Warpliste f??elect2 
                local wl
,co = { 
                    [
"list"] = {}, 
                    [
"data"] = {}, 
                },

                table
.sort(wp
                
table.foreach(wp
                    function(
i,l
                        if 
count(i,'.-#/') == index then 
                            local 
function cc() 
                                -- 
Da es viele If's sind, nicht extra eingerückt 
                                if l.empire == nil or l.empire == pc.get_empire() then 
                                if l.maxlvl == nil or pc.get_level() <= l.maxlvl then 
                                if l.minlvl == nil or pc.get_level() >= l.minlvl then 
                                if l.minalign == nil or pc.get_real_alignment() >= l.minalign then 
                                if l.maxalign == nil or pc.get_real_alignment() <= l.maxalign then 
                                if l.eventflag == nil or game.get_event_flag(l.eventflag) == 1 then 
                                if l.is_gm == nil or pc.is_gm() == l.is_gm then 
                                    if l.type == "kat" then 
                                        local str = ' '..(string.gsub(trim(i),'
#%d+',''))..' ' 
                                        
wl.list[co] = str 
                                        wl
.data[str] = 
                                        wl
.data[str]["name"] = 
                                    
else 
                                        
local str = (string.gsub(trim(i),'#%d+','')) 
                                        
wl.list[co] = str 
                                        wl
.data[str] = 
                                    end 
                                    co 
co+
                                end 
-- gamemaster 
                                end 
-- eventflag 
                                end 
-- maxalign 
                                end 
-- minalign 
                                end 
-- minlvl 
                                end 
-- maxlvl 
                                end 
-- empire 
                                
-- if Block ende 
                            end 
                            
if index == 1 then 
                                cc
() 
                            elseif 
kat ~= nil and string.sub(i,1,string.len(kat)) == kat then 
                                cc
() 
                            
end 
                        end 
                    end 
                

                -- 
Ausgabe 
                table
.sort(wl.list) 
                
table.insert(wl.list,1,8
                if 
index ~= 1 then 
                    table
.insert(wl.list,'Zurück'
                
end 
                table
.insert(wl.list,'Abbrechen'
                
local sel select2(wl.list) 
                if 
sel == table.getn(wl.list) then return end 
                
if index ~= and sel == table.getn(wl.list)-1 then 
                    local nextkat 
= function() 
                        
local t,out split(kat,'#/'),'' 
                        
table.foreach(t
                            function(
i,l
                                if 
table.getn(t) and 1 then 
                                    out 
out..'#/'..
                                end 
                            end 
                        

                        return 
out 
                    end 
                    show_menu
(index-1,nextkat()) 
                    return 
                
end 
                
if wl.data[wl.list[sel]]["type"] == "kat" then  
                    show_menu
(index+1wl.data[wl.list[sel]]["name"],kat or nil
                    return 
                else 
                    
pc.warp(wl.data[wl.list[sel]]["x"]*100,wl.data[wl.list[sel]]["y"]*100
                
end 
            end 
            show_menu
() 
        
end 
    end 
end 
Wenn man auf abbrechen klickt dann bleibt der Text im bild aber das fenster ist zu.
Da du sowieso keine Optionen der Quest nutzt, ausser das Mindestlevel, kannst du es mal mit meiner Quest versuchen:

[Only registered and activated users can see links. Click Here To Register...]
08/31/2015 21:35 WieLaDeNeax3#3108
Danke nur habe ich das Problem das ich es über Client button ausführe und die Warpquest will irgendwie nicht.

PHP Code:
quest warpring begin
    state start begin
        when login begin
            cmdchat
("warpPanelQID "..q.getcurrentquestindex())
        
end
        when button 
or info begin
            local warp 
= {--koord Pflichtrest optional!
                {--
Map1
                    name 
"Map 1",
                    {--
Rotes Reich
                        name 
"Rotes Reich",
                        
koord = {965784275242},
                        
minlevel 50,
                        
maxlevel 80,
                        
itemneed = {
                            {
1891}
                        },
                        
goldneed 10000
                    
},
                    {--
Gelbes Reich
                        name 
"Gelbes Reich",
                        
koord = {965784275242},
                        
minlevel 10,
                        
maxlevel 105,
                        
itemneed = {
                            {
1891}
                        },
                        
goldneed 10000
                    
},
                    {--
Blaues Reich
                        name 
"Blaues Reich",
                        
koord = {965784275242},
                        
minlevel 1,
                        
maxlevel 105,
                        
itemneed = {
                            {
1891}
                        },
                        
goldneed 10000
                    
},
                },
                {--
Map2
                    name 
"Map 2",
                    {--
Rotes Reich
                        name 
"Rotes Reich",
                        
koord = {965784275242},
                        
minlevel 1,
                        
maxlevel 30,
                        
itemneed = {
                            {
1891}
                        },
                        
goldneed 10000
                    
},
                    {--
Gelbes Reich
                        name 
"Gelbes Reich",
                        
koord = {965784275242},
                        
minlevel 1,
                        
maxlevel 105,
                        
itemneed = {
                            {
1891}
                        },
                        
goldneed 10000
                    
},
                    {--
Blaues Reich
                        name 
"Blaues Reich",
                        
koord = {965784275242},
                        
minlevel 1,
                        
maxlevel 105,
                        
itemneed = {
                            {
1891}
                        },
                        
goldneed 10000
                    
},
                },
            }
            
warpring.showwarps(warp)
        
end
        
function warp(tbl)
            
local level pc.get_level()
            if 
tbl.minlevel and level tbl.minlevel then
                say
("Dein Level ist zu niedrig, um diese Map zu betreten.")
                
say("Minimal Level: "..tbl.minlevel)
                
select("Abbrechen")
                return
            elseif 
tbl.maxlevel  and level tbl.maxlevel then
                say
("Dein Level ist zu hoch, um diese Map zu betreten.")
                
say("Maximal Level: "..tbl.maxlevel)
                
select("Abbrechen")
                return
            
end
            
while not pc.can_warp() do
                
say("Du kannst dich noch nicht teleportieren, da du in")
                
say("den letzten 10 Sekunden gehandelt hast.")
                if 
select("Erneut versuchen""Abbrechen") == 2 then return end
            end
            local warpneedstrings 
warpring.get_warpneedstrings(tbl)
            if 
table.getn(warpneedstrings) > 0 then
                say
("Um diese Map zu betreten benötigst du folgende")
                
say("Dinge:")
                for 
_,v in ipairs(warpneedstrings) do
                    
say(v)
                
end
                say
("")
                
say("Möchtest du trotzdem fortfahren?")
                if 
select("Teleportieren""Abbrechen") == 2 then return end
            end
            
if not warpring.check_and_remove_warpneeds(tblthen
                say
("Dir fehlt mindestens eins der benötigten Dinge.")
                
select("Abbrechen")
                return
            
end
            pc
.warp(tbl.koord[1], tbl.koord[2])
        
end
        
function get_warpneedstrings(tbl)
            
local warpneeds = {}
            if 
tbl.itemneed and table.getn(tbl.itemneed) > 0 then
                
for _,v in ipairs(tbl.itemneed) do
                    
table.insert(warpneeds"- "..v[2].."x "..item_name(v[1]))
                
end
            end
            
if tbl.goldneed and tbl.goldneed 0 then
                table
.insert(warpneeds"- "..tbl.goldneed.." Yang")
            
end
            
return warpneeds
        end
        
function check_warpneeds(tbl)
            if 
tbl.itemneed and table.getn(tbl.itemneed) > 0 then
                
for _,v in ipairs(tbl.itemneed) do
                    if 
pc.count_item(v[1]) < v[2then
                        
return false
                    end
                end
            end
            
if tbl.goldneed and tbl.goldneed 0 then
                
if pc.get_gold() < tbl.goldneed then
                    
return false
                end
            end
            
return true
        end
        
function remove_warpneeds(tbl)
            if 
tbl.itemneed and table.getn(tbl.itemneed) > 0 then
                
for _,v in ipairs(tbl.itemneed) do
                    
pc.remove_item(v[1], v[2])
                
end
            end
            
if tbl.goldneed and tbl.goldneed 0 then
                pc
.change_gold(-tbl.goldneed)
            
end
        end
        
function check_and_remove_warpneeds(tbl)
            if 
not warpring.check_warpneeds(tblthen
                
return false
            end
            warpring
.remove_warpneeds(tbl)
            return 
true
        end
        
function get_warpnames(tbl)
            
local level pc.get_level()
            
local names = {}
            for 
_,v in ipairs(tbl) do
                if 
v.minlevel and level v.minlevel then
                    v
.name v.name.." (ab Lv. "..v.minlevel..")"
                
elseif v.maxlevel  and level v.maxlevel then
                    v
.name v.name.." (bis Lv. "..v.maxlevel..")"
                
end
                table
.insert(namesv.name)
            
end
            
return names
        end
        
function showwarps(tbl)
            
local warpnames warpring.get_warpnames(tbl)
            
local s tbl[select3(warpnames)] or false
            
if not s then return end
            
if s.koord then
                warpring
.warp(s)
                return
            
end
            warpring
.showwarps(s)
        
end
    end
end 
08/31/2015 22:22 rollback#3109
Quote:
Originally Posted by WieLaDeNeax3 View Post
Danke nur habe ich das Problem das ich es über Client button ausführe und die Warpquest will irgendwie nicht.

PHP Code:
quest warpring begin
    state start begin
        when login begin
            cmdchat
("warpPanelQID "..q.getcurrentquestindex())
        
end
        when button 
or info begin
            local warp 
= {--koord Pflichtrest optional!
                {--
Map1
                    name 
"Map 1",
                    {--
Rotes Reich
                        name 
"Rotes Reich",
                        
koord = {965784275242},
                        
minlevel 50,
                        
maxlevel 80,
                        
itemneed = {
                            {
1891}
                        },
                        
goldneed 10000
                    
},
                    {--
Gelbes Reich
                        name 
"Gelbes Reich",
                        
koord = {965784275242},
                        
minlevel 10,
                        
maxlevel 105,
                        
itemneed = {
                            {
1891}
                        },
                        
goldneed 10000
                    
},
                    {--
Blaues Reich
                        name 
"Blaues Reich",
                        
koord = {965784275242},
                        
minlevel 1,
                        
maxlevel 105,
                        
itemneed = {
                            {
1891}
                        },
                        
goldneed 10000
                    
},
                },
                {--
Map2
                    name 
"Map 2",
                    {--
Rotes Reich
                        name 
"Rotes Reich",
                        
koord = {965784275242},
                        
minlevel 1,
                        
maxlevel 30,
                        
itemneed = {
                            {
1891}
                        },
                        
goldneed 10000
                    
},
                    {--
Gelbes Reich
                        name 
"Gelbes Reich",
                        
koord = {965784275242},
                        
minlevel 1,
                        
maxlevel 105,
                        
itemneed = {
                            {
1891}
                        },
                        
goldneed 10000
                    
},
                    {--
Blaues Reich
                        name 
"Blaues Reich",
                        
koord = {965784275242},
                        
minlevel 1,
                        
maxlevel 105,
                        
itemneed = {
                            {
1891}
                        },
                        
goldneed 10000
                    
},
                },
            }
            
warpring.showwarps(warp)
        
end
        
function warp(tbl)
            
local level pc.get_level()
            if 
tbl.minlevel and level tbl.minlevel then
                say
("Dein Level ist zu niedrig, um diese Map zu betreten.")
                
say("Minimal Level: "..tbl.minlevel)
                
select("Abbrechen")
                return
            elseif 
tbl.maxlevel  and level tbl.maxlevel then
                say
("Dein Level ist zu hoch, um diese Map zu betreten.")
                
say("Maximal Level: "..tbl.maxlevel)
                
select("Abbrechen")
                return
            
end
            
while not pc.can_warp() do
                
say("Du kannst dich noch nicht teleportieren, da du in")
                
say("den letzten 10 Sekunden gehandelt hast.")
                if 
select("Erneut versuchen""Abbrechen") == 2 then return end
            end
            local warpneedstrings 
warpring.get_warpneedstrings(tbl)
            if 
table.getn(warpneedstrings) > 0 then
                say
("Um diese Map zu betreten benötigst du folgende")
                
say("Dinge:")
                for 
_,v in ipairs(warpneedstrings) do
                    
say(v)
                
end
                say
("")
                
say("Möchtest du trotzdem fortfahren?")
                if 
select("Teleportieren""Abbrechen") == 2 then return end
            end
            
if not warpring.check_and_remove_warpneeds(tblthen
                say
("Dir fehlt mindestens eins der benötigten Dinge.")
                
select("Abbrechen")
                return
            
end
            pc
.warp(tbl.koord[1], tbl.koord[2])
        
end
        
function get_warpneedstrings(tbl)
            
local warpneeds = {}
            if 
tbl.itemneed and table.getn(tbl.itemneed) > 0 then
                
for _,v in ipairs(tbl.itemneed) do
                    
table.insert(warpneeds"- "..v[2].."x "..item_name(v[1]))
                
end
            end
            
if tbl.goldneed and tbl.goldneed 0 then
                table
.insert(warpneeds"- "..tbl.goldneed.." Yang")
            
end
            
return warpneeds
        end
        
function check_warpneeds(tbl)
            if 
tbl.itemneed and table.getn(tbl.itemneed) > 0 then
                
for _,v in ipairs(tbl.itemneed) do
                    if 
pc.count_item(v[1]) < v[2then
                        
return false
                    end
                end
            end
            
if tbl.goldneed and tbl.goldneed 0 then
                
if pc.get_gold() < tbl.goldneed then
                    
return false
                end
            end
            
return true
        end
        
function remove_warpneeds(tbl)
            if 
tbl.itemneed and table.getn(tbl.itemneed) > 0 then
                
for _,v in ipairs(tbl.itemneed) do
                    
pc.remove_item(v[1], v[2])
                
end
            end
            
if tbl.goldneed and tbl.goldneed 0 then
                pc
.change_gold(-tbl.goldneed)
            
end
        end
        
function check_and_remove_warpneeds(tbl)
            if 
not warpring.check_warpneeds(tblthen
                
return false
            end
            warpring
.remove_warpneeds(tbl)
            return 
true
        end
        
function get_warpnames(tbl)
            
local level pc.get_level()
            
local names = {}
            for 
_,v in ipairs(tbl) do
                if 
v.minlevel and level v.minlevel then
                    v
.name v.name.." (ab Lv. "..v.minlevel..")"
                
elseif v.maxlevel  and level v.maxlevel then
                    v
.name v.name.." (bis Lv. "..v.maxlevel..")"
                
end
                table
.insert(namesv.name)
            
end
            
return names
        end
        
function showwarps(tbl)
            
local warpnames warpring.get_warpnames(tbl)
            
local s tbl[select3(warpnames)] or false
            
if not s then return end
            
if s.koord then
                warpring
.warp(s)
                return
            
end
            warpring
.showwarps(s)
        
end
    end
end 
Hast du die select3-Questfunktion?
Steht bei dir "ipairs" in der quest_functions-Datei (findest du im Questordner)?
08/31/2015 22:36 WieLaDeNeax3#3110
In der quest_function ist ipairs, paris und select3 drinne.

Als item use funktioniert die Quest, aber als Button in einer Sidebar nicht, obwohl alles richtig ist.
09/01/2015 01:57 DevBlade#3111
Suche eine Funktion die einen ganzen stack entfernt und nicht nur 1 Item von einem Stack. Danke schonmal im vorraus
09/01/2015 19:00 ~NotGold*#3112
Ich suche eine Regenbogen Quest, die jeweils einen Skill von M1 auf P macht. :)
SuFu bereits genutzt, leider weiß ich nicht was ich ändern muss, da ich mich mit Quests nicht so gut auskenne.
09/01/2015 20:06 .Delta#3113
[Only registered and activated users can see links. Click Here To Register...]

In der Quest in der Zeile
Code:
GRAND_MASTER_SKILL_LEVEL = 30
die 30 zum gewünschten Skillgrad ändern, z.B. ich glaube 21 für M1
09/01/2015 20:21 ~NotGold*#3114
Klappt, aber es geht von G1 auf P, nicht von M1. :(

€: Habs geschafft :p
09/01/2015 20:29 rollback#3115
Versuch mal die:

Code:
quest regenbogenstein begin
	state start begin
		when REGI_VNUM.use begin
			if pc.get_skill_group() == 0 then
				say("Du musst zuerst eine Lehre wählen!")
				return
			end
			local skillList = regenbogenstein.BuildSkillList(20, 39)
			table.insert(skillList[2], "Abbrechen")
			
			say("Welche Fertigkeit möchtest du auf P setzen?")
			local s = select_table(skillList[2]) or false
			local skillVnum = skillList[1][s]
			local skillName = skillList[2][s]
			if not skillVnum then return end
			
			pc.set_skill_level(skillVnum, 40)
			pc.remove_item(item.get_vnum())
			say(skillName.." wurde erfolgreich auf P gesetzt!")
		end
		function BuildSkillList(MIN, MAX)
			local skillList = special.active_skill_list[pc.get_job()+1][pc.get_skill_group()]
			local returnList = {{}, {}}
			for _, skillVnum in ipairs(skillList) do
				local skillLevel = pc.get_skill_level(skillVnum)
				if skillLevel >= MIN and skillLevel <= MAX then
					table.insert(returnList[1], skillVnum)
					table.insert(returnList[2], locale.GM_SKILL_NAME_DICT[skillVnum] or skillVnum)
				end
			end
			return returnList
		end
	end
end
Beachte, dass du die REGI_VNUM oben anpassen musst und, dass der Regi auf Type 18 gestellt sein muss. Sollte ein Fehler mit "ipairs" kommen, öffne deine quest_functions und schreib in eine neue Zeile "ipairs".
09/03/2015 15:10 zazadi#3116
Hey,
ich brauche ne quest,
die einem irgendwohin teleportiert wenn man level 15 erreicht.
Und dass bitte noch reich abhängig.
D.h.
Wenn jemand vom Roten reich Level 15 erreicht wird er zum Treffpunkt X geportet.
Wenn jemand vom Blauen reich Level 15 erreicht wird er zum Treffpunkt Y geportet.
Und wenn jemand vom Gelbem reich Level 15 erreicht wird er zum Treffpunkt Z geportet.

Lg
09/03/2015 16:09 .Ryuzaki™#3117
PHP Code:
quest ryuzaki begin
        state start begin
                when levelup with pc
.get_level() == 15 and pc.get_empire() == 1 begin
                        pc
.warp(DEINEKORDS) --- Rotes Reich
                end
                when levelup with pc
.get_level() == 15 and pc.get_empire() == 2 begin
                        pc
.warp(DEINEKORDS) --- Gelbes Reich
                end
                when levelup with pc
.get_level() == 15 and pc.get_empire() == 3 begin
                        pc
.warp(DEINEKORDS) ---  Blaues Reich
                end
        end
end 
Sollte so gehen, auch wenn es nicht die beste Lösung ist. (Anfänger)
09/03/2015 16:29 zazadi#3118
Quote:
Originally Posted by .Ryuzaki™ View Post
PHP Code:
quest ryuzaki begin
        state start begin
                when levelup with pc
.get_level() == 15 and pc.get_empire() == 1 begin
                        pc
.warp(DEINEKORDS) --- Rotes Reich
                end
                when levelup with pc
.get_level() == 15 and pc.get_empire() == 2 begin
                        pc
.warp(DEINEKORDS) --- Gelbes Reich
                end
                when levelup with pc
.get_level() == 15 and pc.get_empire() == 3 begin
                        pc
.warp(DEINEKORDS) ---  Blaues Reich
                end
        end
end 
Sollte so gehen, auch wenn es nicht die beste Lösung ist. (Anfänger)
Funktioniert danke.

Lg
09/03/2015 16:47 .Ryuzaki™#3119
Welcher Fehler?
Poste mal die Quests.

Eigentlich gehört es hier rein: [Only registered and activated users can see links. Click Here To Register...]
09/03/2015 17:28 rollback#3120
Quote:
Originally Posted by .Ryuzaki™ View Post
PHP Code:
quest ryuzaki begin
        state start begin
                when levelup with pc
.get_level() == 15 and pc.get_empire() == 1 begin
                        pc
.warp(DEINEKORDS) --- Rotes Reich
                end
                when levelup with pc
.get_level() == 15 and pc.get_empire() == 2 begin
                        pc
.warp(DEINEKORDS) --- Gelbes Reich
                end
                when levelup with pc
.get_level() == 15 and pc.get_empire() == 3 begin
                        pc
.warp(DEINEKORDS) ---  Blaues Reich
                end
        end
end 
Sollte so gehen, auch wenn es nicht die beste Lösung ist. (Anfänger)
Würde bei mir auch nicht viel anders aussehen:
Code:
quest ryuzaki begin
	state start begin
		when levelup with pc.get_level() >= 15 begin
			local warpKoods = ({
				{DEINE, KOORDS},--rotes reich
				{DEINE, KOORDS},--gelbes reich
				{DEINE, KOORDS}--blaues reich
			})
			pc.warp(warpKoods[1], warpKoods[2])
			set_state("_COMPLETE_")
		end
	end
	state _COMPLETE_ begin
	end
end