[AJUDA] Qual o problema nesse comando? -
GuikBretas - 08.04.2011
Pessoal to com um problema nesse comando de Abastecimento:
pawn Код:
if(strcmp(cmdtext, "/abastecer", true) == 0)
{
PostoInfo[pInfo][Litros] = pgd_CarregarInt(ArquivoPosto(), "Litros", ":");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, ERRO, "Vocк nгo estб em um Veнculo");
if(!PostodeGasolina(playerid)) return SendClientMessage(playerid, ERRO, "Vocк nгo estб em um Posto de Gasolina");
if(PostoInfo[pInfo][Litros] == 0) return SendClientMessage(playerid, ERRO, "Esse posto nгo tem litros de gasolina");
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, BRANCO, "USO: /abastecer [litros]");
return 1;
}
if(IsPlayerConnected(playerid))
{
Abastecendo[playerid] = 1;
TextDrawSetString(td_fuel[playerid],"Reabastecimento...");
SetTimerEx("Tempo_Ab",4500,false,"i",playerid);
return 1;
}
return 1;
}
Quando eu digito /abastecimento, aparece: "USO: /abastecer [litros]" mais quando eu digito os litros aparece SERVER: Unknown Command. Nгo й GF
Re: [AJUDA] Qual o problema nesse comando? -
zSuYaNw - 08.04.2011
pawn Код:
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
Atй aonde me lembro, esta parte й para strings.
"/abastecer [string]"
usa sscanf ou strtock para isto.
Re: [AJUDA] Qual o problema nesse comando? -
LuxurioN™ - 08.04.2011
Jб que, pelo visto, vocк nem ao menos estб utilizando "strtok", e nem outro sistema de comandos, tal serб
bem rъstico.
Entretanto, cada um com seus gostos. Deve resolver seu problema:
Код:
if( strcmp( cmdtext, "/abastecer", true, 10 ) == 0 )
{
PostoInfo[pInfo][Litros] = pgd_CarregarInt( ArquivoPosto( ), "Litros", ":" );
if( !IsPlayerInAnyVehicle( playerid ) ) return SendClientMessage( playerid, ERRO , "Vocк nгo estб em um Veнculo" );
if( !PostodeGasolina( playerid ) ) return SendClientMessage( playerid, ERRO , "Vocк nгo estб em um Posto de Gasolina" );
if( PostoInfo[pInfo][Litros] == 0 ) return SendClientMessage( playerid, ERRO , "Esse posto nгo tem litros de gasolina" );
if( !strlen( cmdtext[ 11 ] ) )
return SendClientMessage( playerid, BRANCO, "USO: /abastecer [litros]" );
Abastecendo[ playerid ] = 1;
TextDrawSetString( td_fuel[playerid], "Reabastecimento..." );
SetTimerEx( "Tempo_Ab", 4500 , false , "i" , playerid );
printf("%d", strval( cmdtext[ 11 ] ) ); //Teste
return 1;
}
Й
altamente recomendбvel que vocк use algum sistema de comandos (zcmd,dcmd,y_cmd,kcmd...), e/ou "sscanf" para a verificaзгo.
Re: [AJUDA] Qual o problema nesse comando? -
Ricop522 - 09.04.2011
pawn Код:
if(strcmp(cmdtext, "/abastecer", true) == 0)
{
PostoInfo[pInfo][Litros] = pgd_CarregarInt(ArquivoPosto(), "Litros", ":");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, ERRO, "Vocк nгo estб em um Veнculo");
if(!PostodeGasolina(playerid)) return SendClientMessage(playerid, ERRO, "Vocк nгo estб em um Posto de Gasolina");
if(PostoInfo[pInfo][Litros] == 0) return SendClientMessage(playerid, ERRO, "Esse posto nгo tem litros de gasolina");
tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFAA, "/abastecer [quantia]");
new qtd;
qtd = strval(tmp);
if(qtd <= 0 && qtd >= 99) return SendClientMessage(playerid,0xFFFFFFAA,"0-99.");
if(IsPlayerConnected(playerid))
{
Abastecendo[playerid] = 1;
TextDrawSetString(td_fuel[playerid],"Reabastecimento...");
SetTimerEx("Tempo_Ab",4500,false,"i",playerid);
return 1;
}
return 1;
}