17.08.2014, 14:41
Hice esto para quй al usar un comando le llegue un mensaje despuйs.
Y asн lo uso en un comando.
La duda es mm. Primero banea si pongo la funciуn banear abajo de la funciуn del stock ?.
ї Como hago para-que primero la funciуn del stock y despuйs la funciуn del comando ?.
ї Debo eliminar el stock y usar el sistema del stock en cada comando ?.
Completo:
La funciуn del comando la usarнa en comandos y sistemas anti-cheats asн quй creу quй es mejor pero como aplico una funciуn despuйs del tiempo ?.
pawn Код:
stock AdministradorOnPlayer(NombreParams[], Comando[], Administrador[], i_Razon[])
{
if(GetTickCount() - Tiempo_Hizo >= 1000)
{
new i_string[144];
format(i_string, sizeof(i_string), "** %s ha sido %s por el administrador %s || razon: %s", NombreParams, Comando, Administrador, i_Razon);
SendClientMessageToAll(-1, i_string);
}
return 1;
}
pawn Код:
command(ban, playerid, params[])
{
if(PlayerInfo[playerid][Admin] >= 1)
{
if(sscanf(params, "us[36]", params[0], Razon)) return SendClientMessage(playerid, -1, "Uso: /ban [playerid] [razon].");
if(IsPlayerConnected(params[0]) && params[0]!= INVALID_PLAYER_ID)
{
if(params[0] != playerid)
{
if(PlayerInfo[playerid][Admin] > PlayerInfo[params[0]][Admin])
{
Tiempo_Hizo = 0;
Tiempo_Hizo = GetTickCount();
AdministradorOnPlayer(Nombre(params[0]), "baneado", Nombre(playerid), Razon);
BanEx(params[0], Razon);
}
else
{
SendClientMessage(playerid, -1, "No puedes banear a un administrador con mas lvl que tu.");
}
}
else
{
SendClientMessage(playerid, -1, "No puedes banearte.");
}
}
else
{
SendClientMessage(playerid, -1, "Player no conectado.");
}
}
else
{
SendClientMessage(playerid, -1, "No eres administrador.");
}
return 1;
}
ї Como hago para-que primero la funciуn del stock y despuйs la funciуn del comando ?.
ї Debo eliminar el stock y usar el sistema del stock en cada comando ?.
Completo:
pawn Код:
#include <a_samp>
#include <zcmd>
#include <sscanf>
enum Datos
{
Admin
};
new PlayerInfo[MAX_PLAYERS][Datos];
new Tiempo_Hizo;
new Razon[36];
command(ban, playerid, params[])
{
if(PlayerInfo[playerid][Admin] >= 1)
{
if(sscanf(params, "us[36]", params[0], Razon)) return SendClientMessage(playerid, -1, "Uso: /ban [playerid] [razon].");
if(IsPlayerConnected(params[0]) && params[0]!= INVALID_PLAYER_ID)
{
if(params[0] != playerid)
{
if(PlayerInfo[playerid][Admin] > PlayerInfo[params[0]][Admin])
{
Tiempo_Hizo = GetTickCount();
AdministradorOnPlayer(Nombre(params[0]), "baneado", Nombre(playerid), Razon);
BanEx(params[0], Razon);
}
else
{
SendClientMessage(playerid, -1, "No puedes banear a un administrador con mas lvl que tu.");
}
}
else
{
SendClientMessage(playerid, -1, "No puedes banearte.");
}
}
else
{
SendClientMessage(playerid, -1, "Player no conectado.");
}
}
else
{
SendClientMessage(playerid, -1, "No eres administrador.");
}
return 1;
}
stock AdministradorOnPlayer(NombreParams[], Comando[], Administrador[], i_Razon[])
{
if(GetTickCount() - Tiempo_Hizo >= 1000)
{
new i_string[144];
format(i_string, sizeof(i_string), "** %s ha sido %s por el administrador %s || razon: %s", NombreParams, Comando, Administrador, i_Razon);
SendClientMessageToAll(-1, i_string);
}
return 1;
}
stock Nombre(playerid)
{
new nombre[MAX_PLAYER_NAME];
GetPlayerName(playerid, nombre, MAX_PLAYER_NAME);
return nombre;
}