SA-MP Forums Archive
[Ajuda] Profissao Varredor - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Profissao Varredor (/showthread.php?tid=598371)



Profissao Varredor - Lutherdeck - 11.01.2016

Eu estou fazendo uma profissao de varredor de rua... digita /varrer e aparece um checkpoint onde e pra varrer...

Код:
  	if (strcmp(cmdtext,"/varrer", true)==0){
        new aname[MAX_PLAYER_NAME];
		new varrer[MAX_PLAYERS];
		GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
		format(file, sizeof(file), PASTA_CONTAS, aname);
		if(dini_Int(file, "Profissao") == Varredor){
		    if(varrer[playerid] == 0){
		        varrer[playerid] = 1;
		    	new varrerRandom = random(sizeof(lugaresVarrer));
		    	checkvarrer = SetPlayerCheckpoint(playerid, lugaresVarrer[varrerRandom][0], lugaresVarrer[varrerRandom][1], lugaresVarrer[varrerRandom][2], 3.0);
				SendClientMessage(playerid, 0xFFFFFFAA, "{FF0000}|INFO| {ffffff}Vб ate o checkpoint marcado no mapa.");
			}else{
				SendClientMessage(playerid, 0xFFFFFFAA, "{FF0000}|ERRO| {ffffff}Jб esta marcado um ponto em seu radar");
			}
		}else{
			SendClientMessage(playerid, 0xFFFFFFAA, "{FFFFFF}|ERRO| Vocк nгo й varredor de rua.");
		}
		return 1;
	}
Код:
if(checknome == checkvarrer){
GameTextForPlayer(playerid, "Varrendo", 5000, 6);
//resto da funзгo
return 1;
}
porem quando chego ao checkpoint nгo aparece isso, aparece o menu de um hotel(outro check)


Re: Profissao Varredor - Eddye - 11.01.2016

Eu tenho vбrias checkpoints no meu GM, oque eu fiz pra diferenciar cada uma, usei: IsPlayerInRangeOfPoint

Ve se pode te ajudar...


Re: Profissao Varredor - Cidiei - 11.01.2016

Crie uma forma para verificar se ele chegou a x posiзгo, tente usar um timer.
Funcionбria da seguinte forma:

1є Cria um checkpoint atribuнdo a determinada variбvel.
2є Crie um timer que repita a x milisegundos.
3є Este timer deve chamar uma callback qualquer que realizaria a verificaзгo pegando a posiзгo do usuario (getplayerpos) e verificando se esta posiзгo й igual a do checkpoint e assim realizaria tal tarefa.

Caso tenha alguma dъvida sу falar.


Re: Profissao Varredor - Lutherdeck - 11.01.2016

Quote:
Originally Posted by Eddye
Посмотреть сообщение
Eu tenho vбrias checkpoints no meu GM, oque eu fiz pra diferenciar cada uma, usei: IsPlayerInRangeOfPoint

Ve se pode te ajudar...
Usei isso:
Код:
public OnPlayerEnterCheckpoint(playerid)
{
new checknome = CPS_GetPlayerCheckpoint(playerid);

if(checknome == checkhotel){
GameTextForPlayer(playerid, "~r~Hotel", 5000, 6);
ShowPlayerDialog(playerid, Hotel, DIALOG_STYLE_LIST, "Hotel", "Alugar Quarto\nDesalugar Quarto", "OK", "Cancelar");
return 1;
}
if(checknome == checkvarrer){
GameTextForPlayer(playerid, "~r~Varrendo", 5000, 6);
return 1;
}
Eu acho que oq presciso e setar uma check que aparece so pro player com CPS_Add... porem nгo encontrei uma forma de fazer isso