Renshard

FilterScript_1

Jan 6th, 2014
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 12.59 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define FS_PlayersMaximal 500
  4. #define FS_PositionsMaximal 10
  5. #define FS_PositionsDialog 0
  6. #define FS_PositionDialog 1
  7.  
  8. new FS_PlayerInterior[FS_PlayersMaximal][FS_PositionsMaximal];
  9. new FS_PlayerVirtualWorld[FS_PlayersMaximal][FS_PositionsMaximal];
  10. new Float:FS_PlayerPositionX[FS_PlayersMaximal][FS_PositionsMaximal];
  11. new Float:FS_PlayerPositionY[FS_PlayersMaximal][FS_PositionsMaximal];
  12. new Float:FS_PlayerPositionZ[FS_PlayersMaximal][FS_PositionsMaximal];
  13. new Float:FS_PlayerPositionA[FS_PlayersMaximal][FS_PositionsMaximal];
  14. new FS_PlayerPositionSelected[FS_PlayersMaximal];
  15.  
  16. public OnPlayerConnect(playerid)
  17. {
  18.     for(new FS_Loop = 0; FS_Loop < FS_PositionsMaximal; FS_Loop++)
  19.     {
  20.         FS_PlayerInterior[playerid][FS_Loop] = 0;
  21.         FS_PlayerVirtualWorld[playerid][FS_Loop] = 0;
  22.         FS_PlayerPositionX[playerid][FS_Loop] = 0.0;
  23.         FS_PlayerPositionY[playerid][FS_Loop] = 0.0;
  24.         FS_PlayerPositionZ[playerid][FS_Loop] = 0.0;
  25.         FS_PlayerPositionA[playerid][FS_Loop] = 0.0;
  26.     }
  27.     FS_PlayerPositionSelected[playerid] = -1;
  28.     return 1;
  29. }
  30.  
  31. public OnPlayerDisconnect(playerid,reason)
  32. {
  33.     for(new FS_Loop = 0; FS_Loop < FS_PositionsMaximal; FS_Loop++)
  34.     {
  35.         FS_PlayerInterior[playerid][FS_Loop] = 0;
  36.         FS_PlayerVirtualWorld[playerid][FS_Loop] = 0;
  37.         FS_PlayerPositionX[playerid][FS_Loop] = 0.0;
  38.         FS_PlayerPositionY[playerid][FS_Loop] = 0.0;
  39.         FS_PlayerPositionZ[playerid][FS_Loop] = 0.0;
  40.         FS_PlayerPositionA[playerid][FS_Loop] = 0.0;
  41.     }
  42.     FS_PlayerPositionSelected[playerid] = -1;
  43.     return 1;
  44. }
  45.  
  46. public OnPlayerCommandText(playerid,cmdtext[])
  47. {
  48.     new FS_Parameter;
  49.     FS_Parameter = strfind(cmdtext," ") + 1;
  50.     if(FS_Parameter)
  51.     {
  52.         cmdtext[FS_Parameter - 1] = EOS;
  53.     }
  54.     if(!cmdtext[FS_Parameter])
  55.     {
  56.         FS_Parameter = 0;
  57.     }
  58.     if(!strcmp(cmdtext,"/SavePosition",true) || !strcmp(cmdtext,"/Sp",true))
  59.     {
  60.         if(!FS_Parameter)
  61.         {
  62.             SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}Type: /SavePosition [Position ID] Or /Sp [Position ID].");
  63.             return 1;
  64.         }
  65.         if(strval(cmdtext[FS_Parameter]) > FS_PositionsMaximal - 1)
  66.         {
  67.             SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}You can not save this position.");
  68.             return 1;
  69.         }
  70.         FS_PlayerInterior[playerid][strval(cmdtext[FS_Parameter])] = GetPlayerInterior(playerid);
  71.         FS_PlayerVirtualWorld[playerid][strval(cmdtext[FS_Parameter])] = GetPlayerVirtualWorld(playerid);
  72.         if(IsPlayerInAnyVehicle(playerid))
  73.         {
  74.             GetVehiclePos(GetPlayerVehicleID(playerid),FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])]);
  75.             GetVehicleZAngle(GetPlayerVehicleID(playerid),FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])]);
  76.         }
  77.         if(!IsPlayerInAnyVehicle(playerid))
  78.         {
  79.             GetPlayerPos(playerid,FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])]);
  80.             GetPlayerFacingAngle(playerid,FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])]);
  81.         }
  82.         SendClientMessage(playerid,0xFFFFFFFF,"(Success): {00FF00}Your positions is successfully saved.");
  83.         return 1;
  84.     }
  85.     if(!strcmp(cmdtext,"/LoadPosition",true) || !strcmp(cmdtext,"/Lp",true))
  86.     {
  87.         if(!FS_Parameter)
  88.         {
  89.             SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}Type: /LoadPosition [Position ID] Or /Lp [Position ID].");
  90.             return 1;
  91.         }
  92.         if(strval(cmdtext[FS_Parameter]) > FS_PositionsMaximal - 1)
  93.         {
  94.             SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}You can not load this position.");
  95.             return 1;
  96.         }
  97.         if(FS_PlayerInterior[playerid][strval(cmdtext[FS_Parameter])] == 0 && FS_PlayerVirtualWorld[playerid][strval(cmdtext[FS_Parameter])] == 0 && FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])] == 0.0 && FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])] == 0.0 && FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])] == 0.0 && FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])] == 0.0)
  98.         {
  99.             SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}This position is not saved yet.");
  100.             return 1;
  101.         }
  102.         SetPlayerInterior(playerid,FS_PlayerInterior[playerid][strval(cmdtext[FS_Parameter])]);
  103.         SetPlayerVirtualWorld(playerid,FS_PlayerVirtualWorld[playerid][strval(cmdtext[FS_Parameter])]);
  104.         if(IsPlayerInAnyVehicle(playerid))
  105.         {
  106.             LinkVehicleToInterior(GetPlayerVehicleID(playerid),FS_PlayerInterior[playerid][strval(cmdtext[FS_Parameter])]);
  107.             SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),FS_PlayerVirtualWorld[playerid][strval(cmdtext[FS_Parameter])]);
  108.             SetVehiclePos(GetPlayerVehicleID(playerid),FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])]);
  109.             SetVehicleZAngle(GetPlayerVehicleID(playerid),FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])]);
  110.         }
  111.         if(!IsPlayerInAnyVehicle(playerid))
  112.         {
  113.             SetPlayerPos(playerid,FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])]);
  114.             SetPlayerFacingAngle(playerid,FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])]);
  115.         }
  116.         SendClientMessage(playerid,0xFFFFFFFF,"(Success): {00FF00}Your position is successfully loaded.");
  117.         return 1;
  118.     }
  119.     if(!strcmp(cmdtext,"/DeletePosition",true) || !strcmp(cmdtext,"/Dp",true))
  120.     {
  121.         if(!FS_Parameter)
  122.         {
  123.             SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}Type: /DeletePosition [Position ID] Or /Dp [Position ID].");
  124.             return 1;
  125.         }
  126.         if(strval(cmdtext[FS_Parameter]) > FS_PositionsMaximal - 1)
  127.         {
  128.             SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}You can not delete this position.");
  129.             return 1;
  130.         }
  131.         if(FS_PlayerInterior[playerid][strval(cmdtext[FS_Parameter])] == 0 && FS_PlayerVirtualWorld[playerid][strval(cmdtext[FS_Parameter])] == 0 && FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])] == 0.0 && FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])] == 0.0 && FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])] == 0.0 && FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])] == 0.0)
  132.         {
  133.             SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}This position is not saved yet.");
  134.             return 1;
  135.         }
  136.         FS_PlayerInterior[playerid][strval(cmdtext[FS_Parameter])] = 0;
  137.         FS_PlayerVirtualWorld[playerid][strval(cmdtext[FS_Parameter])] = 0;
  138.         FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])] = 0.0;
  139.         FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])] = 0.0;
  140.         FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])] = 0.0;
  141.         FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])] = 0.0;
  142.         SendClientMessage(playerid,0xFFFFFFFF,"(Success): {00FF00}Your position is successfully deleted.");
  143.         return 1;
  144.     }
  145.     if(!strcmp(cmdtext,"/Positions",true) || !strcmp(cmdtext,"/P",true))
  146.     {
  147.         new FS_String[30 * FS_PositionsMaximal];
  148.         FS_String[0] = EOS;
  149.         for(new FS_Loop = 0; FS_Loop < FS_PositionsMaximal; FS_Loop++)
  150.         {
  151.             format(FS_String,sizeof(FS_String),"%s{FFFFFF}Position {00FF00}%d\n",FS_String,FS_Loop);
  152.         }
  153.         ShowPlayerDialog(playerid,FS_PositionsDialog,DIALOG_STYLE_LIST,"{FFFFFF}Positions",FS_String,"Select","Cancel");
  154.         return 1;
  155.     }
  156.     return 0;
  157. }
  158.  
  159. public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
  160. {
  161.     switch(dialogid)
  162.     {
  163.         case FS_PositionsDialog:
  164.         {
  165.             if(response)
  166.             {
  167.                 FS_PlayerPositionSelected[playerid] = listitem;
  168.                 ShowPlayerDialog(playerid,FS_PositionDialog,DIALOG_STYLE_LIST,"{FFFFFF}Positions","{FFFFFF}Save\n{FFFFFF}Load\n{FFFFFF}Delete","Select","Back");
  169.             }
  170.         }
  171.         case FS_PositionDialog:
  172.         {
  173.             if(response)
  174.             {
  175.                 switch(listitem)
  176.                 {
  177.                     case 0:
  178.                     {
  179.                         FS_PlayerInterior[playerid][FS_PlayerPositionSelected[playerid]] = GetPlayerInterior(playerid);
  180.                         FS_PlayerVirtualWorld[playerid][FS_PlayerPositionSelected[playerid]] = GetPlayerVirtualWorld(playerid);
  181.                         if(IsPlayerInAnyVehicle(playerid))
  182.                         {
  183.                             GetVehiclePos(GetPlayerVehicleID(playerid),FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]]);
  184.                             GetVehicleZAngle(GetPlayerVehicleID(playerid),FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]]);
  185.                         }
  186.                         if(!IsPlayerInAnyVehicle(playerid))
  187.                         {
  188.                             GetPlayerPos(playerid,FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]]);
  189.                             GetPlayerFacingAngle(playerid,FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]]);
  190.                         }
  191.                         SendClientMessage(playerid,0xFFFFFFFF,"(Success): {00FF00}Your positions is successfully saved.");
  192.                     }
  193.                     case 1:
  194.                     {
  195.                         if(FS_PlayerInterior[playerid][FS_PlayerPositionSelected[playerid]] == 0 && FS_PlayerVirtualWorld[playerid][FS_PlayerPositionSelected[playerid]] == 0 && FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]] == 0.0 && FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]] == 0.0 && FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]] == 0.0 && FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]] == 0.0)
  196.                         {
  197.                             SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}This position is not saved yet.");
  198.                             return 1;
  199.                         }
  200.                         SetPlayerInterior(playerid,FS_PlayerInterior[playerid][FS_PlayerPositionSelected[playerid]]);
  201.                         SetPlayerVirtualWorld(playerid,FS_PlayerVirtualWorld[playerid][FS_PlayerPositionSelected[playerid]]);
  202.                         if(IsPlayerInAnyVehicle(playerid))
  203.                         {
  204.                             LinkVehicleToInterior(GetPlayerVehicleID(playerid),FS_PlayerInterior[playerid][FS_PlayerPositionSelected[playerid]]);
  205.                             SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),FS_PlayerVirtualWorld[playerid][FS_PlayerPositionSelected[playerid]]);
  206.                             SetVehiclePos(GetPlayerVehicleID(playerid),FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]]);
  207.                             SetVehicleZAngle(GetPlayerVehicleID(playerid),FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]]);
  208.                         }
  209.                         if(!IsPlayerInAnyVehicle(playerid))
  210.                         {
  211.                             SetPlayerPos(playerid,FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]]);
  212.                             SetPlayerFacingAngle(playerid,FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]]);
  213.                         }
  214.                         SendClientMessage(playerid,0xFFFFFFFF,"(Success): {00FF00}Your position is successfully loaded.");
  215.                     }
  216.                     case 2:
  217.                     {
  218.                         if(FS_PlayerInterior[playerid][FS_PlayerPositionSelected[playerid]] == 0 && FS_PlayerVirtualWorld[playerid][FS_PlayerPositionSelected[playerid]] == 0 && FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]] == 0.0 && FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]] == 0.0 && FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]] == 0.0 && FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]] == 0.0)
  219.                         {
  220.                             SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}This position is not saved yet.");
  221.                             return 1;
  222.                         }
  223.                         FS_PlayerInterior[playerid][FS_PlayerPositionSelected[playerid]] = 0;
  224.                         FS_PlayerVirtualWorld[playerid][FS_PlayerPositionSelected[playerid]] = 0;
  225.                         FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]] = 0.0;
  226.                         FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]] = 0.0;
  227.                         FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]] = 0.0;
  228.                         FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]] = 0.0;
  229.                         SendClientMessage(playerid,0xFFFFFFFF,"(Success): {00FF00}Your position is successfully deleted.");
  230.                     }
  231.                 }
  232.             }
  233.         }
  234.     }
  235.     return 1;
  236. }
Advertisement
Add Comment
Please, Sign In to add comment