Fethi Polat 1
Fethi Polat
ShadowFon 1
ShadowFon
bikral 1
bikral
-TuRKuaZ- 1
-TuRKuaZ-
SLyFeLLowTR 1
SLyFeLLowTR
TGamesZeus 1
TGamesZeus
Best Studio 1
Best Studio
berkmenoo 1
berkmenoo
InfernoShade 1
InfernoShade
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Agora Metin2 1
Agora Metin2
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 için teşekkürler herşeyi ekledim fakat 2 karakter birbirinden uzakken u.t açınca 2 client te kapanıyor oyundan atıyor errorlog.txt veriyor python2.7

sağlam bi python2.7 konusu varmı acaba artık .dll denmi anlamadım hiç bir sys_eer yok karakterler yanyana iken u.t açınca problem yok distanceyi de yaptım olmadı yardım edermisiniz ?


aynı sorun bendede oluşu
 
yüksek onlineli serverde ch düşcek. yazdığın sistemlerin hepsi aynı mantık üstünden gidiyor hep.
 
Teşekkürler hocam pcye geçince denerim foruma çok yararlı konular paylaşiyorsunuz tekrar teşekkürler 😂
 
Sorun bendede var kodlama eksik var veya python sürümü düşürmek veya azaltmak mı lazım ?
 
Teşekkürler hocam pcye geçince denerim foruma çok yararlı konular paylaşiyorsunuz tekrar teşekkürler 😂
Rica ederim :)

Sorun bendede var kodlama eksik var veya python sürümü düşürmek veya azaltmak mı lazım ?
bende sorunsuz python sürümü 2.7 yapıp dener misiniz?

yüksek onlineli serverde ch düşcek. yazdığın sistemlerin hepsi aynı mantık üstünden gidiyor hep.
Amacın ne bana açıklar mısın? hiçbir şey bilmeden niye konulara sürekli ch düşürecek yazıyorsun?

Kullandığım tek fonksiyon:
ch->ExchangeStart(kimsin);
ki bu normalde exchange.cpp'de var ticareti başlatan fonksiyon açıkla bunun neresi ch düşürecek + sistemlerim hep aynı mantık hangi mantık bunu da söyle.
En azından senin gibi yabancı forumlardan bir şeyler çalmıyorum
 
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