Advertisement
Guest User

Untitled

a guest
Jun 25th, 2014
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.43 KB | None | 0 0
  1. #define Schwarz 0x000000FF
  2. #define Rot 0xE10000FF
  3. #define Gelb 0xFFE600FF
  4. #define HBlau 0x00FFFFFF
  5. #define DBlau 0x0000FFFF
  6. #define Blau 0x2E9AFEFF
  7. #define HGruen 0x00FF00FF
  8. #define Orange 0xFFAB00FF
  9. #define Weiss 0xFFFFFFFF
  10. #define Grau 0xDCDCDCFF
  11. #define Gold 0xD4A017AA
  12. #define Lila 0x7800FFFF
  13. #define Pink 0xFF00CDFF
  14. #define Gruen 0x009F32FF
  15.  
  16.  
  17. #define MAX_PING 600 // Maximaler Ping
  18. #define MAX_VEHSPEED 200 // Vehicle-Speed ( am besten so lassen! )
  19. #define MAX_PLAYERSPEED 65 // Runningspeed ( am besten so lassen! )
  20. #define ANTI_SPAWNKILL 5 // 5 Sekunden Schutz
  21. #define SPAMLIMIT 2 // 2 Sekunden ( am besten so lassen! )
  22. #define MAX_CBUG 1 // Maximale C-Bugs ( am besten so lassen! )
  23. #define Tuninghack //Wenn definiert, dann wird Spieler wegen Tuning im Interior 0 gekickt!
  24.  
  25. new fmex[128];
  26. #define SCMToAllF(%0,%1,%2) format(fmex,128,%1,%2) && SendClientMessageToAll(%0, fmex)
  27. #define SCMF(%0,%1,%2) format(fmex,128,%2) && SendClientMessage(%0,%1,fmex)
  28. #define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  29.  
  30.  
  31. forward AC_AntiCheatTimer();
  32. forward AC_AntiSpawnKill(playerid);
  33. forward AC_SpamReset(playerid);
  34. forward AC_pos(playerid);
  35. forward AC_ask(playerid);
  36. forward AC_Desktop_Function(playerid);
  37. forward AC_Kicke(playerid);
  38. forward AC_CheckWeapon(playerid);
  39. forward AC_CheckAim(playerid);
  40. forward AC_OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart);
  41. new Float:ACOldHealth[MAX_PLAYERS],
  42. Float:ACOldArmour[MAX_PLAYERS],
  43. ACNewMoney[MAX_PLAYERS],
  44. Float:ACNewArmour[MAX_PLAYERS],
  45. Float:ACNewHealth[MAX_PLAYERS],
  46. SpawnKillTimer[MAX_PLAYERS],
  47. SpamCount[MAX_PLAYERS],
  48. CBugCount[MAX_PLAYERS],
  49. Waffe[MAX_PLAYERS][47],
  50. nwh[MAX_PLAYERS][47],
  51. Shot[MAX_PLAYERS],
  52. ShotTime[MAX_PLAYERS],
  53. Float:OldPos[MAX_PLAYERS][3],
  54. Float:NewPos[MAX_PLAYERS][3],
  55. switched[MAX_PLAYERS],
  56. posbyserver[MAX_PLAYERS],
  57. AC_start[MAX_PLAYERS],
  58. Float:vPos[MAX_VEHICLES][4],
  59. Float:phealth[MAX_PLAYERS],
  60. Float:parmour[MAX_PLAYERS],
  61. AC_Desktop_Check[MAX_PLAYERS],
  62. AC_Desktop_Status[MAX_PLAYERS],
  63. AC_Desktop_Timer[MAX_PLAYERS],
  64. AC_Desktop_Timer_Started[MAX_PLAYERS],
  65. Desk[MAX_PLAYERS],
  66. EnterLockedV[MAX_PLAYERS],
  67. freezed[MAX_PLAYERS],
  68. AC_skin[MAX_PLAYERS],
  69. NoReloading[MAX_PLAYERS],
  70. CurrentWeapon[MAX_PLAYERS],
  71. CurrentAmmo[MAX_PLAYERS];
  72.  
  73. forward AC_OnGameModeInit();
  74. forward AC_OnPlayerDeath(playerid,killerid,reason);
  75. forward AC_OnPlayerText(playerid,text[]);
  76. forward AC_OnPlayerEnterVehicle(playerid,vehicleid,ispassenger);
  77. forward AC_OnVehicleMod(playerid,vehicleid,componentid);
  78. forward AC_OnVehicleRespray(playerid,vehicleid,color1,color2);
  79. forward AC_OnVehiclePaintjob(playerid,vehicleid,paintjobid);
  80. forward AC_OnPlayerKeyStateChange(playerid,newkeys,oldkeys);
  81. forward AC_OnPlayerUpdate(playerid);
  82. forward AC_OnPlayerDisconnect(playerid,reason);
  83. forward AC_OnPlayerExitVehicle(playerid,vehicleid);
  84. forward AC_OnPlayerStateChange(playerid,newstate,oldstate);
  85. forward GivePlayerMoneyEx(playerid,money);
  86. forward SetPlayerMoneyEx(playerid,money);
  87. forward GivePlayerHealthEx(playerid,Float:health);
  88. forward SetPlayerHealthEx(playerid,Float:health);
  89. forward GivePlayerArmourEx(playerid,Float:armour);
  90. forward SetPlayerArmourEx(playerid,Float:armour);
  91. forward GivePlayerWeaponEx(playerid,Gun,Muni);
  92. forward SetPlayerPosEx(playerid,Float:x,Float:y,Float:z);
  93. forward TogglePlayerControllableEx(playerid,toggle);
  94. forward SetPlayerSkinEx(playerid,skinid);
  95.  
  96.  
  97.  
  98. new badword[][] = {
  99. "Opfer","Lauch","Hure","Hurre","Nutte","Schlampe","Hurensohn","Hurrensohn","Wixxer","Wichser","Bastard","Bastart","Missgeburt","Hitler",
  100. "Hundesohn","Pisser","Noob","Arschloch","Bitch","Hitler","Fotze","Nazi","Nigga","Niggah"
  101. };
  102.  
  103.  
  104.  
  105. forward AC_OnPlayerConnect(playerid);
  106. public AC_OnPlayerConnect(playerid)
  107. {
  108. new string[64], plname[MAX_PLAYER_NAME];
  109. GetPlayerName(playerid, plname, sizeof(plname));
  110. format(string, sizeof(string), "Accounts/%s.ini", plname);
  111. print(string);
  112. if(!dini_Exists(string))return gPlayerAccount[playerid] = 0, print("PlayerAccount 0");
  113. gPlayerAccount[playerid] = 1, print("PlayerAccount 1");
  114. return 1;
  115. }
  116. Function OnPlayerConnect(playerid)
  117. {
  118. AC_start[playerid] = 0,Desk[playerid] = 0;
  119. switched[playerid] = 0,EnterLockedV[playerid] = 0;
  120. Shot[playerid] = 0, ShotTime[playerid] = 0;
  121. SetPlayerHealthEx(playerid,100);
  122. AC_Desktop_Check[playerid] = 0,AC_Desktop_Timer_Started[playerid] = 0,AC_Desktop_Status[playerid] = 0;
  123. }
  124. Function OnPlayerDisconnect(playerid, reason)
  125. {
  126. if(IsPlayerInAnyVehicle(playerid))return 1;
  127. new Float:x,Float:y,Float:z,vehicleid = GetPlayerVehicleID(playerid);
  128. GetVehiclePos(vehicleid,x,y,z);
  129. vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
  130. if(AC_Desktop_Timer_Started[playerid] == 1) { KillTimer(AC_Desktop_Timer[playerid]); }
  131. }
  132. Function OnPlayerDeath(playerid, killerid, reason)
  133. {
  134. if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER)
  135. {
  136. new vehicleid,vehiclemodel;
  137. vehicleid = GetPlayerVehicleID(killerid);
  138. vehiclemodel = GetVehicleModel(vehicleid);
  139. if(IsPlayerInAnyVehicle(playerid)) { return true; }
  140. if(vehiclemodel == 425) { return true; } // Hunter
  141. if(vehiclemodel == 432) { return true; } // Rhino
  142. if(vehiclemodel == 447) { return true; } // Seasparrow
  143. if(vehiclemodel == 476) { return true; } // Rustler
  144. if(vehiclemodel == 520) { return true; } // Hydra
  145. return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Driveby!",AC_Name(killerid)),Kicks(killerid);
  146. }
  147. }
  148. Function OnPlayerSpawn(playerid)
  149. {
  150. TogglePlayerControllableEx(playerid,1);
  151. parmour[playerid] = 0,phealth[playerid] = 0;
  152. Waffe[playerid][0] = 1, Waffe[playerid][1] = 1;
  153. SetPlayerHealthEx(playerid,10000000);
  154. SpawnKillTimer[playerid] = SetTimerEx("AC_AntiSpawnKill",888*ANTI_SPAWNKILL,false,"i",playerid);
  155. }
  156.  
  157. Function OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  158. {
  159. if(((oldkeys & KEY_FIRE) || (oldkeys==KEY_FIRE)) && ((newkeys & KEY_CROUCH) || (newkeys==KEY_CROUCH)) && (!IsPlayerInAnyVehicle(playerid)))
  160. {
  161. CBugCount[playerid] ++;
  162. if(CBugCount[playerid] >= MAX_CBUG)SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: C-Bug!",AC_Name(playerid)),Kicks(playerid);
  163. }
  164. }
  165. Function OnPlayerStateChange(playerid, newstate, oldstate)
  166. {
  167. if(oldstate == PLAYER_STATE_ONFOOT && (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER))
  168. {
  169. if(EnterLockedV[playerid] <= 0)return 1;
  170. if(EnterLockedV[playerid] == GetPlayerVehicleID(playerid))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Enter locked Vehicle!",AC_Name(playerid));
  171. }
  172. }
  173. public OnGameModeInit()
  174. {
  175. SetTimer("AC_AntiCheatTimer",100,true);
  176. SetTimer("AC_CheckWeapon",888*2,true);
  177. }
  178. Function OnVehicleRespray(playerid,vehicleid,color1,color2)
  179. {
  180. #if defined Tuninghack
  181. if(GetPlayerInterior(playerid) == 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",AC_Name(playerid)),Kicks(playerid);
  182. #endif
  183. return 1;
  184. }
  185.  
  186. Function OnVehiclePaintjob(playerid,vehicleid,paintjobid)
  187. {
  188. #if defined Tuninghack
  189. if(GetPlayerInterior(playerid) == 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",AC_Name(playerid)),Kicks(playerid);
  190. #endif
  191. return 1;
  192. }
  193. Function OnPlayerText(playerid, text[])
  194. {
  195. if(AC_anty(text))SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: IP / Adresse.",AC_Name(playerid)),Kicks(playerid);
  196. SpamCount[playerid] ++;
  197. SetTimerEx("AC_SpamReset",888*SPAMLIMIT,false,"i",playerid);
  198. if(SpamCount[playerid] > SPAMLIMIT)return SpamCount[playerid] = 0, SCMToAllF(Rot,"Spieler '%s' wurde von Server gekickt. Grund: Spam!",AC_Name(playerid)),Kicks(playerid);
  199. new ir = 0;
  200. for(;ir<sizeof(badword);ir++)if(strfind(text,badword[ir],false) != -1)SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Badword!",AC_Name(playerid)),Kicks(playerid);
  201. }
  202.  
  203. Function OnVehicleMod(playerid,vehicleid,componentid)
  204. {
  205. #if defined Tuninghack
  206. if(GetPlayerInterior(playerid) == 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",AC_Name(playerid)),Kicks(playerid);
  207. #endif
  208. return 1;
  209. }
  210.  
  211. public OnPlayerUpdate(playerid)
  212. {
  213. if(Desktop_Timer_Started[playerid] == 0)
  214. {
  215. Desktop_Timer[playerid] = SetTimerEx("Desktop_Function",1000,1,"d",playerid);
  216. Desktop_Timer_Started[playerid] = 1;
  217. }
  218. Desktop_Check[playerid] += 1;
  219. if(Desk[playerid] >= 1)Desk[playerid] = 0;
  220. new lib[32], name[32];
  221. if(GetPlayerAnimationIndex(playerid))
  222. {
  223. GetAnimationName(GetPlayerAnimationIndex(playerid),lib,32,name,32);
  224. if(!strcmp(lib, "SWIM", true && !IsPlayerInWater(playerid)))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Flyhack!",AC_Name(playerid)),Kicks(playerid);
  225. }
  226. if(AC_Desktop_Timer_Started[playerid] == 0)
  227. {
  228. AC_Desktop_Timer[playerid] = SetTimerEx("Desktop_Function",888,1,"d",playerid);
  229. AC_Desktop_Timer_Started[playerid] = 1;
  230. }
  231. AC_Desktop_Check[playerid] += 1;
  232. new keys, ud, lr;
  233. GetPlayerKeys(playerid, keys, ud, lr);
  234. if((ud != 128 && ud != 0 && ud != -128) || (lr != 128 && lr != 0 && lr != -128))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Joypad!",AC_Name(playerid)),Kicks(playerid);
  235. return 1;
  236. }
  237.  
  238. stock Float:AC_Distance(Float:X, Float:Y, Float:Z, Float:PointX, Float:PointY, Float:PointZ) return floatsqroot(floatadd(floatadd(floatpower(floatsub(X, PointX), 2.0), floatpower(floatsub(Y, PointY), 2.0)), floatpower(floatsub(Z, PointZ), 2.0)));
  239. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  240. {
  241. if((sound[playerid]) == 1)
  242. {
  243. PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
  244. PlayerPlaySound(playerid,17802,0.0,0.0,0.0);
  245. return 1;
  246. }
  247. if(issuerid == INVALID_PLAYER_ID)return 1;
  248. new Float:Pos_AA[3],Float:Pos_A[3],Float:d; GetPlayerPos(playerid,Pos_AA[0],Pos_AA[1],Pos_AA[2]),GetPlayerPos(issuerid,Pos_A[0],Pos_A[1],Pos_A[2]);
  249. d = AC_Distance(Pos_AA[0],Pos_AA[1],Pos_AA[2],Pos_A[0],Pos_A[1],Pos_A[2]);
  250. if(d >= 30 && GetPlayerWeapon(issuerid) != 34)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Distancehack!",AC_Name(issuerid)),Kicks(issuerid);
  251. return 1;
  252. }
  253. //=*=*=*=*=**=*=*=*=*=*=*=*=*=*==*=*=*=*=*=*=*=*=*=*==*=*=*=*=*=* Anti Cheat *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=**=
  254. stock Float:AC_GetDistanceBetweenPoints(Float:rx1,Float:ry1,Float:rz1,Float:rx2,Float:ry2,Float:rz2){
  255. return floatadd(floatadd(floatsqroot(floatpower(floatsub(rx1,rx2),2)),floatsqroot(floatpower(floatsub(ry1,ry2),2))),floatsqroot(floatpower(floatsub(rz1,rz2),2)));
  256. }
  257.  
  258. public AC_AntiSpawnKill(playerid){
  259. new Float:x,Float:y,Float:z;
  260. GetPlayerPos(playerid,x,y,z);
  261. OldPos[playerid][0] = x,OldPos[playerid][1] = y,OldPos[playerid][2] = z;
  262. switched[playerid] = 1;
  263. KillTimer(SpawnKillTimer[playerid]);
  264. SetPlayerHealthEx(playerid,100),SetTimerEx("AC_ask",888*2,false,"i",playerid);
  265. return 1;
  266. }
  267.  
  268. public AC_SpamReset(playerid)
  269. {
  270. SpamCount[playerid] = 0,CBugCount[playerid] = 0;
  271. return 1;
  272. }
  273.  
  274. public AC_AntiCheatTimer(){
  275. new i = 0,Float:health,Float:armour,surf;
  276. for(; i<MAX_PLAYERS; i++)
  277. {
  278. if(!IsPlayerConnected(i))continue;
  279. if(AC_start[i] == 0)continue;
  280. if(Desk[i] >= 1)continue;
  281. if(IsPlayerNPC(i))continue;
  282. GetPlayerHealth(i,health);
  283. GetPlayerArmour(i,armour);
  284. new SAC_Name[MAX_PLAYER_NAME]; GetPlayerName(i,SAC_Name,MAX_PLAYER_NAME);
  285. if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Jetpack!",SAC_Name),Kicks(i);
  286. else if(GetPlayerPing(i) > MAX_PING)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Zu hoher Ping! ( %i / %i )",SAC_Name,GetPlayerPing(i),MAX_PING),Kicks(i);
  287. else if(GetPlayerMoney(i) > ACNewMoney[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Moneyhack!",SAC_Name),Kicks(i);//
  288. else if(health > ACNewHealth[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Healthhack!",SAC_Name),Kicks(i);
  289. else if(armour > ACNewArmour[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Armourhack!",SAC_Name),Kicks(i);
  290. else if(freezed[i] == 1 && AC_GetPlayerSpeed(i) > 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Unfreeze!",SAC_Name),Kicks(i);
  291. else if(AC_GetPlayerSpeed(i) > MAX_PLAYERSPEED)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Speedhack!",SAC_Name),Kicks(i);
  292. else if(GetPlayerSkin(i) != AC_skin[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Skinchanger!",SAC_Name),Kicks(i);
  293. else if(IsPlayerInAnyVehicle(i))if(AC_GetVehicleSpeed(GetPlayerVehicleID(i)) > MAX_VEHSPEED)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Speedhack!",SAC_Name),Kicks(i);
  294. surf = GetPlayerSurfingVehicleID(i);
  295. if(!(GetPlayerSurfingVehicleID(i) == INVALID_VEHICLE_ID) && (AC_GetVehicleSpeed(surf) > 0))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Carsurf!",SAC_Name),Kicks(i);
  296. if(switched[i] == 2)
  297. {
  298. GetPlayerPos(i,NewPos[i][0],NewPos[i][1],NewPos[i][2]);
  299. new Float:d = AC_Distance(OldPos[i][0],OldPos[i][1],OldPos[i][2],NewPos[i][0],NewPos[i][1],NewPos[i][2]);
  300. if(d >= 18 && posbyserver[i] != 1)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Airbrake / Teleporthack!",SAC_Name),Kicks(i);
  301. switched[i] = 1;
  302. }
  303. else if(switched[i] == 1)GetPlayerPos(i,OldPos[i][0],OldPos[i][1],OldPos[i][2]),switched[i] = 2;
  304. }
  305. return 1;
  306. }
  307.  
  308. public AC_CheckWeapon(playerid){
  309. new Weaps[13][2],AC_Namee[MAX_PLAYER_NAME];
  310. if(SpawnWaffenVar[playerid] == 0)
  311. {
  312. for(new i = 0; i<MAX_PLAYERS; i++)
  313. {
  314. if(IsPlayerNPC(i))continue;
  315. if(!IsPlayerConnected(i))continue;
  316. GetPlayerName(i,AC_Namee,MAX_PLAYER_NAME);
  317. for(new _w = 0; _w < 13; _w++)
  318. {
  319.  
  320. GetPlayerWeaponData(i, _w, Weaps[_w][0], Weaps[_w][1]);
  321. if(Weaps[_w][0] <= 0 && Waffe[i][Weaps[_w][0]] != 1)continue;
  322. else if(Weaps[_w][0] < 1 && Weaps[_w][0] > 47)continue;
  323. else if(Weaps[_w][0] <= 0 || Weaps[_w][1] <= 0)continue;
  324. else if(nwh[i][Weaps[_w][0]] == 1){nwh[i][Weaps[_w][0]] = 0; SetPlayerAmmo(i,_w,0); continue;}
  325. else if(Waffe[i][Weaps[_w][0]] <= 0 && nwh[i][Weaps[_w][0]] == 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Waffenhack!",AC_Namee),Kicks(i);
  326. }
  327. }
  328. }
  329. return 1;
  330. }
  331.  
  332. public GivePlayerWeaponEx(playerid,Gun,Muni){
  333. Waffe[playerid][Gun] = 1;
  334. return GivePlayerWeapon(playerid, Gun, Muni);
  335. }
  336.  
  337. public GivePlayerMoneyEx(playerid,money){
  338. ACNewMoney[playerid] = ACNewMoney[playerid] + money;
  339. return GivePlayerMoney(playerid,ACNewMoney[playerid]);
  340. }
  341.  
  342. public SetPlayerMoneyEx(playerid,money){
  343. ACNewMoney[playerid] = money;
  344. ResetPlayerMoney(playerid);
  345. return GivePlayerMoney(playerid,ACNewMoney[playerid]);
  346. }
  347.  
  348. public SetPlayerArmourEx(playerid,Float:armour){
  349. ACNewArmour[playerid] = armour;
  350. parmour[playerid] = armour;
  351. return SetPlayerArmour(playerid,armour);
  352. }
  353.  
  354. public GivePlayerArmourEx(playerid,Float:armour){
  355. new Float:oarmour;
  356. GetPlayerArmour(playerid,oarmour);
  357. ACOldArmour[playerid] = oarmour;
  358. ACNewArmour[playerid] = armour += oarmour;
  359. parmour[playerid] = armour += oarmour;
  360. return SetPlayerArmour(playerid,armour + oarmour);
  361. }
  362.  
  363. public SetPlayerHealthEx(playerid,Float:health){
  364. ACNewHealth[playerid] = health;
  365. phealth[playerid] = health;
  366. return SetPlayerHealth(playerid,health);
  367. }
  368.  
  369. public GivePlayerHealthEx(playerid,Float:health){
  370. new Float:ohealth;
  371. GetPlayerHealth(playerid,ohealth);
  372. ACOldHealth[playerid] = ohealth;
  373. ACNewHealth[playerid] = ohealth += health;
  374. phealth[playerid] = ohealth += health;
  375. return SetPlayerHealth(playerid,ohealth+health);
  376. }
  377. public SetPlayerPosEx(playerid,Float:x,Float:y,Float:z){
  378. posbyserver[playerid] = 1;
  379. SetTimerEx("AC_pos",888*2,false,"i",playerid);
  380. return SetPlayerPos(playerid,x,y,z);
  381. }
  382.  
  383. public SetPlayerSkinEx(playerid,skinid){
  384. AC_skin[playerid] = skinid;
  385. return SetPlayerSkin(playerid,skinid);
  386. }
  387.  
  388. public TogglePlayerControllableEx(playerid,toggle){
  389. switch(toggle)
  390. {
  391. case 0:freezed[playerid] = 1;
  392. case 1:freezed[playerid] = 0;
  393. }
  394. return TogglePlayerControllableEx(playerid,toggle);
  395. }
  396.  
  397. stock AC_IsAPlane(vehicleid){
  398. switch(GetVehicleModel(vehicleid))
  399. {
  400. case 460,464,476,511,512,513,519,520,553,577,592,593: return 1;
  401. }
  402. return 0;
  403. }
  404.  
  405. stock AC_IsAHelicopter(vehicleid){
  406. switch(GetVehicleModel(vehicleid))
  407. {
  408. case 417,425,447,465,469,487,488,497,501,548,563: return 1;
  409. }
  410. return 0;
  411. }
  412.  
  413. stock AC_anty(string[]){
  414. if(strfind(string,"www.",true)!=-1 || strfind(string,"http://",true)!=-1 || strfind(string,".com",true)!=-1 || strfind(string,".de",true)!=-1 || strfind(string,".net",true)!=-1 || strfind(string,".tk",true)!=-1 || strfind(string,"91.",true)!=-1 || strfind(string,"195.",true)!=-1 ||strfind(string,".pl",true)!=-1|| strfind(string,".org",true)!=-1||
  415. strfind(string,"89.",true)!=-1 || strfind(string,"176.",true)!=-1 || strfind(string,":7777",true)!=-1 || strfind(string,"8.",true)!=-1 || strfind(string,"68.",true)!=-1 || strfind(string,"195.",true)!=-1 || strfind(string,"216.",true)!=-1|| strfind(string,"109.",true)!=-1||
  416. strfind(string,"37.",true)!=-1 || strfind(string,"95.",true)!=-1 || strfind(string,"77.",true)!=-1 || strfind(string,"174.",true)!=-1 || strfind(string,"202.",true)!=-1 || strfind(string,"212.",true)!=-1 || strfind(string,"188.",true)!=-1|| strfind(string,"31.",true)!=-1||
  417. strfind(string,"46.",true)!=-1 || strfind(string,"178.",true)!=-1 || strfind(string,"70.",true)!=-1 || strfind(string,"168.",true)!=-1 || strfind(string,"99.",true)!=-1 || strfind(string,"120.",true)!=-1 || strfind(string,"47.",true)!=-1|| strfind(string,"253.",true)!=-1||
  418. strfind(string,"85.",true)!=-1 || strfind(string,"86.",true)!=-1 || strfind(string,"9.",true)!=-1 || strfind(string,"208.",true)!=-1 || strfind(string,"64.",true)!=-1 || strfind(string,"34.",true)!=-1 || strfind(string,"78.",true)!=-1|| strfind(string,"100.",true)!=-1||
  419. strfind(string,"182.",true)!=-1 || strfind(string,"82.",true)!=-1 || strfind(string,"164.",true)!=-1 || strfind(string,"23.",true)!=-1 || strfind(string,"101.",true)!=-1 || strfind(string,"0.",true)!=-1 || strfind(string,"79.",true)!=-1)
  420. return true;
  421. return false;
  422. }
  423.  
  424.  
  425. stock AC_GetVehicleSpeed(vehicleid){
  426. new Float:xPos[3];
  427. GetVehicleVelocity(vehicleid, xPos[0], xPos[1], xPos[2]);
  428. return floatround(floatsqroot(xPos[0] * xPos[0] + xPos[1] * xPos[1] + xPos[2] * xPos[2]) * 170.00);
  429. }
  430.  
  431.  
  432. stock AC_Name(playerid){
  433. new Name[MAX_PLAYER_NAME];
  434. GetPlayerName(playerid,Name,sizeof(Name));
  435. return Name;
  436. }
  437. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  438. {
  439. if(Desk[playerid] >= 2)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: AFK-Ghost!",AC_Name(playerid)),Kicks(playerid);
  440. if(GetPlayerAmmo(playerid) <= 1 && (weaponid >= 1 && weaponid <= 47))Waffe[playerid][weaponid] = 0,nwh[playerid][weaponid] = 1;
  441. if(weaponid != 38)
  442. {
  443. if((gettime() - ShotTime[playerid]) < 1)Shot[playerid]+=1;
  444. else Shot[playerid]=0;
  445. if(Shot[playerid] > 10)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Rapid-Fire!",AC_Name(playerid)),Kicks(playerid);
  446. ShotTime[playerid] = gettime();
  447. }
  448. if(hittype == BULLET_HIT_TYPE_PLAYER)
  449. {
  450. if(hitid == INVALID_PLAYER_ID)return 1;
  451. if(Desk[hitid] >= 1)return 1;
  452. new Float:health,Float:armour; GetPlayerHealth(hitid,health),GetPlayerArmour(hitid,armour);
  453. if(IsPlayerNPC(hitid))return 1;
  454. if(armour > 1)
  455. {
  456. if(armour < parmour[hitid])parmour[hitid] = armour;
  457. else return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Godmode!",AC_Name(hitid)),Kicks(hitid);
  458. }
  459. else
  460. {
  461. if(health < phealth[hitid])phealth[hitid] = health;
  462. else return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Godmode!",AC_Name(hitid)),Kicks(hitid);
  463. }
  464. }
  465. if(AC_IsWeaponWithAmmo(weaponid))
  466. {
  467. new count = 0;
  468. if(weaponid != CurrentWeapon[playerid]) CurrentWeapon[playerid] = weaponid, CurrentAmmo[playerid] = AC_GetPlayerWeaponAmmo(playerid,weaponid), count++;
  469. if(AC_GetPlayerWeaponAmmo(playerid,weaponid) > CurrentAmmo[playerid] || AC_GetPlayerWeaponAmmo(playerid,weaponid) < CurrentAmmo[playerid]) CurrentAmmo[playerid] = AC_GetPlayerWeaponAmmo(playerid,weaponid),NoReloading[playerid] = 0,count++;
  470. if(AC_GetPlayerWeaponAmmo(playerid,weaponid) != 0 && AC_GetPlayerWeaponAmmo(playerid,weaponid) == CurrentAmmo[playerid] && count == 0)
  471. {
  472. NoReloading[playerid]++;
  473. if(NoReloading[playerid] >= 5)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Unlimmited Ammo / No Reloading!",AC_Name(playerid));
  474. }
  475. }
  476. return 1;
  477. }
  478. stock AC_GetPlayerSpeed(playerid) {
  479. if(playerid != INVALID_PLAYER_ID)
  480. {
  481. new Float:PosAB[3],Float:PS;
  482. GetPlayerVelocity(playerid, PosAB[0], PosAB[1], PosAB[2]);
  483. PS = floatsqroot(PosAB[0]*PosAB[0] + PosAB[1]*PosAB[1] + PosAB[2]*PosAB[2])*200;
  484. return floatround(PS,floatround_round);
  485. }
  486. return INVALID_PLAYER_ID;
  487. }
  488.  
  489. public AC_pos(playerid)return posbyserver[playerid] = 0;
  490. public AC_ask(playerid)return AC_start[playerid] = 1;
  491. stock AC_CheckFireArm(weaponid) {
  492. switch(weaponid)
  493. {
  494. case 16..39, 41..43: return 1;
  495. default: return 0;
  496. }
  497. return 0;
  498. }
  499.  
  500. stock AC_SetVehiclePosEx(vehicleid,Float:x,Float:y,Float:z){
  501. vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
  502. return SetVehiclePos(vehicleid,x,y,z);
  503. }
  504. public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat){
  505. new Float:x,Float:y,Float:z; GetVehiclePos(vehicleid, x, y, z);
  506. if(vPos[vehicleid][0] == 0.0 && vPos[vehicleid][1] == 0.0 && vPos[vehicleid][2] == 0.0)vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
  507. new Float:dis = AC_Distance(vPos[vehicleid][0],vPos[vehicleid][1],vPos[vehicleid][2], x,y,z);
  508. if(dis > 5)return AC_SetVehiclePosEx(vehicleid,vPos[vehicleid][0],vPos[vehicleid][1],vPos[vehicleid][2]);
  509. else vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
  510. return 1;
  511. }
  512. public AC_Desktop_Function(playerid){
  513. if(IsPlayerNPC(playerid))return 1;
  514. if(AC_Desktop_Check[playerid] > 0)AC_Desktop_Status[playerid] = 0;
  515. else if(AC_Desktop_Check[playerid] <= 0)AC_Desktop_Status[playerid] +=1;
  516. AC_Desktop_Check[playerid] = 0;
  517. if(AC_Desktop_Status[playerid] >= 3)AC_Desktop_Status[playerid] = 0;
  518. else if(AC_Desktop_Status[playerid] == 1)return Desk[playerid] = 1;
  519. else if(AC_Desktop_Status[playerid] >= 2)return Desk[playerid] = 2;
  520. return 1;
  521. }
  522.  
  523. stock AC_IsPlayerMoving(playerid){
  524. new Float:Velocity[3];
  525. GetPlayerVelocity(playerid, Velocity[0], Velocity[1], Velocity[2]);
  526. if(Velocity[0] == 0 && Velocity[1] == 0 && Velocity[2] == 0) return false;
  527. return true;
  528. }
  529.  
  530. stock AC_IsABike(vid){
  531. new modelid = GetVehicleModel(vid);
  532. if(modelid == 509||modelid ==510||modelid ==581||modelid ==522||modelid ==521||modelid ==523||modelid ==586||modelid ==481||modelid ==462||modelid ==448||modelid ==461||modelid ==463||modelid ==468||modelid ==471) return 1;
  533. else return 0;
  534. }
  535.  
  536. stock AC_IsWeaponWithAmmo(weaponid)
  537. {
  538. switch(weaponid)
  539. {
  540. case 16..18, 22..39, 41..42: return 1;
  541. default: return 0;
  542. }
  543. return 0;
  544.  
  545. }
  546. stock AC_GetPlayerWeaponAmmo(playerid,weaponid)
  547. {
  548. new wd[2][13];
  549. for(new i; i<13; i++)GetPlayerWeaponData(playerid,i,wd[0][i],wd[1][i]);
  550. for(new i; i<13; i++)if(weaponid == wd[0][i]) return wd[1][i];
  551. return 0;
  552. }
  553.  
  554. stock Kicks(playerid)return SetTimerEx("AC_Kicke",50,false,"i",playerid);
  555. public AC_Kicke(playerid)
  556. {
  557. Kick(playerid);
  558. return 1;
  559. }
  560. stock FreezePlayer(playerid)
  561. {
  562. TogglePlayerControllableEx(playerid, 0);
  563. return 1;
  564. }
  565.  
  566. stock UnFreezePlayer(playerid)
  567. {
  568. TogglePlayerControllableEx(playerid, 1);
  569. return 1;
  570. }
  571.  
  572.  
  573. #define GivePlayerMoney GivePlayerWeaponEx
  574. #define SetPlayerMoney SetPlayerMoneyEx
  575. #define GivePlayerHealth GivePlayerHealthEx
  576. #define SetPlayerHealth SetPlayerHealthEx
  577. #define GivePlayerArmour GivePlayerArmourEx
  578. #define SetPlayerArmour SetPlayerArmourEx
  579. #define GivePlayerWeapon GivePlayerWeaponEx
  580. #define SetPlayerPos SetPlayerPosEx
  581. #define TogglePlayerControllable TogglePlayerControllableEx
  582. #define SetPlayerSkin SetPlayerSkinEx
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement