Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
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!

black kardeş sistemdeki sorun 3.guncelleme ile beraber devam etmektedir chler arasında hayla sorun çıkartıyor ilgilenirmisin




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.";




 
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());
    }
 
Son düzenleme:
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