[SERVICE] Die Questkontrolle

08/11/2014 02:39 Avulsed#10426
Quote:
Originally Posted by [SA]°Keks° View Post
PHP Code:
quest training_grandmaster_skill begin
    state start begin
        when 50513.
use begin
            
if pc.get_skill_group() == 0 then
                say_title
(gameforge.training_grandmaster_skill._10_sayTitle)
                
say(gameforge.training_grandmaster_skill._20_say)
                return
            
end

            
if get_time() < pc.getqf("next_time") then
                
if pc.is_skill_book_no_delay() then
                    say_title
(gameforge.training_grandmaster_skill._10_sayTitle)
                    
say(gameforge.training_grandmaster_skill._30_say)
                    
wait()
                else
                    
say_title(gameforge.training_grandmaster_skill._10_sayTitle)
                    
say(gameforge.training_grandmaster_skill._40_say)
                    return
                
end
            end

            local result 
= training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())

            
local vnum_list = result[1]
            
local name_list = result[2]

            if 
table.getn(vnum_list) == 0 then
                say_title
(gameforge.training_grandmaster_skill._10_sayTitle)
                
say(gameforge.training_grandmaster_skill._50_say)
                return
            
end
            say_title
(gameforge.training_grandmaster_skill._10_sayTitle)
            
say(gameforge.training_grandmaster_skill._60_say)

            
local menu_list = {}
            
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
            
table.insert(menu_list, gameforge.locale.cancel) 

            
local s=select_table(menu_list)
            
            if 
table.getn(menu_list) == s then
                
return
            
end

            local skill_name
=name_list[s]
            
local skill_vnum=vnum_list[s]
            
local skill_level = pc.get_skill_level(skill_vnum)
            
local cur_alignment = pc.get_real_alignment()
            
local need_alignment = 1000+500*(skill_level-30)

            
test_chat(string.format(gameforge.training_grandmaster_skill._70_chat, cur_alignment..gameforge.training_grandmaster_skill._75_chat..need_alignment))

            
local title=string.format(gameforge.training_grandmaster_skill._80_stringFormat, skill_name, skill_level-30+1)

            
say_title(gameforge.training_grandmaster_skill._10_sayTitle)
            
say(gameforge.training_grandmaster_skill._90_say)

            if 
cur_alignment<-19000+need_alignment then
                say_reward
(gameforge.training_grandmaster_skill._100_sayReward)
                                return
            
end

            
if cur_alignment<0 then
say_reward
(string.format(gameforge.training_grandmaster_skill._110_sayReward, need_alignment, need_alignment*2))
                
say_reward(gameforge.training_grandmaster_skill._120_sayReward)
                
need_alignment=need_alignment*2
            
elseif cur_alignment<need_alignment then
say_reward
(string.format(gameforge.training_grandmaster_skill._130_sayReward, need_alignment))
                
say_reward(gameforge.training_grandmaster_skill._140_sayReward)
            else
say_reward(string.format(gameforge.training_grandmaster_skill._130_sayReward, need_alignment))
            
end
                
            local s
= select(gameforge.locale.levelup.prev_quest_go, gameforge.locale.cancel)    
            
            if 
s==2 then
                
return
            
end


            
if cur_alignment>=0 and cur_alignment<need_alignment then
say_title
(title)
                
say_reward(gameforge.training_grandmaster_skill._150_sayReward)
                
say(gameforge.training_grandmaster_skill._160_say)
                
say_reward(gameforge.training_grandmaster_skill._170_sayReward)
                
say(gameforge.training_grandmaster_skill._180_say)
                
local s=input()
                
s = string.gsub(s, "(%a*)%s*", "%1")
                
s = string.lower(string.gsub(s, "(%a*)%s*", "%1"))

                
local t = string.gsub(gameforge.training_grandmaster_skill._10_answer, "(%a*)%s*", "%1")
                
t = string.lower(string.gsub(gameforge.training_grandmaster_skill._10_answer, "(%a*)%s*", "%1"))
                
                if 
s!=t then
                    
return
                
end
            end

            
if get_time() < pc.getqf("next_time") then
                
if pc.is_skill_book_no_delay() then
                    pc
.remove_skill_book_no_delay()
                else
                    
say_title(gameforge.training_grandmaster_skill._10_sayTitle)
                    return
                
end
            end

            pc
.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))


            if 
need_alignment>0 then
                
if pc.count_item(50513) > 0 then
                    
if pc.learn_grand_master_skill(skill_vnum) then
                        pc
.change_alignment(-need_alignment)
                
                        
say_title(title)
                        
say_reward(gameforge.training_grandmaster_skill._190_sayReward)

                        if 
40 == pc.get_skill_level(skill_vnum) then
                            say
(gameforge.training_grandmaster_skill._200_say)
                            
say(string.format(gameforge.training_grandmaster_skill._210_say, skill_name))
                            
say(gameforge.training_grandmaster_skill._220_say)
                        else
                            
say(gameforge.training_grandmaster_skill._230_say)
                            
say(string.format(gameforge.training_grandmaster_skill._240_say, skill_name, skill_level-30+1+1))
                        
end
                        say_reward
(gameforge.training_grandmaster_skill._250_sayReward)
                        
say_reward(string.format(gameforge.training_grandmaster_skill._260_sayReward, need_alignment))
                    else
                        
say_title(title)
                        
say_reward(gameforge.training_grandmaster_skill._270_sayReward)
                        
say(gameforge.training_grandmaster_skill._280_say)
                        
say_reward(gameforge.training_grandmaster_skill._290_sayReward)
                        
pc.change_alignment(-number(need_alignment/3, need_alignment/2))
                    
end
                    pc
.remove_item(50513)
                else
                    
char_log(0, "HACK 50513", pc.getname())
                
end
            end
        end

        
function BuildGrandMasterSkillList(job, group)
            
GRAND_MASTER_SKILL_LEVEL = 30
            PERFECT_MASTER_SKILL_LEVEL 
= 40

            local skill_list 
= special.active_skill_list[job+1][group]
            
local ret_vnum_list = {}
            
local ret_name_list = {}

            
table.foreach(skill_list, 
            function(
i, skill_vnum) 
            
local skill_level = pc.get_skill_level(skill_vnum)

            if 
skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then
                table
.insert(ret_vnum_list, skill_vnum)
                
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
                
                if 
name == nil then name=skill_vnum end
                    table
.insert(ret_name_list, name)
                
end
            end
)
            return {
ret_vnum_list, ret_name_list}
        
end
    end
end 
Bräuchte diese seelenstein Quest mit 100% warscheinlichkeit das es klappt, hab schon mehrere andere probiert aber die laufem auf dem Vanilla Core leider nicht, wäre wirklich sehr nett wenn das jemand dort ändern kann.
Es reicht, wenn du in einem der beiden Themen einen Beitrag erstellst. :o

Und hier die Quest:

08/11/2014 21:55 Hangover_Jack#10427
Quote:
Originally Posted by Avulsed View Post
Es reicht, wenn du in einem der beiden Themen einen Beitrag erstellst. :o

Und hier die Quest:

Geht nicht.
Error occured on compile training_grandmaster_skill.quest
08/11/2014 22:05 Avulsed#10428
Quote:
Originally Posted by Hangover_Jack View Post
Geht nicht.
Error occured on compile training_grandmaster_skill.quest
Das kann aber nichts mit der Quest ansich zu tun haben. Ich konnte sie nämlich auf dem Vanilla Core problemlos compilen und auch nutzen. :)

