seguindo o random a cima, temos a opção de fazer um random de números flutuantes
- Código:
forward Float:randomFloatEx(Float:min, Float:max);
stock Float:randomFloatEx(Float:min, Float:max) return float(random(0)) / (float(cellmax) / (max - min)) + min;
Converter string com acentos para funcionar em gametexts e textdraw
- Código:
stock ConvertToGameText(const in[]){
new string[256];
for(new i = 0; in[i]; ++i){
string[i] = in[i];
switch(string[i])
{
case 0xC0 .. 0xC3: string[i] -= 0x40;
case 0xC7 .. 0xC9: string[i] -= 0x42;
case 0xD2 .. 0xD5: string[i] -= 0x44;
case 0xD9 .. 0xDC: string[i] -= 0x47;
case 0xE0 .. 0xE3: string[i] -= 0x49;
case 0xE7 .. 0xEF: string[i] -= 0x4B;
case 0xF2 .. 0xF5: string[i] -= 0x4D;
case 0xF9 .. 0xFC: string[i] -= 0x50;
case 0xC4, 0xE4: string[i] = 0x83;
case 0xC6, 0xE6: string[i] = 0x84;
case 0xD6, 0xF6: string[i] = 0x91;
case 0xD1, 0xF1: string[i] = 0xEC;
case 0xDF: string[i] = 0x96;
case 0xBF: string[i] = 0xAF;
}
}
return string;
}
Essa callback é chamada quando um jogador muda de armas
- Código:
forward OnPlayerChangeWeapon(playerid, oldWeapon, newWeapon);
forward WPChange_OnPlayerUpdate(playerid);
static wpChange_playerCurrentWeapon[MAX_PLAYERS];
stock wpChange_GivePlayerWeapon(playerid, weaponid, ammo)
{
wpChange_playerCurrentWeapon[playerid] = weaponid;
return GivePlayerWeapon(playerid, weaponid, ammo);
}
public OnPlayerUpdate(playerid)
{
static playerWeaponid;
if ((playerWeaponid = GetPlayerWeapon(playerid)) != wpChange_playerCurrentWeapon[playerid])
{
OnPlayerChangeWeapon(playerid, wpChange_playerCurrentWeapon[playerid], playerWeaponid);
wpChange_playerCurrentWeapon[playerid] = playerWeaponid;
}
return WPChange_OnPlayerUpdate(playerid);
}
#if defined _ALS_GivePlayerWeapon
#undef GivePlayerWeapon
#else
#define _ALS_GivePlayerWeapon
#endif
#define GivePlayerWeapon wpChange_GivePlayerWeapon
#if defined _ALS_OnPlayerUpdate
#undef OnPlayerUpdate
#else
#define _ALS_OnPlayerUpdate
#endif
#define OnPlayerUpdate WPChange_OnPlayerUpdate
Como usar:
- Código:
public OnPlayerChangeWeapon(playerid, oldWeapon, newWeapon)
{
printf("O Jogador %d mudou sua arma (%d) para %d", playerid, oldWeapon, newWeapon);
return 1;
}
Com essa stock ficará facil obter data e hora do Brasil:
- Código:
stock GetDatetime(timestamp)
{
static query[128], DBResult:cache, DB:clock;
format(query, sizeof query, "SELECT DATETIME(%d, 'unixepoch');", timestamp);
db_free_result(cache);
{
clock = db_open("clock.db");
cache = db_query(clock, query);
db_get_field(cache, 0, query, 20);
db_close(clock);
}
return query;
}
Como usar:
- Código:
new timestamp = gettime() - 10800;
printf("Horario brasileiro: %s", GetDatetime(timestamp));
Obs: O GMT do Brasil é -3H, uma hora é 3600 segundos, 3 × 3600 = 10800... Por isso subtraimos 10800 do timestamp