Sziasztok valaki tudna esetleg egy magyar leirást adni erről az EPVP-s Pet system ről hogy hogyan tudnám berakni? köszönöm előre is a segitséget itt a link:
http://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/2308812-release-petgui-quest-levelbar.html (http://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/2308812-release-petgui-quest-levelbar.html)
Ken, kicsit csúnya dolog beleoffolni a témába....én sem tudok németül, de kitudom következtetni....erre nem mindenki képes, sajnos....
Ha meg lusta vagy leírn neki, akkor ne offold a témáját.
Nos, Szerveroldal:
Először is kell rendelkezzél egy alap pet rendszerrel...diffelt game fájlal (2089M game fájl esetén)
quest_funcions-ba ezt írd:
pet.summon
pet.unsummon
pet.is_summon
+ a questet berakod, de csak az egyiket aztán le ./qc-zod.
Kliens oldal:
game.py-t megnyitod (Notepad++-al ajánlom):
Megkeresed ezt a sort:
self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
Aláírod ezt:
##START_PETGUI BY DASKUCHEN
PetGuiBg = ui.AniImageBox()
PetGuiBg.AddFlag("not_pick")
PetGuiBg.AppendImage("d:/ymir work/ui/petgui.dds")
self.PetGuiBg = PetGuiBg
self.PetGuiBg.SetPosition(wndMgr.GetScreenWidth()-460,0)
self.PetName = ui.TextLine()
self.PetName.SetDefaultFontName()
self.PetName.SetPosition((wndMgr.GetScreenWidth()-460)+120, 35)
self.PetName.SetText("Haustierbesitzer: NONE")
self.PetName.SetOutline()
self.PetLevel = ui.TextLine()
self.PetLevel.SetDefaultFontName()
self.PetLevel.SetPosition((wndMgr.GetScreenWidth()-460)+120, 55)
self.PetLevel.SetText("Haustierlevel: NONE")
self.PetLevel.SetOutline()
self.PetBonus1 = ui.TextLine()
self.PetBonus1.SetDefaultFontName()
self.PetBonus1.SetPosition((wndMgr.GetScreenWidth()-460)+120, 75)
self.PetBonus1.SetText("1. Bonus: NONE")
self.PetBonus1.SetOutline()
self.PetBonus2 = ui.TextLine()
self.PetBonus2.SetDefaultFontName()
self.PetBonus2.SetPosition((wndMgr.GetScreenWidth()-460)+120, 95)
self.PetBonus2.SetText("2. Bonus: NONE")
self.PetBonus2.SetOutline()
self.PetBonus3 = ui.TextLine()
self.PetBonus3.SetDefaultFontName()
self.PetBonus3.SetPosition((wndMgr.GetScreenWidth()-460)+120, 115)
self.PetBonus3.SetText("3. Bonus: NONE")
self.PetBonus3.SetOutline()
PetExpBar = ui.AniImageBox()
PetExpBar.AddFlag("not_pick")
PetExpBar.AppendImage("d:/ymir work/ui/pattern/charbar_main_yellow.tga")
PetExpBar.SetPercentage(0,1)
self.PetExpBar = PetExpBar
self.PetExpBar.SetPosition((wndMgr.GetScreenWidth()-460)+65, 143)
self.PetExpLabel = ui.TextLine()
self.PetExpLabel.SetDefaultFontName()
self.PetExpLabel.SetPosition((wndMgr.GetScreenWidth()-460)+150, 140)
self.PetExpLabel.SetText("0%")
self.PetExpLabel.SetOutline()
##CLOSE_PETGUI BY DASKUCHEN
Rákeresel erre:
def __ServerCommand_Build(self):
serverCommandList={
Aláírod ezt:
##PETGUI BY DASKUCHEN
"ShowPetGui" : self.__showpetgui,
"HidePetGui" : self.__hidepetgui,
"HaustierName" : self.__PetName,
"HaustierLevel" : self.__PetLevel,
"HaustierBonus1" : self.__PetBoni1,
"HaustierBonus2" : self.__PetBoni2,
"HaustierBonus3" : self.__PetBoni3,
"PetProcentExp" : self.__PetExp,
##
game.py vége felé berakod (de ha legvégére rakod hibás lehet, ha nem jól ütöd vissza a zárót):
def __hidepetgui(self):
self.PetGuiBg.Hide()
self.PetName.Hide()
self.PetLevel.Hide()
self.PetBonus1.Hide()
self.PetBonus2.Hide()
self.PetBonus3.Hide()
self.PetExpBar.Hide()
self.PetExpLabel.Hide()
def __showpetgui(self):
self.PetGuiBg.Show()
self.PetName.Show()
self.PetLevel.Show()
self.PetBonus1.Show()
self.PetBonus2.Show()
self.PetBonus3.Show()
self.PetExpBar.Show()
self.PetExpLabel.Show()
def __PetName(self, HaustierName):
self.PetName.SetText("Besitzer: " + HaustierName)
def __PetLevel(self, HaustierLevel):
self.PetLevel.SetText("Haustierlevel: " + HaustierLevel)
def __PetBoni1(self, HaustierBonus1):
self.PetBonus1.SetText("1. Bonus: " + HaustierBonus1 + " Angriffswert")
def __PetBoni2(self, HaustierBonus2):
self.PetBonus2.SetText("2. Bonus: " + HaustierBonus2 + " Verteidigung")
def __PetBoni3(self, HaustierBonus3):
self.PetBonus3.SetText("3. Bonus: " + HaustierBonus3 + " Lebenspunkte")
def __PetExp(self, PetProcentExp):
self.PetExpLabel.SetText(PetProcentExp + "%")
self.PetExpBar.SetPercentage(PetProcentExp, 100)
uiaffectshower.py-t ne felejtsd felülírni.
Pisti.
Hogyan tudnám megoldani azt hogy fejlődjenek is a drágák?
Ebbe alapból fejlődnek ha azt a questet rakod be, ami ott van
és r34083 gf esetén? :o
Hát...ott gyárilag megvan a pet rendszer....
Ebbe a gyári questbe kell összeraknod a másik kettővel....
quest pet_system begin
state start begin
function get_pet_info(itemVnum)
pet_info_map = {
-- [ITEM VNUM] MOB_VNUM, DEFAULT NAME, buff_idx, spawn_effect_idx
[53001] = { 34001, "'s Fire Phoenix", 0},
[53002] = { 34002, "'s Baby Reindeer", 0},
[53003] = { 34003, "'s Ice Phoenix", 0},
[53004] = { 34001, "'s Fire Phoenix", 0},
[53005] = { 34004, "'s Baby Gahnasel", 1},
[53010] = { 34008, "'s Leonidas", 0},
[53011] = { 34007, "'s Khan", 0},
[53012] = { 34005, "´s Porky", 0},
[53013] = { 34006, "´s Rufus", 0},
[53007] = { 34010, "'s Bambi", 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 53007.use or 53013.use or 53012.use or 53011.use or 53010.use or 53005.use or 53004.use or 53003.use or 53002.use or 53001.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("You already summoned a pet.")
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
Köszi szépen a válaszokat hétfőn ki is próbálom :)
2089M game fájlhoz milyen diff kell?
Invoice game fajlt hasznald, vagy pro arena diffet.
Pisti lenne egy kérdésem/kérésem.
Itt ezen a pet rendszeren a petet ha előhivod látszódik is? szaladgál melletted?
A másik pedig hogy nekem is 2089M game fájlhoz kellene egy diff a pet rendszerhez ilyet tudnál nekem a témába tenni? köszi szépen :) :)
Videón is látszik, hogy működik, és igen szaladgál melletted.
quest_functions-be:
pet.summon
pet.unsummon
pet.is_summon
Diffet csatoltam!
KÖszi