Hikayeler

Reklam vermek için turkmmo@gmail.com
Kaynak ikonu

[C++&PY] HP Barında Zehirlenme Efekti 1.0

indirmek için izniniz yok

MT2Dev

Cplusplus
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
Fahri Üye
TM Üye
Katılım
30 Ocak 2020
Konular
50
Mesajlar
812
Online süresi
26g 54000s
Reaksiyon Skoru
735
Altın Konu
1
Başarım Puanı
184
TM Yaşı
6 Yıl 2 Ay 21 Gün
MmoLira
8,731
DevLira
123

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!


Kanıt Resim ;


7309_e9d2f11cb514bf09ad68767bb55a270c.png




Ne işe Yarar ?

Oyuncu veya bir Mob zehirlendiği zaman can barı yeşil renge bürünür.


Fikirin Kaynağı ;

Bu fikir bir Türk olan Whistlee'ye aittir.Whistlee'nin orijinal paylaşımı Moblarda çalışmamaktadır ve SRC kaynaklı olmadığı için sadece bizim tarafımızdan görülebilmektedir.

Bu versiyonda ise ufak eklemelerle Moblara da aynı efekt eklenmiştir ayrıca efektli kişi yada mob tüm oyuncular tarafından görülebilir olacaktır.

Kod yazımında yardımcı olan Intern,VegaS™ ve HITRON'a teşekkürler.

Ayrıca Metin2 Dev'den konu sahibi Tatsumaru'ya teşekkürler.


Nasıl Ekleyeceğiz ?


Aşağıdaki adımları takip edin.


///// PACK TARAFI ; ( TAB ayarlarına dikkat ! )

01. taskbar.py açılır (root/locale/?????/ui) aşağıdaki bölüm bulunur:

Python:
{
                            "name" : "HPRecoveryGaugeBar",
                            "type" : "bar",

                            "x" : 0,
                            "y" : 0,
                            "width" : 95,
                            "height" : 13,
                            "color" : 0x55ff0000,
                        },
                        {
                            "name" : "HPGauge",
                            "type" : "ani_image",

                            "x" : 0,
                            "y" : 0,

                            "delay" : 6,

                            "images" :
                            (
                                "D:/Ymir Work/UI/Pattern/HPGauge/01.tga",
                                "D:/Ymir Work/UI/Pattern/HPGauge/02.tga",
                                "D:/Ymir Work/UI/Pattern/HPGauge/03.tga",
                                "D:/Ymir Work/UI/Pattern/HPGauge/04.tga",
                                "D:/Ymir Work/UI/Pattern/HPGauge/05.tga",
                                "D:/Ymir Work/UI/Pattern/HPGauge/06.tga",
                                "D:/Ymir Work/UI/Pattern/HPGauge/07.tga",
                            ),
                        },


ALTINA EKLENİR ;


Python:
{
                            "name" : "HPPoisonRecoveryGaugeBar",
                            "type" : "bar",

                            "x" : 0,
                            "y" : 0,
                            "width" : 95,
                            "height" : 13,
                            "color" : 0x55008000,
                        },
                        {
                            "name" : "HPPoisonGauge",
                            "type" : "ani_image",

                            "x" : 0,
                            "y" : 0,

                            "delay" : 6,

                            "images" :
                            (
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/01.tga",
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/02.tga",
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/03.tga",
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/04.tga",
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/05.tga",
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/06.tga",
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/07.tga",
                            ),
                        },


02. ui.py açılır (root/) ve bu class'ın sonuna : class Gauge(Window): aşağıdaki bölüm eklenir:


Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
        def SetGaugeColor(self, color):
            if self.imgGauge:
                self.imgGauge.LoadImage("d:/ymir work/ui/pattern/gauge_" + color + ".tga")


03. uiparty.py açılır (root/) ve dosyanın en başına eklenir:

DİKKAT! Eğer hali hazırda dosyada mevcutsa import app'ı eklemeyin !



Python:
import app

if app.ENABLE_POISON_GAUGE_EFFECT:
    import chr
    import chrmgr



AŞAĞIDAKİ KOD BULUNUR ;


Kod:
hpPercentage = max(0, hpPercentage)



ÜSTÜNE EKLENİR ;


Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            if chrmgr.HasAffectByVID(self.GetCharacterVID(), chr.AFFECT_POISON):
                self.gauge.SetGaugeColor("lime")
            else:
                self.gauge.SetGaugeColor("red")