Das Problem tritt meines Wissens bei fehlerhaften Einträgen in der quest_list auf.
08/11/2014 22:53 .yorliK#10429
Quote:
Originally Posted by Hangover_Jack View Post
Geht nicht.
Error occured on compile training_grandmaster_skill.quest
Probier die mal.
Code:
quest training_grandmaster_skill begin
	state start begin
		when 50513.use begin
			if pc.get_skill_group() == 0 then
				say_title("Seelenstein")
				say("Du besitzt noch keine Fertigkeiten.")
				return
			end
			if get_time() < pc.getqf("next_time") then
				if pc.is_skill_book_no_delay() then
					say_title("Seelenstein")
					say("Du kannst den Seelenstein erneut lesen.")
					wait()
				else
					say_title("Seelenstein")
					say("Du kannst den Seelenstein noch nicht lesen.")
					say("Warte noch ein wenig.")
					return
				end
			end
			local result = training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())
			local vnum_list = result[1]
			local name_list = result[2]
			if table.getn(vnum_list) == 0 then
				say_title("Seelenstein")
				say("Du hast gar keine Großmeisterfertigkeiten.")
				return
			end
			say_title("Seelenstein")
			say("Welche Fertigkeit möchtest du trainieren?")
			local menu_list = {}
			table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
			table.insert(menu_list, "Abbrechen")
			local s=select_table(menu_list)
			if table.getn(menu_list) == s then
				return
			end
			local skill_name=name_list[s]
			local skill_vnum=vnum_list[s]
			local skill_level = pc.get_skill_level(skill_vnum)
			local cur_alignment = pc.get_real_alignment()
			local need_alignment = 1000+500*(skill_level-30)
			--local title=string.format(gameforge.training_grandmaster_skill._80_stringFormat, skill_name, skill_level-30+1)
			say_title("Seelenstein")
			say("")
			if cur_alignment<-19000+need_alignment then
				say_reward("Du hast zu wenig Rangpunkte.")
				return
			end

			if cur_alignment<0 then
				say_reward("Dir werden "..(need_alignment*2).." Rangpunkte abgezogen.")
				need_alignment=need_alignment*2
			elseif cur_alignment<need_alignment then
				say_reward("Dir werden "..(need_alignment).." Rangpunkte abgezogen.")
			else
				say_reward("Dir werden "..(need_alignment).." Rangpunkte abgezogen.")
			end
			if select("Weiter", "Abbrechen")==2 then return end
			if cur_alignment>=0 and cur_alignment<need_alignment then
				say_title("Trainieren "..skill_name.." "..(skill_level-30+1))
				say_reward("Nun gut, dann wollen wir mal trainieren.")
				say("")
				say_reward("Um zu trainieren gebe 'Trainieren' ein.")
				say("")
				local s=input()
				if s!= "Trainieren" then return end
			end
			if get_time() < pc.getqf("next_time") then
				if pc.is_skill_book_no_delay() then
					pc.remove_skill_book_no_delay()
				end
			end
			pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
			if need_alignment>0 then
				if pc.count_item(50513) > 0 then
					pc.set_skill_level(skill_vnum,pc.get_skill_level(skill_vnum)+1)
					pc.change_alignment(-need_alignment)
					say_title("Trainieren "..skill_name.." "..(skill_level-30+1))
					say_reward("Erfolgreich trainiert.")
					if 40 == pc.get_skill_level(skill_vnum) then
						say("")
						say(skill_name.." ist nun Perfekter Meister.")
						say("")
					else
						say("")
						say(skill_name.." steigt auf G"..(skill_level-30+1+1)..".")
					end
					say_reward("")
					say_reward("Dir wurden "..need_alignment.." Rangpunkte abgezogen.")
					pc.remove_item(50513)
				else
					char_log(0, "HACK 50513", pc.get_name())
				end
			end
		end
		function BuildGrandMasterSkillList(job, group)
			GRAND_MASTER_SKILL_LEVEL = 30
			PERFECT_MASTER_SKILL_LEVEL = 40
			local skill_list = special.active_skill_list[job+1][group]
			local ret_vnum_list = {}
			local ret_name_list = {}
			table.foreach(skill_list, 
			function(i, skill_vnum) 
			local skill_level = pc.get_skill_level(skill_vnum)
			if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then
				table.insert(ret_vnum_list, skill_vnum)
				local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
				if name == nil then name=skill_vnum end
					table.insert(ret_name_list, name)
				end
			end)
			return {ret_vnum_list, ret_name_list}
		end
	end
end
08/12/2014 03:39 .Vegas™#10430
Quest hat keine Fehler auser das die Truhen nicht aufgehen.
Typ ist auf 18 in der DB und ja kp was da falsch ist.

PHP Code:
quest reittiertruhe begin 
    state start begin 
        when 38053.
use begin 
            pc
.give_item2(71124, 1)                ---- Weißer-Löwe ---- 
            
pc.remove_item(38053, 1)            ---- Reittier-Truhe verschwindet ---- 
        
end
        when 50023.
use begin 
            pc
.give_item2(70024, 1)                ---- Segenskugel ---- 
            
pc.remove_item(50023, 1)            ---- Geldtasche verschwindet ---- 
        
end
        when 50125.
use begin 
            pc
.give_item2(53009, 1)                ---- Tigerkind-Siegel ---- 
            
pc.remove_item(50125, 1)            ---- Pet-Truhe verschwindet ---- 
        
end
    end
end 
08/17/2014 16:18 Critella#10431
quest stallbursche begin
state start begin
when 20349.chat."Pferd steigern" with horse.get_level()< 11 begin
say_title("Stallbursche:")
say("")
say("Hallo!")
say("Bei mir kannst du dein Pferd steigern.")
say("Dein Pferd bis zum KG steigern kostet dich pro Level 1kk.")
say("")
if select("Ja", "Nein")==2 then
return
else
say_title("Stallbursche:")
say("Um wie viel Level möchtest du dein Pferd steigern?")
say("")
local s = select("Um 1 Level steigern", "Auf Level 10 steigern", "Abbrechen")
if s == 3 then
return
else
local geld = s==1 and 1e6 or 1e7
if pc.money >=geld then
pc.changemoney(-geld)
horse.unride()
horse.set_level((s==1 and (horse.get_level()+1)or 10))
horse.ride()
say("Dein Pferd hat nun Level "..(horse.get_level()).." erreicht.")
say("")
else
say'Du hast nicht genug geld bei dir'
end
end
end
end
08/17/2014 20:57 thespeedyy#10432
PHP Code:
quest stallbursche begin
    state start begin
        when 20349.chat
."Pferd steigern" with horse.get_level()< 11 begin
            say_title
("Stallbursche:")
            
say("")
            
say("Hallo!")
            
say("Bei mir kannst du dein Pferd steigern.")
            
say("Dein Pferd bis zum KG steigern kostet dich pro Level 1kk.")
            
say("")
            if 
select("Ja", "Nein")==2 then
                
return
            else
                
say_title("Stallbursche:")
                
say("Um wie viel Level möchtest du dein Pferd steigern?")
                
say("")
                
local s = select("Um 1 Level steigern", "Auf Level 10 steigern", "Abbrechen")
                if 
s == 3 then
                    
return
                else
                    
local geld = s==1 and 1e6 or 1e7
                
if pc.money >=geld then
                    pc
.changemoney(-geld)
                    
horse.unride()
                    
horse.set_level((s==1 and (horse.get_level()+1)or 10))
                    
horse.ride()
                    
say("Dein Pferd hat nun Level "..(horse.get_level()).." erreicht.")
                    
say("")
                else
                    
say'Du hast nicht genug geld bei dir'
                
end
            end
        end
    end    
end 
ein end zuwenig :D
08/17/2014 22:01 Critella#10433
Nope immernoch fehler

stallbursche.quest:34:Error occured on compile stallbursche.quest
08/18/2014 07:56 iTepzHD#10434
Quote:
Originally Posted by .Vegas™ View Post
Quest hat keine Fehler auser das die Truhen nicht aufgehen.
Typ ist auf 18 in der DB und ja kp was da falsch ist.

PHP Code:
quest reittiertruhe begin 
    state start begin 
        when 38053.
use begin 
            pc
.give_item2(71124, 1)                ---- Weißer-Löwe ---- 
            
pc.remove_item(38053, 1)            ---- Reittier-Truhe verschwindet ---- 
        
end
        when 50023.
use begin 
            pc
.give_item2(70024, 1)                ---- Segenskugel ---- 
            
pc.remove_item(50023, 1)            ---- Geldtasche verschwindet ---- 
        
end
        when 50125.
use begin 
            pc
.give_item2(53009, 1)                ---- Tigerkind-Siegel ---- 
            
pc.remove_item(50125, 1)            ---- Pet-Truhe verschwindet ---- 
        
end
    end
end 
Lad dir die Quest aus meinem Anhang runter :).


[Only registered and activated users can see links. Click Here To Register...]
08/19/2014 03:16 terron#10435
Quote:
Originally Posted by Critella View Post
This one should work:
08/20/2014 00:08 Bercol#10436
Code:
quest give_basic_weapon begin
	state start begin
		when login begin
			if pc.getqf("first_log") == 0 then
				pc.setqf("first_log", 1)
				local gib = {
				["allen"] = {{13009,1},{14009,1},{15009,1},{16009,1},{27001,200},{27004,200},{72701,1},{72702,1},{70038,1},{70007,1},{50053,1},{50059,1},{70021,1},}
				[0] = {19 , 12209 , 11209 , 17029},[1] = {1009 , 12349 , 11409 , 17009},[2] = {19 , 12489 , 11609 , 17069},[3] = {7009 , 12629 , 11809 , 17069},}
				table.foreach(gib.allen,function(i,l) pc.give_item2(l[1],l[2]) end)
				table.foreach(gib[pc.get_job()],function(i,l) pc.give_item2(l,1) end)
				say_title("Hallo Abenteurer,")
				say("")
				say("Herzlich Willkommen auf SERVERNAME,[ENTER]dem einzig wahren Metin2.[ENTER]Dich erwarten viele Abenteuer und jede Menge Spaß.")
				say("Du erhälst nun deine erste Ausrüstung.[ENTER]Viel Spaß in der Welt von SERVERNAME!")
			end	
		end
	end	
end
screnn von make.sh bei virtualbox auch fehler.

[Only registered and activated users can see links. Click Here To Register...]
08/20/2014 04:04 terron#10437
Quote:
Originally Posted by Bercol View Post
Code:
quest give_basic_weapon begin
	state start begin
		when login begin
			if pc.getqf("first_log") == 0 then
				pc.setqf("first_log", 1)
				local gib = {
					["allen"] = {
						{13009,1},
						{14009,1},
						{15009,1},
						{16009,1},
						{27001,200},
						{27004,200},
						{72701,1},
						{72702,1},
						{70038,1},
						{70007,1},
						{50053,1},
						{50059,1},
						{70021,1},
					},
					[0] = {19, 12209, 11209, 17029},
					[1] = {1009, 12349, 11409, 17009},
					[2] = {19, 12489, 11609, 17069},
					[3] = {7009, 12629, 11809, 17069},
				},
				table.foreach(gib.allen,function(i,l) pc.give_item2(l[1],l[2]) end)
				table.foreach(gib[pc.get_job()],function(i,l) pc.give_item2(l,1) end)
				say_title("Hallo Abenteurer,")
				say("")
				say("Herzlich Willkommen auf SERVERNAME,[ENTER]dem einzig wahren Metin2.[ENTER]Dich erwarten viele Abenteuer und jede Menge Spaß.")
				say("Du erhälst nun deine erste Ausrüstung.[ENTER]Viel Spaß in der Welt von SERVERNAME!")
			end	
		end
	end	
end
Untested ingame, but it compiles successfully.
08/22/2014 14:15 Mīzu#10438
Hey Leute,

meine Lehrlingstruhen Spucken beim Rechtsklick nichts aus, Type steht auf 18, man erhält auch beim ersten Login die Lehrlingstruhe.

Code:
quest truhen_zero begin 
    state start begin 
		when login with pc.getqf("one_truhe")== 0 begin
			pc.give_item2(50187)
			set_state(truhen)
			pc.setqf("one_truhe", 1)
		end
	end
	state truhen begin
        when 50187.use begin
			local waffen_vnum = 19 --Schwert+9
			local ruessi_vnum = 11209 -- MPP+9
			local  helm_vnum = 12209
			if pc.get_job() == 1 then
				waffen_vnum = 1009 --Dolche+9
				ruessi_vnum = 11409 -- Azuranzug+9
				helm_vnum = 12349
			elseif pc.get_job() == 2 then				
				waffen_vnum = 19   --Schwert+9
				ruessi_vnum = 11609 -- RPP+9
				helm_vnum = 12489
			elseif pc.get_job() == 3 then
				waffen_vnum = 7009 --Fächer+9
				ruessi_vnum = 11809 -- Purpurkleidung+9
				helm_vnum = 12629
			end
			pc.give_item2(70007)    -- Warpring
			pc.give_item2(17009)       --  Holzohrringe
			pc.give_item2(14009)       -- Holzarmband
			pc.give_item2(15009)       -- Lederschuhe
			pc.give_item2(13009)       -- Schlachtschild
			pc.give_item2(16009)       -- Holzhalskette
			pc.give_item2(27111, 10)   -- 10 Grüne Tränke
			pc.give_item2(27114, 10)   -- 10 Vio Potts
			pc.give_item2(72701)       -- Windschuhe
			pc.give_item2(90000)
            pc.remove_item(50187, 1) --Lehrlingstruhe I verschwindet
			pc.give_item2(50188, 1)  --Lehrlingstruhe II geben
			pc.give_item2(waffen_vnum) --lvl 1er waffe je nach rasse
			pc.give_item2(ruessi_vnum) --lvl 1er rüssi je nach rasse
			pc.give_item2(helm_vnum)
        end 
        when 50188.use with pc.get_level() >= 10 begin 
			pc.give_item2(27114, 20) -- Vio Potts
			pc.give_item2(27111, 20)   -- 20 Grüne Tränke
			pc.give_item2(71003)     -- FK neuverteilen
            pc.give_item2(50189)
            pc.remove_item(50188)
        end 
        when 50189.use with pc.get_level() >= 20 begin 
            pc.give_item2(72730, 1)  --Elixier des Mondes (K)
			pc.give_item2(72726) 
			pc.give_item2(27112, 10)
			pc.give_item2(71050, 10)
            pc.give_item2(50190)  
            pc.remove_item(50189) 
        end 
        when 50190.use with pc.get_level() >= 30 begin 
            pc.give_item2(71034, 30)  --Geschwindigkeits Trank(K) 
			pc.give_item2(72043)
			pc.give_item2(70024, 10)
			pc.give_item2(5498, 30)
			pc.give_item2(71050, 10)
			pc.give_item2(27989)
			pc.give_item2(71085, 20)
			pc.give_item2(71084, 40)
            pc.give_item2(50191)
            pc.remove_item(50190)
        end 
        when 50191.use with pc.get_level() >= 40 begin 
			pc.give_item2(71034, 30)
			pc.give_item2(71050, 30)
			pc.give_item2(5498, 30)
            pc.give_item2(50192)
            pc.remove_item(50191)
        end 
        when 50192.use with pc.get_level() >= 50 begin 
			pc.give_item2(71107, 3)
			pc.give_item2(71110)
			pc.give_item2(27987, 10)
			pc.give_item2(50513, 5)
			pc.give_item2(70005)
            pc.give_item2(50193)
            pc.remove_item(50192)
        end 
        when 50193.use with pc.get_level() >= 60 begin 
			pc.give_item2(27987, 20)
			pc.give_item2(72043)
			pc.give_item2(71054)
			pc.give_item2(71050, 30)
			pc.give_item2(27112, 30)
			pc.give_item2(71034, 30)
            pc.give_item2(50194)
            pc.remove_item(50193)
        end 
        when 50194.use with pc.get_level() >= 70 begin
			pc.give_item2(71107, 5)
			pc.give_item2(71084, 100)
			pc.give_item2(71085, 30)
			pc.give_item2(50107, 10)
			pc.give_item2(50100, 10)
			pc.give_item2(27992, 2)
			pc.give_item2(27993, 2)
			pc.give_item2(27994, 2)
            pc.give_item2(50195)
            pc.remove_item(50194)
        end 
        when 50195.use with pc.get_level() >= 80 begin
			pc.give_item2(71034, 100)
			pc.give_item2(71044, 25)
			pc.give_item2(71045, 25)
			pc.give_item2(50082)
			pc.give_item2(50107, 50)
            pc.give_item2(50196) 
            pc.remove_item(50195) 
        end 
        when 50196.use with pc.get_level() >= 90 begin
			pc.give_item2(71054)
			pc.give_item2(27992, 5)
			pc.give_item2(27993, 5)
			pc.give_item2(27994, 5)
			pc.give_item2(71084, 100)
			pc.give_item2(71025, 10)
            pc.remove_item(50196)
        end 
    end 
end
08/22/2014 14:52 Prince43™#10439
Ich hab folgendes Problem. Wenn ich meine Items zb: ss (mit Bonis) + traktat ins Crafting window ziehe und Crafte übernimmt er die Bonis vom SSP nicht. Im Obigen abschnitt der quest übernimmt er die Bonis aber Uppt sie über ein anderen Befehl und dort pbernimmt er die Bonis die draufgeswitched sind. Hab die Quest so oft umgeschrieben und sogar versucht den befehl "item.over9refine()" mit der quest zu kombinieren hat nix gebracht.


Ofizielle Quest


Quest:


PHP Code:
quest cube_opener_list begin
    state start begin
        when 20378.take begin
            
-- special case 
            
local vnum = item.get_vnum()
            
local upgrade_list = {
                [
11299] = 20000,
                [
11499] = 20250,
                [
11699] = 20500,
                [
11899] = 20750,
            }

            
local material_list = { 
                {
                    [
"vnum"] = 70031,
                    [
"count"] = 3,
                },
                {
                    [
"vnum"] = 51001,
                    [
"count"] = 100,
                },
                {
                    [
"vnum"] = 25040,
                    [
"count"] = 2,
                },
            }

            
            
local can_change = true 

            
if 11299 == vnum or 11499 == vnum or 11699 == vnum or 11899  == vnum then
                say_title
(mob_name(20378))
                
say(string.format(gameforge.cube_opener_list._010_say, item_name(vnum)))
                
say_title(gameforge.cube_opener_list._020_sayTitle)
                for 
i, material in ipairs(material_list) do
                    
say("  " .. item_name(material.vnum) .. " " .. locale.count_prefix .. material.count .. " " .. locale.count_postfix .. "")
                    
can_change = can_change and (material.count <= pc.count_item(material.vnum)) 
                
end

                say
("")
                
say_title(gameforge.cube_opener_list._030_say)
                
say_item_vnum(upgrade_list[vnum])
                
say("")
                
wait()

                if 
true == can_change then
                    say_title
(mob_name(20378))
                    
say(string.format(gameforge.cube_opener_list._040_say, item_name(vnum),item_name(upgrade_list[vnum])))
                    
say_reward(locale.reward)
                    
say_item_vnum(upgrade_list[vnum])
                    
say("")
                    
                    
local s = select(locale.yes, locale.no)
                    if 
s == 1 then
                        item
.copy_and_give_before_remove(upgrade_list[vnum])
                        for 
i, material in ipairs(material_list) do
                        
pc.remove_item(material.vnum, material.count)
                        
end
                    end
                    
return
                else
                    
say_title(mob_name(20378))
                    
say(gameforge.cube_opener_list._050_say)    
                    return
                
end

            end
        end
        
        when
            20383.take 
or
            
20091.take or
            
33002.click or
            
20017.take or
            
20015.take
        begin

            command
("cube open")
        
end
    end
end 
Danke im voraus
08/22/2014 15:04 .yorliK#10440
Quote:
Originally Posted by .Yoshii™ View Post
Hey Leute,

meine Lehrlingstruhen Spucken beim Rechtsklick nichts aus, Type steht auf 18, man erhält auch beim ersten Login die Lehrlingstruhe.
Versuchs mal:
Code:
quest truhen_zero begin 
	state start begin 
		when login with pc.getqf("one_truhe")== 0 begin
			pc.give_item2(50187, 1)
			pc.setqf("one_truhe", 1)
		end
