[Ajuda] Usar esse comando 1x no mesmo id
#1

Olб galera sйra que vocкs podem me dar uma pequena ajuda? eu queria que esse comando abaixo fosse utilizado 1x sу no mesmo id tipo o Polнcial digitar /multar 0 dae o cara recebe a multa sй o Polнcial digtar o comando no mesmo ID da erro, eu nгo sei fazer isso entгo estуu pedindo ajuda pra vocКs ^^

Comandos abaixo !!



Код:
if(strcmp(cmd, "/multar", true) == 0) {
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
format(file, sizeof(file), PASTA_CONTAS, aname);
if(dini_Int(file, "Profissao") == Policial_C || dini_Int(file, "Profissao") == Policial_F || dini_Int(file, "Profissao") == Delegado || dini_Int(file, "Profissao") == Bope || dini_Int(file, "Profissao") == Swat || dini_Int(file, "Profissao") == Narcoticos || dini_Int(file, "Profissao") == Policial_M || dini_Int(file, "Profissao") == FBI || dini_Int(file, "Profissao") == Interpol || dini_Int(file, "Profissao") == LSPD || dini_Int(file, "aAdmin") == 1 || IsPlayerAdmin(playerid)){
new tmp[256];
new plid;
new quant;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, Vermelho, "/multar [id] [quantidade]");
return 1;
}
plid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, Vermelho, "/multar [id] [quantidade]");
return 1;
}
quant = strval(tmp);
if(quant > 1000 || quant <= 0){
SendClientMessage(playerid, Vermelho, "(INFO) Vocк nгo estб multando de forma justa.");
return 1;
}
if(IsPlayerConnected(plid)){
new pname[MAX_PLAYER_NAME];
GetPlayerName(plid, pname, MAX_PLAYER_NAME);
format(file2, sizeof(file2), PASTA_CONTAS, pname);
format(string, sizeof(string), "(INFO) Vocк recebeu uma multa de R$%d Pelo policial %s . O dinheiro foi retirado do banco.", quant, aname);
SendClientMessage(plid, COLOR_GREEN, string);
SendClientMessage(playerid, COLOR_GREEN, "(INFO) Multa dada.");
dini_IntSet(file2, "SaldoBancario", dini_Int(file2, "SaldoBancario")- quant);
return 1;
}
else{
SendClientMessage(playerid, Vermelho, "(INFO) O jogador nгo estб conectado!");
return 1;
}
}
}
Reply
#2

Код:
new bool:UsouID[MAX_PLAYERS];

if(strcmp(cmd, "/multar", true) == 0) 
{
	new aname[MAX_PLAYER_NAME];
	
	GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
	
	format(file, sizeof(file), PASTA_CONTAS, aname);
	
	if(dini_Int(file, "Profissao") == Policial_C || dini_Int(file, "Profissao") == Policial_F || dini_Int(file, "Profissao") == Delegado || dini_Int(file, "Profissao") == Bope || dini_Int(file, "Profissao") == Swat || dini_Int(file, "Profissao") == Narcoticos || dini_Int(file, "Profissao") == Policial_M || dini_Int(file, "Profissao") == FBI || dini_Int(file, "Profissao") == Interpol || dini_Int(file, "Profissao") == LSPD || dini_Int(file, "aAdmin") == 1 || IsPlayerAdmin(playerid))
	{
		new tmp[256];
		new plid;
		
		new quant;
		
		tmp = strtok(cmdtext, idx);
		
		if(!strlen(tmp)) 
		{
			SendClientMessage(playerid, Vermelho, "/multar [id] [quantidade]");
			return 1;
		}
		
		plid = strval(tmp);
		
		tmp = strtok(cmdtext, idx);
		
		if(!strlen(tmp)) 
		{
			SendClientMessage(playerid, Vermelho, "/multar [id] [quantidade]");
			return 1;
		}
		
		if(UsouID[plid] == true) return SendClientMessage(playerid, Vermelho, "Esse ID jб foi utilizado!");
		
		quant = strval(tmp);
		
		if(quant > 1000 || quant <= 0)
		{
			SendClientMessage(playerid, Vermelho, "(INFO) Vocк nгo estб multando de forma justa.");
			return 1;
		}
		
		if(IsPlayerConnected(plid))
		{
			new pname[MAX_PLAYER_NAME];
			
			GetPlayerName(plid, pname, MAX_PLAYER_NAME);
			
			format(file2, sizeof(file2), PASTA_CONTAS, pname);
			
			format(string, sizeof(string), "(INFO) Vocк recebeu uma multa de R$%d Pelo policial %s . O dinheiro foi retirado do banco.", quant, aname);
			SendClientMessage(plid, COLOR_GREEN, string);
			
			SendClientMessage(playerid, COLOR_GREEN, "(INFO) Multa dada.");
			
			UsouID[plid] = true;
			
			dini_IntSet(file2, "SaldoBancario", dini_Int(file2, "SaldoBancario")- quant);
			return 1;
		}
		else
		{
			SendClientMessage(playerid, Vermelho, "(INFO) O jogador nгo estб conectado!");
			return 1;
		}
	}
}
Desculpa pela minha organizaзгo, eu acho mais fбcil assim pra mim

@EDIT

PS: Lembre-se de usar algum comando como /remmulta para remover a multa ou simplesmente zerar a variavel booleana, caso contrбrio a pessoa nгo poderб tomar mais que 1 multa!
Reply
#3

Valeu cara funcionou ^^
Reply
#4

lembre-se de criar um timer para dar um reset na UsouID[plid] caso contrario nunca mais poderб multar aquele id em quanto nгo der gmx
Reply
#5

Pow tu pode fazer isso pra mim eu nгo sei, eu nгo manjo muito eu sу sei editar comando pбh editar a gm e criar poucas coisas
Reply
#6

Quote:
Originally Posted by BrianD
Посмотреть сообщение
lembre-se de criar um timer para dar um reset na UsouID[plid] caso contrario nunca mais poderб multar aquele id em quanto nгo der gmx
Pow tu pode fazer isso pra mim eu nгo sei, eu nгo manjo muito eu sу sei editar comando pбh editar a gm e criar poucas coisas
Reply
#7

Vai zerar de 5 em 5 minutos
Код:
public OnGameModeInit()
{
	SetTimer("ResetarMultados", 300000, true);
	return 1;
}

forward ResetarMultados();
public ResetarMultados()
{
	for(new i = 0; i < MAX_PLAYERS; i ++) UsouID[i] = false;
	
	return 1;
}
Reply
#8

Quote:
Originally Posted by F1N4L
Посмотреть сообщение
Vai zerar de 5 em 5 minutos
Код:
public OnGameModeInit()
{
	SetTimer("ResetarMultados", 300000, true);
	return 1;
}

forward ResetarMultados();
public ResetarMultados()
{
	for(new i = 0; i < MAX_PLAYERS; i ++) UsouID[i] = false;
	
	return 1;
}
F1N4L, recomendo que dispare o timer quando ele for multado pra evitar bug de acabar de multar e na sorte for no mesmo momento do timer zerar.
Reply
#9

Quote:
Originally Posted by Whoo
Посмотреть сообщение
F1N4L, recomendo que dispare o timer quando ele for multado pra evitar bug de acabar de multar e na sorte for no mesmo momento do timer zerar.
Vocк pode colocar os codigos no comando do F1N4L e me mandar denovo? Porque aqui estб dando erros provavelmente estуu colocando errado '
Reply
#10

Quote:
Originally Posted by Whoo
Посмотреть сообщение
F1N4L, recomendo que dispare o timer quando ele for multado pra evitar bug de acabar de multar e na sorte for no mesmo momento do timer zerar.
Vocк tem toda a razгo.

Recomendo desta forma:
Код:
new bool:UsouID[MAX_PLAYERS];

if(strcmp(cmd, "/multar", true) == 0) 
{
	new aname[MAX_PLAYER_NAME];
	
	GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
	
	format(file, sizeof(file), PASTA_CONTAS, aname);
	
	if(dini_Int(file, "Profissao") == Policial_C || dini_Int(file, "Profissao") == Policial_F || dini_Int(file, "Profissao") == Delegado || dini_Int(file, "Profissao") == Bope || dini_Int(file, "Profissao") == Swat || dini_Int(file, "Profissao") == Narcoticos || dini_Int(file, "Profissao") == Policial_M || dini_Int(file, "Profissao") == FBI || dini_Int(file, "Profissao") == Interpol || dini_Int(file, "Profissao") == LSPD || dini_Int(file, "aAdmin") == 1 || IsPlayerAdmin(playerid))
	{
		new tmp[256];
		new plid;
		
		new quant;
		
		tmp = strtok(cmdtext, idx);
		
		if(!strlen(tmp)) 
		{
			SendClientMessage(playerid, Vermelho, "/multar [id] [quantidade]");
			return 1;
		}
		
		plid = strval(tmp);
		
		tmp = strtok(cmdtext, idx);
		
		if(!strlen(tmp)) 
		{
			SendClientMessage(playerid, Vermelho, "/multar [id] [quantidade]");
			return 1;
		}
		
		if(UsouID[plid] == true) return SendClientMessage(playerid, Vermelho, "Esse ID jб foi utilizado!");
		
		quant = strval(tmp);
		
		if(quant > 1000 || quant <= 0)
		{
			SendClientMessage(playerid, Vermelho, "(INFO) Vocк nгo estб multando de forma justa.");
			return 1;
		}
		
		if(IsPlayerConnected(plid))
		{
			new pname[MAX_PLAYER_NAME];
			
			GetPlayerName(plid, pname, MAX_PLAYER_NAME);
			
			format(file2, sizeof(file2), PASTA_CONTAS, pname);
			
			format(string, sizeof(string), "(INFO) Vocк recebeu uma multa de R$%d Pelo policial %s . O dinheiro foi retirado do banco.", quant, aname);
			SendClientMessage(plid, COLOR_GREEN, string);
			
			SendClientMessage(playerid, COLOR_GREEN, "(INFO) Multa dada.");
			
			UsouID[plid] = true;
			
			SetTimerEx("ResetarMultados", 300000, true, "i", plid);
			
			dini_IntSet(file2, "SaldoBancario", dini_Int(file2, "SaldoBancario")- quant);
			return 1;
		}
		else
		{
			SendClientMessage(playerid, Vermelho, "(INFO) O jogador nгo estб conectado!");
			return 1;
		}
	}
}

forward ResetarMultados(playerid);
public ResetarMultados(playerid) return UsouID[playerid] = false;
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)