|
You last visited: Today at 23:42
Advertisement
Pet Quest ?
Discussion on Pet Quest ? within the Metin2 Private Server forum part of the Metin2 category.
07/15/2014, 19:04
|
#1
|
elite*gold: 1
Join Date: Dec 2013
Posts: 3,467
Received Thanks: 720
|
Pet Quest ?
Gibt es noch die Bugfrei Pet Quest ?
Für diese Pets:
|
|
|
07/15/2014, 19:55
|
#2
|
elite*gold: 54
Join Date: Jan 2013
Posts: 518
Received Thanks: 354
|
Nimm einfach die aus den Invoice Files und änder die IDs der Icons in der Quest(wenn das nicht sogar die gleichen sind) Bei dem Namensänderungsteil musst du bei dem Item der eingetragenden ID den type auf 18 setzen. Hier die Quest:
PHP Code:
quest haustiere begin state start begin -- Setzt den neuen Petnamen in die Datenbank ein function set_pet_name(name) mysql_query("DELETE FROM player.pet_name WHERE id = \\'"..pc.get_player_id().."\\'") mysql_query("INSERT INTO player.pet_name(id, name) VALUES(\\'"..pc.get_player_id().."\\', \\'"..name.."\\')") end -- Holt sich den Petnamen aus der Datenbank function get_pet_name() local pet_name = mysql_query("SELECT * FROM player.pet_name WHERE id = \\'"..pc.get_player_id().."\\'") return (pet_name.name or {pc.get_name().."'s Haustier"})[1] end -- Feuer-Phönix when 53001.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(22) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Rentierjunges when 53002.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(24) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Eis-Phönix when 53003.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(23) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Baby-Azrael when 53005.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(25) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Baby-Wolfs when 53006.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(26) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Baby-Löwen when 53007.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(27) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Baby-Keiler when 53008.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(28) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Baby-Tiger when 53009.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(29) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Baby-Eisbär when 53014.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(30) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Namenskette - Namensändung des Haustiers when 71110.use begin say_title("Namenskette :") say("") say("Hier kannst du deinem Haustier einen neuen") say("Namen geben. Damit kannst du dein Haustier") say("über alle anderen hervorheben.") say("") akna = haustiere.get_pet_name() if string.len(akna) == 0 then say_reward("Dein Haustier besitzt bis jetzt keinen Namen.") else say_reward("Der aktuelle Name deines Haustieres lautet: "..akna) end say("") say("Möchtest du fortfahren?") say("") local s=select("Umbenennen", "Abbrechen") if s==2 then return end say_title("Namenskette :") say("") say("Bitte gib hier den neuen Namen deines") say("Haustieres ein.") local x = input() if string.len(x) < 2 then say_title("Namenskette :") say("Der eingegeben Name ist zu kurz.") say("") say_reward("Der neue Name muss aus") say_reward("mind. 2 Zeichen bestehen.") say("") return elseif string.len(x) > 12 then say_title("Namenskette :") say("Der eingegeben Name ist zu lang.") say("") say_reward("Der neue Name darf max.") say_reward("aus 12 Zeichen bestehen.") say("") return end haustiere.set_pet_name(x) chat("Haustier erfolgreich umbenannt") pc.remove_item(71110, 1) end end end
MFG
€dit: Questlib von Mijago benötigt, findest du auf metindev
|
|
|
07/15/2014, 23:46
|
#3
|
elite*gold: 40
Join Date: Nov 2009
Posts: 1,159
Received Thanks: 442
|
Quote:
Originally Posted by avatar19995
Nimm einfach die aus den Invoice Files und änder die IDs der Icons in der Quest(wenn das nicht sogar die gleichen sind) Bei dem Namensänderungsteil musst du bei dem Item der eingetragenden ID den type auf 18 setzen. Hier die Quest:
PHP Code:
quest haustiere begin
state start begin
-- Setzt den neuen Petnamen in die Datenbank ein
function set_pet_name(name)
mysql_query("DELETE FROM player.pet_name WHERE id = \\'"..pc.get_player_id().."\\'")
mysql_query("INSERT INTO player.pet_name(id, name) VALUES(\\'"..pc.get_player_id().."\\', \\'"..name.."\\')")
end
-- Holt sich den Petnamen aus der Datenbank
function get_pet_name()
local pet_name = mysql_query("SELECT * FROM player.pet_name WHERE id = \\'"..pc.get_player_id().."\\'")
return (pet_name.name or {pc.get_name().."'s Haustier"})[1]
end
-- Feuer-Phönix
when 53001.use begin
if pet.is_summon() then
pet.unsummon()
chat("Dein Haustier verabschiedet sich nun von dir!")
affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.MAX_HP, 1000, 60*60*8)
else
local old_level = horse.get_level()
local old_name = horse.get_name()
horse.set_level(22)
horse.set_name(haustiere.get_pet_name())
pet.summon()
horse.set_level(old_level)
horse.set_name(old_name)
affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.MAX_HP, 1000, 60*60*8)
end
end
-- Rentierjunges
when 53002.use begin
if pet.is_summon() then
pet.unsummon()
chat("Dein Haustier verabschiedet sich nun von dir!")
affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.MAX_HP, 1000, 60*60*8)
else
local old_level = horse.get_level()
local old_name = horse.get_name()
horse.set_level(24)
horse.set_name(haustiere.get_pet_name())
pet.summon()
horse.set_level(old_level)
horse.set_name(old_name)
affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.MAX_HP, 1000, 60*60*8)
end
end
-- Eis-Phönix
when 53003.use begin
if pet.is_summon() then
pet.unsummon()
chat("Dein Haustier verabschiedet sich nun von dir!")
affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.MAX_HP, 1000, 60*60*8)
else
local old_level = horse.get_level()
local old_name = horse.get_name()
horse.set_level(23)
horse.set_name(haustiere.get_pet_name())
pet.summon()
horse.set_level(old_level)
horse.set_name(old_name)
affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.MAX_HP, 1000, 60*60*8)
end
end
-- Baby-Azrael
when 53005.use begin
if pet.is_summon() then
pet.unsummon()
chat("Dein Haustier verabschiedet sich nun von dir!")
affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.MAX_HP, 1000, 60*60*8)
else
local old_level = horse.get_level()
local old_name = horse.get_name()
horse.set_level(25)
horse.set_name(haustiere.get_pet_name())
pet.summon()
horse.set_level(old_level)
horse.set_name(old_name)
affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.MAX_HP, 1000, 60*60*8)
end
end
-- Baby-Wolfs
when 53006.use begin
if pet.is_summon() then
pet.unsummon()
chat("Dein Haustier verabschiedet sich nun von dir!")
affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.MAX_HP, 1000, 60*60*8)
else
local old_level = horse.get_level()
local old_name = horse.get_name()
horse.set_level(26)
horse.set_name(haustiere.get_pet_name())
pet.summon()
horse.set_level(old_level)
horse.set_name(old_name)
affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.MAX_HP, 1000, 60*60*8)
end
end
-- Baby-Löwen
when 53007.use begin
if pet.is_summon() then
pet.unsummon()
chat("Dein Haustier verabschiedet sich nun von dir!")
affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.MAX_HP, 1000, 60*60*8)
else
local old_level = horse.get_level()
local old_name = horse.get_name()
horse.set_level(27)
horse.set_name(haustiere.get_pet_name())
pet.summon()
horse.set_level(old_level)
horse.set_name(old_name)
affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.MAX_HP, 1000, 60*60*8)
end
end
-- Baby-Keiler
when 53008.use begin
if pet.is_summon() then
pet.unsummon()
chat("Dein Haustier verabschiedet sich nun von dir!")
affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.MAX_HP, 1000, 60*60*8)
else
local old_level = horse.get_level()
local old_name = horse.get_name()
horse.set_level(28)
horse.set_name(haustiere.get_pet_name())
pet.summon()
horse.set_level(old_level)
horse.set_name(old_name)
affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.MAX_HP, 1000, 60*60*8)
end
end
-- Baby-Tiger
when 53009.use begin
if pet.is_summon() then
pet.unsummon()
chat("Dein Haustier verabschiedet sich nun von dir!")
affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.MAX_HP, 1000, 60*60*8)
else
local old_level = horse.get_level()
local old_name = horse.get_name()
horse.set_level(29)
horse.set_name(haustiere.get_pet_name())
pet.summon()
horse.set_level(old_level)
horse.set_name(old_name)
affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.MAX_HP, 1000, 60*60*8)
end
end
-- Baby-Eisbär
when 53014.use begin
if pet.is_summon() then
pet.unsummon()
chat("Dein Haustier verabschiedet sich nun von dir!")
affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.remove_collect(apply.MAX_HP, 1000, 60*60*8)
else
local old_level = horse.get_level()
local old_name = horse.get_name()
horse.set_level(30)
horse.set_name(haustiere.get_pet_name())
pet.summon()
horse.set_level(old_level)
horse.set_name(old_name)
affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
affect.add_collect(apply.MAX_HP, 1000, 60*60*8)
end
end
-- Namenskette - Namensändung des Haustiers
when 71110.use begin
say_title("Namenskette :")
say("")
say("Hier kannst du deinem Haustier einen neuen")
say("Namen geben. Damit kannst du dein Haustier")
say("über alle anderen hervorheben.")
say("")
akna = haustiere.get_pet_name()
if string.len(akna) == 0 then
say_reward("Dein Haustier besitzt bis jetzt keinen Namen.")
else
say_reward("Der aktuelle Name deines Haustieres lautet: "..akna)
end
say("")
say("Möchtest du fortfahren?")
say("")
local s=select("Umbenennen", "Abbrechen")
if s==2 then
return
end
say_title("Namenskette :")
say("")
say("Bitte gib hier den neuen Namen deines")
say("Haustieres ein.")
local x = input()
if string.len(x) < 2 then
say_title("Namenskette :")
say("Der eingegeben Name ist zu kurz.")
say("")
say_reward("Der neue Name muss aus")
say_reward("mind. 2 Zeichen bestehen.")
say("")
return
elseif string.len(x) > 12 then
say_title("Namenskette :")
say("Der eingegeben Name ist zu lang.")
say("")
say_reward("Der neue Name darf max.")
say_reward("aus 12 Zeichen bestehen.")
say("")
return
end
haustiere.set_pet_name(x)
chat("Haustier erfolgreich umbenannt")
pc.remove_item(71110, 1)
end
end
end
MFG
€dit: Questlib von Mijago benötigt, findest du auf metindev 
|
Ist nur zu gut, dass diese Quest ganz einfach zu buggen ist. Wenn Du einem Pet nur maximal drei Bonis geben willst, dann mach sie über die Datenbank. Ansonsten musst Du questflags benutzen, damit es verboten wird ein anderes Pet zu rufen, während bereits eines aktiv ist. Sonst kann man die Boni ganz einfach vervielfachen.
|
|
|
07/15/2014, 23:47
|
#4
|
elite*gold: 0
Join Date: Jul 2014
Posts: 33
Received Thanks: 9
|
Durch DerForenLeser habe ich sehr viel gelernt! <3
|
|
|
07/17/2014, 12:27
|
#5
|
elite*gold: 1
Join Date: Dec 2013
Posts: 3,467
Received Thanks: 720
|
Quote:
Originally Posted by DerForenLeser
Ist nur zu gut, dass diese Quest ganz einfach zu buggen ist. Wenn Du einem Pet nur maximal drei Bonis geben willst, dann mach sie über die Datenbank. Ansonsten musst Du questflags benutzen, damit es verboten wird ein anderes Pet zu rufen, während bereits eines aktiv ist. Sonst kann man die Boni ganz einfach vervielfachen.
|
Wenn ich jetzt nur wüsste was du damit meinst
|
|
|
07/17/2014, 13:41
|
#6
|
elite*gold: 1
Join Date: Apr 2014
Posts: 586
Received Thanks: 144
|
hast ne pn
|
|
|
07/17/2014, 15:23
|
#7
|
elite*gold: 1
Join Date: Oct 2012
Posts: 1,036
Received Thanks: 801
|
Nehmt einfach die Quest:
PHP Code:
quest pet_system begin state start begin function get_pet_info(itemVnum) pet_info_map = { -- [ITEM VNUM] MOB_VNUM, DEFAULT NAME [51001] = { 41001, Leonidas ,0}, [51002] = { 41002, Rufus ,0}, [51003] = { 41003, Porky ,0}, [51004] = { 41004, Khan ,0}, [51005] = { 41005, Feuerphönix ,0}, [51006] = { 41006, Eisphönix,0}, [51007] = { 41007, Azrael ,0}, [51008] = { 41008, Rudolf ,0}, }
itemVnum = tonumber(itemVnum)
return pet_info_map[itemVnum] end function get_spawn_effect_file(idx) effect_table = { [0] = nil, [1] = "d:\\\\ymir work\\\\effect\\\\etc\\\\appear_die\\\\npc2_appear.mse", } return effect_table [idx] end when 51001.use or 51002.use or 51003.use or 51004.use or 51005.use or 51006.use or 51007.use or 51008.use begin local pet_info = pet_system.get_pet_info(item.vnum)
if null != pet_info then
local mobVnum = pet_info[1] local petName = pet_info[2] local spawn_effect_file_name = pet_system.get_spawn_effect_file(pet_info[3])
if true == pet.is_summon(mobVnum) then if spawn_effect_file_name != nil then pet.spawn_effect (mobVnum, spawn_effect_file_name) end pet.unsummon(mobVnum) else if pet.count_summoned() < 1 then pet.summon(mobVnum, petName, false) else syschat("Schicke erst dein Pet weg, bevor du ein anderes rufst!") end if spawn_effect_file_name != nil then pet.spawn_effect (mobVnum, spawn_effect_file_name) end end -- if pet.is_summon end -- if null != pet_info end -- when end -- state end -- quest
PS: Is vom .de Server Locale-Ordner, Stand Oktober 2013
€: Die Bonis kannst du ganz easy in der DB bei applytype0-applytype2 & applyvalue0-applyvalue3 setzen, erkennt die quest in dem fall und ist 100% bugfrei.
|
|
|
07/17/2014, 23:12
|
#8
|
elite*gold: 52
Join Date: Jul 2014
Posts: 192
Received Thanks: 247
|
Die oben ist doch fast Bugfrei
|
|
|
07/18/2014, 00:19
|
#9
|
elite*gold: 0
Join Date: Jul 2014
Posts: 2
Received Thanks: 0
|
Quote:
Originally Posted by [SA]Tears aka.[BlackBite]
Nehmt einfach die Quest:
PHP Code:
quest pet_system begin
state start begin
function get_pet_info(itemVnum)
pet_info_map = {
-- [ITEM VNUM] MOB_VNUM, DEFAULT NAME
[51001] = { 41001, Leonidas ,0},
[51002] = { 41002, Rufus ,0},
[51003] = { 41003, Porky ,0},
[51004] = { 41004, Khan ,0},
[51005] = { 41005, Feuerphönix ,0},
[51006] = { 41006, Eisphönix,0},
[51007] = { 41007, Azrael ,0},
[51008] = { 41008, Rudolf ,0},
}
itemVnum = tonumber(itemVnum)
return pet_info_map[itemVnum]
end
function get_spawn_effect_file(idx)
effect_table = {
[0] = nil,
[1] = "d:\\\\ymir work\\\\effect\\\\etc\\\\appear_die\\\\npc2_appear.mse",
}
return effect_table [idx]
end
when 51001.use or 51002.use or 51003.use or 51004.use or 51005.use or 51006.use or 51007.use or 51008.use begin
local pet_info = pet_system.get_pet_info(item.vnum)
if null != pet_info then
local mobVnum = pet_info[1]
local petName = pet_info[2]
local spawn_effect_file_name = pet_system.get_spawn_effect_file(pet_info[3])
if true == pet.is_summon(mobVnum) then
if spawn_effect_file_name != nil then
pet.spawn_effect (mobVnum, spawn_effect_file_name)
end
pet.unsummon(mobVnum)
else
if pet.count_summoned() < 1 then
pet.summon(mobVnum, petName, false)
else
syschat("Schicke erst dein Pet weg, bevor du ein anderes rufst!")
end
if spawn_effect_file_name != nil then
pet.spawn_effect (mobVnum, spawn_effect_file_name)
end
end -- if pet.is_summon
end -- if null != pet_info
end -- when
end -- state
end -- quest
PS: Is vom .de Server Locale-Ordner, Stand Oktober 2013
€: Die Bonis kannst du ganz easy in der DB bei applytype0-applytype2 & applyvalue0-applyvalue3 setzen, erkennt die quest in dem fall und ist 100% bugfrei.
|
Die Quest funktioniert nur, wenn man die 34k/40k Game nutzt, da in früheren Revisionen die nötigen Funktionen nicht enthalten sind.
Fakt ist aber: alle public Quests sind Müll.
Lieber selber eine schreiben.
|
|
|
All times are GMT +1. The time now is 23:43.
|
|