D 1
delimuratt
melankolıa18 1
melankolıa18
shrpnl 1
shrpnl
Fethi Polat 1
Fethi Polat
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Best Studio 1
Best Studio
Agora Metin2 1
Agora Metin2
raderde 1
raderde
Cannn6161 1
Cannn6161
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com
Kaynak ikonu

[C++] Affect potion System | Bykatil199 1

indirmek için izniniz yok

bykatil199

www.bykatil199.com
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
Uzman
Katılım
17 Nis 2013
Konular
240
Mesajlar
2,810
Çözüm
218
Online süresi
1mo 29d
Reaksiyon Skoru
984
Altın Konu
6
Başarım Puanı
256
MmoLira
11,947
DevLira
83
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!



Merhaba Arkadaşlar Coğu Kişinin Arayıp Bulamadığı Sistemi Sizler İçin Yapıp Paylaşıyorum İyi Kullanmalar..





Kurulum İçin Gerekli Dosyalar ,

İndirmek İçin :
VirusTotal :

1 Teşşekkürü Çok Görmeyin.. Sağlıcakla Kalın..

[GÜNCELLEME]

taskbara bırakıldığı zaman effect çıkmaması ; örnek;



Fixi ; UiTaskbar.py açılır def RefreshQuickSlot(self): aratılır ;

Python:
                    if constInfo.IS_AUTO_POTION(itemIndex):
                        # metinSocket - [0] : Ȱ¼ºÈ ¿©ºÎ, [1] : »ç¿ëÇÑ ¾ç, [2] : ÃÖ´ë ¿ë·®
                        metinSocket = [player.GetItemMetinSocket(Position, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
                     
                        if 0 != int(metinSocket[0]):
                            slot.ActivateSlot(slotNumber)
                        else:
                            slot.DeactivateSlot(slotNumber)

bu kod bloğun altına eklenir ;

Python:
                    if app.BYKATIL199_ITEM_SLOT_EFFECT:
                        if ahmetatalayInfo.IS_NEW_SPEED_POTION(itemIndex):
                            metinSocket = [player.GetItemMetinSocket(Position, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
                         
                            if 0 != int(metinSocket[0]):
                                slot.ActivateAcceSlot(slotNumber)
                            else:
                                slot.DeactivateAcceSlot(slotNumber)



DÜZELTME :
@bykatil199 konu için teşekkürler isterseniz konuya dahil edebilirsiniz pek cok insan yorumlari fazla okumaz


Locale_game.txt
Kod:
TOOLTIP_AFFECT_POTION_2    Turuncu Şebnem    SNA

Eklenir


P772k6.png

Renk Değiştirmek isteyen

root > uiinventory.py

Kod:
if app.BYKATIL199_ITEM_SLOT_EFFECT:
olan kısım icinde

Kod:
self.wndItem.ActivateSlot(i)
bunu
Kod:
self.wndItem.ActivateSlot(slotNumber, (32.00 / 255.0), (178.00 / 255.0), (170.00 / 255.0), 1.0)
bu şekilde değiştirirse turkuaz olacaktir renk


5 SANIYE FIXI VE STR DEF BONUSLARINI VERMEMESİNİN ÇÖZÜMÜ

Not2: 5 saniye fixi uygulanmiştir sadece konudakini kurunuz ( kurarken AFFECT_ITEM_BLOCK 603 dür bu sistemdede 603 oldugu için cakışacaktir AFFECT_ITEM_BLOCK = 313 yapmayi unutmayiniz
C++:
#ifdef BYKATIL199_ITEM_SLOT_EFFECT
                            case NEW_MOVE_SPEED_POTION:
                            case NEW_ATTACK_SPEED_POTION:
                                {
                                    if (FindAffect(AFFECT_ITEM_BLOCK))
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, ("Bunu yapabilmek icin 5 saniye beklemelisin!"));
                                        return false;
                                    }
                                    EAffectTypes type = AFFECT_NONE;

                                    if (item->GetVnum() == NEW_MOVE_SPEED_POTION)
                                        type = AFFECT_MOV_SPEED;

                                    if (item->GetVnum() == NEW_ATTACK_SPEED_POTION)
                                        type = AFFECT_ATT_SPEED;

                                    if (AFFECT_NONE == type)
                                        break;
                        

                                    CAffect * pAffect = FindAffect(type);

                                    if (NULL == pAffect)
                                    {
                                        EPointTypes bonus = POINT_NONE;
                                        EAffectBits flag = AFF_NONE;

                                        if (item->GetVnum() == NEW_MOVE_SPEED_POTION)
                                        {
                                            bonus = POINT_MOV_SPEED;
                                            flag = AFF_MOV_SPEED_POTION;
                                        }

                                        if (item->GetVnum() == NEW_ATTACK_SPEED_POTION)
                                        {
                                            bonus = POINT_ATT_SPEED;
                                            flag = AFF_ATT_SPEED_POTION;
                                        }

                                        AddAffect(type, bonus, item->GetValue(2), flag, INFINITE_AFFECT_DURATION, 0, true);

                                        item->Lock(true);
                                        item->SetSocket(0, true);
                                        AddAffect(AFFECT_ITEM_BLOCK, POINT_NONE, 0, 0, 5, 0, true, false);
                                    }
                                    else
                                    {
                                        RemoveAffect(pAffect);
                                        item->Lock(false);
                                        item->SetSocket(0, false);
                                    }
                                }
                                break;
                            case NEW_KRITIK_POTION:
                            case NEW_DELICI_POTION:
                            case NEW_DRAGON_1_POTION:
                            case NEW_DRAGON_2_POTION:
                            case NEW_DRAGON_3_POTION:
                            case NEW_DRAGON_4_POTION:
                                {
                                    EAffectTypes type = AFFECT_NONE;
                                    if (FindAffect(AFFECT_ITEM_BLOCK))
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, ("Bunu yapabilmek icin 5 saniye beklemelisin!"));
                                        return false;
                                    }

                                    if (item->GetVnum() == NEW_KRITIK_POTION)
                                        type = AFFECT_NEW_AFFECT_POTION_1;

                                    if (item->GetVnum() == NEW_DELICI_POTION)
                                        type = AFFECT_NEW_AFFECT_POTION_2;

                                    if (item->GetVnum() == NEW_DRAGON_1_POTION)
                                        type = AFFECT_NEW_AFFECT_POTION_3;

                                    if (item->GetVnum() == NEW_DRAGON_2_POTION)
                                        type = AFFECT_NEW_AFFECT_POTION_4;

                                    if (item->GetVnum() == NEW_DRAGON_3_POTION)
                                        type = AFFECT_NEW_AFFECT_POTION_5;

                                    if (item->GetVnum() == NEW_DRAGON_4_POTION)
                                        type = AFFECT_NEW_AFFECT_POTION_6;

                                    if (AFFECT_NONE == type)
                                        break;
                        
                                    if (FindAffect(AFFECT_ITEM_BLOCK))
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, ("Bunu yapabilmek icin 5 saniye beklemelisin!"));
                                        return false;
                                    }

                                    CAffect * pAffect = FindAffect(type);

                                    if (NULL == pAffect)
                                    {
                                        EPointTypes bonus = POINT_NONE;
                                        EAffectBits flag = AFF_NONE;

                                        if (item->GetVnum() == NEW_KRITIK_POTION)
                                        {
                                            bonus = POINT_CRITICAL_PCT;
                                        }

                                        if (item->GetVnum() == NEW_DELICI_POTION)
                                        {
                                            bonus = POINT_PENETRATE_PCT;
                                        }

                                        if (item->GetVnum() == NEW_DRAGON_1_POTION)
                                        {
                                            bonus = POINT_MAX_HP_PCT;
                                        }

                                        if (item->GetVnum() == NEW_DRAGON_2_POTION)
                                        {
                                            bonus = POINT_ATT_GRADE_BONUS;
                                        }

                                        if (item->GetVnum() == NEW_DRAGON_3_POTION)
                                        {
                                            bonus = POINT_MAX_SP_PCT;
                                        }

                                        if (item->GetVnum() == NEW_DRAGON_4_POTION)
                                        {
                                            bonus = POINT_DEF_BONUS;
                                        }

                                        AddAffect(type, bonus, item->GetValue(2), flag, INFINITE_AFFECT_DURATION, 0, true);
                                        AddAffect(AFFECT_ITEM_BLOCK, POINT_NONE, 0, 0, 5, 0, true, false);
                                        item->Lock(true);
                                        item->SetSocket(0, true);
                                    }
                                    else
                                    {
                                        RemoveAffect(pAffect);
                                        item->Lock(false);
                                        item->SetSocket(0, false);
                                    }
                                }
                                break;
                            case NEW_SEBNEM_PEMBE:
                            case NEW_SEBNEM_KIRMIZI:
                            case NEW_SEBNEM_MAVI:
                            case NEW_SEBNEM_BEYAZ:
                            case NEW_SEBNEM_YESIL:
                            case NEW_SEBNEM_SARI:
                                {
                                    EAffectTypes type = AFFECT_NONE;
                        
                                    if (FindAffect(AFFECT_ITEM_BLOCK))
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, ("Bunu yapabilmek icin 5 saniye beklemelisin!"));
                                        return false;
                                    }


                                    if (item->GetVnum() == NEW_SEBNEM_PEMBE)
                                        type = AFFECT_NEW_SEBNEM_POTION_1;

                                    if (item->GetVnum() == NEW_SEBNEM_KIRMIZI)
                                        type = AFFECT_NEW_SEBNEM_POTION_2;

                                    if (item->GetVnum() == NEW_SEBNEM_MAVI)
                                        type = AFFECT_NEW_SEBNEM_POTION_3;

                                    if (item->GetVnum() == NEW_SEBNEM_BEYAZ)
                                        type = AFFECT_NEW_SEBNEM_POTION_4;

                                    if (item->GetVnum() == NEW_SEBNEM_YESIL)
                                        type = AFFECT_NEW_SEBNEM_POTION_5;

                                    if (item->GetVnum() == NEW_SEBNEM_SARI)
                                        type = AFFECT_NEW_SEBNEM_POTION_6;
                        
                        

                                    if (AFFECT_NONE == type)
                                        break;

                                    CAffect * pAffect = FindAffect(type);

                                    if (NULL == pAffect)
                                    {
                                        EPointTypes bonus = POINT_NONE;
                                        EAffectBits flag = AFF_NONE;

                                        if (item->GetVnum() == NEW_SEBNEM_PEMBE)
                                        {
                                            bonus = POINT_PENETRATE_PCT;
                                        }

                                        if (item->GetVnum() == NEW_SEBNEM_KIRMIZI)
                                        {
                                            bonus = POINT_CRITICAL_PCT;
                                        }

                                        if (item->GetVnum() == NEW_SEBNEM_MAVI)
                                        {
                                            bonus = POINT_ATT_GRADE_BONUS;
                                        }

                                        if (item->GetVnum() == NEW_SEBNEM_BEYAZ)
                                        {
                                            bonus = POINT_DEF_GRADE;
                                        }

                                        if (item->GetVnum() == NEW_SEBNEM_YESIL)
                                        {
                                            bonus = POINT_RESIST_MAGIC;
                                        }

                                        if (item->GetVnum() == NEW_SEBNEM_SARI)
                                        {
                                            bonus = POINT_ATT_SPEED;
                                        }
                            
                            
                                        AddAffect(type, bonus, item->GetValue(2), flag, INFINITE_AFFECT_DURATION, 0, true);
                                        AddAffect(AFFECT_ITEM_BLOCK, POINT_NONE, 0, 0, 5, 0, true, false);
                                        item->Lock(true);
                                        item->SetSocket(0, true);
                                    }
                                    else
                                    {
                                        RemoveAffect(pAffect);
                                        item->Lock(false);
                                        item->SetSocket(0, false);
                                    }
                                }
                                break;
#endif
 
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

burada şebnem hariç nasıl sınırsız yapıldığını göstermiştim. Sağ tıkladığında sonsuza kadar açık kalıyor.
Aç/kapat yapılması için 2 şey yapmak gerekiyor. 1.Setsocket ile açık yada kapalı olduğunu göstermek. 2.Açık eşyaya sağ tıkladığında efektin silinmesini ayarlamak. 3.Ve tabikide açarken de kapatırken de socket i değiştirmek.
Öğeyi görmek için üye olmalısınız.

Benim arkadaşın yaptığı şeyin aynısını tekrar yapmam hoş olmaz. Basit şekilde görebildiğim hata teleport olunca, zindana girince yada kanal değiştirince, map değiştirince, ölünce vs vs bazı özel durumlarda eşya aktif gözükmesine rağmen bonus silinebilir.
Bunu engellemek için 2 yöntem var.
1.Bir fonksiyon yazıp input_login deki EnterGame fonksiyonunun içinde çalıştırmak gerekir. Bu fonksiyon da bu eşyaların soketleri kontrol edip etkileri tekrar vermeli.
2.Çoğu kişi bilmez ama affect.h daki başlığı(headerı) 500 ile 600 arasında olanlar ölündüğünde silinmez. Bu aralığa taşırsanız sorun çözülür.

Türkçe çevirisi ;
[CODE title="Char_affect.cpp"]#define IS_NO_CLEAR_ON_DEATH_AFFECT(type) ((type) == AFFECT_BLOCK_CHAT || ((type) >= 500 && (type) < 600))
arat

#define IS_NO_CLEAR_ON_DEATH_AFFECT(type) ((type) == AFFECT_BLOCK_CHAT || ((type) >= 500 && (type) < 615))

değiştir
efektler ölünce silinmez[/CODE]
Karakter ölünce affectler siliniyor sol üstteki ikonlar da gidiyor fakat envanterde itemler hala çalışmaya devam ediyor @bykatil199



Türkçe çevirisi ;
[CODE title="Char_affect.cpp"]#define IS_NO_CLEAR_ON_DEATH_AFFECT(type) ((type) == AFFECT_BLOCK_CHAT || ((type) >= 500 && (type) < 600))
arat

#define IS_NO_CLEAR_ON_DEATH_AFFECT(type) ((type) == AFFECT_BLOCK_CHAT || ((type) >= 500 && (type) < 615))

değiştir
efektler ölünce silinmez[/CODE]
Paylaşım için teşekkürler.
 
Eline sağlık kardeşim.
 
Güzel paylaşım eline sağlık
 

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

Geri
Üst