#include "a_samp"
#include "zcmd"
#include "sscanf"
enum Datos
{
Admin,
Score
};
new PlayerInfo[ MAX_PLAYERS ][ Datos ];
new Cantidad, Player;
CMD:setscore ( playerid, params[] )
{
if ( PlayerInfo[ playerid ][ Admin ] >= 1 ) return SendClientMessage ( playerid, -1, ".." );
if ( sscanf ( params, "ui", Player, Cantidad ) ) return SendClientMessage ( playerid, -1, ".." );
if ( !IsPlayerConnected ( Player ) ) return SendClientMessage ( playerid, -1, ".." );
PlayerInfo[ Player ][ Score ] = Cantidad;
SendClientMessage ( playerid, -1, "Comando ejecutado." );
return 1;
}
CMD:setscore ( playerid, params[] )
{
if ( PlayerInfo[ playerid ][ Admin ] >= 1 )
{
if ( sscanf ( params, "ui", Player, Cantidad ) ) return SendClientMessage ( playerid, -1, ".." );
if ( !IsPlayerConnected ( Player ) )
{
PlayerInfo[ Player ][ Score ] = Cantidad;
SendClientMessage ( playerid, -1, "Comando ejecutado." );
}
else return SendClientMessage ( playerid, -1, ".." );
}
else return SendClientMessage ( playerid, -1, ".." );
return 1;
}
CMD:setscore ( playerid, params[] )
{
if ( PlayerInfo[ playerid ][ Admin ] >= 1 ) return SendClientMessage ( playerid, -1, ".." );
if ( sscanf ( params, "ui", params[0 ], params[ 1 ] ) ) return SendClientMessage ( playerid, -1, ".." );
if ( !IsPlayerConnected ( params[ 0 ] ) ) return SendClientMessage ( playerid, -1, ".." );
PlayerInfo[ params[ 0 ] ][ Score ] = params[ 1 ];
SendClientMessage ( playerid, -1, "Comando ejecutado." );
return 1;
}
CMD:setscore(playerid, params[]) // 'setscore (' - No recomiendo que lo uses asн.
{
if(PlayerInfo[playerid][Admin] >= 1) return SendClientMessage(playerid, -1, "..");
if(sscanf(params, "ui", params[0], params[1])) return SendClientMessage(playerid, -1, "..");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, "..");
else
{
PlayerInfo[params[0]][Score] = params[1]; // Aquн quizбs otro error.
SendClientMessage(playerid, -1, "Comando ejecutado.");
}
return 1;
}
1 - Variables mundiales? Te refieres a las globales...
2 - 'puedй' - Tratemos de nunca usarlo. 3 - Sн se puede hacerlo sin crear variables. No lo sй, pero creo que tu error estб en que dejas un espacio en el nombre del comando y cuando empiezas a escribir los argumentos. Te ordenй el cуdigo ya que es bastante feo como se ve: pawn Код:
|
Serб por que no tienes Nivel Admin. Usa un comando para dбrtelo y prueba el comando 'setscore' otra vez.
|
CMD:setscore(playerid, params[])
{
if ( PlayerInfo[ playerid ][ Admin ] >= 1 )
{
if ( sscanf ( params, "ui", params[0], params[1] )) return SendClientMessage ( playerid, -1, "Uso: /setscore [playerid] [cantidad]." );
if ( IsPlayerConnected( params[0] ) && params[0] != INVALID_PLAYER_ID )
{
SetPlayerScore ( params[0], params[1] );
SendClientMessage ( playerid, -1, "Comando enviado." );
}
else
{
SendClientMessage ( playerid, -1, "Player no conectado." );
}
}
else
{
SendClientMessage ( playerid, -1, "No eres administrador." );
}
return 1;
}