(INC) Dw_veh

Descrição: 
Uma simples include de funções veiculares.

Code:
IsVehicleOccupied(vehicleid) - retorna se o veículo está com um motorista, caso adicionado o parametro 'VEHID' retorna o id do motorista ( IsVehicleOccupied(vehicleid, VEHID) ).

WriteVehiclePlate(vehicleid, string[]) - Escreve determinada string na placa do carro atual.

EnableCarSpawn() - Habilita o respawn do carro no local em que o jogador saiu pela ultima vez.

DisableCarSpawn() - Desabilita o que foi ativado acima.
Script de teste:
pawn Code:
#include a_samp #include zcmd #include dw_veh main(){} public OnGameModeInit() {     SetGameModeText("Blank Script");     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);     return 1; } public OnPlayerRequestClass(playerid, classid) {     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);     return 1; } CMD:cv(playerid, params[]) {     new id;     if(sscanf_(params, "d", id)) return SendClientMessage(playerid, -1, "/cv [id]");     new Float:X, Float:Y, Float:Z, Float:Angle; GetPlayerPos(playerid, X, Y, Z); GetPlayerFacingAngle(playerid, Angle);     new carro = CreateVehicle(id, X, Y, Z, Angle, -1, -1, -1); PutPlayerInVehicle(playerid, carro, 0);     return 1; } new str[129]; CMD:placa(playerid, params[]) {     if(sscanf_(params, "s", str)) return SendClientMessage(playerid, -1, "/placa [texto]  * máximo 33 caracteres");     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Você não está em um veículo!");     new vehid = GetPlayerVehicleID(playerid); WriteVehiclePlate(vehid, str);     SetVehicleToRespawn(vehid);     return 1; } CMD:habilitar(playerid) {     EnableCarSpawn();     return 1; } CMD:desabilitar(playerid) {     DisableCarSpawn();     return 1; } stock sscanf_(string[], format[], {Float,_}:...) {     #if defined isnull         if (isnull(string))     #else         if (string[0] == 0 || (string[0] == 1 && string[1] == 0))     #endif         {             return format[0];         }     #pragma tabsize 4     new         formatPos = 0,         stringPos = 0,         paramPos = 2,         paramCount = numargs(),         delim = ' ';     while (string[stringPos] && string[stringPos] <= ' ')     {         stringPos++;     }     while (paramPos < paramCount && string[stringPos])     {         switch (format[formatPos++])         {             case '\0':             {                 return 0;             }             case 'i', 'd':             {                 new                     neg = 1,                     num = 0,                     ch = string[stringPos];                 if (ch == '-')                 {                     neg = -1;                     ch = string[++stringPos];                 }                 do                 {                     stringPos++;                     if ('0' <= ch <= '9')                     {                         num = (num * 10) + (ch - '0');                     }                     else                     {                         return -1;                     }                 }                 while ((ch = string[stringPos]) > ' ' && ch != delim);                 setarg(paramPos, 0, num * neg);             }             case 'h', 'x':             {                 new                     num = 0,                     ch = string[stringPos];                 do                 {                     stringPos++;                     switch (ch)                     {                         case 'x', 'X':                         {                             num = 0;                             continue;                         }                         case '0' .. '9':                         {                             num = (num << 4) | (ch - '0');                         }                         case 'a' .. 'f':                         {                             num = (num << 4) | (ch - ('a' - 10));                         }                         case 'A' .. 'F':                         {                             num = (num << 4) | (ch - ('A' - 10));                         }                         default:                         {                             return -1;                         }                     }                 }                 while ((ch = string[stringPos]) > ' ' && ch != delim);                 setarg(paramPos, 0, num);             }             case 'c':             {                 setarg(paramPos, 0, string[stringPos++]);             }             case 'f':             {                 new changestr[16], changepos = 0, strpos = stringPos;                 while(changepos < 16 && string[strpos] && string[strpos] != delim)                 {                     changestr[changepos++] = string[strpos++];                     }                 changestr[changepos] = '\0';                 setarg(paramPos,0,_:floatstr(changestr));             }             case 'p':             {                 delim = format[formatPos++];                 continue;             }             case '\'':             {                 new                     end = formatPos - 1,                     ch;                 while ((ch = format[++end]) && ch != '\'') {}                 if (!ch)                 {                     return -1;                 }                 format[end] = '\0';                 if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)                 {                     if (format[end + 1])                     {                         return -1;                     }                     return 0;                 }                 format[end] = '\'';                 stringPos = ch + (end - formatPos);                 formatPos = end + 1;             }             case 'u':             {                 new                     end = stringPos - 1,                     id = 0,                     bool:num = true,                     ch;                 while ((ch = string[++end]) && ch != delim)                 {                     if (num)                     {                         if ('0' <= ch <= '9')                         {                             id = (id * 10) + (ch - '0');                         }                         else                         {                             num = false;                         }                     }                 }                 if (num && IsPlayerConnected(id))                 {                     setarg(paramPos, 0, id);                 }                 else                 {                     #if !defined foreach                         #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))                         #define __SSCANF_FOREACH__                     #endif                     string[end] = '\0';                     num = false;                     new                         name[MAX_PLAYER_NAME];                     id = end - stringPos;                     foreach (Player, playerid)                     {                         GetPlayerName(playerid, name, sizeof (name));                         if (!strcmp(name, string[stringPos], true, id))                         {                             setarg(paramPos, 0, playerid);                             num = true;                             break;                         }                     }                     if (!num)                     {                         setarg(paramPos, 0, INVALID_PLAYER_ID);                     }                     string[end] = ch;                     #if defined __SSCANF_FOREACH__                         #undef foreach                         #undef __SSCANF_FOREACH__                     #endif                 }                 stringPos = end;             }             case 's', 'z':             {                 new                     i = 0,                     ch;                 if (format[formatPos])                 {                     while ((ch = string[stringPos++]) && ch != delim)                     {                         setarg(paramPos, i++, ch);                     }                     if (!i)                     {                         return -1;                     }                 }                 else                 {                     while ((ch = string[stringPos++]))                     {                         setarg(paramPos, i++, ch);                     }                 }                 stringPos--;                 setarg(paramPos, i, '\0');             }             default:             {                 continue;             }         }         while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')         {             stringPos++;         }         while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))         {             stringPos++;         }         paramPos++;     }     do     {         if ((delim = format[formatPos++]) > ' ')         {             if (delim == '\'')             {                 while ((delim = format[formatPos++]) && delim != '\'') {}             }             else if (delim != 'z')             {                 return delim;             }         }     }     while (delim > ' ');     return 0; }

Créditos: 
- Dwayne 
- BocianJD
- Sacky
- Jan "DracoBlue" Schütze
- Alex "Y_Less" Cole


Download:
- Pastebin

__________________________________________________

Aguarde 5 segundos e clique em "Fechar a propaganda"

Deixe um comentário! 
Seu dedo não irá cair!
__________________________________________________


COMPARTILHE

VEJA TAMBÉM

Próxima
« Anterior
Anterior
Próximo »