Advertisement
Guest User

Untitled

a guest
Oct 26th, 2011
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.80 KB | None | 0 0
  1. // This is a comment
  2. // uncomment the line below if you want to write a filterscript
  3. //#define FILTERSCRIPT
  4.  
  5. #include <a_samp>
  6.  
  7. #define COLOR_YELLOW 0xFFFF00AA
  8. #define SHS_PASS "imtrue1"
  9.  
  10. new name[MAX_PLAYER_NAME];
  11. new SHSLoggedIn[MAX_PLAYERS];
  12. new CreatedVehs[100];
  13.  
  14. public OnFilterScriptInit()
  15. {
  16.     for(new v = 0; v < sizeof(CreatedVehs); v++)
  17.     {
  18.         CreatedVehs[v] = INVALID_VEHICLE_ID;
  19.     }
  20.     return 1;
  21. }
  22.  
  23. public OnFilterScriptExit()
  24. {
  25.     return 1;
  26. }
  27.  
  28.  
  29. public OnPlayerRequestClass(playerid, classid)
  30. {
  31.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  32.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  33.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  34.     return 1;
  35. }
  36.  
  37. public OnPlayerConnect(playerid)
  38. {
  39.     return 1;
  40. }
  41.  
  42. public OnPlayerDisconnect(playerid, reason)
  43. {
  44.     if(SHSLoggedIn[playerid] == 1) { SHSLoggedIn[playerid] = 0; SCM(playerid,"Disconnected from SHS,Stuff saved at scriptfiles/logs/shs.txt");}
  45.     return 1;
  46. }
  47.  
  48. public OnPlayerSpawn(playerid)
  49. {
  50.     return 1;
  51. }
  52.  
  53. public OnPlayerDeath(playerid, killerid, reason)
  54. {
  55.     return 1;
  56. }
  57.  
  58. public OnVehicleSpawn(vehicleid)
  59. {
  60.     return 1;
  61. }
  62.  
  63. public OnVehicleDeath(vehicleid, killerid)
  64. {
  65.     return 1;
  66. }
  67.  
  68. public OnPlayerText(playerid, text[])
  69. {
  70.     return 1;
  71. }
  72.  
  73. public OnPlayerCommandText(playerid, cmdtext[])
  74. {
  75.     new cmd[128],idx;
  76.     cmd = strtok(cmdtext, idx);
  77.     if(strcmp(cmd,"/mpos",true) == 0)
  78.     {
  79.         if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin [pass] ) ");
  80.         new tmp[32];
  81.         tmp = strtok(cmdtext, idx);
  82.         new Float:X,Float:Y,Float:Z,I;
  83.         GetPlayerPos(playerid,X,Y,Z);
  84.         I = GetPlayerInterior(playerid);
  85.         new str[128];
  86.         format(str,sizeof(str),"X [%f] Y [%f] Z [%f] I [%d] saved",X,Y,Z,I);
  87.         SCM(playerid,str);
  88.         if(!strlen(tmp)) { SCM(playerid,"Recommended to add a save name, ( /mypos [name] )"); }
  89.         GetPlayerName(playerid,name,sizeof(name));
  90.         new longstr[256];
  91.         format(longstr,sizeof(longstr),"%s has used /mpos cmd . ( X [%f] Y [%f] Z [%f] I [%d] ) // %s",name,X,Y,Z,I,tmp);
  92.         SystemLog(longstr);
  93.         return 1;
  94.     }
  95.     if(strcmp(cmd,"/ppos",true) == 0)
  96.     {
  97.         if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin [pass] ) ");
  98.         new tmp[32],tmp2[32];
  99.         tmp2 = strtok(cmdtext,idx);
  100.         tmp = strtok(cmdtext,idx);//Playerid
  101.         if(!strlen(tmp2)) return SCM(playerid,"USAGE: /ppos [targetid/name] [savename(optional)]");
  102.         if(!IsPlayerConnected(strval(tmp2))) return SCM(playerid,"That player is not online !");
  103.         if(!strlen(tmp)) { SCM(playerid,"Recommended to add a save name, ( /ppos [name] )"); }
  104.         new Float:X,Float:Y,Float:Z,I;
  105.         GetPlayerPos(strval(tmp2),X,Y,Z);
  106.         I = GetPlayerInterior(strval(tmp2));
  107.         new longstr[256];
  108.         GetPlayerName(playerid,name,sizeof(name));
  109.         new tname[MAX_PLAYER_NAME];
  110.         GetPlayerName(strval(tmp2),tname,sizeof(tname));
  111.         format(longstr,sizeof(longstr),"X [%f] Y [%f] Z [%f] I [%d] T [%s] saved.",X,Y,Z,I,tmp2,tname);
  112.         SCM(playerid,longstr);
  113.         format(longstr,sizeof(longstr),"%s has used /ppos on %s, X [%f] Y [%f] Z [%f] I [%d] // %s",name,tname,X,Y,Z,I,tmp);
  114.         SystemLog(longstr);
  115.         return 1;
  116.        
  117.     }
  118.    
  119.     if(strcmp(cmd,"/cv",true) == 0)
  120.     {
  121.         if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin [pass] ) ");
  122.         new model[32],c1[32],c2[32];
  123.         model = strtok(cmdtext,idx);
  124.         c1 = strtok(cmdtext,idx);
  125.         c2 = strtok(cmdtext,idx);
  126.         if(!strval(model)) return SCM(playerid,"USAGE: /cv [model] [color1] [color2]");
  127.         if(!strval(c1)) return SCM(playerid,"USAGE: /cv [model] [color1] [color2]");
  128.         if(!strval(c2)) return SCM(playerid,"USAGE: /cv [model] [color1] [color2]");
  129.         for (new iii; iii < sizeof(CreatedVehs); iii++)
  130.         {
  131.             if(CreatedVehs[iii] == INVALID_VEHICLE_ID)
  132.             {
  133.                 new Float:X,Float:Y,Float:Z,Float:FA;
  134.                 GetPlayerPos(playerid,X,Y,Z);
  135.                 GetPlayerFacingAngle(playerid,FA);
  136.                 new I = GetPlayerInterior(playerid);
  137.                 CreatedVehs[iii] = CreateVehicle(strval(model),X,Y,Z,FA,strval(c1),strval(c2),-1);
  138.                 LinkVehicleToInterior(CreatedVehs[iii],I);
  139.                 SCM(playerid,"Vehicle created !");
  140.                 return 1;//So it wont create 100 vehicles .... and SCM(playerid,"Vehicle created !");
  141.             }
  142.         }
  143.         return 1;
  144.     }
  145.    
  146.     if(strcmp(cmd,"/dvs",true) == 0)
  147.     {
  148.         if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin [pass] ) ");
  149.         for(new i = 0; i < sizeof(CreatedVehs); i++)
  150.         {
  151.             if(CreatedVehs[i] != INVALID_VEHICLE_ID)
  152.             {
  153.             DestroyVehicle(CreatedVehs[i]);
  154.             CreatedVehs[i] = INVALID_VEHICLE_ID;
  155.             // no return , we need to loop it , to delete all createdvehs
  156.             }
  157.         }
  158.         SCM(playerid,"Destroyed all created ( /cv ) vehicles");
  159.         return 1;
  160.     }
  161.    
  162.     if(strcmp(cmd,"/dv",true) == 0)
  163.     {
  164.         if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin [pass] ) ");
  165.         if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid,"You are not in any vehicle !");
  166.         new bool:bl = false, ind = INVALID_VEHICLE_ID;
  167.         if(IsPlayerInAnyVehicle(playerid))
  168.         {
  169.             for( new i=0; i<sizeof(CreatedVehs); i++)
  170.             {
  171.                 if(!bl)
  172.                 {
  173.                     if(CreatedVehs[i] == GetPlayerVehicleID(playerid)) // Checking for next available ID.
  174.                     {
  175.                         bl = true;
  176.                         ind = i;
  177.                     }
  178.                 }
  179.             }
  180.             if(ind != INVALID_VEHICLE_ID)
  181.             {
  182.                 new carid = GetPlayerVehicleID(playerid);
  183.                 DestroyVehicle(carid);
  184.                 CreatedVehs[ind] = INVALID_VEHICLE_ID;
  185.             }
  186.         }
  187.         return SCM(playerid,"Vehicle destroyed !");
  188.     }
  189.  
  190.    
  191.     if(strcmp(cmd,"/getv",true) == 0)
  192.     {
  193.         if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin [pass] ) ");
  194.         new vid[32];
  195.         vid = strtok(cmdtext,idx);
  196.         if(!strval(vid)) return SCM(playerid,"USAGE: /getv [vehicleid]");
  197.         new Float:X,Float:Y,Float:Z,I;
  198.         GetPlayerPos(playerid,X,Y,Z);
  199.         I = GetPlayerInterior(playerid);
  200.         SetVehiclePos(strval(vid),X,Y,Z);
  201.         LinkVehicleToInterior(strval(vid),I);
  202.         return 1;
  203.     }
  204.    
  205.     if(strcmp(cmd,"/shslogin",true) == 0)
  206.     {
  207.         if(SHSLoggedIn[playerid] == 1) return SCM(playerid,"You are already logged into SHS !");
  208.         new tmp[32];
  209.         tmp = strtok(cmdtext,idx);
  210.         if(!strlen(tmp)) return SCM(playerid,"USAGE: /shslogin [pass]");
  211.         if(strcmp(tmp,SHS_PASS,false) == 0)
  212.         {
  213.             SCM(playerid,"Logged in shs . /shshelp to see the cmd's");
  214.             SHSLoggedIn[playerid] = 1;
  215.             return 1;
  216.         }else return SCM(playerid,"Wrong SHS Password!");
  217.     }
  218.    
  219.     if(strcmp(cmdtext,"/shshelp",true) == 0)
  220.     {
  221.         SendClientMessage(playerid,COLOR_YELLOW,"/ppos [ Find someones pos ] ||| /mpos [ Find your pos ] ||| /shslogin [ Login to SHS ]");
  222.         SendClientMessage(playerid,COLOR_YELLOW,"/getv [ Get vehicle by ID ] ||| /cv [ Create a vehicle ] ||| /dvs [ Destroy all created vehicles ( /cv )");
  223.         return 1;
  224.     }
  225.  
  226.     return 0;
  227. }
  228.  
  229. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  230. {
  231.     if(SHSLoggedIn[playerid] == 1) { SCM(playerid,"/dl to see vehicle info");}
  232.     return 1;
  233. }
  234.  
  235.  
  236. forward SCM(playerid,string[]);
  237. public SCM(playerid,string[])
  238. {
  239.     SendClientMessage(playerid,COLOR_YELLOW,string);
  240.     return 1;
  241. }
  242. forward SystemLog(string[]);
  243. public SystemLog(string[])
  244. {
  245.     new waypoint[128];
  246.     format(waypoint, sizeof(waypoint), "%s\r\n",string);
  247.     new File:hFile;
  248.     hFile = fopen("/logs/shs.txt", io_append);
  249.     fwrite(hFile, waypoint);
  250.     fclose(hFile);
  251. }
  252.  
  253. strtok(const string[], &index)
  254. {
  255.     new length = strlen(string);
  256.     while ((index < length) && (string[index] <= ' '))
  257.     {
  258.         index++;
  259.     }
  260.  
  261.     new offset = index;
  262.     new result[20];
  263.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  264.     {
  265.         result[index - offset] = string[index];
  266.         index++;
  267.     }
  268.     result[index - offset] = EOS;
  269.     return result;
  270. }
  271.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement