Bug ladmin con zcmd
#1

Al momento de usar un comando ej: /kick y no le agrego id ni razon me dice * Jugador no conectado, eres tu o un admin! en vez de decirme * Usa: /kick [id] [razуn] aquн les dejo el comando

Код HTML:
CMD:kick(playerid,params[]) {
if(PlayerInfo[playerid][LoggedIn] == 1) {
if(PlayerInfo[playerid][Level] >= 1) {
new year,month,day; getdate(year, month, day);
new hour,minute,second; gettime(hour,minute,second);
new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
if(!strlen(params)) return SendClientMessage(playerid, red, "* Usa: /kick [id] [razуn]");
new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
player1 = strval(tmp);
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
CMDMessageToAdmins(playerid,"KICK");
if(!strlen(tmp2)) {
format(string,sizeof(string),"* Admin %s kickeo a (%s).",adminname,playername); SendClientMessageToAll(orange,string);
SaveToFile("KickLog",string); print(string); return Kick(player1);
} else {
format(string,sizeof(string),"* Admin %s kickeo a %s (%s)",adminname,playername,params[2]); SendClientMessageToAll(orange,string);
SaveToFile("KickLog",string); print(string); return Kick(player1);
}
} else return SendClientMessage(playerid, red, "* Jugador no conectado, eres tu o un admin!");
} else return SendClientMessage(playerid,red,"* No tienes el suficiente nivel de admin para usar este comando!");
} else return SendClientMessage(playerid,red,"* Debes estar identificado para usar este comando!");
}
Reply
#2

Debes usar sscanf para chequear los parametros que colocas en el comando..

pawn Код:
CMD:kick(playerid, params[])
{
    new usuario, parametro[32], cadena[144], nombres[24][2];
    if(sscanf(params, "us[32]", usuario, parametro)) return SendClientMessage(playerid, -1, "Uso: /kick [ID] [Razon]");
    if(!IsPlayerConnect(usuario)) return SendClientMessage(playerid, -1, "Usuario no conectado!");
    GetPlayerName(playerid, nombres[0], 24); GetPlayerName(usuario, nombres[1], 24);    
    format(cadena, 144, "*Servidor* %s ha expulsado a %s razуn: %s", nombres[0], nombres[1], parametro);
    SendClientMessageToAll(-1, cadena);
    Kick(usuario);
    return 1;
}
Es un ejemplo (o el comando ya hecho) de expulsar a un jugador.

https://sampforum.blast.hk/showthread.php?tid=120356
Reply
#3

pawn Код:
CMD:kick(playerid,params[])
{
    if(PlayerInfo[playerid][LoggedIn] == 1)
    {
        if(PlayerInfo[playerid][Level] >= 1)// no de berнa ser admin?
        {
            new year,month,day; getdate(year, month, day);
            new hour,minute,second; gettime(hour,minute,second);
            new player1, razon[32];
            if(sscanf(params, "ds[32]", player1, razon)) return SendClientMessage(playerid, red, "* Usa: /kick [id] [razуn]");
            new playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
            if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) )
            {
                GetPlayerName(player1, playername, sizeof(playername));
                GetPlayerName(playerid, adminname, sizeof(adminname));
                CMDMessageToAdmins(playerid,"KICK");
                format(string,sizeof(string),"* Admin %s kickeo a %s (%s)",adminname,playername,razon);
                SendClientMessageToAll(orange,string);
                SaveToFile("KickLog",string);
                print(string);
                return Kick(player1);
            } else return SendClientMessage(playerid, red, "Error: Jugador no conectado, no te puedes kickear a ti mismo y no puedes kickear a un admin.");
        } else return SendClientMessage(playerid,red,"* No tienes el suficiente nivel de admin para usar este comando!");
    } else return SendClientMessage(playerid,red,"* Debes estar identificado para usar este comando!");
    return true;
}
Reply
#4

Gracias me sirvio!
Reply
#5

Cуmo tengo que dejar este comando?

Quote:

CMD:borrarc(playerid,params[]) {
if(PlayerInfo[playerid][Level] >= 91) return SendClientMessage(playerid,red,"* No tienes el suficiente nivel de admin para usar este comando!");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,red,"* No tienes el suficiente nivel de admin para usar este comando!");
if(sscanf(params) < 3) return SendClientMessage(playerid,red,"* Usa: /borrarc [Nick]");
if(!udb_Exists(params)) return SendClientMessage(playerid,red,"* Esa cuenta no existe!");
udb_Remove(params);
if(!udb_Exists(params)) {
new ADMNAME[MAX_PLAYER_NAME];GetPlayerName(playerid, ADMNAME, MAX_PLAYER_NAME);
new logstring[128];format(logstring, sizeof(logstring), "* Admin %s borro la cuenta de %s", ADMNAME,params);
SaveToFile("DeletedAccs",logstring);
//---------------
SendClientMessage(playerid,yellow,"* La cuenta ha sido borrada!");
}else{
SendClientMessage(playerid,red,"* No se puede borrar la cuenta!");}
return 1;}

Reply
#6

Quote:
Originally Posted by BenjaminT4L
Посмотреть сообщение
Cуmo tengo que dejar este comando?
pawn Код:
CMD:borrarc(playerid,params[])
{
    if(PlayerInfo[playerid][Level] >= 91) return SendClientMessage(playerid,red,"* No tienes el suficiente nivel de admin para usar este comando!");
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,red,"* No tienes el suficiente nivel de admin para usar este comando!");
    new nombre[MAX_PLAYER_NAME];
    if(sscanf(params, "s[24]", nombre)) return SendClientMessage(playerid,red,"* Usa: /borrarc [Nick]");
    if(!udb_Exists(nombre)) return SendClientMessage(playerid,red,"* Esa cuenta no existe!");
    udb_Remove(nombre);
    new ADMNAME[MAX_PLAYER_NAME];
    GetPlayerName(playerid, ADMNAME, MAX_PLAYER_NAME);
    new logstring[128];format(logstring, sizeof(logstring), "* Admin %s borro la cuenta de %s", ADMNAME,nombre);
    SaveToFile("DeletedAccs",logstring);
    return 1;
}
Fijate como funciona y aprende hacer voz mismo. -_-
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)