|
Teria jeito de fazer isso?
Pensei em que se o jogador chegar perto do objeto, ele se move. Mas nгo sei em qual public colocar isso! OnPlayerUpdate nгo daria certo, e fazendo um timer, acho que tambйm nгo. Porque ele iria mandar a mensagem quando o jogador chegasse perto: "O portгo foi aberto!" E quando ele saisse do range: "O portгo foi fechado!" Mas se colocar no OnPlayerUpdate vai dar um flood danado! Aluguйm tem ideia de como fazer isso? Valeu! |
new Portao1;
public OnGameModeInit()
{
Portao1 = CreateObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance); // TROQUE PELAS COORDENADAS DO PORTГO FECHADO
SetTimer("AbirPortao1", 1000, true);
return 1;
}
forward AbrirPortao1(playerid);
public AbrirPortao1(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, Float:range, Float:X, Float:Y, Float:Z))) // TROQUE PELAS COORDENADAS DO PORTГO FECHADO
{
MoveObject(Portao1, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX, Float:RotY, Float:RotZ); // TROQUE PELAS COORDENADAS DO PORTГO ABERTO
SendClientMessage(playerid, -1, "Portгo 1 Aberto !");
SetTimer("FecharPortao1", 3000, false);
}
return 1;
}
forward FecharPortao1(playerid);
public FecharPortao1(playerid)
{
if(!IsPlayerInRangeOfPoint(playerid, Float:range, Float:X, Float:Y, Float:Z)) // TROQUE PELAS COORDENADAS DO PORTГO FECHADO
{
MoveObject(Portao1, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX, Float:RotY, Float:RotZ); // TROQUE PELAS COORDENADAS DO PORTГO FECHADO
SendClientMessage(playerid, -1, "Portгo 1 Fechado !");
}
else
{
SetTimer("FecharPortao1", 3000, false);
}
return 1;
}
|
Sim, mas a mensagem vai ficar floodando!
Eu jб havia pensado nisso. ![]() |
new Portao1;
new bool:Avisado[MAX_PLAYERS];
public OnGameModeInit()
{
Portao1 = CreateObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance); // TROQUE PELAS COORDENADAS DO PORTГO FECHADO
SetTimer("AbirPortao1", 1000, true);
return 1;
}
forward AbrirPortao1(playerid);
public AbrirPortao1(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, Float:range, Float:X, Float:Y, Float:Z))) // TROQUE PELAS COORDENADAS DO PORTГO FECHADO
{
if(Avisado[playerid] = false)
{
SendClientMessage(playerid, -1, "Portгo 1 Aberto !");
Avisado[playerid] = true;
}
MoveObject(Portao1, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX, Float:RotY, Float:RotZ); // TROQUE PELAS COORDENADAS DO PORTГO ABERTO
SetTimer("FecharPortao1", 3000, false);
}
return 1;
}
forward FecharPortao1(playerid);
public FecharPortao1(playerid)
{
if(!IsPlayerInRangeOfPoint(playerid, Float:range, Float:X, Float:Y, Float:Z)) // TROQUE PELAS COORDENADAS DO PORTГO FECHADO
{
MoveObject(Portao1, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX, Float:RotY, Float:RotZ); // TROQUE PELAS COORDENADAS DO PORTГO FECHADO
if(Avisado[playerid] = true)
{
SendClientMessage(playerid, -1, "Portгo 1 Fechado !");
Avisado[playerid] = false;
}
}
else
{
SetTimer("FecharPortao1", 3000, false);
}
return 1;
}
#include a_samp
//******************************************************************************
main(){}
//******************************************************************************
new Teste;
new PortaoAbrindo[MAX_PLAYERS];
//******************************************************************************
forward FecharPortao(playerid);
forward VerificarLocal(playerid);
//******************************************************************************
public OnGameModeInit(){
SetTimer("VerificarLocal",3000,1);
Teste = CreateObject(modelid,Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance);//Fechado
return 1;
}
//******************************************************************************
public OnGameModeExit(){
return 1;
}
//******************************************************************************
public VerificarLocal(playerid){
if(IsPlayerInRangeOfPoint(playerid, Float:range, Float:X, Float:Y, Float:Z) && PortaoAbrindo[playerid] == 0){
PortaoAbrindo[playerid] = 1;
MoveObject(Teste,Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX, Float:RotY, Float:RotZ);//Abrindo Portгo
SetTimer("FecharPortao",3000,false);
}
return 1;
}
//******************************************************************************
public FecharPortao(playerid){
if(IsPlayerInRangeOfPoint(playerid, Float:range, Float:X, Float:Y, Float:Z)) {
PortaoAbrindo[playerid] = 0;
MoveObject(Teste, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX, Float:RotY, Float:RotZ);//Fechando Portгo
}
return 1;
}
