Advertisement
S4T3K

s_useful

Apr 6th, 2014
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 13.28 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. native IsValidVehicle(vehicleid);
  4.  
  5. #pragma tabsize 0
  6.  
  7. stock GetName(playerid)
  8. {
  9.     new tszName[MAX_PLAYER_NAME+1];
  10.     GetPlayerName(playerid, tszName, sizeof(tszName));
  11.     return tszName;
  12. }
  13.  
  14. // Exemple d'utilisation : new nom[MAX_PLAYER_NAME+1] = GetName(playerid);
  15.  
  16.  
  17. stock GameTextForPlayer1(playerid, const message[], temps)
  18. {
  19.     new heure[4];
  20.     gettime(heure[0], heure[1], heure[2]);
  21.     heure[3] = heure[2]*1000+9000;
  22.     do
  23.     {
  24.         GameTextForPlayer(playerid, message, temps, 0);
  25.     }
  26.     while(heure[3] < temps);
  27.     return 1;
  28. }
  29.  
  30. stock GetPlayerID(const name[])
  31. {
  32.     for(new p = 0; p < MAX_PLAYERS; p++)
  33.     {
  34.         if(strcmp(name, GetName(p), false) == 0)
  35.         {
  36.             if(!IsPlayerConnected(p)) return INVALID_PLAYER_ID;
  37.             else return p;
  38.         }
  39.     }
  40.     return INVALID_PLAYER_ID;
  41. }
  42.  
  43. stock GetNearestCar(playerid, Float:maxRange = 10.0)
  44. {
  45.     new resultID;
  46.     new Float:rdist, Float:cdist;
  47.     rdist = 10.0;
  48.     resultID = -1;
  49.     for(new v;v<=MAX_VEHICLES;v++)
  50.     {
  51.         new Float:pos[3];
  52.         GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  53.         cdist = GetVehicleDistanceFromPoint(v, pos[0], pos[1], pos[2]);
  54.         if(cdist < rdist)
  55.         {
  56.             rdist = cdist;
  57.             resultID = v;
  58.         }
  59.     }
  60.     return resultID;
  61. }  
  62.  
  63. stock GetDistanceBetweenTwoPlayers(player1, player2, &Float:x, &Float:y, &Float:z)
  64. {
  65.     new Float:pos[9];
  66.     GetPlayerPos(player1, pos[0], pos[1], pos[2]);
  67.     GetPlayerPos(player2, pos[3], pos[4], pos[5]);
  68.     if(pos[0] > pos[3]) pos[6] = floatadd(pos[0], pos[3]);
  69.     else x = floatsub(pos[3], pos[0]);
  70.  
  71.     if(pos[1] > pos[4]) pos[7] = floatadd(pos[1], pos[4]);
  72.     else y = floatsub(pos[4], pos[1]);
  73.  
  74.     if(pos[2] > pos[5]) pos[8] = floatadd(pos[2], pos[5]);
  75.     else z = floatsub(pos[5], pos[2]);
  76. }
  77.  
  78. stock PlayAudioForPlayersInRange(sound_url[], Float:range, Float:x, Float:y, Float:z)
  79. {
  80.     for(new p = 0; p < MAX_PLAYERS; p++)
  81.     {
  82.         if(!strfind(sound_url, "http://")) return SendClientMessage(p, -1, "Piste audio inaccessible (http:// ou extension invalide)");
  83.         if(!strfind(sound_url, ".mp3") || !strfind(sound_url, ".ogg") || !strfind(sound_url, ".pls") || strfind(sound_url, ".m3u")) return SendClientMessage(p, -1, "Piste audio inaccessible (http:// ou extension invalide)");
  84.         if(IsPlayerConnected(p))
  85.         {
  86.             PlayAudioStreamForPlayer(p, sound_url, x, y, z, range, 1);
  87.             SendClientFormattedMessage(p, -1, "{9ACD32}[Audio]{FFFFFF} Vous écoutez maintenant %s !", sound_url);
  88.         }
  89.     }
  90.     return 1;
  91. }
  92.  
  93. stock StopAudioForPlayersInRange(Float:range, Float:x, Float:y, Float:z)
  94. {
  95.     for(new p = 0; p < MAX_PLAYERS; p++)
  96.     {
  97.         if(!IsPlayerConnected(p)) continue;
  98.         else
  99.         {
  100.             if(IsPlayerInRangeOfPoint(p, range, x, y, z))
  101.             {
  102.                 StopAudioStreamForPlayer(p);
  103.             }
  104.         }
  105.     }
  106.     return 1;
  107. }
  108.  
  109. stock SendErrorMessage(playerid, message[])
  110. {
  111.     return SendClientFormattedMessage(playerid, -1, "{FF0000}[Erreur]{FFFFFF} %s", message);
  112. }
  113.  
  114. stock SplitDateTime(datetime[], &annee, &mois, &jour, &heure, &minute, &seconde)
  115. {
  116.     new tmp[20];
  117.     strmid(tmp, datetime, 0, 4);
  118.     strdel(datetime, 0, 5);
  119.     annee = strval(tmp);
  120.     //printf("[DEBUG] %d", annee);
  121.  
  122.     strmid(tmp, datetime, 0, 2);
  123.     strdel(datetime, 0, 3);
  124.     mois = strval(tmp);
  125.     //printf("[DEBUG] %d", mois);
  126.  
  127.     strmid(tmp, datetime, 0, 2);
  128.     strdel(datetime, 0, 3);
  129.     jour = strval(tmp);
  130.     //printf("[DEBUG] %d", jour);
  131.  
  132.     strmid(tmp, datetime, 0, 2);
  133.     strdel(datetime, 0, 3);
  134.     heure = strval(tmp);
  135.     //printf("[DEBUG] %d", heure);
  136.  
  137.     strmid(tmp, datetime, 0, 2);
  138.     strdel(datetime, 0, 3);
  139.     minute = strval(tmp);
  140.     //printf("[DEBUG] %d", minute);
  141.  
  142.     strmid(tmp, datetime, 0, 2);
  143.     strdel(datetime, 0, 3);
  144.     seconde = strval(tmp);
  145.     //printf("[DEBUG] %d", seconde);
  146. }
  147.  
  148. stock SplitDate(date[], &annee, &mois, &jour)
  149. {
  150.     new tmp[20];
  151.     strmid(tmp, date, 0, 4);
  152.     strdel(date, 0, 5);
  153.     annee = strval(tmp);
  154.     strmid(tmp, date, 0, 2);
  155.     strdel(date, 0, 3);
  156.     mois = strval(tmp);
  157.     strmid(tmp, date, 0, 2);
  158.     strdel(date, 0, 3);
  159.     jour = strval(tmp);
  160. }
  161.  
  162. stock SplitTime(time[], &heure, &minute, &seconde)
  163. {
  164.     new tmp[20];
  165.     strmid(tmp, time, 0, 2);
  166.     strdel(time, 0, 3);
  167.     heure = strval(tmp);
  168.     strmid(tmp, time, 0, 2);
  169.     strdel(time, 0, 3);
  170.     minute = strval(tmp);
  171.     strmid(tmp, time, 0, 2);
  172.     strdel(time, 0, 3);
  173.     seconde = strval(tmp);
  174. }
  175.  
  176. stock ExplodeAll(type, Float:radi)
  177. {
  178.     new Float:pos[3];
  179.     for(new p = 0; p < MAX_PLAYERS; p++)
  180.     {
  181.         if(!IsPlayerConnected(p)) continue;
  182.         else
  183.         {
  184.             GetPlayerPos(p, pos[0], pos[1], pos[2]);
  185.             CreateExplosion(pos[0], pos[1], pos[2], type, radi);
  186.         }
  187.     }
  188.     return SendClientFormattedMessageToAll(-1, "{FF0000}[Explosion]{FFFFFF} Tous les joueurs ont été explosés avec une explosion de radius %f (type %d)", radi, type);
  189. }
  190.  
  191. stock RemovePlayerHealth(playerid, Float:ret)
  192. {
  193.     new Float:health;
  194.     GetPlayerHealth(playerid, health);
  195.     if(health < ret) return 0;
  196.     else SetPlayerHealth(playerid, floatsub(health, ret));
  197.     return 1;
  198. }
  199.  
  200. stock RemovePlayerArmour(playerid, Float:ret)
  201. {
  202.     new Float:arm;
  203.     GetPlayerArmour(playerid, arm);
  204.     if(arm < ret) return 0;
  205.     else SetPlayerArmour(playerid, floatsub(arm, ret));
  206.     return 1;
  207. }
  208.  
  209. stock AddPlayerHealth(playerid, Float:add)
  210. {
  211.     new Float:health;
  212.     GetPlayerHealth(playerid, health);
  213.     SetPlayerHealth(playerid, floatadd(health, add));
  214.     return 1;
  215. }
  216.  
  217. stock AddPlayerArmour(playerid, Float:add)
  218. {
  219.     new Float:arm;
  220.     GetPlayerArmour(playerid, arm);
  221.     SetPlayerArmour(playerid, floatadd(arm, add));
  222.     return 1;
  223. }
  224.  
  225. stock Float:GetPlayerHealth1(playerid)
  226. {
  227.     new Float:health;
  228.     GetPlayerHealth(playerid, health);
  229.     return health;
  230. }
  231.  
  232. stock Float:GetPlayerArmour1(playerid)
  233. {
  234.     new Float:arm;
  235.     GetPlayerArmour(playerid, arm);
  236.     return arm;
  237. }
  238.  
  239.  
  240. stock Float:GetPlayerxPos(playerid)
  241. {
  242.     new Float:x;
  243.     GetPlayerPos(playerid, x, 0.0, 0.0);
  244.     return x;
  245. }
  246.  
  247. stock Float:GetPlayeryPos(playerid)
  248. {
  249.     new Float:y;
  250.     GetPlayerPos(playerid, 0.0, y, 0.0);
  251.     return y;
  252. }
  253.  
  254. stock Float:GetPlayerzPos(playerid)
  255. {
  256.     new Float:z;
  257.     GetPlayerPos(playerid, 0.0, 0.0, z);
  258.     return z;
  259. }
  260.  
  261.  
  262. // Crédits : MrFredo (SendClientFormattedMessage & SendClientFormattedMessageToAll)
  263.  
  264. stock SendClientFormattedMessage(playerid, color, const msg[], {Float,_}:...)
  265. {
  266.         new len = strlen(msg),d=0,posArg = 3;
  267.         new dest[512];
  268.         for(new i=0;i<len;i++)
  269.         {
  270.             if(msg[i] == '%')
  271.             {
  272.                 switch (msg[i+1])
  273.                 {
  274.                     case 's':
  275.                                 {
  276.                                         new pos,arg,tmppos;
  277.                                         new str[128];
  278.                                 while(getarg(posArg,pos)!='\0')
  279.                                         {
  280.                                         arg=getarg(posArg,pos++);
  281.                                                 str[tmppos]=arg;
  282.                                         tmppos++;
  283.                                 }
  284.                                     strins(dest,str,d,strlen(str));
  285.                                     d+=strlen(str);
  286.                                         posArg++;
  287.                                         i++;
  288.                                 }
  289.                     case 'i', 'd':
  290.                                 {
  291.                                     new str[128];
  292.                                     format(str,sizeof(str),"%d",getarg(posArg));
  293.                                     strins(dest,str,d,strlen(str));
  294.                                     d+=strlen(str);
  295.                                         posArg++;
  296.                                         i++;
  297.                                 }
  298.                     case 'f':
  299.                                 {
  300.                                     new str[128];
  301.                                     format(str,sizeof(str),"%f",getarg(posArg));
  302.                                     strins(dest,str,d,strlen(str));
  303.                                     d+=strlen(str);
  304.                                         posArg++;
  305.                                         i++;
  306.                                 }
  307.                                 case '.':
  308.                                 {
  309.                                     new len2 = msg[i+2];
  310.                                     if(len2 == 0)
  311.                                         {
  312.                                                 dest[d] = msg[i];
  313.                                                 d++;
  314.                                         }
  315.                                         else
  316.                                         {
  317.                                             new str[32],formatting[5];
  318.                                             formatting[0] = '%';
  319.                                             formatting[1] = '.';
  320.                                             formatting[2] = len2;
  321.                                             formatting[3] = 'f';
  322.                                             format(str,sizeof(str),formatting,getarg(posArg));
  323.                                             strins(dest,str,d,len2);
  324.                                             d+=len;
  325.                                                 posArg++;
  326.                                                 i+= 2;
  327.                                         }
  328.                                 }
  329.                                 default:
  330.                                 {
  331.                                         dest[d] = msg[i];
  332.                                         d++;
  333.                                 }
  334.                         }
  335.                 }
  336.                 else
  337.                 {
  338.                         dest[d] = msg[i];
  339.                         d++;
  340.                 }
  341.         }
  342.         //printf("[DEBUG] %s",dest);
  343.         return SendClientMessage(playerid,color,dest);
  344. }
  345.  
  346.  
  347. stock SendClientFormattedMessageToAll(color, const msg[], {Float,_}:...)
  348. {
  349.         new len = strlen(msg),d=0,posArg = 2;
  350.         new dest[128];
  351.         for(new i=0;i<len;i++)
  352.         {
  353.             if(msg[i] == '%')
  354.             {
  355.                 switch (msg[i+1])
  356.                 {
  357.                     case 's':
  358.                                 {
  359.                                         new pos,arg,tmppos;
  360.                                         new str[128];
  361.                                 while(getarg(posArg,pos)!='\0')
  362.                                         {
  363.                                         arg=getarg(posArg,pos++);
  364.                                                 str[tmppos]=arg;
  365.                                         tmppos++;
  366.                                 }
  367.                                     strins(dest,str,d,strlen(str));
  368.                                     d+=strlen(str);
  369.                                         posArg++;
  370.                                         i++;
  371.                                 }
  372.                     case 'i', 'd':
  373.                                 {
  374.                                     new str[128];
  375.                                     format(str,sizeof(str),"%d",getarg(posArg));
  376.                                     strins(dest,str,d,strlen(str));
  377.                                     d+=strlen(str);
  378.                                         posArg++;
  379.                                         i++;
  380.                                 }
  381.                     case 'f':
  382.                                 {
  383.                                     new str[128];
  384.                                     format(str,sizeof(str),"%f",getarg(posArg));
  385.                                     strins(dest,str,d,strlen(str));
  386.                                     d+=strlen(str);
  387.                                         posArg++;
  388.                                         i++;
  389.                                 }
  390.                                 case '.':
  391.                                 {
  392.                                     new len2 = msg[i+2];
  393.                                     if(len2 == 0)
  394.                                         {
  395.                                                 dest[d] = msg[i];
  396.                                                 d++;
  397.                                         }
  398.                                         else
  399.                                         {
  400.                                             new str[32],formatting[5];
  401.                                             formatting[0] = '%';
  402.                                             formatting[1] = '.';
  403.                                             formatting[2] = len2;
  404.                                             formatting[3] = 'f';
  405.                                             format(str,sizeof(str),formatting,getarg(posArg));
  406.                                             strins(dest,str,d,len2);
  407.                                             d+=len;
  408.                                                 posArg++;
  409.                                                 i+= 2;
  410.                                         }
  411.                                 }
  412.                                 default:
  413.                                 {
  414.                                         dest[d] = msg[i];
  415.                                         d++;
  416.                                 }
  417.                         }
  418.                 }
  419.                 else
  420.                 {
  421.                         dest[d] = msg[i];
  422.                         d++;
  423.                 }
  424.         }
  425.         //printf("[DEBUG] %s",dest);
  426.         return SendClientMessageToAll(color,dest);
  427. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement