Merhaba Bugun Size Sorunları vs Düzeltiğim Bot Kontrol Sistemini Paylaşmakla Gurur Duyarım.
NOT : Sistem ThePricenin Sistemi , Lakin Sistemde 1 kaç ufak değiştirme yaptım sistem belli olması için ifdef olayı yaptım.
Öncelikle Sistem Görüntüsü Buyurun Video ;
Öncelikle (Game Sourceden Başlıyalım)
GameSource > common > servise.h AÇılır Eklenir ;
C++:
#define AHMET_BOT_KONTROL_SYSTEM
Game Source > char.cpp AÇılır ;
*** Aratılır ***
C++:
if (!pick || pick->GetType() != ITEM_PICK)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("°î±ªÀ̸¦ ÀåÂøÇϼ¼¿ä."));
return;
}
***Altına Eklenir ***
C++:
#ifdef AHMET_BOT_KONTROL_SYSTEM
if(get_global_time() > int(GetQuestFlag("captcha.sure")))
{
int sans;
if (GetLevel() >= 75 && GetLevel() < 90)
{
sans = number(1, 2);
}
else
{
sans = number(1, 2);
}
if(int(GetQuestFlag("captcha.durum")) == 0)
{
SetQuestFlag("captcha.durum", 1);
SetQuestFlag("captcha.sure", get_global_time() + (60*sans));
int sayi1 = number(1,9);
int sayi2 = number(1,9);
int sayi3 = number(1,9);
int sayi4 = number(1,9);
int sayi5 = number(1,9);
long yenicaptcha = (sayi1*10000)+(sayi2*1000)+(sayi3*100)+(sayi4*10)+sayi5;
ChatPacket(CHAT_TYPE_COMMAND, "captcha %d %d %d %d %d", sayi1, sayi2, sayi3, sayi4, sayi5);
SetCaptcha(yenicaptcha);
return;
}
}
if(int(GetQuestFlag("captcha.durum")) == 1)
{
return;
}
#endif
*** Aratılır ***
void CHARACTER::fishing() kod satırında if (m_pkFishingEvent) var bu kod satırının;
***Altına Eklenir ***
C++:
#ifdef AHMET_BOT_KONTROL_SYSTEM
if(get_global_time() > int(GetQuestFlag("captcha.sure")))
{
int sans;
if (GetLevel() >= 75 && GetLevel() < 90)
{
sans = number(1, 2);
}
else
{
sans = number(1, 2);
}
if(int(GetQuestFlag("captcha.durum")) == 0)
{
SetQuestFlag("captcha.durum", 1);
SetQuestFlag("captcha.sure", get_global_time() + (60*sans));
int sayi1 = number(1,9);
int sayi2 = number(1,9);
int sayi3 = number(1,9);
int sayi4 = number(1,9);
int sayi5 = number(1,9);
long yenicaptcha = (sayi1*10000)+(sayi2*1000)+(sayi3*100)+(sayi4*10)+sayi5;
ChatPacket(CHAT_TYPE_COMMAND, "captcha %d %d %d %d %d", sayi1, sayi2, sayi3, sayi4, sayi5);
SetCaptcha(yenicaptcha);
return;
}
}
if(int(GetQuestFlag("captcha.durum")) == 1)
{
return;
}
#endif
*** Game Source > char.h AÇılır ; ***
***Aratılır ***
C++:
bool IsBlockMode(BYTE bFlag) const { return (m_pointsInstant.bBlockMode & bFlag)?true:false; }
*** Altına Eklenir ***
C++:
#ifdef AHMET_BOT_KONTROL_SYSTEM
long m_captcha;
void SetCaptcha(long captcha) { m_captcha = captcha; }
long GetCaptcha() const { return m_captcha; }
#endif
***Game Source > cmd.cpp ***
***Herhangi Biyere Eklenir ***
C++:
#ifdef AHMET_BOT_KONTROL_SYSTEM
ACMD(do_captcha);
#endif
***Aratılır ***
C++:
{ "pvp", do_pvp, 0, POS_DEAD, GM_PLAYER },
*** Üstüne Eklenir ***
C++:
#ifdef AHMET_BOT_KONTROL_SYSTEM
{ "captcha", do_captcha, 0, POS_DEAD, GM_PLAYER },
#endif
***Game Source > cmd_general.cpp > En Altına Eklenir ***
C++:
#ifdef AHMET_BOT_KONTROL_SYSTEM
ACMD(do_captcha)
{
char arg1[256];
long gelensifre;
one_argument(argument, arg1, sizeof(arg1));
if (!*arg1)
return;
str_to_number(gelensifre, arg1);
if( gelensifre == 0 || gelensifre == NULL)
{
ch->GetDesc()->DelayedDisconnect(7);
ch->ChatPacket(CHAT_TYPE_BIG_NOTICE, LC_TEXT("%s_bykatil199_captcha_hata"), ch->GetName());
return;
}
long captcham = ch->GetCaptcha();
if (captcham == gelensifre)
{
ch->ChatPacket(CHAT_TYPE_BIG_NOTICE, LC_TEXT("%s_bykatil199_captcha_dogru"), ch->GetName());
int sans;
if (ch->GetLevel() >= 75 && ch->GetLevel() < 90)
{
sans = number(45, 60);
}
else
{
sans = number(5, 30);
}
ch->SetQuestFlag("captcha.durum", 0);
ch->SetQuestFlag("captcha.sure", get_global_time() + (300*sans));
}
else
{
ch->ChatPacket(CHAT_TYPE_BIG_NOTICE, LC_TEXT("%s_bykatil199_captcha_yanlis"), ch->GetName());
int sayi1 = number(1,9);
int sayi2 = number(1,9);
int sayi3 = number(1,9);
int sayi4 = number(1,9);
int sayi5 = number(1,9);
long yenicaptcha = (sayi1*10000)+(sayi2*1000)+(sayi3*100)+(sayi4*10)+sayi5;
ch->ChatPacket(CHAT_TYPE_COMMAND, "captcha %d %d %d %d %d", sayi1, sayi2, sayi3, sayi4, sayi5);
ch->SetCaptcha(yenicaptcha);
}
return;
}
#endif
***Game Source >input_login.cpp > Fonksiyon Aratılır : void CInputLogin::Entergame(LPDESC d, const char * data) / Altında ***
if (ch->GetHorseLevel() > 0)
{
ch->EnterHorse();
}
*** Altına Eklenir ***
C++:
#ifdef AHMET_BOT_KONTROL_SYSTEM
int durum = ch->GetQuestFlag("captcha.durum");
if (durum == 1)
{
int sayi1 = number(1,9);
int sayi2 = number(1,9);
int sayi3 = number(1,9);
int sayi4 = number(1,9);
int sayi5 = number(1,9);
long yenicaptcha = (sayi1*10000)+(sayi2*1000)+(sayi3*100)+(sayi4*10)+sayi5;
ch->ChatPacket(CHAT_TYPE_COMMAND, "captcha %d %d %d %d %d", sayi1, sayi2, sayi3, sayi4, sayi5);
ch->SetCaptcha(yenicaptcha);
}
#endif
* game source > char_battle.cpp açılır ****
*Aratılır *
C++:
bool CHARACTER::Damage(LPCHARACTER pAttacker, int dam, EDamageType type)
if (DAMAGE_TYPE_MAGIC == type) üstüne eklenir ;
** üstüne eklenir **
C++:
#ifdef AHMET_BOT_KONTROL_SYSTEM
if (pAttacker && this)
{
if(!IsPC())
{
if(get_global_time() > int(pAttacker->GetQuestFlag("captcha.sure")))
{
int sans;
if (pAttacker->GetLevel() >= 75 && pAttacker->GetLevel() < 90)
{
sans = number(60, 600);
}
else
{
sans = number(60, 600);
}
if(int(pAttacker->GetQuestFlag("captcha.durum")) == 0)
{
pAttacker->SetQuestFlag("captcha.durum", 1);
pAttacker->SetQuestFlag("captcha.sure", get_global_time() + (60*sans));
int sayi1 = number(1,9);
int sayi2 = number(1,9);
int sayi3 = number(1,9);
int sayi4 = number(1,9);
int sayi5 = number(1,9);
long yenicaptcha = (sayi1*10000)+(sayi2*1000)+(sayi3*100)+(sayi4*10)+sayi5;
pAttacker->ChatPacket(CHAT_TYPE_COMMAND, "captcha %d %d %d %d %d", sayi1, sayi2, sayi3, sayi4, sayi5);
pAttacker->SetCaptcha(yenicaptcha);
return true;
}
}
if(int(pAttacker->GetQuestFlag("captcha.durum")) == 1)
{
return true;
}
}
}
#endif
////////////////////////////////////////////CLİENT SOURCE //////////////////////////////////////////////////
***Client Source > UserInterFace > locale_inc.h***
*** Müsait Biyere Eklenir ***
#define AHMET_BOT_KONTROL_SYSTEM
*** Client Source > UserInterface >PythonApplicationModule.cpp ***
*** Aratılır ***
PyModule_AddIntConstant(poModule, "CAMERA_STOP", CPythonApplication::CAMERA_STOP);
*** Altına Eklenir ***
#ifdef AHMET_BOT_KONTROL_SYSTEM
PyModule_AddIntConstant(poModule, "AHMET_BOT_KONTROL_SYSTEM", 1);
#else
PyModule_AddIntConstant(poModule, "AHMET_BOT_KONTROL_SYSTEM", 0);
#endif
/////////////////// ROOT AÇILIR ///////////////////
***game.py açılır aratılır ;***
self.partyInviteQuestionDialog = None
***Altına EKlenir ;***
Python:
if app.AHMET_BOT_KONTROL_SYSTEM:
self.captchatest = None
***aratılır ;***
self.serverCommander=stringCommander.Analyzer()
***üstüne eklenir ;***
Python:
if app.AHMET_BOT_KONTROL_SYSTEM:
serverCommandList.update({"captcha" : self.captchaekran })
***aratılır ;***
def BINARY_ServerCommand_Run(self, line):
***üstüne eklenir ;***
Python:
if app.AHMET_BOT_KONTROL_SYSTEM:
def captchaekran(self, sayi1, sayi2, sayi3, sayi4, sayi5):
captchatest = uiCommon.CaptchaEkran()
captchatest.SetText1("|cffffff00Bot Engel Sistemi")
captchatest.SetText3("Oyuna devam edebilmek için üstteki kodu aşağıya yaz.")
captchatest.SetTimeOverMsg("Soruyu zamanında cevaplamadığın için oyundan atılıyorsun.")
captchatest.SetTimeOverEvent(self.captchacevap, "kapat")
captchatest.SetAcceptEvent(lambda arg=True: self.captchacevap(arg))
captchatest.SetCancelEvent(lambda arg=False: self.captchacevap(arg))
captchatest.Open(15, sayi1, sayi2, sayi3, sayi4, sayi5)
self.captchatest = captchatest
def captchacevap(self, answer):
if not self.captchatest:
return
if answer == False:
self.captchatest.Temizle()
# chat.AppendChat(1, "Temizledim bro.")
elif answer == True:
# chat.AppendChat(1, "Girilen şifre : " + str(self.captchatest.GetInput()))
net.SendChatPacket("/captcha " + str(self.captchatest.GetInput()))
self.captchatest.Close()
self.captchatest = None
else:
net.SendChatPacket("/captcha 0")
self.captchatest.Close()
self.captchatest = None
***uicommon.py açılır ;***
***aratılır ;***
class MoneyInputDialog(ui.ScriptWindow):
***üstüne eklenir ;***
Python:
if app.AHMET_BOT_KONTROL_SYSTEM:
class CaptchaEkran(QuestionDialog2):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.__CreateDialog()
self.endTime = 0
self.timeOverMsg = 0
self.timeOverEvent = None
self.timeOverEventArgs = None
def __del__(self):
QuestionDialog2.__del__(self)
def __CreateDialog(self):
pyScrLoader = ui.PythonScriptLoader()
pyScrLoader.LoadScriptFile(self, "uiscript/ahmetbotkontrol.py")
self.board = self.GetChild("board")
self.textLine1 = self.GetChild("message1")
self.textLine2 = self.GetChild("message2")
self.textLine3 = self.GetChild("message3")
self.InputValue = self.GetChild("InputValue")
self.cp1 = self.GetChild("cp1")
self.cp2 = self.GetChild("cp2")
self.cp3 = self.GetChild("cp3")
self.cp4 = self.GetChild("cp4")
self.cp5 = self.GetChild("cp5")
self.acceptButton = self.GetChild("accept")
self.cancelButton = self.GetChild("cancel")
self.textLine3.Hide()
def Open(self, timeout, cpp1, cpp2, cpp3, cpp4, cpp5):
self.SetCenterPosition()
self.SetTop()
self.cp1.LoadImage("captcha/"+str(cpp1)+".tga")
self.cp1.Show()
self.cp2.LoadImage("captcha/"+str(cpp2)+".tga")
self.cp2.Show()
self.cp3.LoadImage("captcha/"+str(cpp3)+".tga")
self.cp3.Show()
self.cp4.LoadImage("captcha/"+str(cpp4)+".tga")
self.cp4.Show()
self.cp5.LoadImage("captcha/"+str(cpp5)+".tga")
self.cp5.Show()
self.Show()
self.endTime = app.GetTime() + timeout
def SetTimeOverEvent(self, event, *args):
self.timeOverEvent = event
self.timeOverEventArgs = args
def SetTimeOverMsg(self, msg):
self.timeOverMsg = msg
def SetText1(self, text):
self.textLine1.SetText(text)
self.textLine1.Show()
def SetText2(self, text):
self.textLine2.SetText(text)
self.textLine2.Show()
def SetText3(self, text):
self.textLine3.SetText(text)
self.textLine3.Show()
def GetInput(self):
return self.InputValue.GetText()
def Temizle(self):
self.InputValue.SetText("")
def OnTimeOver(self):
if self.timeOverEvent:
apply(self.timeOverEvent, self.timeOverEventArgs)
if self.timeOverMsg:
chat.AppendChat(chat.CHAT_TYPE_INFO, self.timeOverMsg)
def OnUpdate(self):
leftTime = max(0, self.endTime - app.GetTime())
self.SetText2(localeInfo.UI_LEFT_TIME % (leftTime))
if leftTime <= 0:
self.OnTimeOver()
***
***Sunucu Files AÇılır ;***
***/usr/game/share/locale/turkey***
***burda locale_string.txt eklenir ;***
C++:
"%s_bykatil199_captcha_hata";
"Merhaba, %s Bot Kontrol Şifre Girmediğiniz İçin Oyundan Atılıyorsunuz";
"%s_bykatil199_captcha_dogru";
"Merhaba, %s Şifre Doğru ! Bot Kontrol Sistemi Devre Dışı , İyi Oyunlar";
"%s_bykatil199_captcha_yanlis";
"Merhaba, %s Şifre Yanlış ! Lütfen Doğru Şekilde Giriniz..";
Aşşağıdaki Dosyalar Root İçine Atılır ;
ROOT : TIKLA
VİRUSTOTAL : TIKLA
Ekliyenlerin Kanıtları ;