melankolıa18 1
melankolıa18
shrpnl 1
shrpnl
Fethi Polat 1
Fethi Polat
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Best Studio 1
Best Studio
Agora Metin2 1
Agora Metin2
raderde 1
raderde
Cannn6161 1
Cannn6161
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Mt2Hizmet 1
Mt2Hizmet
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com
Kaynak ikonu

(C++ , Python) Bot Kontrol Sistemi | bykatil199 1

indirmek için izniniz yok

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

It's just for fishing and mining. How to add captcha for move and attack?
 
Ellerine sağlık çok güzel olmuş.
 
Eline Sağlık :)
 
logo.png


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 > intro_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

////////////////////////////////////////////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 :
VİRUSTOTAL :



Paylaşım için teşekkürler. Küçük bir sorunum var. Herşey sorunsuz eklendi fakat sistem nasıl başlıyor oyun da ?
Mob v.b kesiyorum, herhangi bir uyarı sormuyor.
 

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

Geri
Üst