-- State entfernt, da man durch pc.setqf("one_truhe", 1) nur eine Truhe erhalten kann. 
		when 50187.use begin
			local wa = ({ 19, 1009, 19, 7009 })[pc.get_job()+1]
			local ru = ({ 11209, 11409, 11609, 11809 })[pc.get_job()+1]
			local he = ({ 12209, 12349, 12489, 12629 })[pc.get_job()+1]
			pc.give_item2(70007, 1)-- Warpring
			pc.give_item2(17009, 1)--  Holzohrringe
			pc.give_item2(14009, 1)-- Holzarmband
			pc.give_item2(15009, 1)-- Lederschuhe
			pc.give_item2(13009, 1)-- Schlachtschild
			pc.give_item2(16009, 1)-- Holzhalskette
			pc.give_item2(27111, 10)-- 10 Grüne Tränke
			pc.give_item2(27114, 10) -- 10 Vio Potts
			pc.give_item2(72701, 1)-- Windschuhe
			pc.give_item2(90000, 1)
			pc.give_item2(wa, 1)--lvl 1er waffe je nach rasse
			pc.give_item2(ru, 1)--lvl 1er rüssi je nach rasse
			pc.give_item2(he, 1)
			pc.remove_item(50187, 1)--Lehrlingstruhe I verschwindet
			pc.give_item2(50188, 1)--Lehrlingstruhe II geben
		end 
		when 50188.use with pc.get_level() >= 10 begin 
			pc.give_item2(27114, 20)-- Vio Potts
			pc.give_item2(27111, 20)-- 20 Grüne Tränke
			pc.give_item2(71003, 1)-- FK neuverteilen
			pc.give_item2(50189, 1)
			pc.remove_item(50188, 1)
		end 
		when 50189.use with pc.get_level() >= 20 begin 
			pc.give_item2(72730, 1)--Elixier des Mondes (K)
			pc.give_item2(72726, 1) 
			pc.give_item2(27112, 10)
			pc.give_item2(71050, 10)
			pc.give_item2(50190, 1)  
			pc.remove_item(50189, 1) 
		end 
		when 50190.use with pc.get_level() >= 30 begin 
			pc.give_item2(71034, 30)  --Geschwindigkeits Trank(K) 
			pc.give_item2(72043, 1)
			pc.give_item2(70024, 10)
			pc.give_item2(5498, 30)
			pc.give_item2(71050, 10)
			pc.give_item2(27989, 1)
			pc.give_item2(71085, 20)
			pc.give_item2(71084, 40)
			pc.give_item2(50191, 1)
			pc.remove_item(50190, 1)
		end 
		when 50191.use with pc.get_level() >= 40 begin 
			pc.give_item2(71034, 30)
			pc.give_item2(71050, 30)
			pc.give_item2(5498, 30)
			pc.give_item2(50192, 1)
			pc.remove_item(50191, 1)
		end 
		when 50192.use with pc.get_level() >= 50 begin 
			pc.give_item2(71107, 3)
			pc.give_item2(71110, 1)
			pc.give_item2(27987, 10)
			pc.give_item2(50513, 5)
			pc.give_item2(70005, 1)
			pc.give_item2(50193, 1)
			pc.remove_item(50192, 1)
		end 
		when 50193.use with pc.get_level() >= 60 begin 
			pc.give_item2(27987, 20)
			pc.give_item2(72043, 1)
			pc.give_item2(71054, 1)
			pc.give_item2(71050, 30)
			pc.give_item2(27112, 30)
			pc.give_item2(71034, 30)
			pc.give_item2(50194, 1)
			pc.remove_item(50193, 1)
		end 
		when 50194.use with pc.get_level() >= 70 begin
			pc.give_item2(71107, 5)
			pc.give_item2(71084, 100)
			pc.give_item2(71085, 30)
			pc.give_item2(50107, 10)
			pc.give_item2(50100, 10)
			pc.give_item2(27992, 2)
			pc.give_item2(27993, 2)
			pc.give_item2(27994, 2)
			pc.give_item2(50195, 1)
			pc.remove_item(50194, 1)
		end 
		when 50195.use with pc.get_level() >= 80 begin
			pc.give_item2(71034, 100)
			pc.give_item2(71044, 25)
			pc.give_item2(71045, 25)
			pc.give_item2(50082, 1)
			pc.give_item2(50107, 50)
			pc.give_item2(50196, 1) 
			pc.remove_item(50195, 1) 
		end 
		when 50196.use with pc.get_level() >= 90 begin
			pc.give_item2(71054, 1)
			pc.give_item2(27992, 5)
			pc.give_item2(27993, 5)
			pc.give_item2(27994, 5)
			pc.give_item2(71084, 100)
			pc.give_item2(71025, 10)
			pc.remove_item(50196, 1)
		end 
	end 
end