04. uiplayergauge.py açılır (root/) ve dosyanın en başına eklenir:

DİKKAT! Eğer hali hazırda dosyada mevcutsa import app'ı eklemeyin !



Python:
import app

if app.ENABLE_POISON_GAUGE_EFFECT:
    import chrmgr


AŞAĞIDAKİ KOD BULUNUR ;


Python:
self.SetPercentage(self.curHP, self.maxHP)


ÜSTÜNE EKLENİR ;


Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            if chrmgr.HasAffectByVID(player.GetMainCharacterIndex(), chr.AFFECT_POISON):
                self.SetGaugeColor("lime")
            else:
                self.SetGaugeColor("red")



05. uitarget.py açılır (root/) ve dosyanın en başına eklenir:

DİKKAT! Eğer hali hazırda dosyada mevcutsa import app'ı eklemeyin !



Python:
import app

if app.ENABLE_POISON_GAUGE_EFFECT:
    import chrmgr



AŞAĞIDAKİ KODU BULUN ;


Python:
hpGauge = ui.Gauge()
        hpGauge.SetParent(self)
        hpGauge.MakeGauge(130, "red")
        hpGauge.Hide()



ALTINA EKLEYİN ;


Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            hpPoisonGauge = ui.Gauge()
            hpPoisonGauge.SetParent(self)
            hpPoisonGauge.MakeGauge(130, "lime")
            hpPoisonGauge.SetPosition(175, 17)
            hpPoisonGauge.SetWindowHorizontalAlignRight()
            hpPoisonGauge.Hide()


AŞAĞIDAKİ KODU BULUN ;


Python:
self.hpGauge = None



ALTINA EKLEYİN ;

DİKKAT! self.hpGauge = None Kodundan bu dosyada birden fazla yerde olabilir. Eğer öyleyse hepsinin altına aşağıdaki kodu ekleyin.




Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            self.hpPoisonGauge = None



AŞAĞIDAKİ KODU BULUN ;



Python:
self.hpGauge = hpGauge



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            self.hpPoisonGauge = hpPoisonGauge



AŞAĞIDAKİ KODU BULUN ;


Python:
self.hpGauge.Hide()



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            self.hpPoisonGauge.Hide()



AŞAĞIDAKİ KODU BULUN ;


Python:
self.hpGauge.SetPercentage(hpPercentage, 100)



ALTINA EKLEYİN ;


Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            self.hpPoisonGauge.SetPercentage(hpPercentage, 100)



AŞAĞIDAKİ KODU BULUN ;


Python:
def OnUpdate(self):



ALTINA EKLEYİN ;


Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            if self.hpGauge and self.hpGauge.IsShow():
                if chrmgr.HasAffectByVID(self.GetTargetVID(), chr.AFFECT_POISON):
                    self.hpPoisonGauge.Show()
                else:
                    self.hpPoisonGauge.Hide()



06. uitaskbar.py açılır (root/) ve dosyanın en başına eklenir:

DİKKAT! Eğer hali hazırda dosyada mevcutsa import app'ı eklemeyin !




Python:
import app

if app.ENABLE_POISON_GAUGE_EFFECT:
    import chr
    import chrmgr



AŞAĞIDAKİ KODU BULUN ;



Python:
self.spRecoveryGaugeBar = self.GetChild("SPRecoveryGaugeBar")



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            self.hpPoisonGauge = self.GetChild("HPPoisonGauge")
            self.hpPoisonRecoveryGaugeBar = self.GetChild("HPPoisonRecoveryGaugeBar")
            self.hpPoisonGauge.Hide()
            self.hpPoisonRecoveryGaugeBar.Hide()



AŞAĞIDAKİ KODU BULUN ;



Python:
self.spRecoveryGaugeBar = None



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            self.hpPoisonGauge = None
            self.hpPoisonRecoveryGaugeBar = None



AŞAĞIDAKİ KODU BULUN ;


Python:
self.SetHP(curHP, recoveryHP, maxHP)



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            if chrmgr.HasAffectByVID(player.GetMainCharacterIndex(), chr.AFFECT_POISON):
                self.hpGauge.Hide()
                self.hpPoisonGauge.Show()
            else:
                self.hpPoisonGauge.Hide()
                self.hpGauge.Show()



AŞAĞIDAKİ KODU BULUN ;



Python:
self.hpGauge.SetPercentage(curPoint, maxPoint)



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
                self.hpPoisonGauge.SetPercentage(curPoint, maxPoint)



