Ayudenme D:
#1

Hola, queria saber porque al dar nivel temporal a un usuario y el usuario se sale del servidor por tal motivo, y cuando vuelve a entrar tiene el nivel sabiendo que le di temporal :S D: x cierto USO Y_INI

pawn Код:
CMD:darniveltemp(playerid,params[]) {
    new string[128];
    if(PlayerInfo[playerid][pAdmin] >= 7 || !strcmp("]SOB[_Ricardo",pName(playerid),true) || !strcmp("[GrOv3].Swat",pName(playerid),true)) {
    if(sscanf(params, "rd", params[0], params[1])) return SendClientMessage(playerid, red, "[USA]: /darniveltemp [playerid] [1 - 2 y 3]") &&
    SendClientMessage(playerid, orange, "[Funciуn]: Establece un Nivel Admin Temporal a Especificado Jugador!");
    if(params[1] > 3 ) return SendClientMessage( playerid,red, "[INFO]: Solo puedes dar lvl Temp [1 - 2 y 3]" );
    if(!IsPlayerConnected(params[0])) return NoConectado(playerid);
    if(PlayerInfo[params[0]][LoggedIn] == 0) return SendClientMessage(playerid,red,"[ERROR]: El Player no estб registrado o logeado.");
    if(params[1] >= ServerInfo[MaxAdminNivel] ) return SendClientMessage(playerid,red,"[ERROR]: Level Incorrecto");
    if(params[1] == PlayerInfo[params[0]][pAdmin]) return SendClientMessage(playerid,red,"[ERROR]: El Player ya tiene este level");
    CMDMessageToAdmins(playerid,"DARNIVELTEMP");
    format(string,sizeof(string),"[INFO]: El Administrador %s ha dado admin Temporal [Nivel %d]",pName(playerid), params[1]);
    SendClientMessageToAll(blue, string);
    SaveToFile("TempAdminLog",string);
    if(params[0] != playerid)
    {
    if(params[1] > 0) format(string,sizeof(string),"[INFO]: El Administrador %s te ha dado admin temporalmente [Nivel %d]", pName(playerid), params[1]);
    else format(string,sizeof(string),"[INFO]: El Administrador %s te ha bajado de level temporalmente [Nivel %d]", pName(playerid), params[1]);
    SendClientMessage(params[0],blue,string);
    }
    if(params[1] > PlayerInfo[params[0]][pAdmin]) GameTextForPlayer(params[0],"~w~Promovido a admin ~n~~g~temporalmente", 4000, 3);
    else GameTextForPlayer(params[0],"~w~Degradado del admin ~n~~r~temporalmente", 4000, 3);
    PlayerInfo[params[0]][pAdmin] = params[1];
    PlayerPlaySound(params[0],1057,0.0,0.0,0.0);
    return 1;
    } else return SendClientMessage(playerid,red,"[ERROR]: Necesitas ser Administrador nivel 7 para usar este comando.");
}
en OnPlayerConnect tengo puesto PD: tmb lo eh puesto en OnPlayerDisconnect pero nada!!

pawn Код:
PlayerInfo[params[0]][pAdmin] = 0;
para que al conectarse no se salga el admin pero igual no se puede!!
Reply
#2

En OnPlayerConnect no puede estar asн
Код:
PlayerInfo[params[0]][pAdmin] = 0;
Por si acaso debes tenerlo asн:
Код:
PlayerInfo[playerid][pAdmin] = 0;
Si lo tienes bien... fijate que no tengas la linea debajo de la funcion de guardar cuenta.
Reply
#3

Quote:
Originally Posted by Tusso4
Посмотреть сообщение
En OnPlayerConnect no puede estar asн
Код:
PlayerInfo[params[0]][pAdmin] = 0;
Por si acaso debes tenerlo asн:
Код:
PlayerInfo[playerid][pAdmin] = 0;
Si lo tienes bien... fijate que no tengas la linea debajo de la funcion de guardar cuenta.
no no esta asн solo que lo copie y no me fige de ponerle [playerid] pero ta bien pero ya lo solucione solo que tenia un variable que hacia guardar el admin <.< pero ya lo arregle igualmente gracias C:

en el saveplayer tenia definido

pawn Код:
INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
lo que hacia es guardar el admin xD pero ya lo borre jaja xD ni cuenta me di!!
Reply
#4

Quote:
Originally Posted by !R1Ch@rD!
Посмотреть сообщение
no no esta asн solo que lo copie y no me fige de ponerle [playerid] pero ta bien pero ya lo solucione solo que tenia un variable que hacia guardar el admin <.< pero ya lo arregle igualmente gracias C:

en el saveplayer tenia definido

pawn Код:
INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
lo que hacia es guardar el admin xD pero ya lo borre jaja xD ni cuenta me di!!
Pero йso te lleva a otro problema їCual? que cuando le dйs admin "no temporal" a alguien, cuan йste alguien se desconecte no tendrб el admin.

La soluciуn para йsto es hacerte una variable global, cuando le pongas йse comando de dar admin temporal , le pones la variable al player. y en el callback de guardar los datos le pones if(mivariable[playerid] == 1){return 1;}. de йsta manera no se guardarбn los datos. o puedes ponerle justamente alli donde tu mismo dijiste; asн:

pawn Код:
CMD:darniveltemp(playerid,params[]) {
    new string[128];
    if(PlayerInfo[playerid][pAdmin] >= 7 || !strcmp("]SOB[_Ricardo",pName(playerid),true) || !strcmp("[GrOv3].Swat",pName(playerid),true)) {
    if(sscanf(params, "rd", params[0], params[1])) return SendClientMessage(playerid, red, "[USA]: /darniveltemp [playerid] [1 - 2 y 3]") &&
    SendClientMessage(playerid, orange, "[Funciуn]: Establece un Nivel Admin Temporal a Especificado Jugador!");
    if(params[1] > 3 ) return SendClientMessage( playerid,red, "[INFO]: Solo puedes dar lvl Temp [1 - 2 y 3]" );
    if(!IsPlayerConnected(params[0])) return NoConectado(playerid);
    if(PlayerInfo[params[0]][LoggedIn] == 0) return SendClientMessage(playerid,red,"[ERROR]: El Player no estб registrado o logeado.");
    if(params[1] >= ServerInfo[MaxAdminNivel] ) return SendClientMessage(playerid,red,"[ERROR]: Level Incorrecto");
    if(params[1] == PlayerInfo[params[0]][pAdmin]) return SendClientMessage(playerid,red,"[ERROR]: El Player ya tiene este level");
    CMDMessageToAdmins(playerid,"DARNIVELTEMP");
    format(string,sizeof(string),"[INFO]: El Administrador %s ha dado admin Temporal [Nivel %d]",pName(playerid), params[1]);
    SendClientMessageToAll(blue, string);
    SaveToFile("TempAdminLog",string);
    if(params[0] != playerid)
    Admin_Temp[playerid] = true;//le aсades йsta variable.
    {
    if(params[1] > 0) format(string,sizeof(string),"[INFO]: El Administrador %s te ha dado admin temporalmente [Nivel %d]", pName(playerid), params[1]);
    else format(string,sizeof(string),"[INFO]: El Administrador %s te ha bajado de level temporalmente [Nivel %d]", pName(playerid), params[1]);
    SendClientMessage(params[0],blue,string);
    }
    if(params[1] > PlayerInfo[params[0]][pAdmin]) GameTextForPlayer(params[0],"~w~Promovido a admin ~n~~g~temporalmente", 4000, 3);
    else GameTextForPlayer(params[0],"~w~Degradado del admin ~n~~r~temporalmente", 4000, 3);
    PlayerInfo[params[0]][pAdmin] = params[1];
    PlayerPlaySound(params[0],1057,0.0,0.0,0.0);
    return 1;
    } else return SendClientMessage(playerid,red,"[ERROR]: Necesitas ser Administrador nivel 7 para usar este comando.");
}


new new bool:Admin_Temp[MAX_PLAYERS];//variable global.
//en el callback que tengas para guardar los datos.
if(Admin_Temp[playerid] == false)//Comprovamos si no se le ha dado el comando /darniveltemp, si es le diу, entonces no se guardarб.
{
INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
}
Reply
#5

Quote:
Originally Posted by jotajeda
Посмотреть сообщение
Pero йso te lleva a otro problema їCual? que cuando le dйs admin "no temporal" a alguien, cuan йste alguien se desconecte no tendrб el admin.

La soluciуn para йsto es hacerte una variable global, cuando le pongas йse comando de dar admin temporal , le pones la variable al player. y en el callback de guardar los datos le pones if(mivariable[playerid] == 1){return 1;}. de йsta manera no se guardarбn los datos. o puedes ponerle justamente alli donde tu mismo dijiste; asн:

pawn Код:
CMD:darniveltemp(playerid,params[]) {
    new string[128];
    if(PlayerInfo[playerid][pAdmin] >= 7 || !strcmp("]SOB[_Ricardo",pName(playerid),true) || !strcmp("[GrOv3].Swat",pName(playerid),true)) {
    if(sscanf(params, "rd", params[0], params[1])) return SendClientMessage(playerid, red, "[USA]: /darniveltemp [playerid] [1 - 2 y 3]") &&
    SendClientMessage(playerid, orange, "[Funciуn]: Establece un Nivel Admin Temporal a Especificado Jugador!");
    if(params[1] > 3 ) return SendClientMessage( playerid,red, "[INFO]: Solo puedes dar lvl Temp [1 - 2 y 3]" );
    if(!IsPlayerConnected(params[0])) return NoConectado(playerid);
    if(PlayerInfo[params[0]][LoggedIn] == 0) return SendClientMessage(playerid,red,"[ERROR]: El Player no estб registrado o logeado.");
    if(params[1] >= ServerInfo[MaxAdminNivel] ) return SendClientMessage(playerid,red,"[ERROR]: Level Incorrecto");
    if(params[1] == PlayerInfo[params[0]][pAdmin]) return SendClientMessage(playerid,red,"[ERROR]: El Player ya tiene este level");
    CMDMessageToAdmins(playerid,"DARNIVELTEMP");
    format(string,sizeof(string),"[INFO]: El Administrador %s ha dado admin Temporal [Nivel %d]",pName(playerid), params[1]);
    SendClientMessageToAll(blue, string);
    SaveToFile("TempAdminLog",string);
    if(params[0] != playerid)
    Admin_Temp[playerid] = true;//le aсades йsta variable.
    {
    if(params[1] > 0) format(string,sizeof(string),"[INFO]: El Administrador %s te ha dado admin temporalmente [Nivel %d]", pName(playerid), params[1]);
    else format(string,sizeof(string),"[INFO]: El Administrador %s te ha bajado de level temporalmente [Nivel %d]", pName(playerid), params[1]);
    SendClientMessage(params[0],blue,string);
    }
    if(params[1] > PlayerInfo[params[0]][pAdmin]) GameTextForPlayer(params[0],"~w~Promovido a admin ~n~~g~temporalmente", 4000, 3);
    else GameTextForPlayer(params[0],"~w~Degradado del admin ~n~~r~temporalmente", 4000, 3);
    PlayerInfo[params[0]][pAdmin] = params[1];
    PlayerPlaySound(params[0],1057,0.0,0.0,0.0);
    return 1;
    } else return SendClientMessage(playerid,red,"[ERROR]: Necesitas ser Administrador nivel 7 para usar este comando.");
}


new new bool:Admin_Temp[MAX_PLAYERS];//variable global.
//en el callback que tengas para guardar los datos.
if(Admin_Temp[playerid] == false)//Comprovamos si no se le ha dado el comando /darniveltemp, si es le diу, entonces no se guardarб.
{
INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
}
es que ya lo eh sacado eso, cuando doi temporal no le guarda el admin pero si lo da y el user lo puede usar y cuando el user se desconecta o le da crash y tal motivo se desconecta, ps al conectarse ya no le sale el admin q le di ya lo eh solucionado igualmente gracias C: igual por si las mosca estare viendo esto por si llego a tener un problema!
Reply
#6

Quote:
Originally Posted by !R1Ch@rD!
Посмотреть сообщение
es que ya lo eh sacado eso, cuando doi temporal no le guarda el admin pero si lo da y el user lo puede usar y cuando el user se desconecta o le da crash y tal motivo se desconecta, ps al conectarse ya no le sale el admin q le di ya lo eh solucionado igualmente gracias C: igual por si las mosca estare viendo esto por si llego a tener un problema!
їY que pasarб cuando le des admin permanente a alguien?.
Igual tendrбs el mismo problema: No se le guardarб el nivel de admin.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)