Advertisement
iRefresh

Untitled

Apr 22nd, 2020
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.96 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <sscanf2>
  4. #include <foreach>
  5. #include <strlib>
  6.  
  7. stock ___Kick___(playerid, force = 0)
  8. {
  9. if(force > 0) return Kick(playerid);
  10. new myip[16];
  11. GetPlayerIp(playerid, myip, sizeof myip);
  12. if(strcmp(myip, "NPC_IP", true) == 0 || IsPlayerNPC(playerid)) return 1;
  13. return Kick(playerid);
  14. }
  15. #if defined _Kick
  16. #undef Kick
  17. #else
  18. #define _Kick
  19. #endif
  20. #define Kick ___Kick___
  21.  
  22.  
  23. forward GetNPCIP(playerid);
  24. public GetNPCIP(playerid)
  25. {
  26. new myip[16];
  27. GetPlayerIp(playerid, myip, sizeof myip);
  28. if(strcmp(myip, "NPC_IP", true) == 0) return 1;
  29. return 0;
  30. }
  31.  
  32. #define SERVER_IP "localhost"
  33. #define SERVER_NPC_IP "localhost"
  34. #define FILTERSCRIPT
  35. new AllowJustOne = 0;
  36. new ALLOWED = 0;
  37. new Server_Slots = 0;
  38. new ThisBotLevel = -1;
  39. new PlayerRequest[MAX_PLAYERS];
  40. new MyLevel[MAX_PLAYERS];
  41. new NOT_NOW = -1;
  42. native AddServerBot(id, name[]);
  43. native TogglePlayerFakePing(playerid, bool:toggle);
  44. native SetPlayerFakePing(playerid, ping);
  45. native SetMaxPlayers(number);
  46. native SetMaxNPCs(number);
  47. native SetFakeArmour(playerid, armour);
  48. #define MAX_BOTS 1000
  49.  
  50. public OnFilterScriptInit()
  51. {
  52. print("* Fake Players by [RW]Robi loaded.");
  53. new svip[32];
  54. GetServerVarAsString("bind", svip, 32);
  55. printf("* IP server: %s", svip);
  56. if(strcmp(svip, SERVER_IP, true) != 0 || strlen(svip) < 1)
  57. {
  58. return print("* Server-ul tau nu are permisiunea de a adauga jucatori falsi!");
  59. }
  60. else
  61. {
  62. ALLOWED = 1;
  63. }
  64. SetTimer("BotsTimer", 100,1);
  65. Server_Slots = GetServerVarAsInt("maxplayers");
  66. SetMaxNPCs(Server_Slots);
  67. print("* Serverul tau are permisiunea de a adauga jucatori falsi!");
  68. return 1;
  69. }
  70. CMD:addplayer(playerid, params[])
  71. {
  72. SetMaxNPCs(Server_Slots);
  73. if(ALLOWED == 0) return 0;
  74. if(!IsPlayerAdmin(playerid)) return 0;
  75. if(AllowJustOne > MAX_BOTS)
  76. return SendClientMessage(playerid, -1, "Esti Sebastian?.");
  77. if(NOT_NOW != -1) return SendClientMessage(playerid, -1, "Un bot deja a fost adaugat in query, asteapta ca acesta sa se conecteze.");
  78. new name[MAX_PLAYERS],level;
  79. if(sscanf(params, "s[32]i", name, level)) return SendClientMessage(playerid, -1, "/addplayer [nume] [level]");
  80. ThisBotLevel = level;
  81. ConnectNPC(name, "idle");
  82. SendClientMessage(playerid, -1, sprintf("-> %s -> %d", name, level));
  83. AllowJustOne++;
  84. NOT_NOW = 1;
  85. return 1;
  86. }
  87. CMD:botkick(playerid, params[])
  88. {
  89. if(ALLOWED == 0) return 0;
  90. if(!IsPlayerAdmin(playerid)) return 0;
  91. new id;
  92. if(sscanf(params, "u", id)) return SendClientMessage(playerid, -1, "/botkick [id / nume bot]");
  93. if(!IsPlayerFake(id)) return SendClientMessage(playerid, -1, "Nu e bot");
  94. new name[32];
  95. GetPlayerName(id, name, sizeof name);
  96. SendClientMessage(playerid, -1, sprintf("%s -> kick!", name));
  97. Kick(id);
  98. return 1;
  99. }
  100. CMD:randombotkick(playerid, params[])
  101. {
  102. if(ALLOWED == 0) return 0;
  103. if(!IsPlayerAdmin(playerid)) return 0;
  104. new bots = 0;
  105. foreach(Character, i) { if(IsPlayerFake(i)) { bots ++; } }
  106. new random_salt = 1+random(bots);
  107. bots = 0;
  108. foreach(Character, i)
  109. {
  110. if(IsPlayerFake(i))
  111. {
  112. bots++;
  113. if(random_salt == bots)
  114. {
  115. new name[32];
  116. GetPlayerName(i, name, sizeof name);
  117. SendClientMessage(playerid, -1, sprintf("%s -> kick!", name));
  118. Kick(i);
  119. return 1;
  120. }
  121. }
  122. }
  123. return 1;
  124. }
  125. public OnPlayerConnect(playerid)
  126. {
  127. PlayerRequest[playerid] = -1;
  128. MyLevel[playerid] = 0;
  129. if(IsPlayerNPC(playerid)) { PlayerRequest[playerid] = 2; }
  130. if(IsPlayerFake(playerid))
  131. {
  132. MyLevel[playerid] = ThisBotLevel;
  133. SetPlayerScore(playerid, MyLevel[playerid]);
  134. NOT_NOW = -1;
  135. }
  136. new bots = 0;
  137. foreach(Character, i)
  138. {
  139. if(IsPlayerFake(i)) bots++;
  140. }
  141. SetMaxPlayers(Server_Slots+bots);
  142. return 1;
  143. }
  144. public OnPlayerDisconnect(playerid, reason)
  145. {
  146. NOT_NOW = -1;
  147. PlayerRequest[playerid] = -1;
  148. new bots = -1;
  149. foreach(Character, i)
  150. {
  151. if(IsPlayerFake(i)) bots++;
  152. }
  153. SetMaxPlayers(Server_Slots+bots);
  154. return 1;
  155. }
  156. new every5sec = 0;
  157. forward BotsTimer();
  158. public BotsTimer()
  159. {
  160. every5sec++;
  161. new bots = 0;
  162. foreach(Character, playerid)
  163. {
  164. if(IsPlayerNPC(playerid))
  165. {
  166. bots++;
  167. }
  168. if(IsPlayerFake(playerid))
  169. {
  170. new ping = playerid + random(20)+random(60);
  171. if(ping > 100)
  172. ping = ping - random(30);
  173. if(PlayerRequest[playerid] > 0) PlayerRequest[playerid]--;
  174. if(PlayerRequest[playerid] == 0)
  175. {
  176. PlayerRequest[playerid] = -1;
  177. new name[MAX_PLAYER_NAME+1];
  178. GetPlayerName(playerid, name, sizeof name);
  179. AddServerBot(playerid, name);
  180.  
  181. SetPlayerFakePing(playerid, ping);
  182. }
  183. if(every5sec == 5)
  184. {
  185. SetPlayerFakePing(playerid, ping);
  186. }
  187. SetPlayerColor(playerid, 0xFFFFFFFF);
  188. SetFakeArmour(playerid, 0);
  189. }
  190. }
  191. SetMaxPlayers(Server_Slots+bots);
  192. if(every5sec >= 5) every5sec = 0;
  193.  
  194. return 1;
  195. }
  196. IsPlayerFake(playerid)
  197. {
  198. new IP[16];
  199. GetPlayerIp(playerid, IP, sizeof IP);
  200. if(strcmp(IP, SERVER_NPC_IP, true) == 0) return true;
  201. else return false;
  202. }
  203.  
  204. /*CMD:addrandomplayer(playerid, params[]) {
  205. new string[128];
  206. if(lastPlayerFakeOffset >= sizeof FakePlayers)
  207. return 0;
  208. format(string, sizeof string, "%s %d", FakePlayers[lastPlayerFakeOffset], 3+random(4));
  209. lastPlayerFakeOffset++;
  210. return cmd_addplayer(playerid, string);
  211. }*/
  212. /*
  213.  
  214. // Sus de tot in gm de preferat dupa ultimul #include
  215.  
  216. IsPlayerFake(playerid)
  217. {
  218. new myip[16];
  219. GetPlayerIp(playerid, myip, sizeof myip);
  220. if(strcmp(myip, "NPC_IP", true) == 0) return 1;
  221. return 0;
  222. }
  223.  
  224. stock ___Kick___(playerid, force = 0)
  225. {
  226. if(force > 0) return Kick(playerid);
  227. new myip[16];
  228. GetPlayerIp(playerid, myip, sizeof myip);
  229. if(strcmp(myip, "NPC_IP", true) == 0 || IsPlayerNPC(playerid)) return 1;
  230. return Kick(playerid);
  231. }
  232. #if defined _Kick
  233. #undef Kick
  234. #else
  235. #define _Kick
  236. #endif
  237. #define Kick ___Kick___
  238.  
  239.  
  240. forward GetNPCIP(playerid);
  241. public GetNPCIP(playerid)
  242. {
  243. new myip[16];
  244. GetPlayerIp(playerid, myip, sizeof myip);
  245. if(strcmp(myip, "NPC_IP", true) == 0) return 1;
  246. return 0;
  247. }
  248. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement