Bug de comando
#1

Hola gente bueno estuve modificando un comando y bueno cuando lo usa un usuario que no tiene nivel administrativo se me cierra el server-samp. PD: lo ultimo que edite fue el mensaje que dice cuando no tenes el nivel de adm requerido.
CMD:
Код:
    zcmd(san, playerid, params[]){
		new string[120], time, giveplayerid, reason[64];
    	if(CommandSpamTimes[playerid] == 4){
          	format(string, sizeof(string), "ATENCIУN: %s fue baneado automбticamente, razуn: Flood Cmdґs",GetPlayerNameEx(playerid));
	        ABroadCast(COLOR_BLUE,string,2);
	        Log("logs/hackeraction.log", string);
	        Info[playerid][pBannedZC] = 2;
			Kick(playerid);
			return 1;
		}
        if (Info[playerid][pAdminZC] < 1) return SendClientMessageEx(playerid, COLOR_GRAD2, "({FF3300}%s{FFFFFF}) {FFFFFF}Comando desconocido, usa {DBED15}/ayuda {FFFFFF}para recibir ayuda.");
        if (!sscanf(params, "dds[64]", giveplayerid, time, reason)){
            if(IsPlayerConnected(giveplayerid)){
				SetPVarInt(giveplayerid, "IsInArena", 0);
				SetPVarInt(giveplayerid, "ArenaMode", 0);
              	CommandSpamTimes[playerid]++;
				CommandSpamUnmute[playerid] = 60;
				SetTimerEx("OtherTimerEx", 1000, false, "ii", playerid, TYPE_FLOODPROTECTION);
                Info[giveplayerid][pJailAdmin] += 1;
		        Info[giveplayerid][pJailed] = 1;
		        PhoneOnline[giveplayerid] = 1;
				Info[giveplayerid][pJailTime] = time*60;
				ResetPlayerWeaponsEx(giveplayerid);
				LoadObjects(giveplayerid);
				SetPlayerPos(giveplayerid,346.5719,308.9120,999.1557);
				SetPlayerInterior(giveplayerid, 6);
				SetPlayerVirtualWorld(giveplayerid, 1000);
				SetHP(playerid, 123123);
				format(string, sizeof(string), "%s fue sancionado por %s", GetPlayerNameEx(giveplayerid), reason);
				BroadCast(COLOR_RED, string);
				format(string, sizeof(string), "{DEA600}Fuistes sancionado por incumplir alguna de las reglas,por favor lee las reglas.", time);
				SendClientMessageEx(giveplayerid, COLOR_ORANGE, string);
				format(string, sizeof(string), "{DEA600}En el foro se encuentran todas las reglas y una guнa de rol que te serб de utilidad.", time);
				SendClientMessageEx(giveplayerid, COLOR_ORANGE, string);
				format(string, sizeof(string), "{DEA600}Tiempo de sanciуn: %d minutos.", time);
				SendClientMessageEx(giveplayerid, COLOR_ORANGE, string);
				StopAudioStreamForPlayer(giveplayerid);
				return 1;
            }
			else SendClientMessageEx(playerid, COLOR_GRAD2, "Esa ID es invбlida.");
        }
		else SendClientMessageEx(playerid, COLOR_GRAD2, "Utiliza: /san <PlayerID> <Minutos> <Razуn>");
        return 1;
    }
Reply
#2

Prueba asн y luego dinos que mensajes salen en la consola:

pawn Код:
zcmd(san, playerid, params[])
{
    print("0");
    new string[120], time, giveplayerid, reason[64];
    if(CommandSpamTimes[playerid] == 4)
    {
        print("1");
        format(string, sizeof(string), "ATENCIУN: %s fue baneado automбticamente, razуn: Flood Cmdґs",GetPlayerNameEx(playerid));
        ABroadCast(COLOR_BLUE,string,2);
        Log("logs/hackeraction.log", string);
        Info[playerid][pBannedZC] = 2;
        Kick(playerid);
        print("2");
        return 1;
    }
    print("2");
    if(Info[playerid][pAdminZC] < 1) return SendClientMessageEx(playerid, COLOR_GRAD2, "({FF3300}%s{FFFFFF}) {FFFFFF}Comando desconocido, usa {DBED15}/ayuda {FFFFFF}para recibir ayuda.");
    print("3");
    if(!sscanf(params, "dds[64]", giveplayerid, time, reason))
    {
        print("4");
        if(IsPlayerConnected(giveplayerid))
        {
            print("5");
            SetPVarInt(giveplayerid, "IsInArena", 0);
            SetPVarInt(giveplayerid, "ArenaMode", 0);
            CommandSpamTimes[playerid]++;
            CommandSpamUnmute[playerid] = 60;
            SetTimerEx("OtherTimerEx", 1000, false, "ii", playerid, TYPE_FLOODPROTECTION);
            Info[giveplayerid][pJailAdmin] += 1;
            Info[giveplayerid][pJailed] = 1;
            PhoneOnline[giveplayerid] = 1;
            Info[giveplayerid][pJailTime] = time*60;
            ResetPlayerWeaponsEx(giveplayerid);
            LoadObjects(giveplayerid);
            SetPlayerPos(giveplayerid,346.5719,308.9120,999.1557);
            SetPlayerInterior(giveplayerid, 6);
            SetPlayerVirtualWorld(giveplayerid, 1000);
            SetHP(playerid, 123123);
            format(string, sizeof(string), "%s fue sancionado por %s", GetPlayerNameEx(giveplayerid), reason);
            BroadCast(COLOR_RED, string);
            format(string, sizeof(string), "{DEA600}Fuistes sancionado por incumplir alguna de las reglas,por favor lee las reglas.", time);
            SendClientMessageEx(giveplayerid, COLOR_ORANGE, string);
            format(string, sizeof(string), "{DEA600}En el foro se encuentran todas las reglas y una guнa de rol que te serб de utilidad.", time);
            SendClientMessageEx(giveplayerid, COLOR_ORANGE, string);
            format(string, sizeof(string), "{DEA600}Tiempo de sanciуn: %d minutos.", time);
            SendClientMessageEx(giveplayerid, COLOR_ORANGE, string);
            StopAudioStreamForPlayer(giveplayerid);
            print("6");
            return 1;
        }
        else SendClientMessageEx(playerid, COLOR_GRAD2, "Esa ID es invбlida.");
    }
    else SendClientMessageEx(playerid, COLOR_GRAD2, "Utiliza: /san <PlayerID> <Minutos> <Razуn>");
    print("7");
    return 1;
}
Reply
#3

Supongo que es por que no tienes una carpeta con el nombre "logs"
Reply
#4

Quote:
Originally Posted by juandiegox
Посмотреть сообщение
Supongo que es por que no tienes una carpeta con el nombre "logs"
Supuestamente le sucede cuando el cmd lo usa alguien que no tiene nivel de admin. Para llegar a la carpeta "logs" tienen que poder usar 4 veces el cmd teniendo administraciуn.
Reply
#5

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Supuestamente le sucede cuando el cmd lo usa alguien que no tiene nivel de admin. Para llegar a la carpeta "logs" tienen que poder usar 4 veces el cmd teniendo administraciуn.
si lo usa un usuario que no tiene admin el script se retornara, mira el return
pawn Код:
if (Info[playerid][pAdminZC] < 1) return SendClientMessageEx(playerid, COLOR_GRAD2, "({FF3300}%s{FFFFFF}) {FFFFFF}Comando desconocido, usa {DBED15}/ayuda {FFFFFF}para recibir ayuda.");
osea que no se ejecutara la funciуn que guarda el log en la carpeta "logs", si tiene el nivel admin necesario se ejecutara el cуdigo de abajo, no se retornara... osea que se ejecutara esa funciуn la cual guarda el log..


EDIT: mirando bien el script el log esta antes de la restricciуn, pero de igual forma supongo que es por la falta de la carpeta llamada logs.
Reply
#6

Quote:
Originally Posted by juandiegox
Посмотреть сообщение
si lo usa un usuario que no tiene admin el script se retornara, mira el return
pawn Код:
if (Info[playerid][pAdminZC] < 1) return SendClientMessageEx(playerid, COLOR_GRAD2, "({FF3300}%s{FFFFFF}) {FFFFFF}Comando desconocido, usa {DBED15}/ayuda {FFFFFF}para recibir ayuda.");
osea que no se ejecutara la funciуn que guarda el log en la carpeta "logs", si tiene el nivel admin necesario se ejecutara el cуdigo de abajo, no se retornara... osea que se ejecutara esa funciуn la cual guarda el log..


EDIT: mirando bien el script el log esta antes de la restricciуn, pero de igual forma supongo que es por la falta de la carpeta llamada logs.
їEntiendes como funciona el "return"?, їY lo que hace ese cуdigo que pegaste?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)