Uzaktan Ticaret[C++&PYTHON]

LDrago

The Dragon's Excalibur
MT Üye
Mesaj
172
Çözümler
1
Beğeni
191
Puan
729
Ticaret Puanı
0

cmd.cpp açılır-aratılır:
C++:
Genişlet Daralt Kopyala
ACMD(do_stun);
Altına eklenir;
C++:
Genişlet Daralt Kopyala
ACMD(do_uzaktan_ticaret);
ACMD(do_uzaktan_ticaret_hayir);
ACMD(do_uzaktan_ticaret_kabul);
Aratılır:
C++:
Genişlet Daralt Kopyala
{ "mall_passwor",    do_inputall,        0,            POS_DEAD,    GM_PLAYER    },
Altına Eklenir;
C++:
Genişlet Daralt Kopyala
{ "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:
Genişlet Daralt Kopyala
ACMD(do_observer_exit)
Kod bloğunun altına eklenir;
Linkleri görebilmek için giriş yap veya kayıt ol.

C++:
Genişlet Daralt Kopyala
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:
C++:
Genişlet Daralt Kopyala
if (iDist >= EXCHANGE_MAX_DISTANCE)
       return false;
Değiştirilir;
C++:
Genişlet Daralt Kopyala
/*if (iDist >= EXCHANGE_MAX_DISTANCE)
       return false;*/
game.py açılır-aratılır:
Python:
Genişlet Daralt Kopyala
"ConsoleEnable"            : self.__Console_Enable,
Altına eklenir;
Python:
Genişlet Daralt Kopyala
"sorgu"            : self.Uzaktan_ticaret_soru,
Py Sonuna Eklenir;
Linkleri görebilmek için giriş yap veya kayıt ol.

Python:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
"%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.";
Linkleri görebilmek için giriş yap veya kayıt ol.

Linkleri görebilmek için giriş yap veya kayıt ol.
 
Hocam Merhabalar hepsini ekledim game build ettim ama
Root Pack/Game.py düzenliyorum sorunsuz şekilde kopyalayıp yapıştırıyorum.
Oyuna girince bu ekranda kalıyor. Eski root pack'leri atınca geri düzeliyor.

hataaa.webp
 
En son bir moderatör tarafından düzenlenmiş:
Syserr Hatalarını ve Yapmayı denediğim bu sistemi geri kaldırdığım için bilgilere şuan için ulaşamıyorum. İlginiz için teşekkürler. Bir daha denersem syserr hatalarını konu dahil ederim.
 
farklı maplarda olunca ut açılmıyor ve hiçbir tepki vermiyor farklı maplarda 2-3 defa uzaktan ticarete tıklayınca oyundan atıyor ve bi daha girmiyor
ch düşüyor yani
 
Son düzenleme:
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst