[Ajuda] Ajudano /daradmin
#1

Tipo eu quero colocar a permiзгo de admin master para dar admin sу atй lvl 5 e nгo pode retirar o admin do Dono(3000)
e colocar o admin dono para poder dar qualquer nvde admin.me ajudem.

Код HTML:
	if(strcmp(cmd, "/criaradmin", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
     	{
	    	if(PlayerInfo[playerid][pAdmin] < 1337)
	    	{
				SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo pode usar este comando!");
				return 1;
	    	}
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USE: /criaradmin [id] [Nivel(de 1 a 5)]");
				return 1;
			}
			new para1;
			new level;
			para1 = ReturnUser(tmp);
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USE: /criaradmin [id] [Nivel(de 1 a 5)]");
				return 1;
			}
			level = strval(tmp);
			if(level > 5)
			{
			    SendClientMessage(playerid, COLOR_GRAD1, "	Nгo se pode criar um admin com nivel maior que 5");
			    return true;
			}
			GetPlayerName(para1, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
		    if(IsPlayerConnected(para1))
		    {
		        if(para1 != INVALID_PLAYER_ID)
		        {
					if(level == 0)
					{
	    				format(string, sizeof(string), "  Vocк retirou o admin de %s.", giveplayer);
					    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					    format(string, sizeof(string), "  O Admin %s retirou seu admin!", sendername);
					    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
                		PlayerInfo[para1][pAdmin] = 0;
	   					getdate(year, month, day);
						gettime(hour,minute,second);
						format(string, sizeof(string), "%s retirou o admin de %s [%d/%d/%d] бs [%d:%d:%d].", sendername, giveplayer, day,
						month, year, hour, minute, second);
						PAdminsLog(string);
                		return true;
					}
   					if(level > 3000)
					{
						if(strcmp(sendername,"HHwilliam_HH",true)==0 || strcmp(sendername,"HHwilliam_HH",true)==0|| strcmp(sendername,"HHwilliam_HH",true)==0 || strcmp(sendername,"HHwilliam_HH",true)==0 ||
						strcmp(sendername,"HHwilliam_HH",true)==0)
						{

						}
						else
						{
						    PodeNaoMulek;
						    return true;
						}
					}
					format(string, sizeof(string), "   Vocк foi promovido a nivel %d de admin, pelo admin %s", level, sendername);
					SendClientMessage(para1, COLOR_LIGHTBLUE, string);
					format(string, sizeof(string), "   Vocк promoveu %s Para admin Nivel %d", giveplayer,level);
					SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					getdate(year, month, day);
					gettime(hour,minute,second);
					format(string, sizeof(string), "%s deu admin nivel %d para %s [%d/%d/%d] бs [%d:%d:%d].", sendername, level, giveplayer, day,
					month, year, hour, minute, second);
					PlayerInfo[para1][pAdmin] = level;
					PAdminsLog(string);
				}
			}
		}
		return 1;
	}
Reply
#2

@OFF Amigo, antes de tudo, quando for postar cуdigo use [pawn][/pawn]

Simples, й sу vocк checar o valor da variбvel admin. Variбvel nada mais й que um sнmbolo criado para armazenar um valor. Assim tendo variбveis globais, quanto locais. Globais, o prуprio nome jб diz, pode ser usada em toda parte do Gamemode, jб as locais sгo restritas a cуdigos que fecham, por exemplo, uma variбvel local usada em um comando, caso usar ela fora do mesmo, retornarб a erro, informando que nгo foi definida. A variбvel a qual estб a usar, й global, onde armazena o nнvel admin, e para checб-la й simples observe:
pawn Код:
if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, -1, "Vocк nгo pode usar esse comando");
//"if" - do inglкs significa "se", ou seja, analisando temos: se a variбvel tiver valor < que valor proposto, retornara a mensagem informativa.
//"<" - esse simbolo, й chamado de comparador, tanto esse "<"(menor que) como esses ">"(maior que), "<="(menor ou igual que), ">="(maior ou igual que), "=="(igual a), "&&"(como operador, identifica duas funзхes, caso alguma delas nгo forem iguais aos valores submetidos, nгo retornam ao cуdigo) entre outros...

//Agora para vocк checar й simples, como disse acima, quer que admin master sу possa dar admin atй level 5
if(PlayerInfo[playerid][pAdmin] == 1337 && level > 5) return SendClientMessage(playerid, COLOR_GRAD1, " Nгo se pode criar um admin com nivel maior que 5");
//assim, nгo precisa colocar para checar se й admin dono, pois apenas o admin com o valor 1337 serб retornado a mensagem acima

//Agora proibir para retirar admin dono, ou alterar o valor do level do mesmo
if(PlayerInfo[para1][pAdmin] == 3000) return SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo pode alterar o level de um Admin Dono!");
Pronto, agora й sу encaixar no lugar certo...й o minimo que pode fazer depois de toda a explicaзгo. Abraзos, estude mais!
Reply
#3

no caso ficaria asim ?


Код HTML:
	if(strcmp(cmd, "/criaradmin", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
     	{
			if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, -1, "Vocк nгo pode usar esse comando");
	    	}
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USE: /criaradmin [id] [Nivel(de 1 a 5)]");
				return 1;
			}
			new para1;
			new level;
			para1 = ReturnUser(tmp);
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USE: /criaradmin [id] [Nivel(de 1 a 5)]");
				return 1;
			}
			level = strval(tmp);
			if(PlayerInfo[playerid][pAdmin] == 1337 && level > 5) return SendClientMessage(playerid, COLOR_GRAD1, " Nгo se pode criar um admin com nivel maior que 5");
			}
			GetPlayerName(para1, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
		    if(IsPlayerConnected(para1))
		    {
		        if(para1 != INVALID_PLAYER_ID)
		        {
					if(level == 0)
					{
	    				format(string, sizeof(string), "  Vocк retirou o admin de %s.", giveplayer);
					    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					    format(string, sizeof(string), "  O Admin %s retirou seu admin!", sendername);
					    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
                		PlayerInfo[para1][pAdmin] = 0;
	   					getdate(year, month, day);
						gettime(hour,minute,second);
						format(string, sizeof(string), "%s retirou o admin de %s [%d/%d/%d] бs [%d:%d:%d].", sendername, giveplayer, day,
						month, year, hour, minute, second);
						PAdminsLog(string);
                		return true;
					}
   					if(level > 3000)
					{
						if(strcmp(sendername,"HHwilliam_HH",true)==0 || strcmp(sendername,"HHwilliam_HH",true)==0|| strcmp(sendername,"HHwilliam_HH",true)==0 || strcmp(sendername,"HHwilliam_HH",true)==0 ||
						strcmp(sendername,"HHwilliam_HH",true)==0)
						{

						}
						else
						{
						    PodeNaoMulek;
						    return true;
						}
					}
					format(string, sizeof(string), "   Vocк foi promovido a nivel %d de admin, pelo admin %s", level, sendername);
					SendClientMessage(para1, COLOR_LIGHTBLUE, string);
					format(string, sizeof(string), "   Vocк promoveu %s Para admin Nivel %d", giveplayer,level);
					SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					getdate(year, month, day);
					gettime(hour,minute,second);
					format(string, sizeof(string), "%s deu admin nivel %d para %s [%d/%d/%d] бs [%d:%d:%d].", sendername, level, giveplayer, day,
					month, year, hour, minute, second);
					PlayerInfo[para1][pAdmin] = level;
					PAdminsLog(string);
				}
			}
		}
		return 1;
	}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)