[SERVICE] Die Questerstellung

08/10/2014 14:43 Avulsed#1621
Quote:
Originally Posted by .Vegas™ View Post
PHP Code:
quest seelenstein begin 
    state start begin 
        
function BuildPerfectMasterSkillList(jobgroup
            
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 = {} 

            -- 
test_chat(string.format("job=%d, group=%d"jobgroup)) 

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

            -- 
test_chat(string.format("[%d]=%d"skill_vnumskill_level)) 
            if 
skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level PERFECT_MASTER_SKILL_LEVEL then 

                table
.insert(ret_vnum_listskill_vnum
                
local name=locale.GM_SKILL_NAME_DICT[skill_vnum
                if 
name == nil then name=skill_vnum end 
                table
.insert(ret_name_listname
            
end 
            end

            return {
ret_vnum_listret_name_list


            --return {
ret_vnum_listret_name_list
        
end 
        when 50513.
use begin 
            local count 
pc.count_item(50513
            
pc.setqf("regen_count"count
            if 
pc.get_skill_group() == 0 then 
                say
("Du hast noch keine Fertigkeiten."
                
say("Versuche es später erneut."
                return 
            
end 
            local result 
regenbogenstein.BuildPerfectMasterSkillList(pc.get_job(), pc.get_skill_group()) 
            
local vnum_list result[1
            
local name_list result[2
            if 
table.getn(vnum_list) == 0 then 
                say
("Du hast keine Fertigkeiten."
                return 
            
end 
            local menu_list 
= {} 
            
table.foreach(name_list, function(inametable.insert(menu_listnameend
            
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
            
say("Möchtest du "..skill_name.." wirklich erhöhen?"
            
local wahl select("Ja""Nein"
            if 
wahl == 1 then 
                
if pc.count_item(50513) == pc.getqf("regen_count"then 
                    pc
.set_skill_level(skill_vnumpc.get_skill_level(skill_vnum)+1)  
                    
say(skill_name.." wurde erhöht."
                else 
                    
say("Buguser bekommen keine P-Skills ! "
                
end 
            
elseif wahl == 2 then 
                
return 
            
end 
            pc
.remove_item(505131
        
end 
    end 
end 
Wenn ich die Quest Reloade kommt das:
[Only registered and activated users can see links. Click Here To Register...]

lg.

.Vegas
PHP Code:
quest seelenstein begin 
    state start begin 
        
function BuildPerfectMasterSkillList(jobgroup
            
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 = {} 

            -- 
test_chat(string.format("job=%d, group=%d"jobgroup)) 

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

            -- 
test_chat(string.format("[%d]=%d"skill_vnumskill_level)) 
            if 
skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level PERFECT_MASTER_SKILL_LEVEL then 

                table
.insert(ret_vnum_listskill_vnum
                
local name=locale.GM_SKILL_NAME_DICT[skill_vnum
                if 
name == nil then name=skill_vnum end 
                table
.insert(ret_name_listname
            
end 
            end

            return {
ret_vnum_listret_name_list


            --return {
ret_vnum_listret_name_list
        
end 
        when 50513.
use begin 
            local count 
pc.count_item(50513
            
pc.setqf("regen_count"count
            if 
pc.get_skill_group() == 0 then 
                say
("Du hast noch keine Fertigkeiten."
                
say("Versuche es später erneut."
                return 
            
end 
            local result 
seelenstein.BuildPerfectMasterSkillList(pc.get_job(), pc.get_skill_group()) 
            
local vnum_list result[1
            
local name_list result[2
            if 
table.getn(vnum_list) == 0 then 
                say
("Du hast keine Fertigkeiten."
                return 
            
end 
            local menu_list 
= {} 
            
table.foreach(name_list, function(inametable.insert(menu_listnameend
            
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
            
say("Möchtest du "..skill_name.." wirklich erhöhen?"
            
local wahl select("Ja""Nein"
            if 
wahl == 1 then 
                
if pc.count_item(50513) == pc.getqf("regen_count"then 
                    pc
.set_skill_level(skill_vnumpc.get_skill_level(skill_vnum)+1)  
                    
say(skill_name.." wurde erhöht."
                else 
                    
say("Buguser bekommen keine P-Skills ! "
                
end 
            
elseif wahl == 2 then 
                
return 
            
end 
            pc
.remove_item(505131
        
end 
    end 
end 
08/10/2014 14:45 .yorliK#1622
Quote:
Originally Posted by .Vegas™ View Post

Wenn ich die Quest Reloade kommt das:
[Only registered and activated users can see links. Click Here To Register...]

lg.

.Vegas

Da kann man nicht mal mehr einem Release trauen...

Code:
quest Seelenstein begin 
	state start begin 
		function BuildPerfectMasterSkillList(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 = {} 

			-- test_chat(string.format("job=%d, group=%d", job, group)) 

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

			-- test_chat(string.format("[%d]=%d", skill_vnum, skill_level)) 
			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} 


			--return {ret_vnum_list, ret_name_list} 
		end 
		when 50513.use begin
			if pc.get_skill_group() == 0 then 
				say("Du hast noch keine Fertigkeiten.") 
				say("Versuche es später erneut.") 
				return 
			end 
			local result = Seelenstein.BuildPerfectMasterSkillList(pc.get_job(), pc.get_skill_group()) 
			local vnum_list = result[1] 
			local name_list = result[2] 
			if table.getn(vnum_list) == 0 then 
				say("Du hast keine Fertigkeiten.") 
				return 
			end 
			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] 
			say("Möchtest du "..skill_name.." wirklich erhöhen?") 
			if select("Ja", "Nein")==2 then return end
			if pc.count_item(50513)>0 then 
				pc.set_skill_level(skill_vnum, pc.get_skill_level(skill_vnum)+1)  
				say(skill_name.." wurde erhöht.") 
			else
				say("Buguser bekommen keine P-Skills ! ") 
				return 
			end 
			pc.remove_item(50513, 1) 
		end 
	end 
end
08/10/2014 22:09 [SA]°Keks°#1623
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(inametable.insert(menu_listnameend)
            
table.insert(menu_listgameforge.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_chatcur_alignment..gameforge.training_grandmaster_skill._75_chat..need_alignment))

            
local title=string.format(gameforge.training_grandmaster_skill._80_stringFormatskill_nameskill_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_sayRewardneed_alignmentneed_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_sayRewardneed_alignment))
                
say_reward(gameforge.training_grandmaster_skill._140_sayReward)
            else
say_reward(string.format(gameforge.training_grandmaster_skill._130_sayRewardneed_alignment))
            
end
                
            local s
select(gameforge.locale.levelup.prev_quest_gogameforge.locale.cancel)    
            
            if 
s==2 then
                
return
            
end


            
if cur_alignment>=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()
                
string.gsub(s"(%a*)%s*""%1")
                
string.lower(string.gsub(s"(%a*)%s*""%1"))

                
local t string.gsub(gameforge.training_grandmaster_skill._10_answer"(%a*)%s*""%1")
                
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(812)))


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

                        if 
40 == pc.get_skill_level(skill_vnumthen
                            say
(gameforge.training_grandmaster_skill._200_say)
                            
say(string.format(gameforge.training_grandmaster_skill._210_sayskill_name))
                            
say(gameforge.training_grandmaster_skill._220_say)
                        else
                            
say(gameforge.training_grandmaster_skill._230_say)
                            
say(string.format(gameforge.training_grandmaster_skill._240_sayskill_nameskill_level-30+1+1))
                        
end
                        say_reward
(gameforge.training_grandmaster_skill._250_sayReward)
                        
say_reward(string.format(gameforge.training_grandmaster_skill._260_sayRewardneed_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/3need_alignment/2))
                    
end
                    pc
.remove_item(50513)
                else
                    
char_log(0"HACK 50513"pc.getname())
                
end
            end
        end

        
function BuildGrandMasterSkillList(jobgroup)
            
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(
iskill_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_listskill_vnum)
                
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
                
                if 
name == nil then name=skill_vnum end
                    table
.insert(ret_name_listname)
                
end
            end
)
            return {
ret_vnum_listret_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.
08/11/2014 16:41 .Vegas™#1624
Guten Tag,
kann mir jemand eine Teleporter Quest machen?
Es sollte so sein das man zu einem NPC geht und dann steht da Grotter der Verbannung2, Drachenraum.
Man braucht für den Drachenraum aber ein Item das das man abgeben muss.


Wäre toll jemand könnte mir die erstellen.

lg.
.Vegas
08/11/2014 18:21 IzeBreakzz#1625
Hey @all,

könnte mir jemand eine Quest die folgendermaßen aussieht schreiben?:

Wenn sich ein Spieler der im Roten Reich einloggt muss er zum Stadtwächter. Wenn einer ausm blauen einloggt, zum Schmied und wenn er aus dem Gelben kommt zum Fischer.

Und evtl. eine Anschlussquest:
Wenn der SPieler die vorherige Quest erledigt hat dann kann er die Quest hier anfangen.

Das soll praktisch eine Questreihe für jedes Reich seperat werden. Wäre toll wenn mir da jemand bei der Umsetzung helfen könnte.

Kind Regards,
IzeBreakzz
08/11/2014 19:58 .yorliK#1626
Quote:
Originally Posted by .Vegas™ View Post
Guten Tag,
kann mir jemand eine Teleporter Quest machen?
Es sollte so sein das man zu einem NPC geht und dann steht da Grotter der Verbannung2, Drachenraum.
Man braucht für den Drachenraum aber ein Item das das man abgeben muss.


Wäre toll jemand könnte mir die erstellen.

lg.
.Vegas
Code:
quest TeleportVegas begin
	state start begin
		when NPC.chat."Teleportieren" begin -- NPC durch die NPC vnum ersetzen
			say_title("Teleportieren")
			say("")
			say("Wo möchtest du hin?")
			s = select("Grotte der Verbannung 2", "Drachenraum", "Abbrechen")
			if s==3 then
				return
			elseif s==1 then
				pc.warp(xxxx,xxxx) -- xxxx durch den Warpcode Grotte 2 ersetzen
			elseif s==2 then
				if pc.count_item(itemid)<1 then itemid des items für Drachenraum
					say_title("Drachenraum")
					say("")
					say("Um in den Drachenraum zugelangen, brauche")
					say("ich:")
					say_item("Itemname", itemid, "Itemname") -- itemid des items für Drachenraum
					say("")
				else
					pc.remove_item(itemid, 1) -- itemid des items für Drachenraum
					pc.warp(xxxx,xxxx) -- xxxx durch den Warpcode Drachenraum ersetzen
				end
			end
		end
	end
end

Quote:
Originally Posted by IzeBreakzz View Post
Hey @all,

könnte mir jemand eine Quest die folgendermaßen aussieht schreiben?:

Wenn sich ein Spieler der im Roten Reich einloggt muss er zum Stadtwächter. Wenn einer ausm blauen einloggt, zum Schmied und wenn er aus dem Gelben kommt zum Fischer.

Und evtl. eine Anschlussquest:
Wenn der SPieler die vorherige Quest erledigt hat dann kann er die Quest hier anfangen.

Das soll praktisch eine Questreihe für jedes Reich seperat werden. Wäre toll wenn mir da jemand bei der Umsetzung helfen könnte.

Kind Regards,
IzeBreakzz
Geb mir deine Skypeadd per PN durch. Schauen dann mal zusammen.
08/12/2014 20:49 IzeBreakzz#1627
Kilroy hat mir geholfen :) Hat sich also erledigt.
08/13/2014 10:52 SkyWodka#1628
[SUCHE]Serverinformations Quest

Hey Com.,

ich suche eine Serverinformations Quest ich Liste euch hier nun mal die Features auf die sie haben sollte.

-Wenn man einen NPC anklickt, soll als Header dort stehen "Worüber möchtest du etwas wissen" und darunter halt dann die einzelnen Punkte.


Die einzelnen Punkte:

-Allgemeine Infos über den Server:

Forum/HP Link.

-Infos über Maps:

Ich stelle mir das so vor, das wenn man die Map auswählt ein Bild der Map im oberen Teil des Questfensters erscheint, und darunter der Text.

-Das Uppsystem:

Zeigt wie das Uppschema ist.

-News über den Server:

Dort sollen die aktuellen Updates stehen.

-Eventinformationen:

Datum, Wann und Wo, Welches Event.

-Welche Items/Waffen/Rüssis etc. droppe ich auf den Maps:

Entweder kleine Bilder der Items/Rüstungen/Waffen etc. im obere Teil der Quest oder ein Text der so aussieht...

-Itemname
-Itemname
-Itemname
-Itemname

-Welche Bosse gibt es und wo finde ich sie:

Ein Bild des Boses im oberen Teil der Quest darunter die Information

LG Solution
08/13/2014 15:51 Critella#1629
Ich suche eine Quest
Wenn ich eine lv 70er rüssi auf den NPC ziehe öffnet sich ein Fenster wo drin steht ob ich PVP oder PVM haben will und der NPC ändert mir dann die 70er zu den Ausgesuchten Rüssis um
08/13/2014 16:42 .yorliK#1630
Quote:
Originally Posted by Critella View Post
Ich suche eine Quest
Wenn ich eine lv 70er rüssi auf den NPC ziehe öffnet sich ein Fenster wo drin steht ob ich PVP oder PVM haben will und der NPC ändert mir dann die 70er zu den Ausgesuchten Rüssis um
Code:
quest Critella begin
	state start begin
		function is_in_table(t, var)
			for i=1, table.getn(t), 1 do
				if t[i]==var then
					return true
				end
			end
		end
		when npcid.take begin -- npcvnum
			if not Critella.is_in_table({11299, 11499, 11699, 11899}, item.get_vnum()) then 
				syschat("Du kannst nur Lv70'er Rüstungen tauschen!")
				return
			end
			vnum = item.get_vnum()
			newr = {
					[11299] = { PVM, PVP }, -- Krieger
					[11499] = { PVM, PVP }, -- Ninja
					[11699] = { PVM, PVP }, -- Sura
					[11899] = { PVM, PVP } -- Schamane
					}
			say_title(mob_name(npc.get_race()))
			say("")
			say("Welche Rüstung möchtest du?")
			s = select("PvM-Rüstung", "PvP-Rüstung", "Schließen")
			if s==3 then return end
			pc.give_item2(newr[vnum][s], 1)
			item.remove()
		end
	end
end
08/13/2014 16:59 Critella#1631
Wenns klappt bist du Gott
08/15/2014 04:20 Critella#1632
Suche eine Quest wo ich beim NPC ganz schnell swutchen kann zu einem anderen Abteil

z.B. der Gemi hat Itemshop, Getränke und Steine wenn ich bei Itemshops bin, das ich ganz schnell ohne wegzu klicken zu den Getränken oder Steinen komme
08/16/2014 18:03 .тyѕση /.ηαяuтσ#1633
Quote:
Originally Posted by Critella View Post
Suche eine Quest wo ich beim NPC ganz schnell swutchen kann zu einem anderen Abteil

z.B. der Gemi hat Itemshop, Getränke und Steine wenn ich bei Itemshops bin, das ich ganz schnell ohne wegzu klicken zu den Getränken oder Steinen komme
Viel Glück beim suchen.
Wenn das jemand hinkriegt, Respekt.
08/18/2014 12:03 grαyfox#1634
Quote:
Originally Posted by .тyѕση /.ηαяuтσ View Post
Viel Glück beim suchen.
Wenn das jemand hinkriegt, Respekt.
Das ist nicht schwierig, nur nicht in LUA umzusetzen, da musste Python nutzen oder es direkt in der Binary anstellen.

somit #delete-it-request-jo-digga
08/18/2014 12:40 Lord iRemix#1635
Quote:
Originally Posted by .ʛᶉɑҹғох™ View Post
Das ist nicht schwierig, nur nicht in LUA umzusetzen, da musste Python nutzen oder es direkt in der Binary anstellen.

somit #delete-it-request-jo-digga
Natürlich kann man es in Lua umsetzen.
Zum größten Teil zumindest.