Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
xranzei 1
xranzei
mavzermete 1
mavzermete
Hikaye Ekle

Uzaktan Ticaret[C++]

  • Konuyu başlatan Konuyu başlatan blackdragonx61
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 96
  • Görüntüleme Görüntüleme 20K
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

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!




cmd.cpp açılır-aratılır:
Kod:
ACMD(do_stun);
Altına eklenir;
Kod:
ACMD(do_uzaktan_ticaret);
ACMD(do_uzaktan_ticaret_hayir);
ACMD(do_uzaktan_ticaret_kabul);
Aratılır:
Kod:
{ "mall_passwor",    do_inputall,        0,            POS_DEAD,    GM_PLAYER    },
Altına Eklenir;
Kod:
{ "uzaktan_ticaret",        do_uzaktan_ticaret,            0,            POS_DEAD,    GM_PLAYER    },    { "uzaktan_ticaret_hayir",    do_uzaktan_ticaret_hayir,    0,            POS_DEAD,    GM_PLAYER    },

    { "uzaktan_ticaret_kabul",    do_uzaktan_ticaret_kabul,    0,            POS_DEAD,    GM_PLAYER    },

cmd_general.cpp açılır-aratılır:
Kod:
ACMD(do_observer_exit)
Kod bloğunun altına eklenir;

Kod:
ACMD(do_uzaktan_ticaret_hayir)
{
    char hedef[256];
    one_argument(argument, hedef, sizeof(hedef));
    LPCHARACTER kimsin = CHARACTER_MANAGER::instance().FindPC(hedef);
    CCI * farklich = P2P_MANAGER::instance().Find(hedef);
    /////////////////////////////////////////////////////////////////////////
    if (kimsin == ch){return;}
    if (!*hedef){ch->ChatPacket(CHAT_TYPE_INFO, "yanlis kullanim");return;}
    if (kimsin)
    {
        kimsin->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s isimli oyuncu uzaktan ticareti reddetti!"),ch->GetName());
    }
    else if (!kimsin)
    {
        if (farklich)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisi bu kanalda degil."), kimsin->GetName());
            return;
        }
        else
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisi oyunda degil"), hedef);
        }
    } 
}
ACMD(do_uzaktan_ticaret_kabul)
{
    char hedef[256];
    one_argument(argument, hedef, sizeof(hedef));
    LPCHARACTER kimsin = CHARACTER_MANAGER::instance().FindPC(hedef);
    CCI * farklich = P2P_MANAGER::instance().Find(hedef);
    /////////////////////////////////////////////////////////////////
    if (kimsin == ch){return;}
    if (!*hedef)
    {}
    if (kimsin)
    {
        ch->ExchangeStart(kimsin);//__Exchange.cpp__
    }
    else if (!kimsin)
    {
        if (farklich)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisi bu kanalda degil."), kimsin->GetName());
            return;
        }
        else
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisi oyunda degil"), hedef);
        }
    } 
}
ACMD(do_uzaktan_ticaret)
{
    char hedef[256];
    one_argument(argument, hedef, sizeof(hedef));
    LPCHARACTER kimsin = CHARACTER_MANAGER::instance().FindPC(hedef);
    CCI * farklich = P2P_MANAGER::instance().Find(hedef);
    ////////////////////////////////////////////////////////////////////
    if (!*hedef){return;}    
    if (kimsin == ch)
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("|cffFFC125Hata: Kendi ismini yazamazsin!"));
        return;
    }
    
    if (kimsin)
    {
        kimsin->ChatPacket(CHAT_TYPE_COMMAND, "sorgu %s %d", ch->GetName(), ch->GetLevel());
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisine isteginiz iletildi."), kimsin->GetName());
    }    
    else if (!kimsin)
    {
        if (farklich)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisi bu kanalda degil."), kimsin->GetName());
            return;
        }
        else
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisi oyunda degil"), hedef);
            return;
        }
    }
}

exchange.cpp açılır-aratılır:
Kod:
if (iDist >= EXCHANGE_MAX_DISTANCE)
        return false;

Değiştirilir;
Kod:
/*if (iDist >= EXCHANGE_MAX_DISTANCE)
        return false;*/
game.py açılır-aratılır:
Kod:
"ConsoleEnable"            : self.__Console_Enable,
Altına eklenir;
Kod:
"sorgu"            : self.Uzaktan_ticaret_soru,
Py Sonuna Eklenir;

Kod:
def Uzaktan_ticaret_soru(self, isim, level):        uzaktan_sorusu = uiCommon.QuestionDialog()
        uzaktan_sorusu.SetText("|cffFDD017|H|h" + str(isim)+ "|cff00ccff" + "(Lv."+str(level)+")"+ "|h|r" + " Seninle uzaktan ticaret yapmak istiyor.")
        uzaktan_sorusu.SetAcceptEvent(lambda arg=TRUE: self.tamam_mk(isim))
        uzaktan_sorusu.SetCancelEvent(lambda arg=FALSE: self.sie_mq(isim))        
        uzaktan_sorusu.Open()
        self.uzaktan_sorusu = uzaktan_sorusu
        return    
        
    def tamam_mk(self, isim):
        #net.SendExchangeStartPacket(isim)
        net.SendChatPacket("/uzaktan_ticaret_kabul " + str(isim))
        self.uzaktan_sorusu.Close()
    def sie_mq(self, isim):
        net.SendChatPacket("/uzaktan_ticaret_hayir " + str(isim))
        self.uzaktan_sorusu.Close()
locale_string.txt'ye ekleyin
Kod:
"%s isimli oyuncu uzaktan ticareti reddetti!";"|cff00ccff%s |cffFFC125isimli oyuncu uzaktan ticareti reddetti.";


"%s kisisi oyunda degil";
"|cff00ccff%s |cffFFC125isimli oyuncu oyunda değil.";


"%s kisisi bu kanalda degil.";
"|cff00ccff%s |cffFFC125isimli oyuncu bu kanalda değil.";


"|cffFFC125Hata: Kendi ismini yazamazsin!";
"|cffFFC125Hata: Kendi ismini yazamazsın.";



KONU İÇİN ÇOK TEŞEKKUR EDERİM KARDEŞİM ALLAH RAZI OLSUN İŞİME YARIYCAK.
KANIT.

r6VLnz.png
 
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

buglar devam etmekte client kapanıyor kimi zaman core veriyor farklı chlerde
Uuzun zamandır bakıyorum konuya da arkadaş güncellemiyor client kapanma hatasının çözümü şu

pythonnetworkstreamphasegame.cpp aç
alttakini arat
Kod:
if (pCharacterInstance)
kod satırı muhtemelen alttaki gibi
Kod:
if (pCharacterInstance)
      CPythonExchange::Instance().SetTargetName(pCharacterInstance->GetNameString());
      CPythonExchange::Instance().SetTargetLevel(pCharacterInstance->GetLevel());

onu bu şekilde değiştir.
Kod:
if (pCharacterInstance)
{
    CPythonExchange::Instance().SetTargetName(pCharacterInstance->GetNameString());         
    CPythonExchange::Instance().SetTargetLevel(pCharacterInstance->GetLevel());
 }

Sorun çözülecektir. Ama şu var uzaklık kontrol ettiği için uzak mesafede isim ve level göstermez tüm sistemlerde bunun için paket yollamak gerekiyor uğraşmak istemedim uğraşırım diyenler paylaşırsa güzel olur.

Edit: game.core verenler için aşağıdaki kod bloğunu uygulayın.(Not : Benim kod bloğum farklı paylaşılana uydurmaya çalıştığım için denemedim ama kesin çözüm olacaktır.)
Kod:
    LPCHARACTER kimsin = CHARACTER_MANAGER::instance().FindPC(arg1);

    if (kimsin == ch)
        return;

    if (kimsin == NULL || !kimsin)
    {
        CCI* farklich = P2P_MANAGER::instance().Find(arg1);

        if (!farklich || farklich == NULL)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("»ó´ë¹æÀÌ ¿Â¶óÀÎ »óŰ¡ ¾Æ´Õ´Ï´Ù."));
            return;
        }
        else
        {
            if (farklich->bChannel != g_bChannel) // oyuncu farklı kanalda
            {
                ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("»ó´ë¹æÀÌ %d ä³Î¿¡ ÀÖ½À´Ï´Ù. (ÇöÀç ä³Î %d)"), farklich->bChannel, g_bChannel);
                return;
            }
            else
            {
                ch->ChatPacket(CHAT_TYPE_INFO, "Aynı Mapde değilsiniz."); // Core kullananlar için
                return;
            }
        }
    }
    else
    {
        if (kimsin->IsBlockMode(BLOCK_EXCHANGE))
        {
            kimsin->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s isimli oyuncu uzaktan ticareti reddetti!"),ch->GetName());
            return;
        }

        if (kimsin->IsHack())
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "Oyuncu zaten bir ticaret gerçekleştiriyor.");
            return;
        }

        if (kimsin)
            kimsin->ChatPacket(CHAT_TYPE_COMMAND, "sorgu %s %d", ch->GetName(), ch->GetLevel());
    }
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

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

Geri
Üst