PvP Hp, Mp kijelzés(k)

Indította Illirea, 2014-11-17, 18:18:52

http://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/3037692-tut-opponents-hp-mp-during-pvp.html


Üdv valaki el tudná nekem magyarázni mit hova tegyek pls ? nem nagyon jó az angolom és így nem nagyon értem :( válaszokat előre is köszönöm.
Im Vivicsi<3~Aki nem keress annak nem is hiányzok ~

a fájlok nevének elolvasásához nem szükséges angol tudás
IdézYou must add following code to costinfo.py
IdézNext, open game.py, and add these things:

amúgy www.translate.google.hu, de csodálkozom hogy ennyire alap szinten se megy az angol...

Köszi peti a google forditót de nem ezért fordultam hozzátok erre magamtol is rá tudtam jönni ! Kérlek ha megint hülyeséget szeretnél hozzá szólni ne írj ink semit kösz 
Im Vivicsi<3~Aki nem keress annak nem is hiányzok ~

2014-11-17, 18:35:05 #3 Utolsó szerkesztés: 2014-11-17, 18:47:04 Szerző: AndroidGuy
constinfo.py:
INPUT_IGNORE = 0

VID = 0
STHX = 0
HPXD = 0

PLAYER_HP = 0
PLAYER_MAX_HP = 0
PLAYER_SP = 0
PLAYER_MAX_SP = 0
PLAYER_NAME = ""


megnyitod a game.py-t:
   Az importokhoz beírod, hogy:
     import uiHealth

  Rákeresel erre:
  def __ServerCommand_Build(self):
 
  A többi közé beírogatod ezeket:
 
#wskaznikiHP
"super_quest" : self.Tabulejtor,
"pvp_zdruwko" : self.Mozart,

#inputpowerdziwko
"get_input_value" : self.GetInputValue,
"get_input_start" : self.GetInputOn,
"get_input_end" : self.GetInputOff,
 


game.py aljára bemásolod ezeket:
Mozart(self, data):
dane = data.split("|")
constInfo.PLAYER_NAME = str(dane[0])
constInfo.PLAYER_HP = int(dane[1])
constInfo.PLAYER_MAX_HP = int(dane[2])
constInfo.PLAYER_SP = int(dane[3])
constInfo.PLAYER_MAX_SP = int(dane[4])

def Tabulejtor(self, id):
constInfo.STHX = int(id)

def GetInputOn(self):
constInfo.INPUT_IGNORE = 1

def GetInputOff(self):
constInfo.INPUT_IGNORE = 0

def GetInputValue(self):
net.SendQuestInputStringPacket(str(constInfo.VID))

def OpenQuestWindow(self, skin, idx):
if constInfo.INPUT_IGNORE == 1:
return
else:
self.interface.OpenQuestWindow(skin, idx)

uitarget.py-t megnyitod:
rákeresel erre:
def OnUpdate(self):

az egész funkciót lecseréled erre:
import uiHealth
import constInfo

def OnUpdate(self):
if player.IsPVPInstance(self.vid):
constInfo.VID = self.vid
event.QuestButtonClick(constInfo.STHX)
if not self.healthBoard.IsShow() and self.vid != 0:
self.healthBoard.Show()
else:
self.healthBoard.Hide()

if self.isShowButton:

exchangeButton = self.buttonDict[locale.TARGET_BUTTON_EXCHANGE]
distance = player.GetCharacterDistance(self.vid)

if distance < 0:
return

if exchangeButton.IsShow():
if distance > self.EXCHANGE_LIMIT_RANGE:
self.RefreshButton()

else:
if distance < self.EXCHANGE_LIMIT_RANGE:
self.RefreshButton()


utargetben vagyunk még mindig rákeresel erre:
def __init__(self):

majd ezt hozzá adod:

self.healthBoard = uiHealth.HealthBoard()

rákeresel (még mindig uitarget):
def Close()
hozzá adod:
self.healthBoard.Hide()

így nézzen ki:
def Close(self):
self.__Initialize()
self.healthBoard.Hide()
self.Hide()


folyt köv. a következő hsz-be mert lehet túl hosszú lesz o.O

Üzenet összefésülés: 2014-11-17, 18:47:04

Létre hozol egy uiHealth.py fájlt aminek ez a tartalma:
#Krzywy
import ui
import constInfo

def GetInfoFrom(id):
table = {
1 : constInfo.PLAYER_NAME,
2 : constInfo.PLAYER_HP,
3 : constInfo.PLAYER_MAX_HP,
4 : constInfo.PLAYER_SP,
5 : constInfo.PLAYER_MAX_SP}

if table.has_key(id):
return table[id]


class HealthBoard(ui.ThinBoard):

def __init__(self):
ui.ThinBoard.__init__(self)

self.Config()

def __del__(self):
ui.ThinBoard.__del__(self)

def Config(self):
self.SetSize(200, 120)
self.SetPosition(0, 20)

self.hp_bar = ui.Gauge()
self.hp_bar.SetParent(self)
self.hp_bar.SetPosition(30, 30+20)
self.hp_bar.MakeGauge(130, "red")
self.hp_bar.Show()

self.sp_bar = ui.Gauge()
self.sp_bar.SetParent(self)
self.sp_bar.SetPosition(30, 60+20)
self.sp_bar.MakeGauge(130, "blue")
self.sp_bar.Show()

self.name = ui.TextLine()
self.name.SetParent(self)
self.name.SetDefaultFontName()
self.name.SetPosition(45, 30)
self.name.SetText("")
self.name.Show()

self.hp_show = ui.TextLine()
self.hp_show.SetParent(self)
self.hp_show.SetDefaultFontName()
self.hp_show.SetPosition(60-15, 57)
self.hp_show.SetText("")
self.hp_show.Show()

self.sp_show = ui.TextLine()
self.sp_show.SetParent(self)
self.sp_show.SetDefaultFontName()
self.sp_show.SetPosition(60-15, 80+7)
self.sp_show.SetText("")
self.sp_show.Show()

def OnUpdate(self):
if (GetInfoFrom(2)+GetInfoFrom(3)+GetInfoFrom(4)+GetInfoFrom(5)) == 0:
self.Hide()
self.hp_bar.SetPercentage(GetInfoFrom(2), GetInfoFrom(3))
self.sp_bar.SetPercentage(GetInfoFrom(4), GetInfoFrom(5))
self.name.SetText(GetInfoFrom(1))
self.hp_show.SetText("Health Points: %s / %s" % (GetInfoFrom(2), GetInfoFrom(3)))
self.sp_show.SetText("Mana Points: %s / %s" % (GetInfoFrom(4), GetInfoFrom(5)))
self.name.SetText("Character: %s" % (GetInfoFrom(1)))


ÉS a quest hozzá:
-- Quest Opponents HP and MP during pvp
-- Made by: Endymion_
-- Server: Ascarial.pl
quest wskaznikHpWroga begin
state start begin
when login begin
cmdchat("super_quest "..q.getcurrentquestindex())
end

when info or button begin
cmdchat("get_input_start")
local vid = input(cmdchat("get_input_value"))
cmdchat("get_input_end")
local old_pc = pc.select(vid)
local name = pc.get_name()
local hp = pc.get_hp()
local max_hp = pc.get_max_hp()
local mp = pc.get_sp()
local max_mp = pc.get_max_sp()
pc.select(old_pc)
cmdchat("pvp_zdruwko "..name.."|"..hp.."|"..max_hp.."|"..mp.."|"..max_mp)
end
end
end


A tobolássra figyelj oda nagyon! Illetve arra is, hogy legyen minden fájl végén LEGALÁBB 1 üres sor (én min. 3-4-et szoktam "ütni" az a biztos!)

Ha valami nem világos még így se kérdezz nyugodtan!
"Yolo! Avagy Carpe Diem hülyéknek. Vágy amit akartok."

2014-11-17, 18:47:25 #4 Utolsó szerkesztés: 2014-11-17, 18:49:23 Szerző: Vivien
Hálás vagyok részletes le írásért !


viszont 1 ik résznél el akadtam ! vagy is amit le írtál olyat nem talál az uitarget.py ben

Kép :


valami ötleted van rá ? Notpad ++ használok !
def Close(self): esetleg ilyen van benne !
Im Vivicsi<3~Aki nem keress annak nem is hiányzok ~

2014-11-17, 18:49:02 #5 Utolsó szerkesztés: 2014-11-17, 18:52:58 Szerző: AndroidGuy
def Close(self):

Ez kell neked, de nem sejtettem, hogy ennyire szájbarágósan kell ;D

Itt vannak hozzá képek is, talán úgy könnyebb:
http://www.turkmmo.com/metin2-pvp-client-pack-paylasimlari/3123337-duello-atarken-rakibin-canini-gorme-yeni.html
"Yolo! Avagy Carpe Diem hülyéknek. Vágy amit akartok."

Köszönöm segitséget ha még nincs ilyen téma mehet Arhívumba hát ha másnak is kelleni fog ! le írás 100% üzem képes :)
Im Vivicsi<3~Aki nem keress annak nem is hiányzok ~