BU FONKSİYONUN İÇİNDE ;



Python:
def SetHP(self, curPoint, recoveryPoint, maxPoint):



BUNU BULUN ;



Python:
if 0 == recoveryPoint:



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
                        self.hpPoisonRecoveryGaugeBar.Hide()



AŞAĞIDAKİ KODU BULUN ;



Python:
self.hpRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT)
                self.hpRecoveryGaugeBar.Show()



ÜSTÜNE EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
                    if chrmgr.HasAffectByVID(player.GetMainCharacterIndex(), chr.AFFECT_POISON):
                        if self.hpRecoveryGaugeBar.IsShow():
                            self.hpRecoveryGaugeBar.Hide()
                        self.hpPoisonRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT)
                        self.hpPoisonRecoveryGaugeBar.Show()
                        return
                    else:
                        if self.hpPoisonRecoveryGaugeBar.IsShow():
                            self.hpPoisonRecoveryGaugeBar.Hide()



07. GEREKLİ DDS DOSYALARI ; -

///// SRC TARAFI

01. locale_inc.h açılır (client\UserInterface) define bölümüne eklenir:



C++:
#define ENABLE_POISON_GAUGE_EFFECT



02. PythonApplicationModule.cpp açılır (client\UserInterface) aşağıdaki kod bulunur:



C++:
#ifdef USE_OPENID
    PyModule_AddIntConstant(poModule, "USE_OPENID",    1);



ÜSTÜNE EKLEYİN ;



C++:
#ifdef ENABLE_POISON_GAUGE_EFFECT
    PyModule_AddIntConstant(poModule, "ENABLE_POISON_GAUGE_EFFECT",    1);
#else
    PyModule_AddIntConstant(poModule, "ENABLE_POISON_GAUGE_EFFECT",    0);
#endif



03. PythonCharacterManagerModule.cpp açılır (client\UserInterface) aşağıdaki kod bulunur:



C++:
void initchrmgr()



ÜSTÜNE EKLEYİN ;



C++:
#ifdef ENABLE_POISON_GAUGE_EFFECT
PyObject * chrmgrHasAffectByVID(PyObject * poSelf, PyObject * poArgs)
{
    int iVID, iAffect;

    if (!PyTuple_GetInteger(poArgs, 0, &iVID))
        return Py_BadArgument();

    if (!PyTuple_GetInteger(poArgs, 1, &iAffect))
        return Py_BadArgument();

    CPythonCharacterManager & rkChrMgr = CPythonCharacterManager::Instance();

    CInstanceBase * p = rkChrMgr.CPythonCharacterManager::GetInstancePtr(iVID);

    if (p)
        return Py_BuildValue("i", p->IsAffect(iAffect));

    return Py_BuildNone();
}
#endif



AŞAĞIDAKİ KODU BULUN ;



C++:
        { NULL,                            NULL,                                    NULL },



ÜSTÜNE EKLEYİN ;



C++:
#ifdef ENABLE_POISON_GAUGE_EFFECT
        { "HasAffectByVID",                chrmgrHasAffectByVID,                    METH_VARARGS },
#endif

Metin2Dev'den Alıntıdır, Anlatım tarafımca Türkçeleştirilmiştir.


GÜNCELLEME


.PY Tarafını eklerken sıkıntı yaşayanlar için ufak bir güncelleme işlemi yaptıktan sonra böyle gözükmeli ;


c5e60f44a10b64f75a1b95fe08bda5d7.gif



Yukarıda anlatımını yaptığım bu bölüm ;


AŞAĞIDAKİ KODU BULUN ;


Python:
self.SetHP(curHP, recoveryHP, maxHP)


ALTINA EKLEYİN ;


Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            if chrmgr.HasAffectByVID(player.GetMainCharacterIndex(), chr.AFFECT_POISON):
                self.hpGauge.Hide()
                self.hpPoisonGauge.Show()
            else:
                self.hpPoisonGauge.Hide()
                self.hpGauge.Show()


Yani " SetHP() " bölümü eklemeleri yaptıktan sonra aynı aşağıdaki gibi görünmeli ;

NOT : TAB ayarlarına dikkat !!!


Python:
# uiTaskbar.py içindeki ;
# def SetHP(self, curPoint, recoveryPoint, maxPoint): Bölümü

                if app.ENABLE_POISON_GAUGE_EFFECT:
                    if chrmgr.HasAffectByVID(player.GetMainCharacterIndex(), chr.AFFECT_POISON):
                        if self.hpRecoveryGaugeBar.IsShow():
                            self.hpRecoveryGaugeBar.Hide()

                        self.hpPoisonRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT)
                        self.hpPoisonRecoveryGaugeBar.Show()
                    else:
                        if self.hpPoisonRecoveryGaugeBar.IsShow():
                            self.hpPoisonRecoveryGaugeBar.Hide()
                        else:
                            self.hpRecoveryGaugeBar.Show()


Çözüm için Metin2Dev'den ridetpro'ya teşekkürler.

GÜNCELLEME 2

Zehir yememiş olmasına rağmen can barı yeşil görünen metinler için bir fix yapacağız. ( Aynı yöntemi bu sıkıntıyı içeren tüm moblar içinde yapabilirsiniz. )

Anlatımda 8001 kodlu metin taşını baz alarak anlatıyorum hepsi için aynısı geçerli sadece kodu değiştirin.

Mob_proto açılır ve 8001 kodlu metin taşı bulunur ;

07a6410102a80b5eff6725ee54ba326e.png


En sağda gördüğünüz bölüm EImmuneFlags bölümü bu kısmı şu şekilde düzenleyip kaydedin ;


SQL:
STUN,SLOW,CURSE,TERROR,POISON

Çözüm için Metin2Dev'den Bizzy'e teşekkürler.
 
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

Paylaşım için teşekkürler. Konunuzu kaynağa taşıdım.

Kanıt Resim ;


Ttj78Sy.png



Ne işe Yarar ?

Oyuncu veya bir Mob zehirlendiği zaman can barı yeşil renge bürünür.


Fikirin Kaynağı ;

Bu fikir bir Türk olan Whistlee'ye aittir.Whistlee'nin orijinal paylaşımı Moblarda çalışmamaktadır ve SRC kaynaklı olmadığı için sadece bizim tarafımızdan görülebilmektedir.

Bu versiyonda ise ufak eklemelerle Moblara da aynı efekt eklenmiştir ayrıca efektli kişi yada mob tüm oyuncular tarafından görülebilir olacaktır.

Kod yazımında yardımcı olan Intern,VegaS™ ve HITRON'a teşekkürler.

Ayrıca Metin2 Dev'den konu sahibi Tatsumaru'ya teşekkürler.


Nasıl Ekleyeceğiz ?


Aşağıdaki adımları takip edin.


///// PACK TARAFI ; ( TAB ayarlarına dikkat ! )

01. taskbar.py açılır (root/locale/?????/ui) aşağıdaki bölüm bulunur:

Python:
{
                            "name" : "HPRecoveryGaugeBar",
                            "type" : "bar",

                            "x" : 0,
                            "y" : 0,
                            "width" : 95,
                            "height" : 13,
                            "color" : 0x55ff0000,
                        },
                        {
                            "name" : "HPGauge",
                            "type" : "ani_image",

                            "x" : 0,
                            "y" : 0,

                            "delay" : 6,

                            "images" :
                            (
                                "D:/Ymir Work/UI/Pattern/HPGauge/01.tga",
                                "D:/Ymir Work/UI/Pattern/HPGauge/02.tga",
                                "D:/Ymir Work/UI/Pattern/HPGauge/03.tga",
                                "D:/Ymir Work/UI/Pattern/HPGauge/04.tga",
                                "D:/Ymir Work/UI/Pattern/HPGauge/05.tga",
                                "D:/Ymir Work/UI/Pattern/HPGauge/06.tga",
                                "D:/Ymir Work/UI/Pattern/HPGauge/07.tga",
                            ),
                        },


ALTINA EKLENİR ;


Python:
{
                            "name" : "HPPoisonRecoveryGaugeBar",
                            "type" : "bar",

                            "x" : 0,
                            "y" : 0,
                            "width" : 95,
                            "height" : 13,
                            "color" : 0x55008000,
                        },
                        {
                            "name" : "HPPoisonGauge",
                            "type" : "ani_image",

                            "x" : 0,
                            "y" : 0,

                            "delay" : 6,

                            "images" :
                            (
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/01.tga",
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/02.tga",
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/03.tga",
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/04.tga",
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/05.tga",
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/06.tga",
                                "D:/Ymir Work/UI/Pattern/HPPoisonGauge/07.tga",
                            ),
                        },


02. ui.py açılır (root/) ve bu class'ın sonuna : class Gauge(Window): aşağıdaki bölüm eklenir:


Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
        def SetGaugeColor(self, color):
            if self.imgGauge:
                self.imgGauge.LoadImage("d:/ymir work/ui/pattern/gauge_" + color + ".tga")


03. uiparty.py açılır (root/) ve dosyanın en başına eklenir:

DİKKAT! Eğer hali hazırda dosyada mevcutsa import app'ı eklemeyin !



Python:
import app

if app.ENABLE_POISON_GAUGE_EFFECT:
    import chr
    import chrmgr



AŞAĞIDAKİ KOD BULUNUR ;


Kod:
hpPercentage = max(0, hpPercentage)



ÜSTÜNE EKLENİR ;


Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            if chrmgr.HasAffectByVID(self.GetCharacterVID(), chr.AFFECT_POISON):
                self.gauge.SetGaugeColor("lime")
            else:
                self.gauge.SetGaugeColor("red")


04. uiplayergauge.py açılır (root/) ve dosyanın en başına eklenir:

DİKKAT! Eğer hali hazırda dosyada mevcutsa import app'ı eklemeyin !



Python:
import app

if app.ENABLE_POISON_GAUGE_EFFECT:
    import chrmgr


AŞAĞIDAKİ KOD BULUNUR ;


Python:
self.SetPercentage(self.curHP, self.maxHP)


ÜSTÜNE EKLENİR ;


Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            if chrmgr.HasAffectByVID(player.GetMainCharacterIndex(), chr.AFFECT_POISON):
                self.SetGaugeColor("lime")
            else:
                self.SetGaugeColor("red")



05. uitarget.py açılır (root/) ve dosyanın en başına eklenir:

DİKKAT! Eğer hali hazırda dosyada mevcutsa import app'ı eklemeyin !



Python:
import app

if app.ENABLE_POISON_GAUGE_EFFECT:
    import chrmgr



AŞAĞIDAKİ KODU BULUN ;


Python:
hpGauge = ui.Gauge()
        hpGauge.SetParent(self)
        hpGauge.MakeGauge(130, "red")
        hpGauge.Hide()



ALTINA EKLEYİN ;


Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            hpPoisonGauge = ui.Gauge()
            hpPoisonGauge.SetParent(self)
            hpPoisonGauge.MakeGauge(130, "lime")
            hpPoisonGauge.SetPosition(175, 17)
            hpPoisonGauge.SetWindowHorizontalAlignRight()
            hpPoisonGauge.Hide()


AŞAĞIDAKİ KODU BULUN ;


Python:
self.hpGauge = None



ALTINA EKLEYİN ;

DİKKAT! self.hpGauge = None Kodundan bu dosyada birden fazla yerde olabilir. Eğer öyleyse hepsinin altına aşağıdaki kodu ekleyin.




Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            self.hpPoisonGauge = None



AŞAĞIDAKİ KODU BULUN ;



Python:
self.hpGauge = hpGauge



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            self.hpPoisonGauge = hpPoisonGauge



AŞAĞIDAKİ KODU BULUN ;


Python:
self.hpGauge.Hide()



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            self.hpPoisonGauge.Hide()



AŞAĞIDAKİ KODU BULUN ;


Python:
self.hpGauge.SetPercentage(hpPercentage, 100)



ALTINA EKLEYİN ;


Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            self.hpPoisonGauge.SetPercentage(hpPercentage, 100)



AŞAĞIDAKİ KODU BULUN ;


Python:
def OnUpdate(self):



ALTINA EKLEYİN ;


Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            if self.hpGauge and self.hpGauge.IsShow():
                if chrmgr.HasAffectByVID(self.GetTargetVID(), chr.AFFECT_POISON):
                    self.hpPoisonGauge.Show()
                else:
                    self.hpPoisonGauge.Hide()



06. uitaskbar.py açılır (root/) ve dosyanın en başına eklenir:

DİKKAT! Eğer hali hazırda dosyada mevcutsa import app'ı eklemeyin !




Python:
import app

if app.ENABLE_POISON_GAUGE_EFFECT:
    import chr
    import chrmgr



AŞAĞIDAKİ KODU BULUN ;



Python:
self.spRecoveryGaugeBar = self.GetChild("SPRecoveryGaugeBar")



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            self.hpPoisonGauge = self.GetChild("HPPoisonGauge")
            self.hpPoisonRecoveryGaugeBar = self.GetChild("HPPoisonRecoveryGaugeBar")
            self.hpPoisonGauge.Hide()
            self.hpPoisonRecoveryGaugeBar.Hide()



