Abbruchbutton für Quest

04/08/2016 22:11 Curlston#1
Hey,
ich habe gerade die Regenbogensteinquests erfolgreich implementiert. Leider schaffe ich es nicht, einen Abbruch-button in die Quest einzubinden, damit der Regenbogenstein nicht verschwindet, wenn man ausversehen draufklickt.
Könnt ihr mir da weiterhelfen?
Ich glaube, dass das item.remove dafür auch umplatziert werden muss, ich wäre dankbar, wenn das bei einem Lösungsvorschlag begrücksichtigt wird.

PHP Code:
quest regenbogen begin
    state start begin
            when 50512.
use  begin
                
                say_title
("Regenbogenstein:")
                
say("Du möchtest also deine Skills auf")
                
say("Perfekter-Meister setzen?")
                
                if 
pc.job ==0 then
                say
("Wähle deine Lehre aus")
                
                
local s=select("Körper","Mental")
                
                if 
s==1 then
                
--Körper
                pc
.set_skill_group(1)
                
pc.set_skill_level(,59)
                
pc.set_skill_level(,59)
                
pc.set_skill_level(,59)
                
pc.set_skill_level(,59)
                
pc.set_skill_level(,59)
                
say("Deine Skills sind auf Perfekter Meister")
                
end
                item
.remove (50512 ,1)
                
                if 
s==2 then
                
--Mentalo
                pc
.set_skill_group(2)
                
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(20 ,59)
                
say("Deine Skills sind auf Perfekter Meister")
                
end
                item
.remove (50512 ,1)
                
                elseif 
pc.job ==1 then
                say
("Wähle deine Lehre aus")
                
                
local s=select("Nahkampf","Bogen")
                
                if 
s==1 then
                
--Nahkampf
                pc
.set_skill_group(3)
                
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)
                
say("Deine Skills sind auf Perfekter Meister")
                
end
                item
.remove (50512 ,1)
                
                if 
s==2 then
                
--Fernkampf
                pc
.set_skill_group(4)
                
pc.set_skill_level(46 ,59)
                
pc.set_skill_level(47 ,59)
                
pc.set_skill_level(48 ,59)
                
pc.set_skill_level(49 ,59)
                
pc.set_skill_level(50 ,59)
                
say("Deine Skills sind auf Perfekter Meister")
                
end
                item
.remove (50512 ,1)
                
                elseif 
pc.job ==2 then
                say
("Wähle deine Lehre aus")
                
local s=select("Magie","Waffe")
                
                if 
s==1 then
                
--Magie
                pc
.set_skill_group(5)
                
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(8159)
                
say("Deine Skills sind auf Perfekter Meister")
                
end
                item
.remove (50512 ,1)
                
                if 
s==2 then
                
--Waffe
                pc
.set_skill_group(6)
                
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)
                
say("Deine Skills sind auf Perfekter Meister")
                
end
                item
.remove (50512 ,1)
                
                elseif 
pc.job ==3 then
                say
("Wähle deine Lehre aus")
                
local s=select("Heil","Drachen")
                
                if 
s==1 then
                
--Heil
                pc
.set_skill_group(7)
                
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)
                
say("Deine Skills sind auf Perfekter Meister")
                
end
                item
.remove (50512 ,1)
                
                if 
s==2 then
                
--Drachen
                pc
.set_skill_group(8)
                
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)
                
say("Deine Skills sind auf Perfekter Meister")
                
end
                item
.remove (50512 ,1)
                
            
end
        end
    end
end 
Vielen Dank für Eure Hilfe!

Mit freundlichen Grüßen,
Curlston
04/08/2016 22:26 ライト#2
Kenne mich da net so gut aus, kannst es aber mal probieren :D
PHP Code:
quest regenbogen begin
    state start begin
            when 50512.
use  begin
                
                say_title
("Regenbogenstein:")
                
say("Du möchtest also deine Skills auf")
                
say("Perfekter-Meister setzen?")
                
                if 
pc.job ==0 then
                say
("Wähle deine Lehre aus")
                
                
local s=select("Körper","Mental","Abbrechen")
                
                if 
s==1 then
                
--Körper
                pc
.set_skill_group(1)
                
pc.set_skill_level(,59)
                
pc.set_skill_level(,59)
                
pc.set_skill_level(,59)
                
pc.set_skill_level(,59)
                
pc.set_skill_level(,59)
                
say("Deine Skills sind auf Perfekter Meister")
                
end
                item
.remove (50512 ,1)
                
                if 
s==2 then
                
--Mentalo
                pc
.set_skill_group(2)
                
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(20 ,59)
                
say("Deine Skills sind auf Perfekter Meister")
                
end
                item
.remove (50512 ,1)
                
                if 
s==3 then
                end
                
                
elseif pc.job ==1 then
                say
("Wähle deine Lehre aus")
                
                
local s=select("Nahkampf","Bogen","Abbrechen")
                
                if 
s==1 then
                
--Nahkampf
                pc
.set_skill_group(3)
                
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)
                
say("Deine Skills sind auf Perfekter Meister","Abbrechen")
                
end
                item
.remove (50512 ,1)
                
                if 
s==2 then
                
--Fernkampf
                pc
.set_skill_group(4)
                
pc.set_skill_level(46 ,59)
                
pc.set_skill_level(47 ,59)
                
pc.set_skill_level(48 ,59)
                
pc.set_skill_level(49 ,59)
                
pc.set_skill_level(50 ,59)
                
say("Deine Skills sind auf Perfekter Meister","Abbrechen")
                
end
                item
.remove (50512 ,1)
                
                if 
s==3 then
                end
                
                
elseif pc.job ==2 then
                say
("Wähle deine Lehre aus")
                
local s=select("Magie","Waffe")
                
                if 
s==1 then
                
--Magie
                pc
.set_skill_group(5)
                
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(8159)
                
say("Deine Skills sind auf Perfekter Meister","Abbrechen")
                
end
                item
.remove (50512 ,1)
                
                if 
s==2 then
                
--Waffe
                pc
.set_skill_group(6)
                
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)
                
say("Deine Skills sind auf Perfekter Meister","Abbrechen")
                
end
                item
.remove (50512 ,1)
                
                if 
s==3 then
                end
                
                
elseif pc.job ==3 then
                say
("Wähle deine Lehre aus")
                
local s=select("Heil","Drachen")
                
                if 
s==1 then
                
--Heil
                pc
.set_skill_group(7)
                
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)
                
say("Deine Skills sind auf Perfekter Meister","Abbrechen")
                
end
                item
.remove (50512 ,1)
                
                if 
s==2 then
                
--Drachen
                pc
.set_skill_group(8)
                
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)
                
say("Deine Skills sind auf Perfekter Meister","Abbrechen")
                
end
                item
.remove (50512 ,1)
                
                if 
s==3 then
                end                
            end
        end
    end
end 
04/08/2016 22:35 Mr. 'Avenue™#3
Code:
quest regenbogen begin
	state start begin
		when 50512.use begin
			say_title(item.get_name()..":")
			say("Du möchtest also deine Skills auf")
			say("Perfekter-Meister setzen?")
			say_reward("Wähle deine Lehre aus")
			local skillids = {
				{{1, 2, 3, 4, 5}, {16, 17, 18, 19, 20}},
				{{31, 32, 33, 34, 35}, {46, 47, 48, 49, 50}},
				{{76, 77, 78, 79, 80, 81}, {61, 62, 63, 64, 65, 66}},
				{{106, 107, 108, 109, 110, 111}, {91, 92, 93, 94, 95, 96}}
			}
			local groupnames = {
				{"Körper", "Mental"},
				{"Nahkampf", "Fernkampf"},
				{"Schwarze Magie", "Magische Waffen"},
				{"Heilung", "Drachenmacht"}
			}
			local s = select(groupnames[pc.job+1][1], groupnames[pc.job+1][2], "Abbruch")
			if s == 3 then return end
			pc.set_skill_group(pc.job*2+s)
			for a = 1, table.getn(skillids[pc.job+1][s]) do
				 pc.set_skill_level(skillids[pc.job+1][s][a], 59)
			end
			syschat("Deine Skills wurden perfektioniert.")
			pc.remove_item(item.get_vnum(), 1)
		end
	end
end
04/09/2016 00:08 Curlston#4
Danke für die schnelle Antwort. Kirito: Es gibt keinen Abbruch Button :/
Mr.Avenue: beim kompilen kommt der fehler:

"Quest/regenbogen.quest:4:when doens't have begin-end clause. (say_title)"
04/09/2016 00:15 Splinglol#5
In der Quest von Avenue Folgendes ändern:

PHP Code:
when 50512.begin 
zu

PHP Code:
when 50512.use begin 
04/09/2016 00:20 Curlston#6
Okay so klappt es, vielen Dank. Gibt es vielleicht einen "Rohling" für den Abbrechen-Button, den man prinzipiell in jede Quest einbinden kann?
04/09/2016 00:27 Splinglol#7
Joa, ist quasi das hier:

PHP Code:
local s select("Auswahl 1""Auswahl 2""Abbruch")
if 
== 3 then return end