toribio

toribio

May 29th, 2009
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.12 KB | None | 0 0
  1. //topo:
  2. new barreira[MAX_PLAYERS][10]; //10 barreiras por jogador
  3. new barcount[MAX_PLAYERS];
  4.  
  5. //no OnPlayerCommandText:
  6.     if(!strcmp(cmdtext, "/barreira", true))
  7.     {
  8.         new Float:x, Float:y, Float:z, Float:a, string[128], barreiraid;
  9.         if(barcount[playerid] < 10)
  10.         {
  11.             GetPlayerPos(playerid, x, y, z);
  12.             GetPlayerFacingAngle(playerid, a);
  13.             GetXYInFrontOfPlayer(playerid, x, y, 1.0);
  14.             for(new i; i < 10; i++)
  15.             {
  16.                 if(!barreira[playerid][i])
  17.                 {
  18.                     barreiraid = i;
  19.                     break;
  20.                 }
  21.             }
  22.             barreira[playerid][barreiraid] = CreateObject(981, x, y,z, 0.0, 0.0, a);
  23.             format(string, sizeof string, "ID dessa barreira: %d; Use \"/dbarreira %d\" para destruí-la.", barreiraid, barreiraid);
  24.             SendClientMessage(playerid, 0xFF0000AA, string);
  25.             barcount[playerid]++;
  26.         } else {
  27.             SendClientMessage(playerid, 0xFF0000AA, "Você já criou 10 barreiras, destrua uma com /dbarreira");
  28.         }
  29.         return 1;
  30.     }
  31.  
  32.     if(!strcmp(cmd, "/dbarreira", true))
  33.     {
  34.         new tmp[256], barreiraid;
  35.         tmp = strtok(cmdtext, idx);
  36.         if(!strlen(tmp))
  37.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /dbarreira [id_barreira]");
  38.         barreiraid = strval(tmp);
  39.         if(0 <= barreiraid < 10)
  40.         {
  41.             if(barreira[playerid][barreiraid])
  42.             {
  43.                 DestroyObject(barreira[playerid][barreiraid]);
  44.                 barreira[playerid][barreiraid] = 0;
  45.                 barcount[playerid]--;
  46.             } else {
  47.                 SendClientMessage(playerid, 0xFF0000AA, "ID de barreira não criada!");
  48.             }
  49.         } else {
  50.             SendClientMessage(playerid, 0xFF0000AA, "ID de barreiras entre 0 e 9!");
  51.         }
  52.         return 1;
  53.     }
  54.  
  55.  
  56. //no OnPlayerDisconnect
  57.     for(new i; i < 10; i++)
  58.     {
  59.         if(barreira[playerid][i])
  60.             DestroyObject(barreira[playerid][i]);
  61.         barreira[playerid][i] = 0;
  62.     }
  63.     barcount[playerid] = 0;
  64.  
  65. //no fim do mode:
  66. stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
  67. {   // Created by Y_Less
  68.  
  69.     new Float:a;
  70.  
  71.     GetPlayerPos(playerid, x, y, a);
  72.     GetPlayerFacingAngle(playerid, a);
  73.  
  74.     if (GetPlayerVehicleID(playerid)) {
  75.         GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
  76.     }
  77.  
  78.     x += (distance * floatsin(-a, degrees));
  79.     y += (distance * floatcos(-a, degrees));
  80. }
Add Comment
Please, Sign In to add comment