[SERVICE] Die Questkontrolle

06/17/2014 19:19 .yorliK#10306
Quote:
Originally Posted by ★Gandaharva★ View Post
Starterset - geht jedesmal ins Inventar beim Einloggen.
Würde es gerne nur beim ersten mal Einloggen haben :3
Code:
quest give_basic_weapon begin
	state start begin
		when login with pc.getqf("Starter_Set")== 0 begin

			local item_vnum = 19
			local item_vnum2 = 11209
			local item_vnum3 = 12209
			if pc.get_job() == 1 then
				item_vnum = 1009
				item_vnum2 = 11409
				item_vnum3 = 12349
			elseif pc.get_job() == 2 then				
				item_vnum2 = 11609
				item_vnum3 = 12489
			elseif pc.get_job() == 3 then
				item_vnum = 7009
				item_vnum2 = 11809
				item_vnum3 = 12629
			end
			pc.give_item2(item_vnum)
			pc.give_item2(item_vnum2)
			pc.give_item2(item_vnum3)
			pc.give_item2(27003, 200)
			pc.give_item2(27006, 200)
			pc.give_item2(72702)
			pc.give_item2(71050, 20)
			pc.give_item2(70038, 20)
			pc.give_item2(13009)
			pc.give_item2(14009)
			pc.give_item2(15009)
			pc.give_item2(16009)
			pc.give_item2(17009)
			pc.setqf("Starter_Set", 1)
		end
	end	
end
06/19/2014 12:37 Premiumlike#10307
Das ganze ist nen Wunschbrunnen bloß geht der leider nicht könnte mir da jemand helfen ?
PHP Code:
quest wette begin
    state start begin        
        when 21575.click begin
            say_title
("Glückspiel")
            
say("")
            
say("Los zieh einen Geldspecher 3 auf mich")
            
say("Du wirst sehen du wirst eine belohnung bekommen")
            
say("Viel glück :-p")
        
end
        when 21575.take with item
.get_vnum() == 81013 begin
            say
("Willst du einen Geldspeicher 3 auf mich ziehen")
            
say("Mit etwas Glück erhälst du sogar ein Item.")
            
local choice = select("Ja","Nein")
            if 
choice == 1 then
                say
("Du wirfst nun eine Münze hinein, drücke fest die Daumen,")
                
say("")
                
local wunschbelohnung = number(1, 21)
                if 
wunschbelohnung == 1 then
                    say
("Du hast Windschuhe erhalten.")
                    
pc.give_item2(72702, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 2 then
                    say
("Du hast ein Schwert+9 erhalten.")
                    
pc.give_item2 (19, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 3 then
                    say
("Du hast Dolche+9 erhalten.")
                    
pc.give_item2(1009, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 4 then
                    say
("Du hast Fächer+9 erhalten.")
                    
pc.give_item2(7009, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 5 then
                    say
("Du hast eine Glefe+9 erhalten.")
                    
pc.give_item2(3009, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 6 then
                    say
("Du hast ein Autpott Rot erhalten.")
                    
pc.give_item2 (72725, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 7 then
                    say
("Du hast Autpott Mana erhalten.")
                    
pc.give_item2(72729, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 8 then
                    say
("Du hast 200 Geldspeicher 3 erhalten.")
                    
pc.give_item2(81013, 200)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 9 then
                    say
("Du hast 200 Geldspeicher 2 erhalten.")
                    
pc.give_item2(81012, 200)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 10 then
                    say
("Du hast 200 Geldspeicher 1 erhalten.")
                    
pc.give_item2 (81011, 200)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 11 then
                    say
("Du hast einen Weißen Löwen erhalten erhalten.")
                    
pc.give_item2(7112, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 12 then
                    say
("Du hast ein Greifvogel Siegel erhalten.")
                    
pc.give_item2(73901, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 13 then
                    say
("Du hast eine Glefe+9 erhalten.")
                    
pc.give_item2(3009, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 14 then
                    say
("Du hast ein Schwert+9 erhalten.")
                    
pc.give_item2 (19, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 15 then
                    say
("Du hast Dolche+9 erhalten.")
                    
pc.give_item2(1009, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 16 then
                    say
("Du hast Fächer+9 erhalten.")
                    
pc.give_item2(7009, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 17 then
                    say
("Du hast 100 Gldenersterne erhalten.")
                    
pc.give_item2(28050, 100)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 18 then
                    say
("Du hast 200 Rot Trank klein erhalten.")
                    
pc.give_item2 (27001, 200)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 19 then
                    say
("Du hast 200 Roter Trank groß erhalten.")
                    
pc.give_item2(27003, 200)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 20 then
                    say
("Du hast 200 Blauer Trank klein erhalten.")
                    
pc.give_item2(27004, 200)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 21 then
                    say
("Du hast 200 Blauer Trank groß erhalten.")
                    
pc.give_item2(27006, 200)
                    
pc.remove_item(81013, 1)
                
end
            
elseif choice == 2 then
                say
("Vielleicht beim nächsten mal.")
            
end
        end
    end
end 
06/20/2014 11:32 PRoTHoRaX#10308
ich möchte 200 pfeile für ninjas ist das richtig wenn ich einfach eine 200 hinter der vnum der pfeile schreibe?

quest starterset begin
state start begin
when login begin
notice_all(pc.get_name().." Willkommen auf SERVERNAME")
notice_all("Viel Spass auf unseren Server wuenscht euch das TEAM")
local tab = {
[0] = { -- Krieger
ITEMVNUM1, 19
ITEMVNUM2,
beliebiglangeerweiterbar,
aufkommasachten
},
[1] = { -- Ninja
ITEMVNUM1, 1009
ITEMVNUM2, 2009
ITEMVNUM3, 8000 200
},
[2] = { -- Sura
ITEMVNUM1, 19
ITEMVNUM2
},
[3] = { -- Schamane
ITEMVNUM1, 5000
ITEMVNUM2, 7009
}
}
table.foreach(tab[pc.get_job()],
function(i, p)
pc.give_item2(p, 1)
end
)
set_state(__COMPLETE__)
end
end
state __COMPLETE__ begin
end
end
06/20/2014 20:27 Noa_#10309
Quote:
Originally Posted by Siverbot View Post
Das ganze ist nen Wunschbrunnen bloß geht der leider nicht könnte mir da jemand helfen ?
PHP Code:
quest wette begin
    state start begin        
        when 21575.click begin
            say_title
("Glückspiel")
            
say("")
            
say("Los zieh einen Geldspecher 3 auf mich")
            
say("Du wirst sehen du wirst eine belohnung bekommen")
            
say("Viel glück :-p")
        
end
        when 21575.take with item
.get_vnum() == 81013 begin
            say
("Willst du einen Geldspeicher 3 auf mich ziehen")
            
say("Mit etwas Glück erhälst du sogar ein Item.")
            
local choice = select("Ja","Nein")
            if 
choice == 1 then
                say
("Du wirfst nun eine Münze hinein, drücke fest die Daumen,")
                
say("")
                
local wunschbelohnung = number(1, 21)
                if 
wunschbelohnung == 1 then
                    say
("Du hast Windschuhe erhalten.")
                    
pc.give_item2(72702, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 2 then
                    say
("Du hast ein Schwert+9 erhalten.")
                    
pc.give_item2 (19, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 3 then
                    say
("Du hast Dolche+9 erhalten.")
                    
pc.give_item2(1009, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 4 then
                    say
("Du hast Fächer+9 erhalten.")
                    
pc.give_item2(7009, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 5 then
                    say
("Du hast eine Glefe+9 erhalten.")
                    
pc.give_item2(3009, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 6 then
                    say
("Du hast ein Autpott Rot erhalten.")
                    
pc.give_item2 (72725, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 7 then
                    say
("Du hast Autpott Mana erhalten.")
                    
pc.give_item2(72729, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 8 then
                    say
("Du hast 200 Geldspeicher 3 erhalten.")
                    
pc.give_item2(81013, 200)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 9 then
                    say
("Du hast 200 Geldspeicher 2 erhalten.")
                    
pc.give_item2(81012, 200)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 10 then
                    say
("Du hast 200 Geldspeicher 1 erhalten.")
                    
pc.give_item2 (81011, 200)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 11 then
                    say
("Du hast einen Weißen Löwen erhalten erhalten.")
                    
pc.give_item2(7112, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 12 then
                    say
("Du hast ein Greifvogel Siegel erhalten.")
                    
pc.give_item2(73901, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 13 then
                    say
("Du hast eine Glefe+9 erhalten.")
                    
pc.give_item2(3009, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 14 then
                    say
("Du hast ein Schwert+9 erhalten.")
                    
pc.give_item2 (19, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 15 then
                    say
("Du hast Dolche+9 erhalten.")
                    
pc.give_item2(1009, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 16 then
                    say
("Du hast Fächer+9 erhalten.")
                    
pc.give_item2(7009, 1)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 17 then
                    say
("Du hast 100 Gldenersterne erhalten.")
                    
pc.give_item2(28050, 100)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 18 then
                    say
("Du hast 200 Rot Trank klein erhalten.")
                    
pc.give_item2 (27001, 200)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 19 then
                    say
("Du hast 200 Roter Trank groß erhalten.")
                    
pc.give_item2(27003, 200)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 20 then
                    say
("Du hast 200 Blauer Trank klein erhalten.")
                    
pc.give_item2(27004, 200)
                    
pc.remove_item(81013, 1)
                elseif 
wunschbelohnung == 21 then
                    say
("Du hast 200 Blauer Trank groß erhalten.")
                    
pc.give_item2(27006, 200)
                    
pc.remove_item(81013, 1)
                
end
            
elseif choice == 2 then
                say
("Vielleicht beim nächsten mal.")
            
end
        end
    end
end 
PHP Code:
quest wette begin
    state start begin        
        when 21575.chat
."Glückspiel" begin
            say_title
("Glückspiel")
            
say("")
            
say("Los zieh einen Geldspecher 3 auf mich")
            
say("Du wirst sehen du wirst eine belohnung bekommen")
            
say("Viel glück :-p")
        
end
        when 21575.take with item
.get_vnum() == 81013 begin
            say
("Willst du einen Geldspeicher 3 auf mich ziehen")
            
say("Mit etwas Glück erhälst du sogar ein Item.")
            
local choice = select("Ja","Nein")
            if 
choice == 1 then
                say
("Du wirfst nun eine Münze hinein, drücke fest die Daumen,")
                
say("")
                
local wunschbelohnung = number(1, 21)
                
                
local items = {
                    {
72702,1},{19,1},{1009,1},{7009,1},{3009,1},{72725,1},
                    {
72729,1},{81013,200},{81012,200},{81011,200},{7112,1},
                    {
73901,1},{3009,1},{19,1},{1009,1},{7009,1},{28050,100},
                    {
27001,200},{27003,200},{27004,200},{27006,200}
                }
                
local idx = number(1,table.getn(items))
                
say("Du hast "..(items[idx][2]> 1 and items[1][2].."x "or "")..items[idx][1].." erhalten.")
                
pc.give_item2(items[idx][1],items[idx][2])
                
pc.remove_item(81013, 1)
            elseif 
choice == 2 then
                say
("Vielleicht beim nächsten mal.")
            
end
        end
    end
end 
06/20/2014 22:51 Premiumlike#10310
danke geht nun
06/21/2014 15:49 Noa_#10311
Quote:
Originally Posted by Siverbot View Post
danke geht nun
ändere items[1][2] zu items[idx][2]
06/22/2014 01:41 russian-dima#10312
Hallo Leute,

bin eher ein blutiger Anfänger was so Sachen wie Quests schreiben angeht.

Bin grade an einer Quest dran, die jedoch nicht ganz richtig funktioniert.

Das Problem dabei ist, dass der Sprung von beispielsweise G auf M, oder der Wechsel von Drachenauf Heil oder umgekehrt nicht immer funktioniert.
Ich stell die Quest einach mal rein.

PHP Code:
quest ThorsRing begin
    state start begin
        when 40003.
use begin
            say_title
("Regenbogenstein-Quest!")
            
say("")
            
say("Welche Skills willst du erlernen?")
            
say("")
            
local auswahl=select("M-Skills", "G-Skills", "P-Skills", "Skill-Resets")
            
            --------------------------------
M-Skills---------------------------------------------------------    
            if 
auswahl ==1 then        
                                
                
--Krieger--------------------------------------------        
                if 
pc.job == 0 then
                    local s 
= select("Körper","Mental","Abbrechen")
                    
                    if 
s == 1 then
                        
--Körper
                        pc
.set_skill_group(1)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(1, 20)
                        
pc.set_skill_level(2, 20)
                        
pc.set_skill_level(3, 20)
                        
pc.set_skill_level(4, 20)
                        
pc.set_skill_level(5, 20)
                        
pc.set_skill_level(6, 20)
                        
                    elseif 
s == 2 then
                        
--Mentalo
                        pc
.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(16, 20)
                        
pc.set_skill_level(17, 20)
                        
pc.set_skill_level(18, 20)
                        
pc.set_skill_level(19, 20)
                        
pc.set_skill_level(20, 20)
                        
pc.set_skill_level(21, 20)
                    
end
                    
                
--Ninja----------------------------------------------
                elseif 
pc.job ==1 then
                    local s 
= select("Nahkampf","Bogen","Abbrechen")
                    if 
s == 1 then
                        
--Nahkampf
                        pc
.set_skill_group(1)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(31, 20)
                        
pc.set_skill_level(32, 20)
                        
pc.set_skill_level(33, 20)
                        
pc.set_skill_level(34, 20)
                        
pc.set_skill_level(35, 20)
                        
pc.set_skill_level(36, 20)
                        
say_title("Regenbogenstein:")
                        
say("")
                        
say("Deine Skills sind auf Großmeister")
                        
say("")
                    elseif 
s == 2 then
                        
--Fernkampf
                        pc
.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(46, 20)
                        
pc.set_skill_level(47, 20)
                        
pc.set_skill_level(48, 20)
                        
pc.set_skill_level(49, 20)
                        
pc.set_skill_level(50, 20)
                        
pc.set_skill_level(51, 20)
                    
end
                    
                
--Sura-----------------------------------------------        
                elseif 
pc.job == 2 then
                    local s 
= select("Magie","Waffe","Abbrechen")
                    if 
s == 1 then
                        
--Magie-Sura--
                        
pc.set_skill_group(1)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(76, 20)
                        
pc.set_skill_level(77, 20)
                        
pc.set_skill_level(78, 20)
                        
pc.set_skill_level(79, 20)
                        
pc.set_skill_level(80, 20)
                        
pc.set_skill_level(81, 20)
                    elseif 
s == 2 then
                        
--Waffen-Sura--
                        
pc.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(61, 20)
                        
pc.set_skill_level(62, 20)
                        
pc.set_skill_level(63, 20)
                        
pc.set_skill_level(64, 20)
                        
pc.set_skill_level(65, 20)
                        
pc.set_skill_level(66, 20)
                    
end    
                    
                
--Schamane--------------------------------------------        
                elseif 
pc.job == 3 then    
                    local s 
= select("Drachen","Heil","Abbrechen")
                    if 
s == 1 then
                        
--Drachen-Schamane--
                        
pc.set_skill_group(1)
                        
pc.set_skill_level(106, 20)
                        
pc.set_skill_level(107, 20)
                        
pc.set_skill_level(108, 20)
                        
pc.set_skill_level(109, 20)
                        
pc.set_skill_level(110, 20)
                        
pc.set_skill_level(111, 20)
                    elseif 
s == 2 then
                        
--Heil-Schamane--
                        
pc.set_skill_group(2)
                        
pc.set_skill_level(91, 20)
                        
pc.set_skill_level(92, 20)
                        
pc.set_skill_level(93, 20)
                        
pc.set_skill_level(94, 20)
                        
pc.set_skill_level(95, 20)
                        
pc.set_skill_level(96, 20)
                    
end
                end
            end    
                        
            
----------------------------G-Skills---------------------------------------------------------
            if 
auswahl ==2 then
                            
                
--Krieger--------------------------------------------(G-Skill)                    
                if 
pc.job == 0 then
                    local s 
= select("Körper","Mental","Abbrechen")
                    if 
s == 1 then
                        
--Körper
                        pc
.set_skill_group(1)
                        
pc.set_skill_level(1, 30)
                        
pc.set_skill_level(2, 30)
                        
pc.set_skill_level(3, 30)
                        
pc.set_skill_level(4, 30)
                        
pc.set_skill_level(5, 30)
                        
pc.set_skill_level(6, 30)
                        
                    elseif 
s == 2 then
                        
--Mentalo
                        pc
.set_skill_group(2)
                        
pc.set_skill_level(16, 30)
                        
pc.set_skill_level(17, 30)
                        
pc.set_skill_level(18, 30)
                        
pc.set_skill_level(19, 30)
                        
pc.set_skill_level(30, 30)
                        
pc.set_skill_level(21, 30)
                    
end
                
                
--Ninja----------------------------------------------(G-Skill)                    
                elseif 
pc.job ==1 then
                    local s 
= select("Nahkampf","Bogen","Abbrechen")
                    if 
s == 1 then
                        
--Nahkampf
                        pc
.set_skill_group(1)
                        
pc.set_skill_level(31, 30)
                        
pc.set_skill_level(32, 30)
                        
pc.set_skill_level(33, 30)
                        
pc.set_skill_level(34, 30)
                        
pc.set_skill_level(35, 30)
                        
pc.set_skill_level(36, 30)
                        
say_title("Regenbogenstein:")
                        
say("")
                        
say("Deine Skills sind auf Großmeister")
                        
say("")
                    elseif 
s == 2 then
                        
--Fernkampf
                        pc
.set_skill_group(2)
                        
pc.set_skill_level(46, 30)
                        
pc.set_skill_level(47, 30)
                        
pc.set_skill_level(48, 30)
                        
pc.set_skill_level(49, 30)
                        
pc.set_skill_level(50, 30)
                        
pc.set_skill_level(51, 30)
                    
end
                
                
--Sura-----------------------------------------------(G-Skill)            
                elseif 
pc.job == 2 then
                    local s 
= select("Magie","Waffe","Abbrechen")
                    if 
s == 1 then
                        
--Magie-Sura--
                        
pc.set_skill_group(1)
                        
pc.set_skill_level(76, 30)
                        
pc.set_skill_level(77, 30)
                        
pc.set_skill_level(78, 30)
                        
pc.set_skill_level(79, 30)
                        
pc.set_skill_level(80, 30)
                        
pc.set_skill_level(81, 30)
                    elseif 
s == 2 then
                        
--Waffen-Sura--
                        
pc.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(61, 30)
                        
pc.set_skill_level(62, 30)
                        
pc.set_skill_level(63, 30)
                        
pc.set_skill_level(64, 30)
                        
pc.set_skill_level(65, 30)
                        
pc.set_skill_level(66, 30)
                    
end            
                
--Schamane--------------------------------------------(G-Skill)        
                        
                elseif 
pc.job == 3 then
                    
                    local s 
= select("Drachen","Heil","Abbrechen")
                    if 
s == 1 then
                        
--Drachen-Schamane--
                        
pc.set_skill_group(1)
                        
pc.set_skill_level(106, 30)
                        
pc.set_skill_level(107, 30)
                        
pc.set_skill_level(108, 30)
                        
pc.set_skill_level(109, 30)
                        
pc.set_skill_level(110, 30)
                        
pc.set_skill_level(111, 30)
                    elseif 
s == 2 then
                        
--Heil-Schamane--
                        
pc.set_skill_group(2)
                        
pc.set_skill_level(91, 30)
                        
pc.set_skill_level(92, 30)
                        
pc.set_skill_level(93, 30)
                        
pc.set_skill_level(94, 30)
                        
pc.set_skill_level(95, 30)
                        
pc.set_skill_level(96, 30)
                    
end
                end
            
return
            
end
            

----------------------------------------P-Skills---------------------------------------------------------
            
            if 
auswahl ==3 then
                        
                
--Krieger--                    
                if 
pc.job == 0 then
                    local s 
= select("Körper","Mental","Abbrechen")
                    if 
s == 1 then
                        
--Körper
                        pc
.set_skill_group(1)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(1, 59)
                        
pc.set_skill_level(2, 59)
                        
pc.set_skill_level(3, 59)
                        
pc.set_skill_level(4, 59)
                        
pc.set_skill_level(5, 59)
                        
pc.set_skill_level(6, 59)
                    elseif 
s == 2 then
                        
--Mentalo
                        pc
.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(16, 59)
                        
pc.set_skill_level(17, 59)
                        
pc.set_skill_level(18, 59)
                        
pc.set_skill_level(19, 59)
                        
pc.set_skill_level(30, 59)
                        
pc.set_skill_level(21, 59)
                    
end
                
--Ninja--                    
                elseif 
pc.job ==1 then
                    local s 
= select("Nahkampf","Bogen","Abbrechen")
                    if 
s == 1 then
                        
--Nahkampf
                        pc
.set_skill_group(1)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(31, 59)
                        
pc.set_skill_level(32, 59)
                        
pc.set_skill_level(33, 59)
                        
pc.set_skill_level(34, 59)
                        
pc.set_skill_level(35, 59)
                        
pc.set_skill_level(36, 59)
                        
say_title("Regenbogenstein:")
                        
say("")
                        
say("Deine Skills sind auf Großmeister")
                        
say("")
                    elseif 
s == 2 then
                        
--Fernkampf
                        pc
.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(46, 5)
                        
pc.set_skill_level(47, 59)
                        
pc.set_skill_level(48, 59)
                        
pc.set_skill_level(49, 59)
                        
pc.set_skill_level(50, 59)
                        
pc.set_skill_level(51, 59)
                    
end
                
--Sura--            
                elseif 
pc.job == 2 then
                    local s 
= select("Magie","Waffe","Abbrechen")    
                    if 
s == 1 then
                        
--Magie-Sura--
                        
pc.set_skill_group(1)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(76, 59)
                        
pc.set_skill_level(77, 59)
                        
pc.set_skill_level(78, 59)
                        
pc.set_skill_level(79, 59)
                        
pc.set_skill_level(80, 59)
                        
pc.set_skill_level(81, 59)
                    elseif 
s == 2 then
                        
--Waffen-Sura--
                        
pc.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(61, 59)
                        
pc.set_skill_level(62, 59)
                        
pc.set_skill_level(63, 59)
                        
pc.set_skill_level(64, 59)
                        
pc.set_skill_level(65, 59)
                        
pc.set_skill_level(66, 59)
                    
end            
                
--Schamane--        
                elseif 
pc.job == 3 then
                    local s 
= select("Drachen","Heil","Abbrechen")    
                    if 
s == 1 then
                        
--Drachen-Schamane--
                        
pc.set_skill_group(1)
                        
pc.set_skill_level(106, 59)
                        
pc.set_skill_level(107, 59)
                        
pc.set_skill_level(108, 59)
                        
pc.set_skill_level(109, 59)
                        
pc.set_skill_level(110, 59)
                        
pc.set_skill_level(111, 59)
                    elseif 
s == 2 then
                        
--Heil-Schamane--
                        
pc.set_skill_group(2)
                        
pc.set_skill_level(91, 59)
                        
pc.set_skill_level(92, 59)
                        
pc.set_skill_level(93, 59)
                        
pc.set_skill_level(94, 59)
                        
pc.set_skill_level(95, 59)
                        
pc.set_skill_level(96, 59)
                    
end
                end
            
return
            
end
            
        
        end
    end
end 
Ich habe versucht die Quest auch so übersichtlich wie nur möglich aufzubauen. Das mit den RETURNs, war eher ein TEST von meiner Seite aus. Ich weis leider nicht genau was so ein Return bewirkt. :D

Ich bin mir sicher dass es in meiner Quest auch noch die eine oder andere Unreinheit gibt, würde mich freuen wenn man mich auf diese auch noch aufmerksam machen würde (Erklärungen sind gern gesehen) DANKE ;)

P.S.: Hab vergessen zu erwähnen, dass die Quest mit dem ThorsRing gesteuert wird, da diese am ENDE von der Regenbogenstein-Quest abweichen wird. Also anstatt des Regenbogensteins den ThorsRing benutzen, aber ich denke mal diese Info war hier eher überflüssig.
06/22/2014 01:56 welldonefeelfun#10313
Hilfe quest geht nicht es kommt der fehler qc in malloc : error.


Hier dei quest

PHP Code:
quest WaffenUPP begin 
    state start begin 
     
    when 30123.take with item
.vnum == 279 begin  
         say
("Hey,") 
         
say("Bist du etwa auf der Suche nach einer anderen Waffe?") 
         
say("Nun dann bist du hier richtig!") 
         
say("Ich bin der beste Schmied auf Hessai") 
         
say("Ich kann dir ein Runenschwert, Peridotschwert oder Waffenname anbieten.") 
         
say("") 
         
local s = select ("Runenschwert", "Peridotschwert", "Nichts von alledem!") 

         if 
s == 1 then 
            
if pc.count_item(279) >= 1 then 
                pc
.removeitem("279")                 
                
pc.give_item2("469") 
                
say("Danke dir!") 
                
say("Du erhältst ein Runenschwert") 
                
say("Ich hoffe die es wird dir von großem Nutzen sein") 
                
say("lieber Abenteurer!") 
                
say("") 
            
end 
         
if s == 2 then 
            
if pc.count_item(279) >= 1 then 
                pc
.removeitem("279") 
                
pc.give_item2("35149") 
                
say("Danke dir!") 
                
say("Du erhältst ein Peridotschwert") 
                
say("Ich hoffe es wird dir von großem Nutzen sein") 
                
say("lieber Abenteurer!") 
                
say("") 
            
end    
        end 
    end 
06/22/2014 10:09 .Delta#10314
PHP Code:
quest WaffenUPP begin  
    state start begin      
        when 30123.take with item
.vnum == 279 begin   
            say
("Hey,")  
            
say("Bist du etwa auf der Suche nach einer anderen Waffe?")  
            
say("Nun dann bist du hier richtig!")  
            
say("Ich bin der beste Schmied auf Hessai")  
            
say("Ich kann dir ein Runenschwert, Peridotschwert oder Waffenname anbieten.")  
            
say("")  
            
local s = select ("Runenschwert", "Peridotschwert", "Nichts von alledem!")  
            if 
s == 1 then  
                
if pc.count_item(279) >= 1 then  
                    pc
.removeitem(279, 1)                  
                    
pc.give_item2(469, 1)  
                    
say("Danke dir!")  
                    
say("Du erhältst ein Runenschwert")  
                    
say("Ich hoffe die es wird dir von großem Nutzen sein")  
                    
say("lieber Abenteurer!")  
                    
say("")  
                
end  
            
elseif s == 2 then -- nutze elseif
                if 
pc.count_item(279) >= 1 then  
                    pc
.removeitem("279")  
                    
pc.give_item2("35149")  
                    
say("Danke dir!")  
                    
say("Du erhältst ein Peridotschwert")  
                    
say("Ich hoffe es wird dir von großem Nutzen sein")  
                    
say("lieber Abenteurer!")  
                    
say("")  
                
end     
            end  
        end
    end 
-- hat gefehlt
end 
-- hat gefehlt 
Quote:
Originally Posted by welldonefeelfun View Post
Hilfe quest geht nicht es kommt der fehler qc in malloc : error.

06/22/2014 16:25 russian-dima#10315
Quote:
Originally Posted by russian-dima View Post
Hallo Leute,

bin eher ein blutiger Anfänger was so Sachen wie Quests schreiben angeht.

Bin grade an einer Quest dran, die jedoch nicht ganz richtig funktioniert.

Das Problem dabei ist, dass der Sprung von beispielsweise G auf M, oder der Wechsel von Drachenauf Heil oder umgekehrt nicht immer funktioniert.
Ich stell die Quest einach mal rein.

PHP Code:
quest ThorsRing begin
    state start begin
        when 40003.
use begin
            say_title
("Regenbogenstein-Quest!")
            
say("")
            
say("Welche Skills willst du erlernen?")
            
say("")
            
local auswahl=select("M-Skills", "G-Skills", "P-Skills", "Skill-Resets")
            
            --------------------------------
M-Skills---------------------------------------------------------    
            if 
auswahl ==1 then        
                                
                
--Krieger--------------------------------------------        
                if 
pc.job == 0 then
                    local s 
= select("Körper","Mental","Abbrechen")
                    
                    if 
s == 1 then
                        
--Körper
                        pc
.set_skill_group(1)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(1, 20)
                        
pc.set_skill_level(2, 20)
                        
pc.set_skill_level(3, 20)
                        
pc.set_skill_level(4, 20)
                        
pc.set_skill_level(5, 20)
                        
pc.set_skill_level(6, 20)
                        
                    elseif 
s == 2 then
                        
--Mentalo
                        pc
.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(16, 20)
                        
pc.set_skill_level(17, 20)
                        
pc.set_skill_level(18, 20)
                        
pc.set_skill_level(19, 20)
                        
pc.set_skill_level(20, 20)
                        
pc.set_skill_level(21, 20)
                    
end
                    
                
--Ninja----------------------------------------------
                elseif 
pc.job ==1 then
                    local s 
= select("Nahkampf","Bogen","Abbrechen")
                    if 
s == 1 then
                        
--Nahkampf
                        pc
.set_skill_group(1)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(31, 20)
                        
pc.set_skill_level(32, 20)
                        
pc.set_skill_level(33, 20)
                        
pc.set_skill_level(34, 20)
                        
pc.set_skill_level(35, 20)
                        
pc.set_skill_level(36, 20)
                        
say_title("Regenbogenstein:")
                        
say("")
                        
say("Deine Skills sind auf Großmeister")
                        
say("")
                    elseif 
s == 2 then
                        
--Fernkampf
                        pc
.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(46, 20)
                        
pc.set_skill_level(47, 20)
                        
pc.set_skill_level(48, 20)
                        
pc.set_skill_level(49, 20)
                        
pc.set_skill_level(50, 20)
                        
pc.set_skill_level(51, 20)
                    
end
                    
                
--Sura-----------------------------------------------        
                elseif 
pc.job == 2 then
                    local s 
= select("Magie","Waffe","Abbrechen")
                    if 
s == 1 then
                        
--Magie-Sura--
                        
pc.set_skill_group(1)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(76, 20)
                        
pc.set_skill_level(77, 20)
                        
pc.set_skill_level(78, 20)
                        
pc.set_skill_level(79, 20)
                        
pc.set_skill_level(80, 20)
                        
pc.set_skill_level(81, 20)
                    elseif 
s == 2 then
                        
--Waffen-Sura--
                        
pc.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(61, 20)
                        
pc.set_skill_level(62, 20)
                        
pc.set_skill_level(63, 20)
                        
pc.set_skill_level(64, 20)
                        
pc.set_skill_level(65, 20)
                        
pc.set_skill_level(66, 20)
                    
end    
                    
                
--Schamane--------------------------------------------        
                elseif 
pc.job == 3 then    
                    local s 
= select("Drachen","Heil","Abbrechen")
                    if 
s == 1 then
                        
--Drachen-Schamane--
                        
pc.set_skill_group(1)
                        
pc.set_skill_level(106, 20)
                        
pc.set_skill_level(107, 20)
                        
pc.set_skill_level(108, 20)
                        
pc.set_skill_level(109, 20)
                        
pc.set_skill_level(110, 20)
                        
pc.set_skill_level(111, 20)
                    elseif 
s == 2 then
                        
--Heil-Schamane--
                        
pc.set_skill_group(2)
                        
pc.set_skill_level(91, 20)
                        
pc.set_skill_level(92, 20)
                        
pc.set_skill_level(93, 20)
                        
pc.set_skill_level(94, 20)
                        
pc.set_skill_level(95, 20)
                        
pc.set_skill_level(96, 20)
                    
end
                end
            end    
                        
            
----------------------------G-Skills---------------------------------------------------------
            if 
auswahl ==2 then
                            
                
--Krieger--------------------------------------------(G-Skill)                    
                if 
pc.job == 0 then
                    local s 
= select("Körper","Mental","Abbrechen")
                    if 
s == 1 then
                        
--Körper
                        pc
.set_skill_group(1)
                        
pc.set_skill_level(1, 30)
                        
pc.set_skill_level(2, 30)
                        
pc.set_skill_level(3, 30)
                        
pc.set_skill_level(4, 30)
                        
pc.set_skill_level(5, 30)
                        
pc.set_skill_level(6, 30)
                        
                    elseif 
s == 2 then
                        
--Mentalo
                        pc
.set_skill_group(2)
                        
pc.set_skill_level(16, 30)
                        
pc.set_skill_level(17, 30)
                        
pc.set_skill_level(18, 30)
                        
pc.set_skill_level(19, 30)
                        
pc.set_skill_level(30, 30)
                        
pc.set_skill_level(21, 30)
                    
end
                
                
--Ninja----------------------------------------------(G-Skill)                    
                elseif 
pc.job ==1 then
                    local s 
= select("Nahkampf","Bogen","Abbrechen")
                    if 
s == 1 then
                        
--Nahkampf
                        pc
.set_skill_group(1)
                        
pc.set_skill_level(31, 30)
                        
pc.set_skill_level(32, 30)
                        
pc.set_skill_level(33, 30)
                        
pc.set_skill_level(34, 30)
                        
pc.set_skill_level(35, 30)
                        
pc.set_skill_level(36, 30)
                        
say_title("Regenbogenstein:")
                        
say("")
                        
say("Deine Skills sind auf Großmeister")
                        
say("")
                    elseif 
s == 2 then
                        
--Fernkampf
                        pc
.set_skill_group(2)
                        
pc.set_skill_level(46, 30)
                        
pc.set_skill_level(47, 30)
                        
pc.set_skill_level(48, 30)
                        
pc.set_skill_level(49, 30)
                        
pc.set_skill_level(50, 30)
                        
pc.set_skill_level(51, 30)
                    
end
                
                
--Sura-----------------------------------------------(G-Skill)            
                elseif 
pc.job == 2 then
                    local s 
= select("Magie","Waffe","Abbrechen")
                    if 
s == 1 then
                        
--Magie-Sura--
                        
pc.set_skill_group(1)
                        
pc.set_skill_level(76, 30)
                        
pc.set_skill_level(77, 30)
                        
pc.set_skill_level(78, 30)
                        
pc.set_skill_level(79, 30)
                        
pc.set_skill_level(80, 30)
                        
pc.set_skill_level(81, 30)
                    elseif 
s == 2 then
                        
--Waffen-Sura--
                        
pc.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(61, 30)
                        
pc.set_skill_level(62, 30)
                        
pc.set_skill_level(63, 30)
                        
pc.set_skill_level(64, 30)
                        
pc.set_skill_level(65, 30)
                        
pc.set_skill_level(66, 30)
                    
end            
                
--Schamane--------------------------------------------(G-Skill)        
                        
                elseif 
pc.job == 3 then
                    
                    local s 
= select("Drachen","Heil","Abbrechen")
                    if 
s == 1 then
                        
--Drachen-Schamane--
                        
pc.set_skill_group(1)
                        
pc.set_skill_level(106, 30)
                        
pc.set_skill_level(107, 30)
                        
pc.set_skill_level(108, 30)
                        
pc.set_skill_level(109, 30)
                        
pc.set_skill_level(110, 30)
                        
pc.set_skill_level(111, 30)
                    elseif 
s == 2 then
                        
--Heil-Schamane--
                        
pc.set_skill_group(2)
                        
pc.set_skill_level(91, 30)
                        
pc.set_skill_level(92, 30)
                        
pc.set_skill_level(93, 30)
                        
pc.set_skill_level(94, 30)
                        
pc.set_skill_level(95, 30)
                        
pc.set_skill_level(96, 30)
                    
end
                end
            
return
            
end
            

----------------------------------------P-Skills---------------------------------------------------------
            
            if 
auswahl ==3 then
                        
                
--Krieger--                    
                if 
pc.job == 0 then
                    local s 
= select("Körper","Mental","Abbrechen")
                    if 
s == 1 then
                        
--Körper
                        pc
.set_skill_group(1)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(1, 59)
                        
pc.set_skill_level(2, 59)
                        
pc.set_skill_level(3, 59)
                        
pc.set_skill_level(4, 59)
                        
pc.set_skill_level(5, 59)
                        
pc.set_skill_level(6, 59)
                    elseif 
s == 2 then
                        
--Mentalo
                        pc
.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(16, 59)
                        
pc.set_skill_level(17, 59)
                        
pc.set_skill_level(18, 59)
                        
pc.set_skill_level(19, 59)
                        
pc.set_skill_level(30, 59)
                        
pc.set_skill_level(21, 59)
                    
end
                
--Ninja--                    
                elseif 
pc.job ==1 then
                    local s 
= select("Nahkampf","Bogen","Abbrechen")
                    if 
s == 1 then
                        
--Nahkampf
                        pc
.set_skill_group(1)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(31, 59)
                        
pc.set_skill_level(32, 59)
                        
pc.set_skill_level(33, 59)
                        
pc.set_skill_level(34, 59)
                        
pc.set_skill_level(35, 59)
                        
pc.set_skill_level(36, 59)
                        
say_title("Regenbogenstein:")
                        
say("")
                        
say("Deine Skills sind auf Großmeister")
                        
say("")
                    elseif 
s == 2 then
                        
--Fernkampf
                        pc
.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(46, 5)
                        
pc.set_skill_level(47, 59)
                        
pc.set_skill_level(48, 59)
                        
pc.set_skill_level(49, 59)
                        
pc.set_skill_level(50, 59)
                        
pc.set_skill_level(51, 59)
                    
end
                
--Sura--            
                elseif 
pc.job == 2 then
                    local s 
= select("Magie","Waffe","Abbrechen")    
                    if 
s == 1 then
                        
--Magie-Sura--
                        
pc.set_skill_group(1)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(76, 59)
                        
pc.set_skill_level(77, 59)
                        
pc.set_skill_level(78, 59)
                        
pc.set_skill_level(79, 59)
                        
pc.set_skill_level(80, 59)
                        
pc.set_skill_level(81, 59)
                    elseif 
s == 2 then
                        
--Waffen-Sura--
                        
pc.set_skill_group(2)
                        
pc.remove_item(50512, 1)
                        
pc.set_skill_level(61, 59)
                        
pc.set_skill_level(62, 59)
                        
pc.set_skill_level(63, 59)
                        
pc.set_skill_level(64, 59)
                        
pc.set_skill_level(65, 59)
                        
pc.set_skill_level(66, 59)
                    
end            
                
--Schamane--        
                elseif 
pc.job == 3 then
                    local s 
= select("Drachen","Heil","Abbrechen")    
                    if 
s == 1 then
                        
--Drachen-Schamane--
                        
pc.set_skill_group(1)
                        
pc.set_skill_level(106, 59)
                        
pc.set_skill_level(107, 59)
                        
pc.set_skill_level(108, 59)
                        
pc.set_skill_level(109, 59)
                        
pc.set_skill_level(110, 59)
                        
pc.set_skill_level(111, 59)
                    elseif 
s == 2 then
                        
--Heil-Schamane--
                        
pc.set_skill_group(2)
                        
pc.set_skill_level(91, 59)
                        
pc.set_skill_level(92, 59)
                        
pc.set_skill_level(93, 59)
                        
pc.set_skill_level(94, 59)
                        
pc.set_skill_level(95, 59)
                        
pc.set_skill_level(96, 59)
                    
end
                end
            
return
            
end
            
        
        end
    end
end 
Ich habe versucht die Quest auch so übersichtlich wie nur möglich aufzubauen. Das mit den RETURNs, war eher ein TEST von meiner Seite aus. Ich weis leider nicht genau was so ein Return bewirkt. :D

Ich bin mir sicher dass es in meiner Quest auch noch die eine oder andere Unreinheit gibt, würde mich freuen wenn man mich auf diese auch noch aufmerksam machen würde (Erklärungen sind gern gesehen) DANKE ;)

P.S.: Hab vergessen zu erwähnen, dass die Quest mit dem ThorsRing gesteuert wird, da diese am ENDE von der Regenbogenstein-Quest abweichen wird. Also anstatt des Regenbogensteins den ThorsRing benutzen, aber ich denke mal diese Info war hier eher überflüssig.
Möchte mir denn keiner bei meinem Problem helfen? :confused::confused::confused:
06/22/2014 17:35 .yorliK#10316
Quote:
Originally Posted by russian-dima View Post
Möchte mir denn keiner bei meinem Problem helfen? :confused::confused::confused:

Ist untested.

PHP Code:
quest ThorsRing begin
    state start begin
        when 40003.
use begin
            say_title
("Regenbogenstein-Quest!")
            
say("")
            
say("Welche Skills willst du erlernen?")
            
say("")
            
local auswahl=select("M-Skills", "G-Skills", "P-Skills", "Skill-Resets", "Abbrechen")
            
local job = pc.get_job()+1
            skill_list 
={
                            {
                                { 
1, 2, 3, 4, 5},
                                { 
16, 17, 18, 19, 20}
                            },
                            {
                                {
31, 32, 33, 34, 35},
                                {
46, 47, 48, 49, 50}
                            },
                            {
                                {
61, 62, 63, 64, 65, 66},
                                {
76, 77, 78, 79, 80, 81}
                            },
                            {
                                {
91, 92, 93, 94, 95, 96},
                                {
106, 107, 108, 109, 110, 111}
                            }
                        }
            
local lehre={
                            { 
"Körper-Kampf-Lehre", "Mental-Kampf-Lehre" },
                            { 
"Nahkampf-Lehre", "Fernkampf-Lehre" },
                            { 
"Magische-Waffen-Lehre", "Schwarze-Magie-Lehre" },
                            { 
"Drachenmacht-Lehre", "Lehre der Heilung" }
                        }
            
table.insert(lehre[job], "Abbrechen")
            
say_title("Regenbogenstein-Quest!")
            
say("")
            
say("Welche Lehre?")
----------------------------
M-Skills---------------------------------------------------------
            if 
auswahl==1 then    
                local s 
= select_table(lehre[job])
                if 
s == table.getn(lehre[job]) then return end
                pc
.set_skill_group(s)
                for 
i=1, table.getn(skill_list[job][s]), 1 do    
                        
pc.set_skill_level(skill_list[job][s][i], 20)
                
end
                pc
.remove_item(40003, 1)        
----------------------------
G-Skills---------------------------------------------------------
            elseif 
auswahl ==2 then            
                local s 
= select_table(lehre[job])
                if 
s == table.getn(lehre[job]) then return end
                pc
.set_skill_group(s)
                for 
i=1, table.getn(skill_list[job][s]), 1 do    
                        
pc.set_skill_level(skill_list[job][s][i], 30)
                
end
                pc
.remove_item(40003, 1)
----------------------------
P-Skills---------------------------------------------------------
            elseif 
auswahl ==3 then
                local s 
= select_table(lehre[job])
                if 
s == table.getn(lehre[job]) then return end
                pc
.set_skill_group(s)
                for 
i=1, table.getn(skill_list[job][s]), 1 do    
                        
pc.set_skill_level(skill_list[job][s][i], 40)
                
end
                pc
.remove_item(40003, 1)
----------------------------
Skill Reset---------------------------------------------------------
            elseif 
auswahl == 4 then
                pc
.set_skill_group(0)
                
pc.remove_item(40003, 1)
            elseif 
auswahl ==  5 then
                
return
            
end
        end
    end
end 
06/22/2014 19:11 russian-dima#10317
Quote:
Originally Posted by Kilroy. View Post
Ist untested.

PHP Code:
quest ThorsRing begin
    state start begin
        when 40003.
use begin
            say_title
("Regenbogenstein-Quest!")
            
say("")
            
say("Welche Skills willst du erlernen?")
            
say("")
            
local auswahl=select("M-Skills", "G-Skills", "P-Skills", "Skill-Resets", "Abbrechen")
            
local job = pc.get_job()+1
            skill_list 
={
                            {
                                { 
1, 2, 3, 4, 5},
                                { 
16, 17, 18, 19, 20}
                            },
                            {
                                {
31, 32, 33, 34, 35},
                                {
46, 47, 48, 49, 50}
                            },
                            {
                                {
61, 62, 63, 64, 65, 66},
                                {
76, 77, 78, 79, 80, 81}
                            },
                            {
                                {
91, 92, 93, 94, 95, 96},
                                {
106, 107, 108, 109, 110, 111}
                            }
                        }
            
local lehre={
                            { 
"Körper-Kampf-Lehre", "Mental-Kampf-Lehre" },
                            { 
"Nahkampf-Lehre", "Fernkampf-Lehre" },
                            { 
"Magische-Waffen-Lehre", "Schwarze-Magie-Lehre" },
                            { 
"Drachenmacht-Lehre", "Lehre der Heilung" }
                        }
            
table.insert(lehre[job], "Abbrechen")
            
say_title("Regenbogenstein-Quest!")
            
say("")
            
say("Welche Lehre?")
----------------------------
M-Skills---------------------------------------------------------
            if 
auswahl==1 then    
                local s 
= select_table(lehre[job])
                if 
s == table.getn(lehre[job]) then return end
                pc
.set_skill_group(s)
                for 
i=1, table.getn(skill_list[job][s]), 1 do    
                        
pc.set_skill_level(skill_list[job][s][i], 20)
                
end
                pc
.remove_item(40003, 1)        
----------------------------
G-Skills---------------------------------------------------------
            elseif 
auswahl ==2 then            
                local s 
= select_table(lehre[job])
                if 
s == table.getn(lehre[job]) then return end
                pc
.set_skill_group(s)
                for 
i=1, table.getn(skill_list[job][s]), 1 do    
                        
pc.set_skill_level(skill_list[job][s][i], 30)
                
end
                pc
.remove_item(40003, 1)
----------------------------
P-Skills---------------------------------------------------------
            elseif 
auswahl ==3 then
                local s 
= select_table(lehre[job])
                if 
s == table.getn(lehre[job]) then return end
                pc
.set_skill_group(s)
                for 
i=1, table.getn(skill_list[job][s]), 1 do    
                        
pc.set_skill_level(skill_list[job][s][i], 40)
                
end
                pc
.remove_item(40003, 1)
----------------------------
Skill Reset---------------------------------------------------------
            elseif 
auswahl == 4 then
                pc
.set_skill_group(0)
                
pc.remove_item(40003, 1)
            elseif 
auswahl ==  5 then
                
return
            
end
        end
    end
end 
Erstmal vielen Dank für die Antwort und das gepostete Script, sieht auf alle Fälle schon mal besser aus als meins, da es viel kürzer ist.
Aber leider auch in deisem Fall leider verbuggt, so wie auch schon bei meiner eigenen Version. Nicht alles funktioniert reibungslos.
Solange man die Skills aufwertet, also von M auf G und von G auf P, geht alles soweit ganz gut. Vor allem geht die Lehrer der Heilung, die Lehre des Drachen jedoch bereitet Schwierigkeiten.

Selbst ein Skill-Reset funktioniert bei einigen Kombinationen nicht. Eigentlich das gleiche Problem wie schon zuvor.

Woran liegt das? An den Scripts, oder eventuel sogar an meinen Files (Server/Client).

Oder fehlt da noch etwas ????
06/22/2014 20:24 Noa_#10318
Version ohne Lehre Auswahl.

PHP Code:
quest ThorsRing begin
    state start begin
        when 40003.
use begin
            say_title
("Regenbogenstein-Quest!")
            
say("")
            
say("Welche Skills willst du erlernen?")
            
local auswahl = select("M-Skills", "G-Skills", "P-Skills", "Skill-Resets","Abbrechen")
            if 
auswahl == 5 then 
                
return
            elseif 
auswahl == 4 then 
                pc
.set_skill_group(0)
                
pc.remove_item(item.vnum)
            else 
                if 
pc.get_skill_group() == 0 then
                    say
("Du hast noch keine Lehre, geh zum Lehrer wenn du lvl 5 erreicht hast.")
                    return
                
end
                
for i = 1, table.getn(special.active_skill_list[pc.get_job()+1][pc.get_skill_group()]) do
                    
pc.set_skill_level(special.active_skill_list[pc.get_job()+1][pc.get_skill_group()][i],(auswahl+1)*10)
                
end
                pc
.remove_item(item.vnum)
            
end
        end
    end
end 
Version mit Lehre Auswahl

PHP Code:
quest ThorsRing begin
    state start begin
        when 40003.
use begin
            say_title
("Regenbogenstein-Quest!")
            
say("")
            
say("Welche Skills willst du erlernen?")
            
local auswahl = select("M-Skills", "G-Skills", "P-Skills", "Skill-Resets","Abbrechen")
            if 
auswahl == 5 then 
                
return
            elseif 
auswahl == 4 then 
                pc
.set_skill_group(0)
                
pc.remove_item(item.vnum)
            else 
                
pc.set_skill_group(0)-- bug fix
                
--[[if pc.get_skill_group() == 0 then
                    say
("Du hast noch keine Lehre, geh zum Lehrer wenn du lvl 5 erreicht hast.")
                    return
                
end]]
                
local lehre={
                    { 
"Körper-Kampf-Lehre", "Mental-Kampf-Lehre" },
                    { 
"Nahkampf-Lehre", "Fernkampf-Lehre" },
                    { 
"Magische-Waffen-Lehre", "Schwarze-Magie-Lehre" },
                    { 
"Drachenmacht-Lehre", "Lehre der Heilung" }
                
say("Wähle eine lehre!!")
                
local sel = select_table(lehre[pc.get_job()+1])
                
pc.set_skill_group(sel)
                for 
i = 1, table.getn(special.active_skill_list[pc.get_job()+1][pc.get_skill_group()]) do
                    
pc.set_skill_level(special.active_skill_list[pc.get_job()+1][pc.get_skill_group()][i],(auswahl+1)*10)
                
end
                pc
.remove_item(item.vnum)
            
end
        end
    end
end 
06/22/2014 21:58 russian-dima#10319
Quote:
Originally Posted by Noa_ View Post
Version ohne Lehre Auswahl.

PHP Code:
quest ThorsRing begin
    state start begin
        when 40003.
use begin
            say_title
("Regenbogenstein-Quest!")
            
say("")
            
say("Welche Skills willst du erlernen?")
            
local auswahl = select("M-Skills", "G-Skills", "P-Skills", "Skill-Resets","Abbrechen")
            if 
auswahl == 5 then 
                
return
            elseif 
auswahl == 4 then 
                pc
.set_skill_group(0)
                
pc.remove_item(item.vnum)
            else 
                if 
pc.get_skill_group() == 0 then
                    say
("Du hast noch keine Lehre, geh zum Lehrer wenn du lvl 5 erreicht hast.")
                    return
                
end
                
for i = 1, table.getn(special.active_skill_list[pc.get_job()+1][pc.get_skill_group()]) do
                    
pc.set_skill_level(special.active_skill_list[pc.get_job()+1][pc.get_skill_group()][i],(auswahl+1)*10)
                
end
                pc
.remove_item(item.vnum)
            
end
        end
    end
end 
Version mit Lehre Auswahl

PHP Code:
quest ThorsRing begin
    state start begin
        when 40003.
use begin
            say_title
("Regenbogenstein-Quest!")
            
say("")
            
say("Welche Skills willst du erlernen?")
            
local auswahl = select("M-Skills", "G-Skills", "P-Skills", "Skill-Resets","Abbrechen")
            if 
auswahl == 5 then 
                
return
            elseif 
auswahl == 4 then 
                pc
.set_skill_group(0)
                
pc.remove_item(item.vnum)
            else 
                
pc.set_skill_group(0)-- bug fix
                
--[[if pc.get_skill_group() == 0 then
                    say
("Du hast noch keine Lehre, geh zum Lehrer wenn du lvl 5 erreicht hast.")
                    return
                
end]]
                
local lehre={
                    { 
"Körper-Kampf-Lehre", "Mental-Kampf-Lehre" },
                    { 
"Nahkampf-Lehre", "Fernkampf-Lehre" },
                    { 
"Magische-Waffen-Lehre", "Schwarze-Magie-Lehre" },
                    { 
"Drachenmacht-Lehre", "Lehre der Heilung" }
                
say("Wähle eine lehre!!")
                
local sel = select_table(lehre[pc.get_job()+1])
                
pc.set_skill_group(sel)
                for 
i = 1, table.getn(special.active_skill_list[pc.get_job()+1][pc.get_skill_group()]) do
                    
pc.set_skill_level(special.active_skill_list[pc.get_job()+1][pc.get_skill_group()][i],(auswahl+1)*10)
                
end
                pc
.remove_item(item.vnum)
            
end
        end
    end
end 
Auch Noa vielen lieben Dank für seine Mühe mir bei meinem Problem zu helfen.

Habe beide Versionen ausgetestet. Die erste Version funktioniert auf anhieb ! ! ! RESPEKT ! ! ! Nachteil ist halt, dass man sich die Richtung seiner Lehre nicht aussuchen kann in diesem Fall, sprich man hat immer nur "One-Way". Funkt aber tadellos, sowohl ein Upgrade-, als auch ein Downgrade verläuft reibungslos.

BeiVersion 2 mit Auswahlmöglichkeit der Fertigkeitsrichtung, enthält das Script zunächst einen kleinen Fehler (konnte ich Gott sei Dank noch selber entdecken :D) und zwar fehlt die geschweifte Klammer am Ende des local-Lehre-Blocks, erst dann läuft das ganze auch an.

Beim Test ist aber wieder das selbe Problem wie auch schon bei den 2 vorangegangenen Versionen aufgetaucht, nämlich dass es bei bestimmten Variationen keinen Sprung von einer Fertigkeitsstufe auf die nächste gibt.
(Am besten einmal selber austesten, da dies schwer zu beschreiben ist).

Vielleicht liegt der Fehler ja auch daran, dass ich die kompletten Quests aus dem Questordner genommen habe und deswegen nun was im Ordner fehlt, worauf sich eventuel ja Quests aufbauen?

Ich habe weder die Seelensteinquest noch die "Skill-Teacher-Quest" oder wie auch immer die heißen mag, in meinem Quest-Ordner.

Die gewünschte Version-2 leider wieder verbuggt auf meinem Server.

Hast du och weitere Ideen ???
06/22/2014 23:15 Noa_#10320
kp. ob's geht, ich teste nichts außer Dungeons, habe nur was korrigiert und eine neue funktion eingefügt... , sag bescheid wenns geht.
PHP Code:
quest ThorsRing begin
    state start begin
        when 40003.
use begin
            say_title
("Regenbogenstein-Quest!")
            
say("")
            
say("Welche Skills willst du erlernen?")
            
local auswahl = select("M-Skills", "G-Skills", "P-Skills", "Skill-Resets","Abbrechen")
            if 
auswahl == 5 then 
                
return
            elseif 
auswahl == 4 then 
                pc
.clear_skill()
                
pc.set_skill_group(0)
                
pc.remove_item(item.vnum)
            else 
                
pc.clear_skill()
                
pc.set_skill_group(0)-- bug fix
                local lehre
={
                    { 
"Körper-Kampf-Lehre", "Mental-Kampf-Lehre" },
                    { 
"Nahkampf-Lehre", "Fernkampf-Lehre" },
                    { 
"Magische-Waffen-Lehre", "Schwarze-Magie-Lehre" },
                    { 
"Drachenmacht-Lehre", "Lehre der Heilung" }
                }
                
say("Wähle eine lehre!!")
                
local sel = select_table(lehre[pc.get_job()+1])
                
pc.set_skill_group(sel)
                for 
i = 1, table.getn(special.active_skill_list[pc.get_job()+1][pc.get_skill_group()]) do
                    
pc.set_skill_level(special.active_skill_list[pc.get_job()+1][pc.get_skill_group()][i],(auswahl+1)*10)
                
end
                pc
.remove_item(item.vnum)
            
end
        end
    end
end