Advertisement
Guest User

LSPD Metro Training

a guest
Apr 2nd, 2017
973
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 48.17 KB | None | 0 0
  1. //Feel free to do anything you want with the gamemode! - Cantbehudson
  2. #include <a_samp>
  3. #include <fixes>
  4. #include <zcmd>
  5. #include <sscanf2>
  6. #include <foreach>
  7.  
  8. #define COLOR_YELLOW  0xE3FF2EFF
  9. #define COLOR_FADE1  0xE6E6E6E6
  10. #define COLOR_FADE2  0xC8C8C8C8
  11. #define COLOR_FADE3  0xAAAAAAAA
  12. #define COLOR_FADE4  0x8C8C8C8C
  13. #define COLOR_FADE5  0x6E6E6E6E
  14. #define COLOR_FADE   0xC8C8C8C8
  15. #define COLOR_WHITE  0xFFFFFFAA
  16. #define COLOR_GRAD2  0xBFC0C2FF
  17. #define COLOR_DARKRED  0x8B0000AA
  18. #define COLOR_RED   0xFF0000AA
  19. #define COLOR_LIGHTBLUE 0x33CCFFAA
  20. #define COLOR_GREY   0xAFAFAFAA
  21. #define COLOR_PINK   0xDC00DDAA
  22. #define COLOR_BLUE   0x007ED13F
  23. #define COLOR_GREEN  0x7ED13FFF
  24. #define COLOR_DARKGREEN  0x00A800AA
  25. #define COLOR_ORANGE  0xFF8000AA
  26. #define COLOR_CYAN   0x7BDDA5AA
  27. #define COLOR_WHITE  0xFFFFFFAA
  28. #define COLOR_DARKBLUE  0x0000A0AA
  29. #define COLOR_BLACK  0x000000AA
  30. #define COLOR_DARKGOLD  0x808000AA
  31. #define COLOR_PURPLE    0xC2A2DAAA
  32. #define COLOR_BROWN  0x804000AA
  33. #define COLOR_BLACK2  0x000000ff
  34. #define COLOR_LIGHTRED 0xFF6347AA
  35.  
  36. /*#define BODY_PART_TORSO 3
  37. #define BODY_PART_GROIN 4
  38. #define BODY_PART_RIGHT_ARM 5
  39. #define BODY_PART_LEFT_ARM 6
  40. #define BODY_PART_RIGHT_LEG 7
  41. #define BODY_PART_LEFT_LEG 8
  42. #define BODY_PART_HEAD 9*/
  43.  
  44. #define DAMAGE_COLT 35
  45. #define DAMAGE_SILENCER 100
  46. #define DAMAGE_DEAGLE 60
  47. #define DAMAGE_SHOTGUN 60
  48. #define DAMAGE_SAWNOFF 40
  49. #define DAMAGE_UZI 35
  50. #define DAMAGE_MP5 35
  51. #define DAMAGE_AK47 35
  52. #define DAMAGE_RIFLE 100
  53. #define DAMAGE_TEC9 35
  54. #define DAMAGE_M4 35
  55. #define DAMAGE_SNIPER 350
  56.  
  57. #define DCOLOR_LIGHTRED "{FF6347}"
  58. #define DCOLOR_GREY  "{AFAFAF}"
  59. #define DCOLOR_BLUE "{007ED1}"
  60. #define DCOLOR_RED "{FF0000}"
  61. #define DCOLOR_WHITE "{FFFFFF}"
  62. #define DCOLOR_BLACK "{000000}"
  63. #define DCOLOR_CYAN "{7BDDA5}"
  64. #define DCOLOR_GOLD "{808000}"
  65. #define DCOLOR_YELLOW "{E3FF2E}"
  66. #define DCOLOR_GREEN "{7ED13F}"
  67. #define DCOLOR_DGREEN "{027A02}"
  68.  
  69. #define DIALOG_SHOW_HELP 400
  70. #define DIALOG_SHOW_DAMAGES 400
  71.  
  72. main()
  73. {
  74.     print(" LSPD METRO TRAINING BY CANTBEHUDSON");
  75. }
  76.  
  77. enum pplayerInfo
  78. {
  79.     Float:posX,
  80.     Float:posY,
  81.     Float:posZ,
  82.     Float:posF,
  83.     cInterior,
  84.     cVirtualWorld,
  85. };
  86. new PlayerInfo[MAX_PLAYERS][pplayerInfo];
  87.  
  88. enum admincarInfo
  89. {
  90.     Created,
  91.     Owner[MAX_PLAYER_NAME],
  92. };
  93. new acarInfo[MAX_VEHICLES][admincarInfo];
  94.  
  95. enum damageInfo
  96. {
  97.     hit[20],
  98.     bbodypart[20],
  99.     tdamage[20],
  100.     kevlar[20],
  101. };
  102. new pdamage[MAX_PLAYERS][damageInfo];
  103.  
  104.  
  105.  
  106. new Float:markx, Float:marky, Float:markz;
  107. new markvw, markint;
  108. new Float:markx2, Float:marky2, Float:markz2;
  109. new markvw2, markint2;
  110. new masked[MAX_PLAYERS];
  111. new taserer[MAX_PLAYERS];
  112.  
  113. stock AddHit(playerid, ddweapon, ddbodypart, dddamage, ddkevlar)
  114. {
  115.     new look;
  116.     for(look = 0; look < 20; ++look)
  117.     {
  118.         if(pdamage[playerid][hit][look] == 0)
  119.         {
  120.             pdamage[playerid][hit][look] = ddweapon;
  121.             pdamage[playerid][bbodypart][look] = ddbodypart;
  122.             pdamage[playerid][tdamage][look] = dddamage;
  123.             pdamage[playerid][kevlar][look] = ddkevlar;
  124.             break;
  125.         }
  126.     }
  127.     return 1;
  128. }
  129. stock ClearHits(playerid)
  130. {
  131.     new look;
  132.     for(look = 0; look < 20; ++look)
  133.     {
  134.         pdamage[playerid][hit][look] = 0;
  135.         pdamage[playerid][bbodypart][look] = 0;
  136.         pdamage[playerid][tdamage][look] = 0;
  137.         pdamage[playerid][kevlar][look] = 0;
  138.     }
  139.     return 1;
  140. }
  141.  
  142. stock SendAdminMessage(color,aststring[])
  143. {
  144.     foreach(Player,i)
  145.     {
  146.         if(IsPlayerAdmin(i))
  147.         {
  148.             SendSplitClientMessage(i, color, aststring);
  149.         }
  150.     }
  151.     return 1;
  152. }
  153. stock SendOOCMessage(Float:radi, playerid, string[])
  154. {
  155.     new Float:posx, Float:posy, Float:posz;
  156.     GetPlayerPos(playerid, posx, posy, posz);
  157.     foreach (Player, i)
  158.     {
  159.         if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))
  160.         {
  161.             if(IsPlayerInRangeOfPoint(i,radi,posx, posy, posz))
  162.             {
  163.                 new Float:radius, feet;
  164.                 radius = GetDistanceBetweenPlayerToPoint(i,posx, posy, posz);
  165.                 feet = floatround(radius);
  166.                 switch(feet)
  167.                 {
  168.                     case 0 .. 10: SendSplitClientMessage(i,0xF0F0F096,string);
  169.                     case 11 .. 15: SendSplitClientMessage(i,0xC9C9C996,string);
  170.                     case 16 .. 20: SendSplitClientMessage(i,0xB5B5B596,string);
  171.                     case 21 .. 25: SendSplitClientMessage(i,0xA3A3A396,string);
  172.                     case 26 .. 31: SendSplitClientMessage(i,0x79797996,string);
  173.                 }
  174.             }
  175.         }
  176.     }
  177.     return 1;
  178. }
  179.  
  180. stock PlayerToPlayer(playerid,targetid,Float:distance)
  181. {
  182.     new Float:bbx, Float:bby, Float:bbz;
  183.     GetPlayerPos(playerid,bbx,bby,bbz);
  184.     if(IsPlayerConnected(targetid)&&IsPlayerInRangeOfPoint(targetid,distance,bbx,bby,bbz)&&IsPlayerStreamedIn(targetid, playerid)) return true;
  185.     return false;
  186. }
  187.  
  188. stock GetPlayerID(checkname[])
  189. {
  190.     for(new i = 0; i < MAX_PLAYERS; i++)
  191.     {
  192.         if(IsPlayerConnected(i))
  193.         {
  194.             if(!strcmp(checkname, PlayerName(i)))
  195.             {
  196.                 return i;
  197.             }
  198.         }
  199.     }
  200.     return -1;
  201. }
  202. stock GiveNameSpace(str[])
  203. {
  204.     new strl;
  205.     strl=strlen(str);
  206.     while(strl--) {
  207.     if(str[strl]=='_')  str[strl]=' ';
  208.     }
  209.     return 0;
  210. }
  211. stock PlayerNameEx(playerid)
  212. {
  213.     new name[MAX_PLAYER_NAME];
  214.     GetPlayerName(playerid, name, sizeof(name));
  215.     GiveNameSpace(name);
  216.     return name;
  217. }
  218. stock PlayerName(playerid)
  219. {
  220.     new name[MAX_PLAYER_NAME];
  221.     GetPlayerName(playerid, name, sizeof(name));
  222.     if(GetPVarInt(playerid, "hiddenaduty") == 1) format(name, sizeof(name), "Hidden Admin");
  223.     return name;
  224. }
  225. stock split(const strsrc[], strdest[][], delimiter = '|')
  226. {
  227.     new i, li, aNum, len, srclen = strlen(strsrc);
  228.     while(i <= srclen)
  229.     {
  230.         if (strsrc[i] == delimiter || i == srclen)
  231.         {
  232.             len = strmid(strdest[aNum], strsrc, li, i, 128);
  233.             strdest[aNum][len] = 0;
  234.             li = i + 1;
  235.             aNum++;
  236.         }
  237.         i++;
  238.     }
  239.     return 1;
  240. }
  241.  
  242. stock SendSplitClientMessage(playerid, color, text[], minlen = 110, maxlen = 120)
  243. {
  244.     new str[256];
  245.     if(strlen(text) > maxlen)
  246.     {
  247.         new pos = maxlen;
  248.         while(text[--pos] > ' ') {}
  249.         if(pos < minlen) pos = maxlen;
  250.         format(str, sizeof(str), "%.*s ...", pos, text);
  251.         SendClientMessage(playerid,color,str);
  252.         format(str, sizeof(str), "... %s", text[pos+1]);
  253.         SendClientMessage(playerid,color,str);
  254.     }
  255.     else format(str, sizeof(str), "%s", text), SendClientMessage(playerid,color,str);
  256.     return true;
  257. }
  258. forward Welcome(playerid);
  259. public Welcome(playerid)
  260. {
  261.     SetPlayerColor(playerid, COLOR_BLUE);
  262.     SendClientMessage(playerid, COLOR_WHITE, "");
  263.     SendClientMessage(playerid, COLOR_WHITE, "");
  264.     SendClientMessage(playerid, COLOR_WHITE, "");
  265.     SendClientMessage(playerid, COLOR_WHITE, "");
  266.     SendClientMessage(playerid, COLOR_WHITE, "");
  267.     SendClientMessage(playerid, COLOR_WHITE, "");
  268.     SendClientMessage(playerid, COLOR_WHITE, "");
  269.     SendClientMessage(playerid, COLOR_WHITE, "");
  270.     SendClientMessage(playerid, COLOR_WHITE, "");
  271.     SendClientMessage(playerid, COLOR_WHITE, "Welcome to the LSPD Metropolitan Division's Training Server");
  272.     SendClientMessage(playerid, COLOR_WHITE, "Use /help to check the command list");
  273.     new i;
  274.     for(i = 0; i < MAX_PLAYERS; ++i)
  275.     {
  276.         if(IsPlayerConnected(i))
  277.         {
  278.             SetPlayerMarkerForPlayer( i, playerid, GetPlayerColor( playerid ) & 0xFFFFFF00);
  279.         }
  280.     }
  281. }
  282.  
  283. forward ProxDetector(Float:radi, playerid, string[], color);
  284. public ProxDetector(Float:radi, playerid, string[], color)
  285. {
  286.     new Float:posx, Float:posy, Float:posz;
  287.     GetPlayerPos(playerid, posx, posy, posz);
  288.     if(color == COLOR_PURPLE) SetPlayerChatBubble(playerid, string, COLOR_PURPLE, radi, 5000);
  289.     foreach (Player, i)
  290.     {
  291.         if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))
  292.         {
  293.             if(IsPlayerInRangeOfPoint(i,radi,posx, posy, posz))
  294.             {
  295.                 if(color == COLOR_FADE)
  296.                 {
  297.                     new Float:radius, feet;
  298.                     radius = GetDistanceBetweenPlayerToPoint(i,posx, posy, posz);
  299.                     feet = floatround(radius);
  300.                     switch(feet)
  301.                     {
  302.                         case 0 .. 10: SendSplitClientMessage(i,0xF0F0F096,string);
  303.                         case 11 .. 15: SendSplitClientMessage(i,0xC9C9C996,string);
  304.                         case 16 .. 20: SendSplitClientMessage(i,0xB5B5B596,string);
  305.                         case 21 .. 25: SendSplitClientMessage(i,0xA3A3A396,string);
  306.                         case 26 .. 100: SendSplitClientMessage(i,0x79797996,string);
  307.                     }
  308.                 }
  309.                 else SendSplitClientMessage(i, color, string);
  310.             }
  311.         }
  312.     }
  313.     return 1;
  314. }
  315.  
  316. forward ProxDetectorRadio(Float:radi, playerid, string[], color);
  317. public ProxDetectorRadio(Float:radi, playerid, string[], color)
  318. {
  319.     new Float:posx, Float:posy, Float:posz;
  320.     GetPlayerPos(playerid, posx, posy, posz);
  321.     if(color == COLOR_PURPLE) SetPlayerChatBubble(playerid, string, COLOR_PURPLE, radi, 5000);
  322.     foreach (Player, i)
  323.     {
  324.         if(playerid != i)
  325.             if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))
  326.             {
  327.                 if(IsPlayerInRangeOfPoint(i,radi,posx, posy, posz))
  328.                 {
  329.                     if(color == COLOR_FADE)
  330.                     {
  331.                         new Float:radius, feet;
  332.                         radius = GetDistanceBetweenPlayerToPoint(i,posx, posy, posz);
  333.                         feet = floatround(radius);
  334.                         switch(feet)
  335.                         {
  336.                             case 0 .. 10: SendSplitClientMessage(i,0xF0F0F096,string);
  337.                             case 11 .. 15: SendSplitClientMessage(i,0xC9C9C996,string);
  338.                             case 16 .. 20: SendSplitClientMessage(i,0xB5B5B596,string);
  339.                             case 21 .. 25: SendSplitClientMessage(i,0xA3A3A396,string);
  340.                             case 26 .. 100: SendSplitClientMessage(i,0x79797996,string);
  341.                         }
  342.                     }
  343.                     else SendSplitClientMessage(i, color, string);
  344.                 }
  345.             }
  346.     }
  347.     return 1;
  348. }
  349.  
  350. public OnGameModeInit()
  351. {
  352.     SetNameTagDrawDistance(20.0);
  353.     new maskfor;
  354.     for(maskfor = 0; maskfor < MAX_PLAYERS; ++maskfor)
  355.     {
  356.         masked[maskfor] = false;
  357.         taserer[maskfor] = false;
  358.     }
  359.     DisableInteriorEnterExits();
  360.     ShowPlayerMarkers(1);
  361.     SetGameModeText("LSPD");
  362.     AddPlayerClass(280,1529.2416,-1676.9371,5.8906,176.5846, 29, 500, 24, 140, 25, 500);
  363.     return 1;
  364. }
  365.  
  366. public OnGameModeExit()
  367. {
  368.     return 1;
  369. }
  370.  
  371. public OnPlayerRequestClass(playerid, classid)
  372. {
  373.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  374.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  375.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  376.     return 1;
  377. }
  378.  
  379. public OnPlayerConnect(playerid)
  380. {
  381.     ClearHits(playerid);
  382.     SetTimerEx("Welcome", 5000, false, "i", playerid);
  383.     ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.1, 1, 1, 1, 0, 10000, 1);
  384.     foreach(Player, U)
  385.     {
  386.         SetPlayerMarkerForPlayer(U, playerid, 0xFFFFFF00);
  387.     }
  388.     return 1;
  389. }
  390.  
  391. public OnPlayerDisconnect(playerid, reason)
  392. {
  393.     new
  394.         szString[128],
  395.         playerName[MAX_PLAYER_NAME];
  396.  
  397.     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  398.  
  399.     new szDisconnectReason[3][] =
  400.     {
  401.         "Timeout/Crash",
  402.         "Quit",
  403.         "Kick/Ban"
  404.     };
  405.  
  406.     format(szString, sizeof szString, "Server: %s has disconnected. (%s)", playerName, szDisconnectReason[reason]);
  407.  
  408.     SendClientMessageToAll(COLOR_FADE4, szString);
  409.     return 1;
  410. }
  411.  
  412. public OnPlayerSpawn(playerid)
  413. {
  414.     foreach(Player, U)
  415.     {
  416.         SetPlayerMarkerForPlayer(U, playerid, 0xFFFFFF00);
  417.     }
  418.     if(GetPVarInt(playerid, "dead") == 1)
  419.     {
  420.         SetCameraBehindPlayer(playerid);
  421.         if(PlayerInfo[playerid][cInterior] != 0)
  422.         {
  423.             SetPlayerInterior(playerid, PlayerInfo[playerid][cInterior]);
  424.             SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][cVirtualWorld]);
  425.             SetTimerEx("Unfreeze", 3400, false, "i", playerid);
  426.         }
  427.        
  428.         new rand = random(5)+1;
  429.         switch(rand)
  430.         {
  431.             case 1: ApplyAnimation(playerid, "ped", "FLOOR_hit", 4.0, 0, 1, 1, 1, -1);
  432.             case 2: ApplyAnimation(playerid, "ped", "FLOOR_hit_f", 4.0, 0, 1, 1, 1, -1);
  433.             case 3: ApplyAnimation(playerid, "ped", "KO_shot_front", 4.0, 0, 1, 1, 1, -1);
  434.             case 4: ApplyAnimation(playerid, "ped", "KO_shot_stom", 4.0, 0, 1, 1, 1, -1);
  435.             case 5: ApplyAnimation(playerid, "ped", "BIKE_fall_off", 4.0, 0, 1, 1, 1, -1);
  436.             default: ApplyAnimation(playerid, "FINALE", "FIN_Land_Die", 4.0, 0, 1, 1, 1, -1);
  437.         }
  438.         SendClientMessage(playerid, COLOR_WHITE, "Server: You can use /respawn if noone's roleplaying with your body.");
  439.         SetPVarInt(playerid, "dead", 0);
  440.         SetSpawnInfo(playerid, 0, GetPlayerSkin(playerid), 1529.2416,-1676.9371,5.8906,176.5846, 29, 500, 24, 140, 25, 500);
  441.     }
  442.     else
  443.     {
  444.         SetCameraBehindPlayer(playerid);
  445.         TogglePlayerControllable(playerid, 1);
  446.         ClearAnimations(playerid);
  447.         ClearHits(playerid);
  448.     }
  449.     return 1;
  450. }
  451.  
  452. public OnPlayerDeath(playerid, killerid, reason)
  453. {
  454.     PlayerInfo[playerid][cInterior] = GetPlayerInterior(playerid);
  455.     PlayerInfo[playerid][cVirtualWorld] = GetPlayerVirtualWorld(playerid);
  456.     GetPlayerPos(playerid, PlayerInfo[playerid][posX], PlayerInfo[playerid][posY], PlayerInfo[playerid][posZ]);
  457.     GetPlayerFacingAngle(playerid, PlayerInfo[playerid][posF]);
  458.     SetSpawnInfo(playerid, 0, GetPlayerSkin(playerid), PlayerInfo[playerid][posX], PlayerInfo[playerid][posY], PlayerInfo[playerid][posZ], PlayerInfo[playerid][posF], 0, 0, 0, 0, 0, 0 );
  459.     TogglePlayerControllable(playerid, 0);
  460.     SetPVarInt(playerid, "dead", 1);
  461.     return 1;
  462. }
  463.  
  464. public OnVehicleSpawn(vehicleid)
  465. {
  466.     return 1;
  467. }
  468.  
  469. public OnVehicleDeath(vehicleid, killerid)
  470. {
  471.     return 1;
  472. }
  473.  
  474. public OnPlayerText(playerid, text[])
  475. {
  476.     new string[256], pText[128];
  477.     format(pText, sizeof (pText), "%s", text);
  478.     format(string, sizeof(string), "%s says: %s", PlayerNameEx(playerid), pText);
  479.     ProxDetector(30.0, playerid, string, COLOR_FADE);
  480.  
  481.     return 0;
  482. }
  483.  
  484. public OnPlayerCommandText(playerid, cmdtext[])
  485. {
  486.    
  487.     return 0;
  488. }
  489.  
  490. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  491. {
  492.     if (!success)
  493.     {
  494.         SendClientMessage(playerid ,COLOR_RED, "Error: Invalid command. Use /help to access the list.");
  495.     }
  496.  
  497.     return 1;
  498. }
  499.  
  500. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  501. {
  502.     return 1;
  503. }
  504.  
  505. public OnPlayerExitVehicle(playerid, vehicleid)
  506. {
  507.     return 1;
  508. }
  509.  
  510. public OnPlayerStateChange(playerid, newstate, oldstate)
  511. {
  512.     return 1;
  513. }
  514.  
  515. public OnPlayerEnterCheckpoint(playerid)
  516. {
  517.     return 1;
  518. }
  519.  
  520. public OnPlayerLeaveCheckpoint(playerid)
  521. {
  522.     return 1;
  523. }
  524.  
  525. public OnPlayerEnterRaceCheckpoint(playerid)
  526. {
  527.     return 1;
  528. }
  529.  
  530. public OnPlayerLeaveRaceCheckpoint(playerid)
  531. {
  532.     return 1;
  533. }
  534.  
  535. public OnRconCommand(cmd[])
  536. {
  537.     return 1;
  538. }
  539.  
  540. public OnPlayerRequestSpawn(playerid)
  541. {
  542.     return 1;
  543. }
  544.  
  545. public OnObjectMoved(objectid)
  546. {
  547.     return 1;
  548. }
  549.  
  550. public OnPlayerObjectMoved(playerid, objectid)
  551. {
  552.     return 1;
  553. }
  554.  
  555. public OnPlayerPickUpPickup(playerid, pickupid)
  556. {
  557.     return 1;
  558. }
  559.  
  560. public OnVehicleMod(playerid, vehicleid, componentid)
  561. {
  562.     return 1;
  563. }
  564.  
  565. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  566. {
  567.     return 1;
  568. }
  569.  
  570. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  571. {
  572.     return 1;
  573. }
  574.  
  575. public OnPlayerSelectedMenuRow(playerid, row)
  576. {
  577.     return 1;
  578. }
  579.  
  580. public OnPlayerExitedMenu(playerid)
  581. {
  582.     return 1;
  583. }
  584.  
  585. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  586. {
  587.     return 1;
  588. }
  589.  
  590. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  591. {
  592.     return 1;
  593. }
  594.  
  595. public OnRconLoginAttempt(ip[], password[], success)
  596. {
  597.     return 1;
  598. }
  599.  
  600. public OnPlayerUpdate(playerid)
  601. {
  602.     return 1;
  603. }
  604.  
  605. public OnPlayerStreamIn(playerid, forplayerid)
  606. {
  607.     if(masked[playerid])
  608.         ShowPlayerNameTagForPlayer(forplayerid, playerid, 0);
  609.     return 1;
  610. }
  611.  
  612. public OnPlayerStreamOut(playerid, forplayerid)
  613. {
  614.     return 1;
  615. }
  616.  
  617. public OnVehicleStreamIn(vehicleid, forplayerid)
  618. {
  619.     return 1;
  620. }
  621.  
  622. public OnVehicleStreamOut(vehicleid, forplayerid)
  623. {
  624.     return 1;
  625. }
  626.  
  627. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  628. {
  629.     return 1;
  630. }
  631.  
  632. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  633. {
  634.     return 1;
  635. }
  636.  
  637. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
  638. {
  639.     new string[128];
  640.     if(issuerid != INVALID_PLAYER_ID)
  641.     {
  642.         new Float:x, Float:y, Float:z, Float:amoun, Float:distance = 0.9, Float:health, Float:armour;
  643.         GetPlayerPos(playerid,x,y,z), GetPlayerHealth(playerid,health), GetPlayerArmour(playerid,armour);
  644.         if(weaponid == 23)
  645.         {
  646.             format(string, sizeof(string), "*** %s has been tased by %s.", PlayerNameEx(playerid), PlayerNameEx(issuerid));
  647.             SendClientMessage(playerid, COLOR_PURPLE, string);
  648.             SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 20.0, 5000);
  649.             SetPlayerDrunkLevel(playerid, 10);
  650.             ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.1, 1, 1, 1, 0, 10000, 1);
  651.             GameTextForPlayer(playerid, "Tased", 5000, 1);
  652.        
  653.         }
  654.         else if(weaponid > 21 && weaponid < 35)
  655.         {
  656.             new damage = 0;
  657.             switch(weaponid)
  658.             {
  659.                 case 22: damage = DAMAGE_COLT;
  660.                 case 23: damage = DAMAGE_SILENCER;
  661.                 case 24: damage = DAMAGE_DEAGLE;
  662.                 case 25: damage = DAMAGE_SHOTGUN;
  663.                 case 26: damage = DAMAGE_SAWNOFF;
  664.                 case 27: damage = DAMAGE_SHOTGUN;
  665.                 case 28: damage = DAMAGE_UZI;
  666.                 case 29: damage = DAMAGE_MP5;
  667.                 case 30: damage = DAMAGE_AK47;
  668.                 case 31: damage = DAMAGE_M4;
  669.                 case 32: damage = DAMAGE_TEC9;
  670.                 case 33: damage = DAMAGE_RIFLE;
  671.                 case 34: damage = DAMAGE_SNIPER;
  672.             }
  673.  
  674.             if(damage != 0 && !IsPlayerInRangeOfPoint(issuerid,distance,x,y,z))
  675.             {
  676.                 if(armour > 0)
  677.                 {
  678.                     amoun = armour - damage;
  679.                     if(amoun <= 0)
  680.                     {
  681.                         SetPlayerHealth(playerid,health-damage+armour);
  682.                         SetPlayerArmour(playerid, 0);
  683.                         AddHit(playerid, weaponid, bodypart, damage, 0);
  684.                     }
  685.                     else
  686.                     {
  687.                         AddHit(playerid, weaponid, bodypart, damage, 1);
  688.                         SetPlayerArmour(playerid,armour-damage);
  689.                     }
  690.                 }
  691.                 else
  692.                 {
  693.                     SetPlayerHealth(playerid,health-damage);
  694.                     AddHit(playerid, weaponid, bodypart, damage, 0);
  695.                 }
  696.  
  697.             }
  698.         }
  699.     }
  700.     return 1;
  701. }
  702.  
  703. forward Float:GetDistanceBetweenPlayerToPoint(p1,Float:px,Float:py,Float:pz);
  704. public Float:GetDistanceBetweenPlayerToPoint(p1,Float:px,Float:py,Float:pz)
  705. {
  706.     new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
  707.     if(!IsPlayerConnected(p1)) return -1.00;
  708.     GetPlayerPos(p1,x1,y1,z1);
  709.     x2 = px;
  710.     y2 = py;
  711.     z2 = pz;
  712.     return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
  713. }
  714.  
  715. forward KickPublic(playerid);
  716. public KickPublic(playerid)
  717. {
  718.     Kick(playerid);
  719. }
  720.  
  721. stock KickWithMessage(playerid, color, message[])
  722. {
  723.     SendClientMessage(playerid, color, message);
  724.     SetTimerEx("KickPublic", 1000, false, "d", playerid);
  725. }
  726.  
  727. #define ALTCOMMAND:%1->%2;           \
  728. COMMAND:%1(playerid, params[])   \
  729. return cmd_%2(playerid, params);
  730. COMMAND:spec(playerid, params[])
  731. {
  732.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  733.  
  734.     new specid;
  735.     if(sscanf(params, "u", specid)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/spec [Player ID/Name]");
  736.     else
  737.     {
  738.         TogglePlayerSpectating(playerid, 1);
  739.         PlayerSpectatePlayer(playerid, specid);
  740.         SetPlayerInterior(playerid, GetPlayerInterior(specid));
  741.         SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(specid));
  742.        
  743.         if(IsPlayerInAnyVehicle(specid))
  744.             PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specid));
  745.     }
  746.  
  747.  
  748.     return 1;
  749. }
  750. COMMAND:unspec(playerid)
  751. {
  752.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  753.     TogglePlayerSpectating(playerid, 0);
  754.     return 1;
  755. }
  756. COMMAND:help(playerid)
  757. {
  758.     new str[1024] = "";
  759.     strcat(str, "Roleplay: /me, /do, /low, /(s)hout, /(w)hisper, /r\n");
  760.     strcat(str, "OOC: /pm, /b, /f, /mask\n");
  761.     strcat(str, "Game: /skin, /hp, /kevlar\n");
  762.     strcat(str, "Game: /duty, /offduty, /criminal, /swat\n");
  763.     strcat(str, "Game: /taser, /gun, /damages\n");
  764.     strcat(str, "Teleport: /respawn, /pdhq, /training\n");
  765.     strcat(str, "Teleport: /goto, /gotomark, gotomark2\n");
  766.     strcat(str, "Vehicles: /acar, /delcar, /fix\n");
  767.     strcat(str, "Interiors: /int, /intlist\n");
  768.  
  769.  
  770.     if(IsPlayerAdmin(playerid))
  771.     {
  772.         strcat(str, "Admin: /get, /setskin, /givegun, /debug\n");
  773.         strcat(str, "Admin: /sethp, /setkevlar, /a, /slap, /unslap\n");
  774.         strcat(str, "Admin: /mark, /mark2n");
  775.         strcat(str, "Admin: /spec, /unspec, /kick\n");
  776.     }
  777.     strcat(str, "\nCredits: Cantbehudson (scripting), Limex (interiors)");
  778.     ShowPlayerDialog(playerid, DIALOG_SHOW_HELP, DIALOG_STYLE_MSGBOX, "Help menu", str, "Close", "");
  779.     return 1;
  780. }
  781. COMMAND:a(playerid, params[])
  782. {
  783.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  784.  
  785.     new adminstring[256];
  786.     if(sscanf(params, "s[256]", adminstring)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/a [message to admins]");
  787.     else
  788.     {
  789.         format(adminstring, sizeof(adminstring), "*[Admin] (ID:%i) %s: %s", playerid, PlayerNameEx(playerid), adminstring);
  790.         SendAdminMessage(COLOR_CYAN, adminstring);
  791.     }
  792.     return 1;
  793. }
  794. COMMAND:b(playerid, params[])
  795. {
  796.     new text[256],stringorr[256],sendername[MAX_PLAYER_NAME];
  797.     if(sscanf(params, "s[256]", text)) SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/b [OOC message]");
  798.     else
  799.     {
  800.         format(sendername, sizeof(sendername), "%s", PlayerNameEx(playerid));
  801.         GiveNameSpace(sendername);
  802.  
  803.         format(stringorr, sizeof(stringorr), "(( (ID:%i) %s: %s ))", playerid, PlayerNameEx(playerid), text);
  804.         SendOOCMessage(20.0, playerid, stringorr);
  805.  
  806.     }
  807.     return 1;
  808. }
  809. COMMAND:hp(playerid, params[])
  810. {
  811.     new Float:ammun;
  812.     if(sscanf(params, "f", ammun)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/hp [Health points]");
  813.     else
  814.     {
  815.         SetPlayerHealth(playerid, ammun);
  816.     }
  817.     return 1;
  818. }
  819. COMMAND:sethp(playerid, params[])
  820. {
  821.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  822.     new target, Float:ammun;
  823.     if(sscanf(params, "uf", target, ammun)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/sethp [Player ID/Name] [Health points]");
  824.     else
  825.     {
  826.         SetPlayerHealth(target, ammun);
  827.     }
  828.     return 1;
  829. }
  830. COMMAND:kevlar(playerid, params[])
  831. {
  832.     new Float:aammun;
  833.     if(sscanf(params, "f", aammun)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/kevlar [Kevlar points]");
  834.     else
  835.     {
  836.         SetPlayerArmour(playerid, aammun);
  837.     }
  838.  
  839.  
  840.     return 1;
  841. }
  842. COMMAND:setkevlar(playerid, params[])
  843. {
  844.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  845.     new target, Float:aammun;
  846.     if(sscanf(params, "uf", target, aammun)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/setkevlar [Player ID/Name] [Kevlar points]");
  847.     else
  848.     {
  849.         SetPlayerArmour(target, aammun);
  850.     }
  851.  
  852.  
  853.     return 1;
  854. }
  855. COMMAND:setskin(playerid, params[])
  856. {
  857.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  858.     new id, skinid, string[142];
  859.  
  860.     if(sscanf(params, "ui", id, skinid)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/setskin [Player ID/Name] [Skin ID]");
  861.     else
  862.     {
  863.  
  864.         if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "Error: Invalid player ID.");
  865.         if(skinid > 312 || skinid < 0) return SendClientMessage(playerid, COLOR_RED, "Error: Invalid skin ID.");
  866.  
  867.         SetPlayerSkin(id, skinid);
  868.         format(string, 142, "Admin: (ID:%i) %s has set your skin to ID %i.", playerid, PlayerName(playerid), skinid);
  869.         SendClientMessage(id, COLOR_LIGHTBLUE, string);
  870.  
  871.         if(playerid != id)
  872.         {
  873.             format(string, 142, "Admin: You've set (ID:%i) %s's skin to ID %i.", id, PlayerName(id), skinid);
  874.             SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
  875.         }
  876.     }
  877.  
  878.     return 1;
  879. }
  880. COMMAND:skin(playerid, params[])
  881. {
  882.     new skinid;
  883.  
  884.     if(sscanf(params, "i", skinid)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/skin [Skin ID]");
  885.     else
  886.     {
  887.         if(skinid > 312 || skinid < 0) return SendClientMessage(playerid, COLOR_RED, "Error: Invalid skin ID.");
  888.         else
  889.             SetPlayerSkin(playerid, skinid);
  890.     }
  891.  
  892.     return 1;
  893. }
  894. COMMAND:givegun(playerid, params[])
  895. {
  896.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  897.     new target, gun, gstring[128];
  898.     if(sscanf(params, "ud", target, gun)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/givegun [Player ID/Name] [Weapon ID]");
  899.  
  900.     if(gun < 1 || gun > 47) { SendClientMessage(playerid, COLOR_RED, "Error: Use a weapon ID from 1 to 47."); return 1; }
  901.     if(IsPlayerConnected(target))
  902.     {
  903.         if(target != INVALID_PLAYER_ID && gun <= 20 || gun >= 22)
  904.         {
  905.             GivePlayerWeapon(target, gun, 1200);
  906.             format(gstring, sizeof(gstring), "Admin: (ID:%i) %s got a weapon ID:%i from you.", target, PlayerName(target), gun);
  907.             SendClientMessage(playerid, COLOR_LIGHTBLUE, gstring);
  908.             format(gstring, sizeof(gstring), "Admin: %s gave you a weapon ID:%i.", PlayerName(playerid), gun);
  909.             SendClientMessage(target, COLOR_LIGHTBLUE, gstring);
  910.         }
  911.     }
  912.     else
  913.         SendClientMessage(playerid, COLOR_RED, "Error: Invalid player ID.");
  914.     return 1;
  915. }
  916. COMMAND:gun(playerid, params[])
  917. {
  918.     new gun;
  919.     if(sscanf(params, "d", gun)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/gun [Weapon ID]");
  920.  
  921.     if(gun < 1 || gun > 47) { SendClientMessage(playerid, COLOR_RED, "Error: Use a weapon ID from 1 to 47."); return 1; }
  922.     if(gun <= 20 || gun >= 22)
  923.     {
  924.         GivePlayerWeapon(playerid, gun, 500);
  925.     }
  926.     return 1;
  927. }
  928. COMMAND:goto(playerid, params[])
  929. {
  930.     //if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  931.    
  932.     new id, string[128], sendername[MAX_PLAYER_NAME];
  933.     if(sscanf(params, "u", id)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/goto [Player ID/Name]");
  934.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "Error: Invalid player ID.");
  935.     else if(playerid != id)
  936.     {
  937.         new Float:x, Float:y, Float:z, place;
  938.         place = random(5);
  939.         GetPlayerPos(id, x, y, z);
  940.         SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(id));
  941.         SetPlayerInterior(playerid, GetPlayerInterior(id));
  942.         switch(place)
  943.         {
  944.             case 0: SetPlayerPos(playerid, x+1, y, z);
  945.             case 1: SetPlayerPos(playerid, x+1, y+1, z);
  946.             case 2: SetPlayerPos(playerid, x-1, y, z);
  947.             case 3: SetPlayerPos(playerid, x-1, y-1, z);
  948.             case 4: SetPlayerPos(playerid, x-1, y+1, z);
  949.             case 5: SetPlayerPos(playerid, x+1, y-1, z);
  950.         }
  951.  
  952.     }
  953.     format(sendername, sizeof(sendername), "%s", PlayerNameEx(id));
  954.     GiveNameSpace(sendername);
  955.     format(string, sizeof(string), "Server: You've teleported to (ID:%i) %s.", id, sendername);
  956.     SendClientMessage(playerid, COLOR_WHITE, string);
  957.  
  958.     return 1;
  959. }
  960. COMMAND:get(playerid, params[])
  961. {
  962.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  963.  
  964.     new id, string[128], sendername[MAX_PLAYER_NAME];
  965.     if(sscanf(params, "u", id)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/get [Player ID/Name]");
  966.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "Error: Invalid player ID.");
  967.     else if(playerid != id)
  968.     {
  969.         new Float:x, Float:y, Float:z;
  970.         GetPlayerPos(playerid, x, y, z);
  971.         SetPlayerVirtualWorld(id, GetPlayerVirtualWorld(id));
  972.         SetPlayerInterior(id, GetPlayerInterior(playerid));
  973.         SetPlayerPos(id, x, y, z);
  974.     }
  975.     format(sendername, sizeof(sendername), "%s", PlayerName(id));
  976.     GiveNameSpace(sendername);
  977.     format(string, sizeof(string), "Admin: You've teleported (ID:%i) %s to yourself.", id, sendername);
  978.     SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
  979.     format(sendername, sizeof(sendername), "%s", PlayerName(playerid));
  980.     GiveNameSpace(sendername);
  981.     format(string, sizeof(string), "Admin: You've been teleported to (ID:%i) %s.", playerid, sendername);
  982.     SendClientMessage(id, COLOR_LIGHTBLUE, string);
  983.  
  984.     return 1;
  985. }
  986. COMMAND:me(playerid, params[])
  987. {
  988.     new text[256], string[256], sendername[MAX_PLAYER_NAME];
  989.     if(sscanf(params, "s[256]", text)) SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/me [action]");
  990.     else
  991.     {
  992.         format(sendername, sizeof(sendername), "%s", PlayerNameEx(playerid));
  993.         GiveNameSpace(sendername);
  994.         format(string, sizeof(string), "* %s %s", sendername, text);
  995.         ProxDetector(30.0, playerid, string, COLOR_PURPLE);
  996.         //SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 30.0, 10000);
  997.     }
  998.     return 1;
  999. }
  1000. COMMAND:shout(playerid, params[])
  1001. {
  1002.     new text[128], string[256], sendername[MAX_PLAYER_NAME];
  1003.     if(sscanf(params, "s[128]", text)) SendClientMessage(playerid, COLOR_GREY, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/shout [text]");
  1004.     else
  1005.     {
  1006.         format(sendername, sizeof(sendername), "%s", PlayerNameEx(playerid));
  1007.         GiveNameSpace(sendername);
  1008.         format(string, sizeof(string), "%s shouts: %s", sendername, text);
  1009.         ProxDetector(50.0, playerid, string, COLOR_FADE);
  1010.         SetPlayerChatBubble(playerid, string, COLOR_FADE, 30.0, strlen(text)*100);
  1011.     }
  1012.     return 1;
  1013. }
  1014. ALTCOMMAND:s->shout;
  1015. COMMAND:low(playerid, params[])
  1016. {
  1017.     new text[128], string[256], sendername[MAX_PLAYER_NAME];
  1018.     if(sscanf(params, "s[128]", text)) SendClientMessage(playerid, COLOR_GREY, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/low [text]");
  1019.     else
  1020.     {
  1021.         format(sendername, sizeof(sendername), "%s", PlayerNameEx(playerid));
  1022.         GiveNameSpace(sendername);
  1023.  
  1024.         format(string, sizeof(string), "%s says [LOW]: %s", sendername, text);
  1025.         ProxDetector(5.0, playerid, string, COLOR_GREY);
  1026.     }
  1027.     return 1;
  1028. }
  1029. COMMAND:do(playerid, params[])
  1030. {
  1031.     new text[256], string[256], sendername[MAX_PLAYER_NAME];
  1032.     if(sscanf(params, "s[256]", text)) SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE" /do [text]");
  1033.     else
  1034.     {
  1035.         format(sendername, sizeof(sendername), "%s", PlayerNameEx(playerid));
  1036.         GiveNameSpace(sendername);
  1037.         format(string, sizeof(string), "* %s (( %s ))", text, sendername);
  1038.         ProxDetector(30.0, playerid, string, COLOR_PURPLE);
  1039.     }
  1040.     return 1;
  1041. }
  1042. COMMAND:whisper(playerid, params[])
  1043. {
  1044.     new text[128], targetid,string[128], sendername[MAX_PLAYER_NAME], giveplayer[MAX_PLAYER_NAME];
  1045.     if(sscanf(params, "us[128]", targetid, text)) SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/w [Player ID/Name] [message]");
  1046.     else
  1047.     {
  1048.         if (playerid == targetid) return SendClientMessage(playerid, COLOR_RED, "Error: You can not whisper to yourself.");
  1049.         if(IsPlayerConnected(targetid))
  1050.         {
  1051.             if(PlayerToPlayer(playerid,targetid,5.0))
  1052.             {
  1053.                 format(sendername, sizeof(sendername), "%s", PlayerNameEx(playerid));
  1054.                 format(giveplayer, sizeof(giveplayer), "%s", PlayerNameEx(targetid));
  1055.                 GiveNameSpace(sendername);
  1056.                 GiveNameSpace(giveplayer);
  1057.                 format(string, sizeof(string), "*** %s whispers something to %s.", sendername, giveplayer);
  1058.                 SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 30.0, 10000);
  1059.                 format(string, sizeof(string), "%s whispers: %s", sendername, text);
  1060.                 SendSplitClientMessage(targetid,  COLOR_YELLOW, string);
  1061.                 SendSplitClientMessage(playerid,  COLOR_YELLOW, string);
  1062.             }
  1063.             else
  1064.             {
  1065.                 SendClientMessage(playerid,COLOR_RED,"Error: You are too far away from that player.");
  1066.             }
  1067.         }
  1068.     }
  1069.     return 1;
  1070. }
  1071. ALTCOMMAND:w->whisper;
  1072. COMMAND:pm(playerid, params[])
  1073. {
  1074.     new text[256], targetid, string[256];
  1075.     if(sscanf(params, "us[128]", targetid, text)) SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/pm [Player ID/Name] [message]");
  1076.     else
  1077.     {
  1078.         if (playerid == targetid) return SendClientMessage(playerid, COLOR_RED, "Error: You may not PM yourself.");
  1079.         if(IsPlayerConnected(targetid))
  1080.         {
  1081.             format(string, sizeof(string), "(( PM from %s (ID:%i): %s ))", PlayerName(playerid), playerid, text);
  1082.             SendSplitClientMessage(targetid,  COLOR_YELLOW, string);
  1083.             format(string, sizeof(string), "(( PM sent to %s (ID:%i): %s ))", PlayerName(targetid), targetid, text);
  1084.             SendSplitClientMessage(playerid,  COLOR_YELLOW, string);
  1085.         }
  1086.         else SendClientMessage(playerid, COLOR_RED, "Error: Player is offline.");
  1087.     }
  1088.     return 1;
  1089. }
  1090. COMMAND:debug(playerid, params[])
  1091. {
  1092.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  1093.  
  1094.     new id, tpstring[128];
  1095.     if(sscanf(params, "u", id)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/debug [Player ID/Name]");
  1096.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "Error: Invalid player ID.");
  1097.  
  1098.     format(tpstring, sizeof(tpstring), "Admin: You've debugged (ID:%i) %s and teleported him/her to Los Santos.", id, PlayerName(id));
  1099.     SendClientMessage(playerid, COLOR_LIGHTBLUE, tpstring);
  1100.  
  1101.     if(IsPlayerInAnyVehicle(playerid))
  1102.     {
  1103.         SetVehiclePos(GetPlayerVehicleID(id), 1513.2799,-1658.9572,13.5392);
  1104.     }
  1105.     else
  1106.     {
  1107.         SetPlayerPos(id,1513.2799,-1658.9572,13.5392);
  1108.         SetPlayerFacingAngle(id, 268.7108);
  1109.     }
  1110.     SetPlayerInterior(id, 0);
  1111.     SetPlayerVirtualWorld(id, 0);
  1112.  
  1113.     return 1;
  1114. }
  1115. COMMAND:acar(playerid, params[])
  1116. {
  1117.         new carid, carcolor1, carcolor2;
  1118.         if(!sscanf(params, "iii", carid, carcolor1, carcolor2))
  1119.         {
  1120.             new sendername[MAX_PLAYER_NAME];
  1121.             GetPlayerName(playerid, sendername, sizeof(sendername));
  1122.  
  1123.             if(carid >= 400 && carid <= 611)
  1124.             {
  1125.                 if(carcolor1 >= 0 && carcolor1 <= 252)
  1126.                 {
  1127.                     if(carcolor2 >= 0 && carcolor2 <= 252)
  1128.                     {
  1129.                         new veh;
  1130.                         new Float:XZ, Float:YZ, Float:ZZ, Float:angle;
  1131.                         GetPlayerFacingAngle(playerid, angle);
  1132.                         GetPlayerPos(playerid, XZ, YZ, ZZ);
  1133.                         veh = CreateVehicle(carid, XZ, YZ, ZZ, angle, carcolor1, carcolor2, 0);
  1134.                         SetVehicleVirtualWorld( veh , GetPlayerVirtualWorld(playerid));
  1135.                         LinkVehicleToInterior(veh, GetPlayerInterior(playerid));
  1136.                         acarInfo[veh][Created] = 1;
  1137.                         strmid(acarInfo[veh][Owner], sendername, 0, strlen(sendername), 255);
  1138.                         SendClientMessage(playerid,COLOR_LIGHTBLUE,"Admin: Vehicle created. Use /delcar to delete your last spawned vehicle.");
  1139.                         PutPlayerInVehicle(playerid, veh, 0);
  1140.                         return 1;
  1141.                     }
  1142.                     else return SendClientMessage(playerid, COLOR_RED, "Error: Use color IDs between 0 and 252.");
  1143.                 }
  1144.                 else return SendClientMessage(playerid, COLOR_RED, "Error: Use color IDs between 0 and 252.");
  1145.             }
  1146.             else return SendClientMessage(playerid, COLOR_RED, "Error: Use vehicle IDs from 400 too 611.");
  1147.         }
  1148.         else return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/acar [Vehicle ID] [Color 1] [Color 2]");
  1149.    
  1150. }
  1151. COMMAND:delcar(playerid, params[])
  1152. {
  1153.     new sendername[MAX_PLAYER_NAME];
  1154.     GetPlayerName(playerid, sendername, sizeof(sendername));
  1155.     for(new car = 0; car < MAX_VEHICLES; car++)
  1156.     if(acarInfo[car][Created] == 1)
  1157.     {
  1158.         if(strcmp(acarInfo[car][Owner], sendername, true) == 0)
  1159.         {
  1160.             SendClientMessage(playerid, COLOR_LIGHTBLUE, "Admin: Vehicle has been despawned.");
  1161.             DestroyVehicle(car);
  1162.             acarInfo[car][Created] = 0;
  1163.             return 1;
  1164.         }
  1165.     }
  1166.     return 1;
  1167. }
  1168. COMMAND:kick(playerid, params[])
  1169. {
  1170.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  1171.  
  1172.     new gocha, reason[128];
  1173.     if(sscanf(params, "us[128]", gocha, reason)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/kick [Player ID/Name] [Reason]");
  1174.     else
  1175.     {
  1176.         KickWithMessage(gocha, COLOR_LIGHTRED, reason);
  1177.     }
  1178.  
  1179.     return 1;
  1180. }
  1181. COMMAND:slap(playerid, params[])
  1182. {
  1183.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  1184.  
  1185.     new kkid;
  1186.     if(sscanf(params, "u", kkid)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/slap [Player ID/Name]");
  1187.     else
  1188.     {
  1189.         if (!IsPlayerConnected(kkid)) return SendClientMessage(playerid, COLOR_RED, "Error: Player ID offline.");
  1190.         else
  1191.         {
  1192.             new Float:ppx, Float:ppy, Float:ppz;
  1193.  
  1194.             GetPlayerPos(kkid, ppx, ppy, ppz);
  1195.             SetPlayerPos(kkid, ppx, ppy, ppz+5.0);
  1196.         }
  1197.     }
  1198.  
  1199.     return 1;
  1200. }
  1201. COMMAND:unslap(playerid, params[])
  1202. {
  1203.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  1204.  
  1205.     new kkid;
  1206.     if(sscanf(params, "u", kkid)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/slap [Player ID/Name]");
  1207.     else
  1208.     {
  1209.         if (!IsPlayerConnected(kkid)) return SendClientMessage(playerid, COLOR_RED, "Error: Player ID offline.");
  1210.         else
  1211.         {
  1212.             new Float:ppx, Float:ppy, Float:ppz;
  1213.  
  1214.             GetPlayerPos(kkid, ppx, ppy, ppz);
  1215.             SetPlayerPos(kkid, ppx, ppy, ppz-2.0);
  1216.         }
  1217.     }
  1218.  
  1219.     return 1;
  1220. }
  1221. ALTCOMMAND:down->unslap;
  1222. COMMAND:f(playerid, params[])
  1223. {
  1224.     new text[256], sendername[MAX_PLAYER_NAME], string[256];
  1225.     if(sscanf(params, "s[256]", text)) SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/f [faction message]");
  1226.     else
  1227.     {
  1228.         GetPlayerName(playerid, sendername, MAX_PLAYER_NAME);
  1229.         GiveNameSpace(sendername);
  1230.  
  1231.  
  1232.         format(string, sizeof(string), "**(( Officer %s: %s ))**", sendername, text);
  1233.         foreach(Player, i)
  1234.         {
  1235.                 SendSplitClientMessage(i,COLOR_BLUE,string);
  1236.         }
  1237.     }
  1238.     return 1;
  1239. }
  1240. COMMAND:fix(playerid)
  1241. {
  1242.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "You are not in a vehicle!");
  1243.     else
  1244.     {
  1245.         RepairVehicle(GetPlayerVehicleID(playerid));
  1246.         SendClientMessage(playerid, 0xFFFFFFFF, "Your vehicle has been repaired!");
  1247.     }
  1248.     return 1;
  1249. }
  1250. COMMAND:r(playerid, params[])
  1251. {
  1252.     new text[256], sendername[MAX_PLAYER_NAME], string[256];
  1253.     if(sscanf(params, "s[256]", text)) SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/f [faction message]");
  1254.     else
  1255.     {
  1256.         GetPlayerName(playerid, sendername, MAX_PLAYER_NAME);
  1257.         GiveNameSpace(sendername);
  1258.  
  1259.  
  1260.         format(string, sizeof(string), "**[Radio] %s: %s **", sendername, text);
  1261.         foreach(Player, i)
  1262.         {
  1263.                 SendSplitClientMessage(i,COLOR_BLUE,string);
  1264.         }
  1265.     }
  1266.     return 1;
  1267. }
  1268. COMMAND:mark(playerid)
  1269. {
  1270.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  1271.     else
  1272.     {
  1273.         GetPlayerPos(playerid, markx, marky, markz);
  1274.         markvw = GetPlayerVirtualWorld(playerid);
  1275.         markint = GetPlayerInterior(playerid);
  1276.         SendClientMessage(playerid, COLOR_LIGHTBLUE, "Admin: Position has been marked.");
  1277.     }
  1278.  
  1279.     return 1;
  1280. }
  1281. COMMAND:mark2(playerid)
  1282. {
  1283.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You must be an admin to use this command.");
  1284.     else
  1285.     {
  1286.         GetPlayerPos(playerid, markx2, marky2, markz2);
  1287.         markvw2 = GetPlayerVirtualWorld(playerid);
  1288.         markint2 = GetPlayerInterior(playerid);
  1289.         SendClientMessage(playerid, COLOR_LIGHTBLUE, "Admin: 2nd position has been marked.");
  1290.     }
  1291.  
  1292.     return 1;
  1293. }
  1294. COMMAND:gotomark(playerid)
  1295. {
  1296.     SetPlayerPos(playerid, markx, marky, markz);
  1297.     SetPlayerVirtualWorld(playerid, markvw);
  1298.     SetPlayerInterior(playerid, markint);
  1299.     return 1;
  1300. }
  1301. COMMAND:gotomark2(playerid)
  1302. {
  1303.     SetPlayerPos(playerid, markx2, marky2, markz2);
  1304.     SetPlayerVirtualWorld(playerid, markvw2);
  1305.     SetPlayerInterior(playerid, markint2);
  1306.     return 1;
  1307. }
  1308. COMMAND:pdhq(playerid)
  1309. {
  1310.     SetPlayerPos(playerid, 1529.2416, -1676.9371, 5.8906);
  1311.     SetPlayerVirtualWorld(playerid, 0);
  1312.     SetPlayerInterior(playerid, 0);
  1313.     return 1;
  1314. }
  1315. COMMAND:training(playerid)
  1316. {
  1317.     SetPlayerPos(playerid, 1924.1031, 704.3874, 11.1328);
  1318.     SetPlayerVirtualWorld(playerid, 0);
  1319.     SetPlayerInterior(playerid, 0);
  1320.     return 1;
  1321. }
  1322. COMMAND:mask(playerid)
  1323. {
  1324.     if(masked[playerid])
  1325.     {
  1326.         foreach(Player, hideme)
  1327.         {
  1328.             ShowPlayerNameTagForPlayer(hideme, playerid, 1);
  1329.         }
  1330.         masked[playerid] = false;
  1331.         GameTextForPlayer(playerid, "~w~Mask ~r~OFF", 5000, 6);
  1332.     }
  1333.     else
  1334.     {
  1335.         foreach(Player, hideme)
  1336.         {
  1337.             ShowPlayerNameTagForPlayer(hideme, playerid, 0);
  1338.         }
  1339.         masked[playerid] = true;
  1340.         GameTextForPlayer(playerid, "~w~Mask ~g~ON", 5000, 6);
  1341.     }
  1342.  
  1343.     return 1;
  1344. }
  1345. COMMAND:duty(playerid)
  1346. {
  1347.     new dutystring[128];
  1348.     format(dutystring, sizeof(dutystring), "HQ: %s has gone on duty.", PlayerNameEx(playerid));
  1349.     SendClientMessageToAll(COLOR_BLUE, dutystring);
  1350.     SetPlayerHealth(playerid, 150.0);
  1351.     SetPlayerArmour(playerid, 100.0);
  1352.     SetPlayerColor(playerid, COLOR_BLUE);
  1353.     GivePlayerWeapon(playerid, 31, 500);
  1354.     GivePlayerWeapon(playerid, 29, 500);
  1355.     GivePlayerWeapon(playerid, 25, 500);
  1356.     GivePlayerWeapon(playerid, 24, 500);
  1357.     new i;
  1358.     for(i = 0; i < MAX_PLAYERS; ++i)
  1359.     {
  1360.         if(IsPlayerConnected(i))
  1361.         {
  1362.             SetPlayerMarkerForPlayer( i, playerid, GetPlayerColor( playerid ) & 0xFFFFFF00);
  1363.         }
  1364.     }
  1365.     return 1;
  1366. }
  1367. COMMAND:offduty(playerid)
  1368. {
  1369.     new dutystring[128];
  1370.     format(dutystring, sizeof(dutystring), "HQ: %s has gone off duty.", PlayerNameEx(playerid));
  1371.     SendClientMessageToAll(COLOR_BLUE, dutystring);
  1372.     SetPlayerHealth(playerid, 150.0);
  1373.     SetPlayerArmour(playerid, 0.0);
  1374.     SetPlayerColor(playerid, COLOR_WHITE);
  1375.     new i;
  1376.     for(i = 0; i < MAX_PLAYERS; ++i)
  1377.     {
  1378.         if(IsPlayerConnected(i))
  1379.         {
  1380.             SetPlayerMarkerForPlayer( i, playerid, GetPlayerColor( playerid ) & 0xFFFFFF00);
  1381.         }
  1382.     }
  1383.     return 1;
  1384. }
  1385. COMMAND:swat(playerid)
  1386. {
  1387.     new dutystring[128];
  1388.     format(dutystring, sizeof(dutystring), "HQ: %s SWAT Operator is ready for orders!", PlayerNameEx(playerid));
  1389.     SendClientMessageToAll(COLOR_BLUE, dutystring);
  1390.     SetPlayerHealth(playerid, 150.0);
  1391.     SetPlayerArmour(playerid, 200.0);
  1392.     SetPlayerColor(playerid, COLOR_BLUE);
  1393.     GivePlayerWeapon(playerid, 31, 500);
  1394.     GivePlayerWeapon(playerid, 27, 500);
  1395.     GivePlayerWeapon(playerid, 34, 500);
  1396.     GivePlayerWeapon(playerid, 24, 500);
  1397.     SetPlayerSkin(playerid, 285);
  1398.     new i;
  1399.     for(i = 0; i < MAX_PLAYERS; ++i)
  1400.     {
  1401.         if(IsPlayerConnected(i))
  1402.         {
  1403.             SetPlayerMarkerForPlayer( i, playerid, GetPlayerColor( playerid ) & 0xFFFFFF00);
  1404.         }
  1405.     }
  1406.     return 1;
  1407. }
  1408. COMMAND:criminal(playerid)
  1409. {
  1410.     new dutystring[128];
  1411.     format(dutystring, sizeof(dutystring), "HQ: %s has gone on criminal duty.", PlayerNameEx(playerid));
  1412.     SendClientMessageToAll(COLOR_BLUE, dutystring);
  1413.     SetPlayerHealth(playerid, 150.0);
  1414.     SetPlayerArmour(playerid, 0.0);
  1415.     SetPlayerColor(playerid, COLOR_WHITE);
  1416.     SetPlayerSkin(playerid, 29);
  1417.     GivePlayerWeapon(playerid, 30, 500);
  1418.     GivePlayerWeapon(playerid, 29, 500);
  1419.     GivePlayerWeapon(playerid, 25, 500);
  1420.     new i;
  1421.     for(i = 0; i < MAX_PLAYERS; ++i)
  1422.     {
  1423.         if(IsPlayerConnected(i))
  1424.         {
  1425.             SetPlayerMarkerForPlayer( i, playerid, GetPlayerColor( playerid ) & 0xFFFFFF00);
  1426.         }
  1427.     }
  1428.     return 1;
  1429. }
  1430. COMMAND:taser(playerid)
  1431. {
  1432.     new string[128];
  1433.     if(taserer[playerid])
  1434.     {
  1435.         GivePlayerWeapon(playerid, 24, 140);
  1436.         SetPlayerArmedWeapon(playerid, 24);
  1437.         taserer[playerid] = false;
  1438.         format(string, sizeof(string), "*** %s holsters their taser.", PlayerNameEx(playerid));
  1439.         SendClientMessage(playerid, COLOR_PURPLE, string);
  1440.         SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 20.0, 5000);
  1441.     }
  1442.     else
  1443.     {
  1444.         GivePlayerWeapon(playerid, 23, 10);
  1445.         SetPlayerArmedWeapon(playerid, 23);
  1446.         taserer[playerid] = true;
  1447.         format(string, sizeof(string), "*** %s unholsters their taser.", PlayerNameEx(playerid));
  1448.         SendClientMessage(playerid, COLOR_PURPLE, string);
  1449.         SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 20.0, 5000);
  1450.     }
  1451.  
  1452.     return 1;
  1453. }
  1454. COMMAND:respawn(playerid)
  1455. {
  1456.     SpawnPlayer(playerid);
  1457.     return 1;
  1458. }
  1459.  
  1460. stock Bodyname(abodypart)
  1461. {
  1462.     new bname[16];
  1463.     switch(abodypart)
  1464.     {
  1465.         case 3: format(bname, sizeof(bname), "CHEST");
  1466.         case 4: format(bname, sizeof(bname), "GROIN");
  1467.         case 5: format(bname, sizeof(bname), "L ARM");
  1468.         case 6: format(bname, sizeof(bname), "R ARM");
  1469.         case 7: format(bname, sizeof(bname), "L LEG");
  1470.         case 8: format(bname, sizeof(bname), "R LEG");
  1471.         case 9: format(bname, sizeof(bname), "HEAD");
  1472.         default: format(bname, sizeof(bname), "UNKNOWN");
  1473.     }
  1474.     return bname;
  1475. }
  1476. stock GunNameEx(weaponid)
  1477. {
  1478.     new string[25];
  1479.     switch (weaponid)
  1480.     {
  1481.         case 0: format(string, sizeof(string), "Knuckle");
  1482.         case 1: format(string, sizeof(string), "Boxer");
  1483.         case 2: format(string, sizeof(string), "Golf bat");
  1484.         case 3: format(string, sizeof(string), "Baton");
  1485.         case 4: format(string, sizeof(string), "Knife");
  1486.         case 5: format(string, sizeof(string), "Baseball bat");
  1487.         case 6: format(string, sizeof(string), "Shovel");
  1488.         case 7: format(string, sizeof(string), "Pool cue");
  1489.         case 8: format(string, sizeof(string), "Katana");
  1490.         case 9: format(string, sizeof(string), "Chainsaw");
  1491.         case 10: format(string, sizeof(string), "Purple vibrator");
  1492.         case 11: format(string, sizeof(string), "Dildo");
  1493.         case 12: format(string, sizeof(string), "Vibrator");
  1494.         case 13: format(string, sizeof(string), "Vibrator");
  1495.         case 14: format(string, sizeof(string), "Flowers");
  1496.         case 15: format(string, sizeof(string), "Cane");
  1497.         case 16: format(string, sizeof(string), "Grenade");
  1498.         case 17: format(string, sizeof(string), "Smoke Grenade");
  1499.         case 18: format(string, sizeof(string), "Molotov Cocktail");
  1500.         case 19: format(string, sizeof(string), "(?) Vehicle Rocker");
  1501.         case 20: format(string, sizeof(string), "(?)Hydra Flare");
  1502.         case 21: format(string, sizeof(string), "(?)Jetpack");
  1503.         case 22: format(string, sizeof(string), "Glock");
  1504.         case 23: format(string, sizeof(string), "TASER");
  1505.         case 24: format(string, sizeof(string), "DEAGLE");
  1506.         case 25: format(string, sizeof(string), "SHOTGUN");
  1507.         case 26: format(string, sizeof(string), "SAWNOFF");
  1508.         case 27: format(string, sizeof(string), "SPAS12");
  1509.         case 28: format(string, sizeof(string), "UZI");
  1510.         case 29: format(string, sizeof(string), "MP5");
  1511.         case 30: format(string, sizeof(string), "AK47");
  1512.         case 31: format(string, sizeof(string), "M4");
  1513.         case 32: format(string, sizeof(string), "TEC9");
  1514.         case 33: format(string, sizeof(string), "RIFLE");
  1515.         case 34: format(string, sizeof(string), "SNIPER");
  1516.         case 35: format(string, sizeof(string), "Rocket Launcher");
  1517.         case 36: format(string, sizeof(string), "HS Rocket Launcher");
  1518.         case 37: format(string, sizeof(string), "Flamethrower");
  1519.         case 38: format(string, sizeof(string), "Minigun");
  1520.         case 39: format(string, sizeof(string), "C4");
  1521.         case 40: format(string, sizeof(string), "Detonator");
  1522.         case 41: format(string, sizeof(string), "Pepper Spray");
  1523.         case 42: format(string, sizeof(string), "Fire Extinguisher");
  1524.         case 43: format(string, sizeof(string), "Camera");
  1525.     }
  1526.     return string;
  1527. }
  1528.  
  1529. COMMAND:damages(playerid, params[])
  1530. {
  1531.     new cdead;
  1532.     if(sscanf(params, "u", cdead)) return SendClientMessage(playerid, COLOR_WHITE, ""DCOLOR_BLUE"Syntax: "DCOLOR_WHITE"/damages [Player ID/Name]");
  1533.     else
  1534.     {
  1535.         new dmgstring[1280], dtitle[64], line[256], injured = false;
  1536.         new dee;
  1537.         strcat(dmgstring, "Bodypart\tWeapon\tDamage\tWound\n");
  1538.         for(dee = 0; dee < 20; ++dee)
  1539.         {
  1540.             if(pdamage[cdead][hit][dee] > 0)
  1541.             {
  1542.                 injured = true;
  1543.                 if(pdamage[cdead][kevlar] == 1)
  1544.                     format(line, sizeof(line), "%s\t%s\tDMG:%d\tKEVLAR\n", Bodyname(pdamage[cdead][hit][dee]), GunNameEx(pdamage[cdead][hit][dee]), pdamage[cdead][tdamage][dee]);
  1545.                 else
  1546.                     format(line, sizeof(line), "%s\t%s\tDMG:%d\tFLESH\n", Bodyname(pdamage[cdead][hit][dee]), GunNameEx(pdamage[cdead][hit][dee]), pdamage[cdead][tdamage][dee]);
  1547.                 strcat(dmgstring, line);
  1548.             }
  1549.        
  1550.        
  1551.         }
  1552.         format(dtitle, sizeof(dtitle), "Damages of %s", PlayerNameEx(cdead));
  1553.         if(injured)
  1554.             ShowPlayerDialog(playerid, DIALOG_SHOW_HELP, DIALOG_STYLE_TABLIST_HEADERS, dtitle, dmgstring, "Close", "");
  1555.         else
  1556.             SendClientMessage(playerid, COLOR_RED, "Error: The selected player has no injuries or he has already respawned.");
  1557.     }
  1558.     return 1;
  1559. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement