• Serverınızın epinlerini tamamen Turkmmo güvencesiyle satın. Kredi kartı, mobil ödeme, havale/eft ve uygun komisyon oranıyla. Hemen mağaza başvurunuzu yapın. Oyunalisveris.com





Sitemize reklam vermek için [email protected] adresine mail atabilirsiniz
For Advertising Contact [email protected]


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

5.00 yıldız(lar) 3 Oy

bykatil199

Moderatör
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
Site Yetkilisi
Moderatör
Ticaret - 0%
0   0   0
Katılım
17 Nis 2013
Konular
150
Mesajlar
1,532
Beğeniler
350
MmoLira
1,019
DevLira
52
#1
proxy.php?image=http%3A%2F%2Fwww.imagevisit.com%2Fimages%2F2015%2F10%2F16%2Flogo.png&hash=a4f8a807215b8941fd4d10a878aaf0a1


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

 
Son düzenleme:
Üst