Scarlet 1
Scarlet
Bvural41 1
Bvural41
mavzermete 1
mavzermete
Fethi Polat 1
Fethi Polat
xranzei 1
xranzei
Hikaye Ekle

[C++/Python] Character Seal System Karakter Aktarma

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!

Merhaba arkadaşlar, iyi forumlar.

Uzun süredir üzerinde çalıştığım sistemlerden birini daha tamamlamış bulunuyorum. Bu sistem, Knight Online’daki Cypher Ring mantığından esinlenerek Metin2’ye uyarlanmış Kahraman Mührü / Karakter Mührü Sistemidir.

Sistemin temel amacı, bir karakteri mevcut hesabından mühürleyip ticaret, pazar veya offline shop üzerinden başka bir oyuncuya aktarılabilir hale getirmektir. Karakter mühürlendikten sonra dolu mühür itemi oluşur ve bu item başka bir hesaba geçtiğinde, uygun şartlar sağlanıyorsa karakter yeni hesaba aktarılır.

Sistem Tanıtım Video



İNDİR :

VirusTotal :

Linkler güncellendi eksik icon ve hboard.png eklendi.

İyi kullanımlar

RESİM Kanıt

1782658459392.png

1782658503618.png

1782658528671.png


eksik kodlar


Kod:
root/uicharacterseal.py

CharacterSealWindow classı içine ekleyin:

def BindInterface(self, interface):
    self.interface = interface

def ClearCandidateList(self):
    self.ClearCandidates()

Ayrıca __init__ içinde uygun bir yere ekleyin:

    self.interface = None

Not:
Bu kodlar CharacterSealWindow classı içinde olmalı. TAB düzenine dikkat edin.

Dosya yolu:

gamesrc/character_seal_manager.h

CCharacterSealManager classı içine ekleyin:

void    UseSealItem(LPCHARACTER ch, LPITEM item);

Dosya yolu:

gamesrc/character_seal_manager.cpp

Uygun bir yere ekleyin:

void CCharacterSealManager::UseSealItem(LPCHARACTER ch, LPITEM item)
{
if (!ch || !item)
return;

if (item->GetVnum() == CHARACTER_SEAL_EMPTY_ITEM_VNUM)
{
    OpenSealWindow(ch, item);
    return;
}

if (item->GetVnum() == CHARACTER_SEAL_FULL_ITEM_VNUM)
{
    OpenUnsealWindow(ch, item);
    return;
}
}

Not:
Bu fonksiyon boş mühür ve dolu mühür kullanımını tek yerden yönetir.

Dosya yolu:

gamesrc/char_item.cpp

ARAT:
------------------------------------------------------------
bool CHARACTER::UseItem(TItemPos Cell, TItemPos DestCell)

sonra oradan

if (false == FN_check_item_sex(this, item))

bul foksiyon bitişi } sonra ekle
------------------------------------------------------------

ALTINA EKLE:
------------------------------------------------------------
#ifdef ENABLE_CHARACTER_SEAL_SYSTEM
    if (item->GetVnum() == CHARACTER_SEAL_EMPTY_ITEM_VNUM)
    {
        CCharacterSealManager::instance().OpenSealWindow(this, item);
        return true;
    }
    else if (item->GetVnum() == CHARACTER_SEAL_FULL_ITEM_VNUM)
    {
        CCharacterSealManager::instance().OpenUnsealWindow(this, item);
        return true;
    }
#endif
------------------------------------------------------------

Not:
Bu ekleme yapılmazsa mühür itemine sağ tıklayınca pencere açılmayabilir.

Dosya yolu:

gamesrc/main.cpp

Include kısmına ekleyin:

Daha sonra managerların oluşturulduğu bölüme ekleyin:

arat

CDragonLairManager    dl_manager;

ekle

#ifdef ENABLE_CHARACTER_SEAL_SYSTEM
    CCharacterSealManager character_seal_manager;
#endif

 
Son düzenleme:

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

Geri
Üst