AŞAĞIDAKİ KODU BULUN ;



Python:
self.spRecoveryGaugeBar = None



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            self.hpPoisonGauge = None
            self.hpPoisonRecoveryGaugeBar = None



AŞAĞIDAKİ KODU BULUN ;


Python:
self.SetHP(curHP, recoveryHP, maxHP)



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
            if chrmgr.HasAffectByVID(player.GetMainCharacterIndex(), chr.AFFECT_POISON):
                self.hpGauge.Hide()
                self.hpPoisonGauge.Show()
            else:
                self.hpPoisonGauge.Hide()
                self.hpGauge.Show()



AŞAĞIDAKİ KODU BULUN ;



Python:
self.hpGauge.SetPercentage(curPoint, maxPoint)



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
                self.hpPoisonGauge.SetPercentage(curPoint, maxPoint)



BU FONKSİYONUN İÇİNDE ;



Python:
def SetHP(self, curPoint, recoveryPoint, maxPoint):



BUNU BULUN ;



Python:
if 0 == recoveryPoint:



ALTINA EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
                        self.hpPoisonRecoveryGaugeBar.Hide()



AŞAĞIDAKİ KODU BULUN ;



Python:
self.hpRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT)
                self.hpRecoveryGaugeBar.Show()



ÜSTÜNE EKLEYİN ;



Python:
if app.ENABLE_POISON_GAUGE_EFFECT:
                    if chrmgr.HasAffectByVID(player.GetMainCharacterIndex(), chr.AFFECT_POISON):
                        if self.hpRecoveryGaugeBar.IsShow():
                            self.hpRecoveryGaugeBar.Hide()
                        self.hpPoisonRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT)
                        self.hpPoisonRecoveryGaugeBar.Show()
                        return
                    else:
                        if self.hpPoisonRecoveryGaugeBar.IsShow():
                            self.hpPoisonRecoveryGaugeBar.Hide()



07. GEREKLİ DDS DOSYALARI ; -

///// SRC TARAFI

01. locale_inc.h açılır (client\UserInterface) define bölümüne eklenir:



C++:
#define ENABLE_POISON_GAUGE_EFFECT



02. PythonApplicationModule.cpp açılır (client\UserInterface) aşağıdaki kod bulunur:



C++:
#ifdef USE_OPENID
    PyModule_AddIntConstant(poModule, "USE_OPENID",    1);



ÜSTÜNE EKLEYİN ;



C++:
#ifdef ENABLE_POISON_GAUGE_EFFECT
    PyModule_AddIntConstant(poModule, "ENABLE_POISON_GAUGE_EFFECT",    1);
#else
    PyModule_AddIntConstant(poModule, "ENABLE_POISON_GAUGE_EFFECT",    0);
#endif



03. PythonCharacterManagerModule.cpp açılır (client\UserInterface) aşağıdaki kod bulunur:



C++:
void initchrmgr()



ÜSTÜNE EKLEYİN ;



C++:
#ifdef ENABLE_POISON_GAUGE_EFFECT
PyObject * chrmgrHasAffectByVID(PyObject * poSelf, PyObject * poArgs)
{
    int iVID, iAffect;

    if (!PyTuple_GetInteger(poArgs, 0, &iVID))
        return Py_BadArgument();

    if (!PyTuple_GetInteger(poArgs, 1, &iAffect))
        return Py_BadArgument();

    CPythonCharacterManager & rkChrMgr = CPythonCharacterManager::Instance();

    CInstanceBase * p = rkChrMgr.CPythonCharacterManager::GetInstancePtr(iVID);

    if (p)
        return Py_BuildValue("i", p->IsAffect(iAffect));

    return Py_BuildNone();
}
#endif



AŞAĞIDAKİ KODU BULUN ;



C++:
        { NULL,                            NULL,                                    NULL },



ÜSTÜNE EKLEYİN ;



C++:
#ifdef ENABLE_POISON_GAUGE_EFFECT
        { "HasAffectByVID",                chrmgrHasAffectByVID,                    METH_VARARGS },
#endif

Metin2Dev'den Alıntıdır, Anlatım tarafımca Türkçeleştirilmiştir.
Paylaşım için teşekkürler.
 
Teşekkürler.
 
Rica ederim.
 
Paylaşım için teşekkürler. Konunuzu kaynağa taşıdım.
 

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

Geri
Üst