Código:
new Float:BombaAtomicaX[MAX_PLAYERS],Float:BombaAtomicaY[MAX_PLAYERS],Float:BombaAtomicaZ[MAX_PLAYERS];
Pra que isso? você tá desperdiçando mil e quinhentas arrays. Deveria ter criado uma variável apenas com duas dimensões.
A mesma coisa serve para isto:
Código:
new BombaAtomica[MAX_PLAYERS],TempoBombaAtomica[MAX_PLAYERS];
Na verdade você deveria ter criado um enum pra tudo isso seria mais útil.
FilterScripts não usam o main.
Código:
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;
}
Clicou em new project e esqueceu de apagar isso né? Pois bem, seu FS não usa OnPlayerRequestClass apague-o.
Código:
if(BombaAtomica[playerid] == 0) { TempoBombaAtomica[playerid] = 0; }
if(BombaAtomica[playerid] == 1)
{
PlantandoBombaAtomica(playerid);
}
Você não precisa dessas 4 chaves neste código e nem do segundo if comparando o bomba atômica poderia usar apenas um else.
E se esta variável pode assumir apenas dois valores você deveria ter usado a tag bool. Variáveis booleanes economizam mais do que variáveis inteiras.
Você não usa nem metade dessa array na sua string.
Código:
format(string, sizeof(string),"%s [ID: %d] morreu e sua bomba atomica foi desativada.");
Você não percebeu que não está setando valor ao %s nem ao %d? Faltou o GetPlayerName o super gênio.
Código:
public OnPlayerDisconnect(playerid, reason)
De novo, nesta callback você criou a string com 256 arrays e não usou nem metade disso no format, e também não colocou o GetPlayerName pra atribuir um valor ao format.
Código:
new string[256], cmd[256], idx;
Diz pra mim que comando usa 256 arrays se o limite de caracteres do chat é de 128?
A mesma coisa vale pra string.
Código:
if(strcmp(cmd, "/bomba", true) == 0 || strcmp(cmd, "/atomica", true) == 0)
Você não deve usar cmd em um comandos sem parâmetros super gênio, o cmd irá procurar um novo parâmetro e não irá achar pois este comando não tem parâmetros.
Código:
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
Enfim uma utilidade pro IsPlayerConnected, mas seu loop ainda está dando voltas desnecessárias.
Código:
if (((tempposx < tamanho/16) && (tempposx > -tamanho/16)) && ((tempposy < tamanho/16) && (tempposy > -tamanho/16)) && ((tempposz < tamanho/16) && (tempposz > -tamanho/16)))
tamanho < é um float, se queres fazer qualquer tipo de conta sobre eles é melhor que use as natives da include <float>
Em resumo, o único código que se salva não foi feito por você. strtok(Que você nem usou neste FS pois não tem comandos com parâmetros) kkkkkk.