[PY] Készségek újratöltési idejének kijelzése

Indította Logan, 2018-08-09, 02:54:22

2018-08-09, 02:54:22 Utolsó szerkesztés: 2018-08-09, 03:00:56 Szerző: Logan
Sziasztok!

Az alábbi rendszer Dean és Shang érdeme metin2dev-ről, én mindössze egy hiba kijavításában segítettem nekik (teleportálás után megőrültek a számlálók).
Nos végül sikerült egy remélhetőleg hibamentes fícsört betenni a játékba ami igen hasznos, engem például az Overwatch-ra emlékeztet:


Mivel ha akármit is elrontasz az a kliens akár azonnali login utáni összeomlásához vezethet, erősen javasolt a root-ról és a locale_hu-ról biztonsági másolatot készíteni mielőtt belevágsz!

Nos kikell bontani a locale_hu eix és epk-t, az ui mappában található taskbar.py-ben keresd ezt:

"name" : "quick_slot_1",

Nos ennek a childrenjének a zárójeleit keresd meg, a zárójelek közti kódot írd felül ezzel:

{
"name" : "slot_1",
"type" : "image",
"x" : 3,
"y" : 3,
"image" : "d:/ymir work/ui/game/taskbar/1.sub",
"children" :
(
{
"name" : "slot_1_cd",
"type" : "text",
"x" : 0,
"y" : 0,
"horizontal_align" : "center",
"vertical_align" : "center",
"text" : "10",
"fontname" : "Tahoma Bold:16",
"r" : 1, "g" : 1, "b" : 0, "a" : 0,
},
),
},
{
"name" : "slot_2",
"type" : "image",
"x" : 35,
"y" : 3,
"image" : "d:/ymir work/ui/game/taskbar/2.sub",
"children" :
(
{
"name" : "slot_2_cd",
"type" : "text",
"x" : 0,
"y" : 0,
"horizontal_align" : "center",
"vertical_align" : "center",
"text" : "10",
"fontname" : "Tahoma Bold:16",
"r" : 1, "g" : 1, "b" : 0, "a" : 0,
},
),
},
{
"name" : "slot_3",
"type" : "image",
"x" : 67,
"y" : 3,
"image" : "d:/ymir work/ui/game/taskbar/3.sub",
"children" :
(
{
"name" : "slot_3_cd",
"type" : "text",
"x" : 0,
"y" : 0,
"horizontal_align" : "center",
"vertical_align" : "center",
"text" : "10",
"fontname" : "Tahoma Bold:16",
"r" : 1, "g" : 1, "b" : 0, "a" : 0,
},
),
},{
"name" : "slot_4",
"type" : "image",
"x" : 99,
"y" : 3,
"image" : "d:/ymir work/ui/game/taskbar/4.sub",
"children" :
(
{
"name" : "slot_4_cd",
"type" : "text",
"x" : 0,
"y" : 0,
"horizontal_align" : "center",
"vertical_align" : "center",
"text" : "10",
"fontname" : "Tahoma Bold:16",
"r" : 1, "g" : 1, "b" : 0, "a" : 0,
},
),
},

Most keressük meg őt:

"name" : "quick_slot_2",

Járjunk el úgy mint az előbb, a children zárójelei közti kódot írd felül ezzel:

{
"name" : "slot_f1",
"type" : "image",
"x" : 3,
"y" : 3,
"image" : "d:/ymir work/ui/game/taskbar/f1.sub",
"children" :
(
{
"name" : "slot_f1_cd",
"type" : "text",
"x" : 0,
"y" : 0,
"horizontal_align" : "center",
"vertical_align" : "center",
"text" : "10",
"fontname" : "Tahoma Bold:16",
"r" : 1, "g" : 1, "b" : 0, "a" : 0,
},
),
},
{
"name" : "slot_f2",
"type" : "image",
"x" : 35,
"y" : 3,
"image" : "d:/ymir work/ui/game/taskbar/f2.sub",
"children" :
(
{
"name" : "slot_f2_cd",
"type" : "text",
"x" : 0,
"y" : 0,
"horizontal_align" : "center",
"vertical_align" : "center",
"text" : "10",
"fontname" : "Tahoma Bold:16",
"r" : 1, "g" : 1, "b" : 0, "a" : 0,
},
),
},
{
"name" : "slot_f3",
"type" : "image",
"x" : 67,
"y" : 3,
"image" : "d:/ymir work/ui/game/taskbar/f3.sub",
"children" :
(
{
"name" : "slot_f3_cd",
"type" : "text",
"x" : 0,
"y" : 0,
"horizontal_align" : "center",
"vertical_align" : "center",
"text" : "10",
"fontname" : "Tahoma Bold:16",
"r" : 1, "g" : 1, "b" : 0, "a" : 0,
},
),
},{
"name" : "slot_f4",
"type" : "image",
"x" : 99,
"y" : 3,
"image" : "d:/ymir work/ui/game/taskbar/f4.sub",
"children" :
(
{
"name" : "slot_f4_cd",
"type" : "text",
"x" : 0,
"y" : 0,
"horizontal_align" : "center",
"vertical_align" : "center",
"text" : "10",
"fontname" : "Tahoma Bold:16",
"r" : 1, "g" : 1, "b" : 0, "a" : 0,
},
),
},

És ezzel a locale_hu-s részével megis lennénk, csomagold be, a következő kibontandó dolgunk a root, azon belül az uitaskbar.py ahol keresd meg a következő kódokat:

self.quickslot = []
self.quickslot.append(self.GetChild("quick_slot_1"))
self.quickslot.append(self.GetChild("quick_slot_2"))

Ez fölé szúrd be a következő kódot:

self.cooldownText = []
self.cooldownText.append(self.GetChild("slot_1_cd"))
self.cooldownText.append(self.GetChild("slot_2_cd"))
self.cooldownText.append(self.GetChild("slot_3_cd"))
self.cooldownText.append(self.GetChild("slot_4_cd"))
self.cooldownText.append(self.GetChild("slot_f1_cd"))
self.cooldownText.append(self.GetChild("slot_f2_cd"))
self.cooldownText.append(self.GetChild("slot_f3_cd"))
self.cooldownText.append(self.GetChild("slot_f4_cd"))
for i in xrange(8):
self.cooldownText[i-1].Hide()

Keresd meg a def __OnUpdate(self): definíciónál az alábbit:

if True == self.expGaugeBoard.IsIn():
self.tooltipEXP.Show()
else:
self.tooltipEXP.Hide()

Szúrd be ezt alá:

startNumber = 0
for slot in self.quickslot:
for i in xrange(4):
slotNumber = i+startNumber
(Type, Position) = player.GetLocalQuickSlot(slotNumber)
if player.IsSkillCoolTime(Position):
(coolTime, elapsedTime) = player.GetSkillCoolTime(Position)
slot.SetSlotCoolTime(slotNumber, coolTime, elapsedTime)

cooldownDelay = 0
cooldown = int(coolTime-elapsedTime+cooldownDelay)
self.cooldownText[slotNumber].SetOutline()
self.cooldownText[slotNumber].SetText("%d" % cooldown)
cooldown = str(cooldown)
self.cooldownText[slotNumber].SetPosition((7, 2, -1)[len(cooldown) - 1],0)
self.cooldownText[slotNumber].Show()
else:
self.cooldownText[slotNumber].Hide()
startNumber += 4


Nos elis készültél, csomagold be a root-odat is, és a locale_hu-val együtt töltheted is fel a patcher tárhelyedre ;)