Source Bot Player Sistemi

SULEYMAN BOZOK

ANKA2 RINAMT2 65-250 PROJESINE HAKIM OLAN [ DEV ]
Premium Üye
Yardımsever Üye
Usta Üye
Mesaj
1.114
Çözümler
71
Beğeni
1.379
Puan
1.359
Ticaret Puanı
0

Bot player sistemi – sunucunuzu daima canlı tutun​


mmorpg oyunlarında oyuncuların en çok önemsediği şeylerden biri, sunucunun ne kadar aktif olduğudur. dolu bir sunucu, yaşayan ve etkileşimli bir dünya sunar. ancak özellikle yeni açılan sunucularda bu atmosferi sağlamak kolay olmayabilir. işte bu noktada bot player sistemi devreye giriyor.


bu sistem sayesinde, sunucuda gerçek oyuncu gibi davranan yapay zekâ karakterler oluşturulur. oyuncular oyuna girdiklerinde boş haritalar yerine kalabalık bir ortamla karşılaşır. şehirlerde gezen, farm yapan, hatta pazar kuran bot karakterler sayesinde oyuncuya canlı ve hareketli bir oyun deneyimi sunulur.


bot player nedir?​


bot player, sistem tarafından kontrol edilen ve dışarıdan bakıldığında gerçek bir oyuncudan ayırt edilemeyen yapay bir karakterdir. her birinin adı, sınıfı, cinsiyeti ve görünümü farklıdır. tamamen oyuncu gibi davranır, belirlenen bölgelerde dolaşır, farm yapar ya da şehirde zaman geçirir.


bu karakterler, sunucuya yeni katılan bir oyuncunun dikkatini çeker. çevrede dolaşan diğer karakterlerin bot mu yoksa gerçek mi olduğunu ayırt edememek, oyuna olan ilgiyi artırır ve daha kalıcı bir oyuncu kitlesi oluşturur.


nasıl çalışır?​


sistem, arka planda otomatik olarak işlemektedir. içerisinde yüzlerce hazır isim ve yapılandırma barındıran bot veritabanı kullanılarak rastgele karakterler oluşturulur. ardından bu karakterlere hangi haritada görünecekleri, ne yapacakları ve nasıl hareket edecekleri atanır.


bazı botlar sadece şehirde gezinerek görsel bir yoğunluk sağlarken, bazıları doğrudan farm bölgelerinde aktif olur. bu da oyuncuya sürekli bir hareketlilik algısı sunar. daha gelişmiş versiyonlarında ise botların pvp bölgelerinde görünmesi, hatta belli rutinlerle dövüşmesi bile mümkündür.


neden kullanılmalı?​


yeni açılan sunucularda en büyük sorun, boş haritalar ve oyuncusuzluk hissidir. bu durum oyuncunun ilgisini hızla kaybetmesine neden olabilir. ancak bot player sistemi sayesinde oyuncu oyuna ilk girişte aktif bir dünya ile karşılaşır. bu motivasyon sağlar, oyunda kalma süresini uzatır ve oyuncu sadakatini güçlendirir.


özellikle farm ve pvp haritalarında botlarla oluşturulan etkileşimli yapı sayesinde oyun daha dinamik görünür. bu da sunucunun hem sosyal medyada hem de tanıtımlarda çok daha profesyonel bir izlenim bırakmasını sağlar.


sonuç olarak​


bot player sistemi, sunucunuzu sadece dolu göstermekle kalmaz; aynı zamanda oyuncuya “burada hayat var” hissini verir. başlangıçta oyuncu eksikliği çekilen dönemlerde kritik bir rol oynar. gerçekçi tasarımı ve doğal davranış modelleriyle, oyuncuların dikkatini çeker ve sunucuya olan bağlılığı artırır.


eğer siz de sunucunuza profesyonel, etkileşimli ve oyuncuyu içine çeken bir atmosfer kazandırmak istiyorsanız, bot player sistemi tam size göre.


Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.


Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.


Sistem Benım Diye Ortalıkta Gezinenlere Hedıyemdır :)

BotPlayer.cpp:
Genişlet Daralt Kopyala
Kendinize Göre Oyunculara İsim Verebılırsınız


#include "stdafx.h"

#ifdef BOT_PLAYER
#include "BotPlayer.h"
#include "char.h"
#include "char_manager.h"
#include "item.h"
#include "item_manager.h"
#include "config.h"
#include "p2p.h"
#include "sectree.h"
#include "sectree_manager.h"
#include "vector.h"
#include "utils.h"
#include "desc.h"
#include "desc_client.h"
#include "desc_manager.h"
#include <random>

using namespace botplayer;

const std::vector<std::string> vec_Name =
{
    "Homeron","MrGe","HOPPALA","xAFFETMEg","MythArrow","Shunai","RzeLy","GODUMBOZULDU","CUPPALA","Hemera","Dou","ASSASIN",
    "Mangeku","PADISAH","BOZKURT","MUSLERA","RvsSpeed","ASL4N","Ninja","Hell","Olc","LORD","DELI","Seyis","Paradise","EFSANE",
    "BABA","HeavenFARM","Speed","TURUVALI","ASDASDASD","314159265358","HeddA","Efsun","ESDELIDELI","TrMusallat","BASKAN","Wind",
    "BenGeldim","TENNSII","Ra","Eda","HeMRA2","GAVIROSTA","Ed","Demirci","GOD","HAYYAVRUM","AyYuzlum","MEMISxKraL","LORDfarm","HerYerDuman6",
    "KasarRuski","BaekLORD","Volkann","0R0SPUEDA","ZALIM","PsychoSociaL","SINCANLIM","GowtheR","AVSARBEY","BABAxDERLER","Burra","GARFIELD",
    "CaptainStag","ZihinseLPlus","RAJON","benuzulmem","Pretzel","EJDER","Zoe","Sura","TEK","sds","Ez4Ence","31415926535","KRITIKCI","REIS","58","KURUUU",
    "TEKILA","meflud","NARCOS","Eclipse7","tethyS","DeliDumrul","SUMBUL","ZaMaZoM","Ssss","WarWolf","bngcf","nbgmn","POV","KARA","Sinek","cash","llWarll",
    "AYAR","sisko","CHIVAS","pretzell","civciv","K1","Eclipse77","NobleStrike","KekkeiGenkai","DrKing","RuhsuzOkcu","PALANBEYAZ","mefflud","THESAT","ZORBEY","RozeN",
    "lRozeNl","razor123","SANRI","DaRkBLue","SeqhilNinja","civciv42","OTTO","SmokerDAYI","FizofreN","maca5","kupa10","SmokerIDAYI","THANOS","USTADFarm","USTAD","xXxEcel7","DOLIVKA","KaMoSeT","KRAL",
    "VATAN","ZxKRALxZ","Kutlusam","EdaFarM","PARMAKDARBE","UstaFarm","LAZBABA","SeljukEmpire","Enemy","Sharingan","ZeuS","Hupi","DAYI","ASTERIX","xKraLTR","KIZzilli","KRALBenim",
    "monster","SOSYOPAT","H1N1","KesBeni","xChe","xCha","xChaFARM","DOLIVKA2","GODFARM","Itachi","YAYGELARTIK","H1pNo0zz","O1Capon","OsCArr","DarkNeSs","VeNom","PoPo","ZORO","PATOS",
    "Maestro","SoNRaP","Kerberos","AFU","111H","Paramedic","OhaSHAMAN","XMEN","OhaKiNG","KafamDuman6","XxLeGendxX","Ramires","gaddaR","eXedRa","FarkBende2Le","Toxic","Cabbar","ModernThug","Lilith",
    "EFSOkral","Hercai","RedKeys","BERGEN","Devilish","p0seid0n","VEZIR","ASGARD","ZILAN","Oflii","Eye4You","xEvrimx","EFSNBOTS","TurkishPower","Trmehmety","TRmehmet","KINSEI","Redflowers","TURKIYE",
    "TACSIZKRAL","ISouLI","Takumi","SoNNinJa","SOYLUYUM","Hawaggi","SmithKlineTR","YARGIC","CHEf","Chess","OTTOMAN","Test","Hemera2","Szijj","XMEN2","MythWarrior","Kharon","Lennon","DILENCIxOGI",
    "JaWeL","MEZARCI34","Rowss","LASTDANCE","KANUNSUZ","Pailrox","Hassaki","DadaS","WOLF","xFARKETMEZ","MyAE","HaHaHa","Kxe","oVEYTo","EskiciGeldi","mehmet3535","RowsTek","LASTDANCEv3","Vip",
    "ROWS2YEDi","RowsAgla","EnginSertkay","SIKINTILI","lSIKINTILI","CaptanJake","SAR","efsun2","efsun3","EZEL","bufff","SwangeR","Archer","SLOTVERAM","NoNameWar","Akamaru","SOYLU","3GO","Joseph","LASTDANCEv2","Bab",
    "Kaan","Bebek","Dora","PosionFake","BabaMerhaba","ByHefna","dsfasdfsadf","BEST","engntekleyen","EnginSertkaa","LASTDANCEv4","Azazel","xORGENERAL","ShiftDelete","IIAnasoNII","JustWatch","AmaTerrasu","DyCold",
    "Furious","xD","Amansz1Keko","OhCu","OdilNl","AeYEmRe1","BoSs","TARZAN","RiqeL","J3enQ","Indicibus","SarKopat","Orspunami","lVIPl","lLoran","T1T4N","oGeav","lTheGaDDaRl","Aetheaf","Paytak","PaklosSs","Endurance",
    "Hassasium","Ugur","TrOnLaR","Tazia","cozme","OrkunMNTMR","Fre","kutsama1","Baro","TAGOF","DioBrando","BGSLOW","Jonathan","EZ4ENCE1","Extezy","EZ4ENCE2","SVYRM","DemiGod","Pogba","ProfessionaL","LoRdLaRiNeFe",
    "02","D4YI","OLO","POMPA","KUJU","Kirwe","kiriw","Kira","ANASIKICI","TankerMelda","BidonNecmi","Mayhem","Merve","ScorpionJx","ScorpionJr","iboyusikm","PaklosS","Sumela","Josuke","Okuyasu","Babaa","ADALET",
    "SUH","PerfectDewiL","Oglim","Lizzo","ByJamiryoo","CIZBIZ","DeliNoyan","Minto0o","Orkun1910","PaklosSsW","Powerade","HERMES","Ryzen","Boo","PGA","Mata","Nightovel","XXVI","Shaman","CorteX","Muholox","lility",
    "Muholox58","Skayres","TRDrenisH","Matriks","KralMetehan","RaptorBlood","Timmy","TRDrenissH","K3x3","TainTed","EMMI","DyN","BlackBrother","QUAKE","EdiLe","Manly","ZeusunDenizi","Momo","KaiSa","Dio","YAKAMOZ",
    "Eulith","Sensizim","Malphite","SALMAM","G4me0vER","Pinhani","AyiABBAS","FarketmeezWT","EFSUNNNNNNN","TylerDurden","Vaenictas","AyiHASO","CJ","KeNoKe","I3ySurahi","SpeeDs","MaXiMuS","AyiCABBAR",
    "AyiKADO","NoName2","NoName","ged","DeaTLoarD","35FP","Fei","Selininki","vosseL","veselam","xLarge","azer","Lx","GodzillaR34","ALVIN","ReD","Baykan","SOKARCA","malemre","SpyHorn","hucketbead","FUCKER",
    "aaaaaaaaaa","andavalemre","ITeKKrAlI","VesseLam","DarkSide","EternaL","LANADELREY","DIRILISH","Afrodit","bossvero","J3adJ3oy","Tugce","ImMariuana","xResperct","JARDEL","RONIN","Rhott","EFSANExMEMO",
    "Aldarion","TheMoRe","MP3","AyiCEREN","vay","Titanium","SURAVAR","HemeraTEST","Crow","Kwoon","Laviedd","STALLIZE","AyiHUSO","MAREN","AyiMERDO","icz","QuanChe","NetzsChe","Masquerade","SQVALYE","m0naLisa",
    "Despina","Pemions","AYISIkEN","omerhamza","ninjaa","AyiBATU","Sude","Ninjely","EFSUNCUUU","TestaRossa","F458","MoRDoR","SparTacus","F430","Eaglee","MORCENNET","sadsadasdasd","Eagle","GaNDaLF","AyiABBAS2",
    "AyiABBAS3","god5465","godUZI","KING","ReaLxFLU","TestaRoosaa","Sasurata","Carla","Kutsabebeim","Oklipotiko","XiaoYung","LasTShot","PaklosSsWW","Sudee","Fallacy","Paladin","Ayran","Dazzler","Remy","Weakside",
    "Eliena","ZzZxXxZzZ","Umut","CakarLaRRR","Kurosaki","Rhot","AYYILDIZ","sudeee","SadeKek","yuuji","Ninjayimben","Aizen","dilara","BALKAN","SECURITY","Ashe","Duygununki","V1","I3omonti","HoppA","AdALeTT","GRALbiLD","Kuzan",
    "Zeors","SemiGod","AyiSAMAN","KARASURA","AyiKADO1","XxSrSrXx","XxSrSrXx1","DELALE","MagicLord","Hasecan","Chupons","SekoBey","Halil","POSEIDON","Helu","qunToX","EhLiKeyfs","SonSamuRaY","Zeigen","Levi",
    "yuujii","TEKYUMRUK","AVVA","suraaaav","Sekoooo","CaT","WurGunBey","Invincible","Asi","FRENTE","RoyaLs","Asiye","Serchuva","Basim","YARRAAAAAAAA","HyperGhosTR","YARRAAAAA2","YARRAAAAAAA3","M3L1H","EsmaSultan","ssAss",
    "EmonG","TAMADIR","FARM","SEYTAN","BIG","PuF","Alex","ssOss","ThiweT","CardinalRed","SiKiCiSOKUCU","AYIABBASOC","MesquL","Delpwinzy","Snow","MAYKADAPITKA","ssuss","HeLfOrCe","Yujininki","Tamam","fefewfewgege","TheGodofGods",
    "LeuEntrica","ThELF","VARLUKHAN","PATRON","PATRON17","PATRON1","IPuF","AVVArutin","zfsadfsdf","NinjaMP","babafingo","Shaman1","leykon","DaPoet","Atom","Doja","madrid","S4PULTUR4","PoweRShooT","asdsafasfsdf","AmmaTerasu",
    "ZorBaaTR","sadasda","KaRaCeLLaT","UtkuDuman","InsCnmYa","Poncik","DaRK","SaKArYAl1","MuSaLlat","Scary","Orii1928","Elizabet","XKralTRX","35BUCA1928","clibces","ZZoRRo","GeFoRGe","VoNDeRFuLL","HiwatariaKai","qUANTUMFIZIQ",
    "mezarci","Mira","Poncik2","amra","erkumenkozer","ergumenkozer","BASBELASI","SIZOFREN","poncik3","Resque","Strawberry","ponc"
};

CBotPlayer::CBotPlayer()
{
    m_botEvent = nullptr;
}

CBotPlayer::~CBotPlayer()
{
    if (m_botEvent)
        event_cancel(&m_botEvent);
    m_botEvent = nullptr;
}

EVENTINFO(bot_event_info)
{
    DynamicCharacterPtr chBot;
    int iRandom;
    int iCurTime;
    int iLastTime;
    bot_event_info() :
        iRandom(0)
        , iCurTime(0)
        , iLastTime(0)
    {
    }
};

EVENTFUNC(ch_bot_event)
{
    auto info = dynamic_cast<bot_event_info*>(event->info);
    if (!info)
        return 0;
    LPCHARACTER chBot = info->chBot;
    if (!chBot)
        return 0;
    LPDESC d = DESC_MANAGER::instance().FindByCharacterName(chBot->GetName());
    LPCHARACTER tch = d ? d->GetCharacter() : NULL;
    if (tch) {
        CBotPlayerManager::instance().BotBulSil(tch->GetName());
        // CBotPlayerManager1::instance().BotBulSil(tch->GetName());
        sys_err("%s Bot destroy.", tch->GetName());
        return 0;
    }
    if (number(0, 1) == 1) {
        int iDist[4] = { 500, 1000, 3000, 5000 };
        for (int iDistIdx = 2; iDistIdx >= 0; --iDistIdx) {
            for (int iTryCount = 0; iTryCount < 8; ++iTryCount) {
                chBot->SetRotation(number(0, 359));
                float fx, fy;
                float fDist = number(iDist[iDistIdx], iDist[iDistIdx + 1]);
                GetDeltaByDegree(chBot->GetRotation(), fDist, &fx, &fy);
                bool bIsEngelVarMi = false;
                for (int j = 1; j <= 100; ++j) {
                    if (!SECTREE_MANAGER::instance().IsMovablePosition(chBot->GetMapIndex(), chBot->GetX() + (int)fx * j / 100, chBot->GetY() + (int)fy * j / 100)) {
                        bIsEngelVarMi = true;
                        break;
                    }
                }
                if (bIsEngelVarMi)
                    continue;
                int iDestX = chBot->GetX() + (int)fx;
                int iDestY = chBot->GetY() + (int)fy;
                if (chBot->Goto(iDestX, iDestY))
                    chBot->SendMovePacket(FUNC_WAIT, 0, 0, 0, 0);
                // info->iLastTime = get_dword_time();
            }
        }
    }
    return PASSES_PER_SEC(6);
}
 
Son düzenleme:
@SULEYMAN BOZOK BotPlayer.h ı da konuya dahil eder misin.
C++:
Genişlet Daralt Kopyala
#pragma once

namespace botplayer
{
    class CBotPlayer
    {
        public:
            CBotPlayer();
            ~CBotPlayer();
            void SetBot (LPCHARACTER chBot)
            {
                m_chBot = chBot;
            }
            LPCHARACTER GetBot()
            {
                return m_chBot;
            }
            void SetStartEvent (LPCHARACTER chBot);
        private:
            LPCHARACTER m_chBot;
            LPEVENT m_botEvent;
    };

    class CBotPlayerManager : public singleton<CBotPlayerManager>
    {
        public:
            CBotPlayerManager();
            ~CBotPlayerManager();
            void BotSpawn (LPCHARACTER ch, int iLevel = 1, int iLogin = 0);
            void NesneGiydir (LPCHARACTER ch, int iLevel = 1);
            void BotSil();
            void BotBulSil (const char* c_szName);
            bool IsBotPlayer (const char* c_szName);
            DWORD BotPlayerCount() const
            {
                return m_mapBotPlayer.size();
            }
        private:
            std::map<std::string, CBotPlayer*> m_mapBotPlayer;
    };
};

Deneyin hocam
 

Bot player sistemi – sunucunuzu daima canlı tutun​


mmorpg oyunlarında oyuncuların en çok önemsediği şeylerden biri, sunucunun ne kadar aktif olduğudur. dolu bir sunucu, yaşayan ve etkileşimli bir dünya sunar. ancak özellikle yeni açılan sunucularda bu atmosferi sağlamak kolay olmayabilir. işte bu noktada bot player sistemi devreye giriyor.


bu sistem sayesinde, sunucuda gerçek oyuncu gibi davranan yapay zekâ karakterler oluşturulur. oyuncular oyuna girdiklerinde boş haritalar yerine kalabalık bir ortamla karşılaşır. şehirlerde gezen, farm yapan, hatta pazar kuran bot karakterler sayesinde oyuncuya canlı ve hareketli bir oyun deneyimi sunulur.


bot player nedir?​


bot player, sistem tarafından kontrol edilen ve dışarıdan bakıldığında gerçek bir oyuncudan ayırt edilemeyen yapay bir karakterdir. her birinin adı, sınıfı, cinsiyeti ve görünümü farklıdır. tamamen oyuncu gibi davranır, belirlenen bölgelerde dolaşır, farm yapar ya da şehirde zaman geçirir.


bu karakterler, sunucuya yeni katılan bir oyuncunun dikkatini çeker. çevrede dolaşan diğer karakterlerin bot mu yoksa gerçek mi olduğunu ayırt edememek, oyuna olan ilgiyi artırır ve daha kalıcı bir oyuncu kitlesi oluşturur.


nasıl çalışır?​


sistem, arka planda otomatik olarak işlemektedir. içerisinde yüzlerce hazır isim ve yapılandırma barındıran bot veritabanı kullanılarak rastgele karakterler oluşturulur. ardından bu karakterlere hangi haritada görünecekleri, ne yapacakları ve nasıl hareket edecekleri atanır.


bazı botlar sadece şehirde gezinerek görsel bir yoğunluk sağlarken, bazıları doğrudan farm bölgelerinde aktif olur. bu da oyuncuya sürekli bir hareketlilik algısı sunar. daha gelişmiş versiyonlarında ise botların pvp bölgelerinde görünmesi, hatta belli rutinlerle dövüşmesi bile mümkündür.


neden kullanılmalı?​


yeni açılan sunucularda en büyük sorun, boş haritalar ve oyuncusuzluk hissidir. bu durum oyuncunun ilgisini hızla kaybetmesine neden olabilir. ancak bot player sistemi sayesinde oyuncu oyuna ilk girişte aktif bir dünya ile karşılaşır. bu motivasyon sağlar, oyunda kalma süresini uzatır ve oyuncu sadakatini güçlendirir.


özellikle farm ve pvp haritalarında botlarla oluşturulan etkileşimli yapı sayesinde oyun daha dinamik görünür. bu da sunucunun hem sosyal medyada hem de tanıtımlarda çok daha profesyonel bir izlenim bırakmasını sağlar.


sonuç olarak​


bot player sistemi, sunucunuzu sadece dolu göstermekle kalmaz; aynı zamanda oyuncuya “burada hayat var” hissini verir. başlangıçta oyuncu eksikliği çekilen dönemlerde kritik bir rol oynar. gerçekçi tasarımı ve doğal davranış modelleriyle, oyuncuların dikkatini çeker ve sunucuya olan bağlılığı artırır.


eğer siz de sunucunuza profesyonel, etkileşimli ve oyuncuyu içine çeken bir atmosfer kazandırmak istiyorsanız, bot player sistemi tam size göre.


Alıntılarda özel içerikler gözükmez.


Alıntılarda özel içerikler gözükmez.


Sistem Benım Diye Ortalıkta Gezinenlere Hedıyemdır :)

BotPlayer.cpp:
Genişlet Daralt Kopyala
Kendinize Göre Oyunculara İsim Verebılırsınız


#include "stdafx.h"

#ifdef BOT_PLAYER
#include "BotPlayer.h"
#include "char.h"
#include "char_manager.h"
#include "item.h"
#include "item_manager.h"
#include "config.h"
#include "p2p.h"
#include "sectree.h"
#include "sectree_manager.h"
#include "vector.h"
#include "utils.h"
#include "desc.h"
#include "desc_client.h"
#include "desc_manager.h"
#include <random>

using namespace botplayer;

const std::vector<std::string> vec_Name =
{
    "Homeron","MrGe","HOPPALA","xAFFETMEg","MythArrow","Shunai","RzeLy","GODUMBOZULDU","CUPPALA","Hemera","Dou","ASSASIN",
    "Mangeku","PADISAH","BOZKURT","MUSLERA","RvsSpeed","ASL4N","Ninja","Hell","Olc","LORD","DELI","Seyis","Paradise","EFSANE",
    "BABA","HeavenFARM","Speed","TURUVALI","ASDASDASD","314159265358","HeddA","Efsun","ESDELIDELI","TrMusallat","BASKAN","Wind",
    "BenGeldim","TENNSII","Ra","Eda","HeMRA2","GAVIROSTA","Ed","Demirci","GOD","HAYYAVRUM","AyYuzlum","MEMISxKraL","LORDfarm","HerYerDuman6",
    "KasarRuski","BaekLORD","Volkann","0R0SPUEDA","ZALIM","PsychoSociaL","SINCANLIM","GowtheR","AVSARBEY","BABAxDERLER","Burra","GARFIELD",
    "CaptainStag","ZihinseLPlus","RAJON","benuzulmem","Pretzel","EJDER","Zoe","Sura","TEK","sds","Ez4Ence","31415926535","KRITIKCI","REIS","58","KURUUU",
    "TEKILA","meflud","NARCOS","Eclipse7","tethyS","DeliDumrul","SUMBUL","ZaMaZoM","Ssss","WarWolf","bngcf","nbgmn","POV","KARA","Sinek","cash","llWarll",
    "AYAR","sisko","CHIVAS","pretzell","civciv","K1","Eclipse77","NobleStrike","KekkeiGenkai","DrKing","RuhsuzOkcu","PALANBEYAZ","mefflud","THESAT","ZORBEY","RozeN",
    "lRozeNl","razor123","SANRI","DaRkBLue","SeqhilNinja","civciv42","OTTO","SmokerDAYI","FizofreN","maca5","kupa10","SmokerIDAYI","THANOS","USTADFarm","USTAD","xXxEcel7","DOLIVKA","KaMoSeT","KRAL",
    "VATAN","ZxKRALxZ","Kutlusam","EdaFarM","PARMAKDARBE","UstaFarm","LAZBABA","SeljukEmpire","Enemy","Sharingan","ZeuS","Hupi","DAYI","ASTERIX","xKraLTR","KIZzilli","KRALBenim",
    "monster","SOSYOPAT","H1N1","KesBeni","xChe","xCha","xChaFARM","DOLIVKA2","GODFARM","Itachi","YAYGELARTIK","H1pNo0zz","O1Capon","OsCArr","DarkNeSs","VeNom","PoPo","ZORO","PATOS",
    "Maestro","SoNRaP","Kerberos","AFU","111H","Paramedic","OhaSHAMAN","XMEN","OhaKiNG","KafamDuman6","XxLeGendxX","Ramires","gaddaR","eXedRa","FarkBende2Le","Toxic","Cabbar","ModernThug","Lilith",
    "EFSOkral","Hercai","RedKeys","BERGEN","Devilish","p0seid0n","VEZIR","ASGARD","ZILAN","Oflii","Eye4You","xEvrimx","EFSNBOTS","TurkishPower","Trmehmety","TRmehmet","KINSEI","Redflowers","TURKIYE",
    "TACSIZKRAL","ISouLI","Takumi","SoNNinJa","SOYLUYUM","Hawaggi","SmithKlineTR","YARGIC","CHEf","Chess","OTTOMAN","Test","Hemera2","Szijj","XMEN2","MythWarrior","Kharon","Lennon","DILENCIxOGI",
    "JaWeL","MEZARCI34","Rowss","LASTDANCE","KANUNSUZ","Pailrox","Hassaki","DadaS","WOLF","xFARKETMEZ","MyAE","HaHaHa","Kxe","oVEYTo","EskiciGeldi","mehmet3535","RowsTek","LASTDANCEv3","Vip",
    "ROWS2YEDi","RowsAgla","EnginSertkay","SIKINTILI","lSIKINTILI","CaptanJake","SAR","efsun2","efsun3","EZEL","bufff","SwangeR","Archer","SLOTVERAM","NoNameWar","Akamaru","SOYLU","3GO","Joseph","LASTDANCEv2","Bab",
    "Kaan","Bebek","Dora","PosionFake","BabaMerhaba","ByHefna","dsfasdfsadf","BEST","engntekleyen","EnginSertkaa","LASTDANCEv4","Azazel","xORGENERAL","ShiftDelete","IIAnasoNII","JustWatch","AmaTerrasu","DyCold",
    "Furious","xD","Amansz1Keko","OhCu","OdilNl","AeYEmRe1","BoSs","TARZAN","RiqeL","J3enQ","Indicibus","SarKopat","Orspunami","lVIPl","lLoran","T1T4N","oGeav","lTheGaDDaRl","Aetheaf","Paytak","PaklosSs","Endurance",
    "Hassasium","Ugur","TrOnLaR","Tazia","cozme","OrkunMNTMR","Fre","kutsama1","Baro","TAGOF","DioBrando","BGSLOW","Jonathan","EZ4ENCE1","Extezy","EZ4ENCE2","SVYRM","DemiGod","Pogba","ProfessionaL","LoRdLaRiNeFe",
    "02","D4YI","OLO","POMPA","KUJU","Kirwe","kiriw","Kira","ANASIKICI","TankerMelda","BidonNecmi","Mayhem","Merve","ScorpionJx","ScorpionJr","iboyusikm","PaklosS","Sumela","Josuke","Okuyasu","Babaa","ADALET",
    "SUH","PerfectDewiL","Oglim","Lizzo","ByJamiryoo","CIZBIZ","DeliNoyan","Minto0o","Orkun1910","PaklosSsW","Powerade","HERMES","Ryzen","Boo","PGA","Mata","Nightovel","XXVI","Shaman","CorteX","Muholox","lility",
    "Muholox58","Skayres","TRDrenisH","Matriks","KralMetehan","RaptorBlood","Timmy","TRDrenissH","K3x3","TainTed","EMMI","DyN","BlackBrother","QUAKE","EdiLe","Manly","ZeusunDenizi","Momo","KaiSa","Dio","YAKAMOZ",
    "Eulith","Sensizim","Malphite","SALMAM","G4me0vER","Pinhani","AyiABBAS","FarketmeezWT","EFSUNNNNNNN","TylerDurden","Vaenictas","AyiHASO","CJ","KeNoKe","I3ySurahi","SpeeDs","MaXiMuS","AyiCABBAR",
    "AyiKADO","NoName2","NoName","ged","DeaTLoarD","35FP","Fei","Selininki","vosseL","veselam","xLarge","azer","Lx","GodzillaR34","ALVIN","ReD","Baykan","SOKARCA","malemre","SpyHorn","hucketbead","FUCKER",
    "aaaaaaaaaa","andavalemre","ITeKKrAlI","VesseLam","DarkSide","EternaL","LANADELREY","DIRILISH","Afrodit","bossvero","J3adJ3oy","Tugce","ImMariuana","xResperct","JARDEL","RONIN","Rhott","EFSANExMEMO",
    "Aldarion","TheMoRe","MP3","AyiCEREN","vay","Titanium","SURAVAR","HemeraTEST","Crow","Kwoon","Laviedd","STALLIZE","AyiHUSO","MAREN","AyiMERDO","icz","QuanChe","NetzsChe","Masquerade","SQVALYE","m0naLisa",
    "Despina","Pemions","AYISIkEN","omerhamza","ninjaa","AyiBATU","Sude","Ninjely","EFSUNCUUU","TestaRossa","F458","MoRDoR","SparTacus","F430","Eaglee","MORCENNET","sadsadasdasd","Eagle","GaNDaLF","AyiABBAS2",
    "AyiABBAS3","god5465","godUZI","KING","ReaLxFLU","TestaRoosaa","Sasurata","Carla","Kutsabebeim","Oklipotiko","XiaoYung","LasTShot","PaklosSsWW","Sudee","Fallacy","Paladin","Ayran","Dazzler","Remy","Weakside",
    "Eliena","ZzZxXxZzZ","Umut","CakarLaRRR","Kurosaki","Rhot","AYYILDIZ","sudeee","SadeKek","yuuji","Ninjayimben","Aizen","dilara","BALKAN","SECURITY","Ashe","Duygununki","V1","I3omonti","HoppA","AdALeTT","GRALbiLD","Kuzan",
    "Zeors","SemiGod","AyiSAMAN","KARASURA","AyiKADO1","XxSrSrXx","XxSrSrXx1","DELALE","MagicLord","Hasecan","Chupons","SekoBey","Halil","POSEIDON","Helu","qunToX","EhLiKeyfs","SonSamuRaY","Zeigen","Levi",
    "yuujii","TEKYUMRUK","AVVA","suraaaav","Sekoooo","CaT","WurGunBey","Invincible","Asi","FRENTE","RoyaLs","Asiye","Serchuva","Basim","YARRAAAAAAAA","HyperGhosTR","YARRAAAAA2","YARRAAAAAAA3","M3L1H","EsmaSultan","ssAss",
    "EmonG","TAMADIR","FARM","SEYTAN","BIG","PuF","Alex","ssOss","ThiweT","CardinalRed","SiKiCiSOKUCU","AYIABBASOC","MesquL","Delpwinzy","Snow","MAYKADAPITKA","ssuss","HeLfOrCe","Yujininki","Tamam","fefewfewgege","TheGodofGods",
    "LeuEntrica","ThELF","VARLUKHAN","PATRON","PATRON17","PATRON1","IPuF","AVVArutin","zfsadfsdf","NinjaMP","babafingo","Shaman1","leykon","DaPoet","Atom","Doja","madrid","S4PULTUR4","PoweRShooT","asdsafasfsdf","AmmaTerasu",
    "ZorBaaTR","sadasda","KaRaCeLLaT","UtkuDuman","InsCnmYa","Poncik","DaRK","SaKArYAl1","MuSaLlat","Scary","Orii1928","Elizabet","XKralTRX","35BUCA1928","clibces","ZZoRRo","GeFoRGe","VoNDeRFuLL","HiwatariaKai","qUANTUMFIZIQ",
    "mezarci","Mira","Poncik2","amra","erkumenkozer","ergumenkozer","BASBELASI","SIZOFREN","poncik3","Resque","Strawberry","ponc"
};

CBotPlayer::CBotPlayer()
{
    m_botEvent = nullptr;
}

CBotPlayer::~CBotPlayer()
{
    if (m_botEvent)
        event_cancel(&m_botEvent);
    m_botEvent = nullptr;
}

EVENTINFO(bot_event_info)
{
    DynamicCharacterPtr chBot;
    int iRandom;
    int iCurTime;
    int iLastTime;
    bot_event_info() :
        iRandom(0)
        , iCurTime(0)
        , iLastTime(0)
    {
    }
};

EVENTFUNC(ch_bot_event)
{
    auto info = dynamic_cast<bot_event_info*>(event->info);
    if (!info)
        return 0;
    LPCHARACTER chBot = info->chBot;
    if (!chBot)
        return 0;
    LPDESC d = DESC_MANAGER::instance().FindByCharacterName(chBot->GetName());
    LPCHARACTER tch = d ? d->GetCharacter() : NULL;
    if (tch) {
        CBotPlayerManager::instance().BotBulSil(tch->GetName());
        // CBotPlayerManager1::instance().BotBulSil(tch->GetName());
        sys_err("%s Bot destroy.", tch->GetName());
        return 0;
    }
    if (number(0, 1) == 1) {
        int iDist[4] = { 500, 1000, 3000, 5000 };
        for (int iDistIdx = 2; iDistIdx >= 0; --iDistIdx) {
            for (int iTryCount = 0; iTryCount < 8; ++iTryCount) {
                chBot->SetRotation(number(0, 359));
                float fx, fy;
                float fDist = number(iDist[iDistIdx], iDist[iDistIdx + 1]);
                GetDeltaByDegree(chBot->GetRotation(), fDist, &fx, &fy);
                bool bIsEngelVarMi = false;
                for (int j = 1; j <= 100; ++j) {
                    if (!SECTREE_MANAGER::instance().IsMovablePosition(chBot->GetMapIndex(), chBot->GetX() + (int)fx * j / 100, chBot->GetY() + (int)fy * j / 100)) {
                        bIsEngelVarMi = true;
                        break;
                    }
                }
                if (bIsEngelVarMi)
                    continue;
                int iDestX = chBot->GetX() + (int)fx;
                int iDestY = chBot->GetY() + (int)fy;
                if (chBot->Goto(iDestX, iDestY))
                    chBot->SendMovePacket(FUNC_WAIT, 0, 0, 0, 0);
                // info->iLastTime = get_dword_time();
            }
        }
    }
    return PASSES_PER_SEC(6);
}
teşekkürler
 
Geri
Üst