[DEV]AB 1
[DEV]AB
Sevdamsın 1
Sevdamsın
TuZaKK 1
TuZaKK
kaptanmikro1 1
kaptanmikro1
farkmt2official 2
farkmt2official
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Bvural41 1
Bvural41
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

Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch 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