Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- #include <foreach>
- #include <strlib>
- stock ___Kick___(playerid, force = 0)
- {
- if(force > 0) return Kick(playerid);
- new myip[16];
- GetPlayerIp(playerid, myip, sizeof myip);
- if(strcmp(myip, "NPC_IP", true) == 0 || IsPlayerNPC(playerid)) return 1;
- return Kick(playerid);
- }
- #if defined _Kick
- #undef Kick
- #else
- #define _Kick
- #endif
- #define Kick ___Kick___
- forward GetNPCIP(playerid);
- public GetNPCIP(playerid)
- {
- new myip[16];
- GetPlayerIp(playerid, myip, sizeof myip);
- if(strcmp(myip, "NPC_IP", true) == 0) return 1;
- return 0;
- }
- #define SERVER_IP "localhost"
- #define SERVER_NPC_IP "localhost"
- #define FILTERSCRIPT
- new AllowJustOne = 0;
- new ALLOWED = 0;
- new Server_Slots = 0;
- new ThisBotLevel = -1;
- new PlayerRequest[MAX_PLAYERS];
- new MyLevel[MAX_PLAYERS];
- new NOT_NOW = -1;
- native AddServerBot(id, name[]);
- native TogglePlayerFakePing(playerid, bool:toggle);
- native SetPlayerFakePing(playerid, ping);
- native SetMaxPlayers(number);
- native SetMaxNPCs(number);
- native SetFakeArmour(playerid, armour);
- #define MAX_BOTS 1000
- public OnFilterScriptInit()
- {
- print("* Fake Players by [RW]Robi loaded.");
- new svip[32];
- GetServerVarAsString("bind", svip, 32);
- printf("* IP server: %s", svip);
- if(strcmp(svip, SERVER_IP, true) != 0 || strlen(svip) < 1)
- {
- return print("* Server-ul tau nu are permisiunea de a adauga jucatori falsi!");
- }
- else
- {
- ALLOWED = 1;
- }
- SetTimer("BotsTimer", 100,1);
- Server_Slots = GetServerVarAsInt("maxplayers");
- SetMaxNPCs(Server_Slots);
- print("* Serverul tau are permisiunea de a adauga jucatori falsi!");
- return 1;
- }
- CMD:addplayer(playerid, params[])
- {
- SetMaxNPCs(Server_Slots);
- if(ALLOWED == 0) return 0;
- if(!IsPlayerAdmin(playerid)) return 0;
- if(AllowJustOne > MAX_BOTS)
- return SendClientMessage(playerid, -1, "Esti Sebastian?.");
- if(NOT_NOW != -1) return SendClientMessage(playerid, -1, "Un bot deja a fost adaugat in query, asteapta ca acesta sa se conecteze.");
- new name[MAX_PLAYERS],level;
- if(sscanf(params, "s[32]i", name, level)) return SendClientMessage(playerid, -1, "/addplayer [nume] [level]");
- ThisBotLevel = level;
- ConnectNPC(name, "idle");
- SendClientMessage(playerid, -1, sprintf("-> %s -> %d", name, level));
- AllowJustOne++;
- NOT_NOW = 1;
- return 1;
- }
- CMD:botkick(playerid, params[])
- {
- if(ALLOWED == 0) return 0;
- if(!IsPlayerAdmin(playerid)) return 0;
- new id;
- if(sscanf(params, "u", id)) return SendClientMessage(playerid, -1, "/botkick [id / nume bot]");
- if(!IsPlayerFake(id)) return SendClientMessage(playerid, -1, "Nu e bot");
- new name[32];
- GetPlayerName(id, name, sizeof name);
- SendClientMessage(playerid, -1, sprintf("%s -> kick!", name));
- Kick(id);
- return 1;
- }
- CMD:randombotkick(playerid, params[])
- {
- if(ALLOWED == 0) return 0;
- if(!IsPlayerAdmin(playerid)) return 0;
- new bots = 0;
- foreach(Character, i) { if(IsPlayerFake(i)) { bots ++; } }
- new random_salt = 1+random(bots);
- bots = 0;
- foreach(Character, i)
- {
- if(IsPlayerFake(i))
- {
- bots++;
- if(random_salt == bots)
- {
- new name[32];
- GetPlayerName(i, name, sizeof name);
- SendClientMessage(playerid, -1, sprintf("%s -> kick!", name));
- Kick(i);
- return 1;
- }
- }
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- PlayerRequest[playerid] = -1;
- MyLevel[playerid] = 0;
- if(IsPlayerNPC(playerid)) { PlayerRequest[playerid] = 2; }
- if(IsPlayerFake(playerid))
- {
- MyLevel[playerid] = ThisBotLevel;
- SetPlayerScore(playerid, MyLevel[playerid]);
- NOT_NOW = -1;
- }
- new bots = 0;
- foreach(Character, i)
- {
- if(IsPlayerFake(i)) bots++;
- }
- SetMaxPlayers(Server_Slots+bots);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- NOT_NOW = -1;
- PlayerRequest[playerid] = -1;
- new bots = -1;
- foreach(Character, i)
- {
- if(IsPlayerFake(i)) bots++;
- }
- SetMaxPlayers(Server_Slots+bots);
- return 1;
- }
- new every5sec = 0;
- forward BotsTimer();
- public BotsTimer()
- {
- every5sec++;
- new bots = 0;
- foreach(Character, playerid)
- {
- if(IsPlayerNPC(playerid))
- {
- bots++;
- }
- if(IsPlayerFake(playerid))
- {
- new ping = playerid + random(20)+random(60);
- if(ping > 100)
- ping = ping - random(30);
- if(PlayerRequest[playerid] > 0) PlayerRequest[playerid]--;
- if(PlayerRequest[playerid] == 0)
- {
- PlayerRequest[playerid] = -1;
- new name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid, name, sizeof name);
- AddServerBot(playerid, name);
- SetPlayerFakePing(playerid, ping);
- }
- if(every5sec == 5)
- {
- SetPlayerFakePing(playerid, ping);
- }
- SetPlayerColor(playerid, 0xFFFFFFFF);
- SetFakeArmour(playerid, 0);
- }
- }
- SetMaxPlayers(Server_Slots+bots);
- if(every5sec >= 5) every5sec = 0;
- return 1;
- }
- IsPlayerFake(playerid)
- {
- new IP[16];
- GetPlayerIp(playerid, IP, sizeof IP);
- if(strcmp(IP, SERVER_NPC_IP, true) == 0) return true;
- else return false;
- }
- /*CMD:addrandomplayer(playerid, params[]) {
- new string[128];
- if(lastPlayerFakeOffset >= sizeof FakePlayers)
- return 0;
- format(string, sizeof string, "%s %d", FakePlayers[lastPlayerFakeOffset], 3+random(4));
- lastPlayerFakeOffset++;
- return cmd_addplayer(playerid, string);
- }*/
- /*
- // Sus de tot in gm de preferat dupa ultimul #include
- IsPlayerFake(playerid)
- {
- new myip[16];
- GetPlayerIp(playerid, myip, sizeof myip);
- if(strcmp(myip, "NPC_IP", true) == 0) return 1;
- return 0;
- }
- stock ___Kick___(playerid, force = 0)
- {
- if(force > 0) return Kick(playerid);
- new myip[16];
- GetPlayerIp(playerid, myip, sizeof myip);
- if(strcmp(myip, "NPC_IP", true) == 0 || IsPlayerNPC(playerid)) return 1;
- return Kick(playerid);
- }
- #if defined _Kick
- #undef Kick
- #else
- #define _Kick
- #endif
- #define Kick ___Kick___
- forward GetNPCIP(playerid);
- public GetNPCIP(playerid)
- {
- new myip[16];
- GetPlayerIp(playerid, myip, sizeof myip);
- if(strcmp(myip, "NPC_IP", true) == 0) return 1;
- return 0;
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement