Szerző Téma: Chat Bot  (Megtekintve 550 alkalommal)

Nem elérhető Stramm

  • 193
    • Profil megtekintése
Chat Bot
« Dátum: 2013. június 05. - 19:39:28 »
0 Show voters
Üdv van nekem GameStar Által írt chat botom: http://pastebin.com/sFuaiEDz
 
   
    #include <a_samp>
     
    // bot szkriptm készítette Gamestar
    // a botnak nincs egyedi színe, mivel a GetPlayerColor() hibás.
    // ez a filterszkript nem volt tesztelve!
    // az admin felület még fejlesztés alatt áll!
     
    #define BOTNAME \"Szerverbot\" // a bot neve
     
    #define SpeakGeneral 1 // általános beszéd
    #define SpeakTime 30000 // 30 másodpercenként fog általános dumát mondani
    #define ConnectMode 1 // köszönés (0=kikapcsolás)
    #define DisconnectMode 1 // elköszönés (0=kikapcsolás)
    #define WarningMode 1 // figyelmeztetés káromkodás esetén (0=kikapcsolás)
    #define AdminMode 0 // adminisztrálhatóság bekapcsolása. (0=kikapcsolás)
     
    #if AdminMode==1
    #include <zcmd>
    #endif
     
    main() {
            print(\".:: Serverbot bY Gamestar ::.\");
    }
     
    new BotConnectMessages[][]={
    {\"hello\"},
    {\"szia\"},
    {\"üdv\"}
    //stb.
    };
     
    new BotDisonnectMessages[][]={
    {\"viszlát\"},
    {\"reméljük visszagyüssz\"}
    //stb.
    };
     
    new BotGeneralMessages[][]={
    {\"hogy vagytok?\"},
    {\"valamit mondanom kell...\"},
    {\"unatkozom,és Ti?\"}
    //stb.
    };
     
    new BotWarningMessages[][]={
    {\"vigyázz magadra fiam!\"},
    {\"vigyázz, mit beszélsz!\"}
    //stb.
    };
     
    new BlockedWords[][]={
    {\"buzi\"},
    {\"fasz\"},
    {\"köcsög\"},
    {\"kurva\"}
    //stb.
    };
     
    new SpeakTimer;
    new WarnTimer;
     
    public OnFilterScriptInit(){
            #if SpeakGeneral==1
            SpeakTimer=SetTimer(\"SpeakingBot\",SpeakTime,1);
            #endif
            return 1;
    }
     
    public OnFilterScriptExit(){
            KillTimer(SpeakTimer);
            return 1;
    }
     
    public SpeakingBot();
    public SpeakingBot()return SpeakBot(2);
     
    //ezzel a függvénnyel beszéltethetjük
    stock SpeakBot(type)
    {
            new x;
            for(x=0; x<GetMaxPlayers(); x++) if(IsPlayerConnected(x)) break;
            switch(type) {
                    case 0: { // köszönés       
                            SpeakBotEx(BotConnectMessages[random(sizeof BotConnectMessages)][0]);
                    }
                    case 1: { // elköszönés
                            SpeakBotEx(BotDisonnectMessages[random(sizeof BotDisonnectMessages)][0]);
                    }
                    case 2: { // általános beszólogatások
                            SpeakBotEx(BotGeneralMessages[random(sizeof BotGeneralMessages)][0]);
                    }
                    case 3: { // figyelmeztetés
                            SpeakBotEx(BotWarningMessages[random(sizeof BotWarningMessages)][0]);
                    }     
            }
            return 1;
    }
     
    // ezzel bármilyen szöveg elküldhetõ...
    stock SpeakBotEx(message[]) {
            new x;
            for(x=0; x<GetMaxPlayers(); x++) if(IsPlayerConnected(x))break;
            new name[MAX_PLAYER_NAME];
            GetPlayerName(x,name,sizeof(name));
            SetPlayerName(x,BOTNAME);
            SendPlayerMessageToAll(x,message);
            SetPlayerName(x,name);
            return 1;
    }
     
    public OnPlayerConnect(playerid) {
            #if ConnectMode==1
            SpeakBot(0);
            #endif
            return 1;
    }
     
    public OnPlayerDisconnect(playerid, reason) {
            #pragma unused reason
            #if DisconnectMode==1
            SpeakBot(1);
            #endif
            return 1;
    }
     
    public OnPlayerText(playerid,text[]) {
            #if WarningMode==1
            for(new x=0; x<sizeof(BlockedWords); x++) if(!strfind(text,BlockedWords
  • [0])) if(!WarnTimer) WarnTimer=SetTimer(\"SpeakWarningToPlayer\",2000,0);

            #endif
            return 1;
    }
     
    public SpeakWarningToPlayer();
    public SpeakWarningToPlayer() {
            WarnTimer=-1;
            return SpeakBot(3);
    }

 
Ezzel az a bug áll fent hogy PL : van fent 2 player és annak a nevét adja a másik playernak aki elöször csatlakozott fel
Más látja az igazi nevem de nekem annak a playernak a nevét írja ki aki elösször fent volt...
Ezt a bugot valaki kijavítaná?? 

Chat Bot
« Válasz #1 Dátum: 2013. június 06. - 00:18:31 »
0 Show voters
Mivel az akkori samp-ban nem volt meg az a lehetõség, hogy 1 szöveget több színûre csinálj, ezért ha belenézel a scriptbe, GameStar úgy odlotta meg, hogy átmenetileg megváltozik a játékos neve a bot nevére, és a játékos ír üzenetet (mintha te írnád) SendPlayerMessage függvénnyel csak úgy látod mintha a bot írná, mert addig megváltozik a neved. Annyit tudok ajánlani, hogy keress egy olyan scriptet ahol már a chatbotban nem ez a megoldás van, hanem a több színû szöveg.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal