shrpnl 1
shrpnl
Queinn 1
Queinn
NovaLst 1
NovaLst
InfernoShade 1
InfernoShade
MysticBlade 1
MysticBlade
SolarPhantom 1
SolarPhantom
Riftas 1
Riftas
LunarWraith 1
LunarWraith
DarkHorizon 1
DarkHorizon
SLyFeLLowTR 1
SLyFeLLowTR
Scarlet 1
Scarlet
dogusarikaya 1
dogusarikaya
Hikaye Ekle

Altın Konu [Python] Karakter Öldüğünde PlayerGauge Düzenlemesi

  • Konuyu başlatan Konuyu başlatan olkan41
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 15
  • Görüntüleme Görüntüleme 2K
5.00 yıldız(lar) 2 Değerlendirme Değerlendirenler

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Bugün TR'nin Elementer World Haritasının İşleyişini, Moblarını vs. Eklerken 4.cü Elementer Haritasında Parça II Düşen Haritada Mobların Special_Attacklarını Denerken
Karakterimin Canı Yarıya Kadar Geldiğinde Karakterimin Üstünde HP Gauge Çıktığını Farkettim. Şimdi Kiminiz Diyeceksiniz "Ulan Bu Yıllardır Var". Haklısınız Fakat Bir Anda Dikkatimi Çekti. Sanırım Daha Önce Hiç Dikkatimi Çekmemiş Veya Hiç Canım Yarıdan Daha Az Olmamış Yada Hiç Metin2 Oynamamışım. Ne Düşünüyorsanız. :)

Fakat Benim Tuhafıma Giden Asıl Kısım Canım Yarıdan Daha Az Olduktan Sonra Çıkan HP Gauge'si Değil. Karakterim Öldükten Sonra Aptal Bir Şekilde Başı Boş ve Emanet Gibi Durması Canımı Çok Sıktı. Bunun Bu Şekilde Olmaması Bunun Karakter Öldüğünde Clear Olması Gerektiğini Düşündüm.

İşte Canım Yarı veya Daha Azı Olunca HP Gauge:

1.png


Bu Şekilde Ben Okeyim :)

Fakat Karakter Öldüğünde Nasıl Mı Oluyor?

3.png



Resmen Mide Bulandırıcı.

VEEEEEE

İşte Olması Gereken

2.png



Beni Tatmin Edecek Kadar Güzel.

İşte Düzenleme:

uiPlayerGauge.py Açalım ve Aratalım:

Kod:
    def OnUpdate(self):

ve Değiştirelim:

Kod:
    def OnUpdate(self):
        if self.curHP <= 0:
            self.Hide()
        else:
            playerIndex = player.GetMainCharacterIndex()
            (x, y, z) = textTail.GetPosition(playerIndex)
            isChat = textTail.IsChat(playerIndex)
            if math.isnan(x - self.GetWidth()/2) or math.isnan(y + 5):
                dbg.TraceError("playerIndex = %d, x = %f, y = %f, width = %f, isChat = %d" % (playerIndex, x, y, self.GetWidth(), isChat))
                return
            ui.Gauge.SetPosition(self, int(x - self.GetWidth()/2), int(y + 5) + isChat*17)

importlara Ekleyelim:

import math
import dbg

2.Ci Alternatif

Aynı Dosya İçinde Arat:


Kod:
    def RefreshGauge(self):
        self.curHP = player.GetStatus(player.HP)
        self.maxHP = player.GetStatus(player.MAX_HP)
        self.SetPercentage(self.curHP, self.maxHP)

Altına Ekle

Kod:
        if self.curHP <= 0:
            self.Hide()
            return

Ben Şuan İkinci Alternatifi Kullanıyorum. OnUpdate'yi Eski Haline Getirdim. Dilediğiniz Gibi Kullanabilirsiniz.


Hepinize İyi Geceler
 
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst