SA-MP Forums Archive
[Ajuda] Arena que tira dano - 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] Arena que tira dano (/showthread.php?tid=658443)



Arena que tira dano - alexsandrofelix - 04.09.2018

oi pessoal estou aqui de novo agora para pedir a voces ajuda para fazer uma area quando jogador entra ele comeзa e perde vida tem como fazer isso se tem como OBS: queria fazer tipo uma area ifequitada para meu servidor de sobrevivencia quando jogador entra nessa determinada area ele comeзa a perder vida ai quando ele tiver usando uma mascara de gas ele para de perde vida nessa area


Re: Arena que tira dano - Ermanhaut - 04.09.2018

Faзa um loop que verifica se o jogador estб dentro da бrea infectada.
Caso ele estiver dentro e nгo estiver usando mбscara, de dano nele.

Boa sorte.


Re: Arena que tira dano - SIZET - 04.09.2018

Nгo sei qual objetivo vocк ta querendo mas use Variбveis e SetTimerEx

PHP код:
new pArena[MAX_PLAYERS];
new 
pMascara[MAX_PLAYERS];
new 
Timer[MAX_PLAYERS];
if(
pArena[playerid] == && pMascara[playerid] == 0)
{
    
Timer[playerid] = SetTimerEx("RetirarVida"2000true"d"playerid);
    
SendClientMessage(playerid, -1"| INFO | Vocк ta na arena sem mascara de gбs e esta sendo intoxicado!");
}
else if(
pArena[playerid] == && pMascara[playerid] == 1)
{
    
KillTimer(Timer[playerid]);
    
SendClientMessage(playerid, -1"| INFO | Vocк ta na arena com mascara de gбs e esta protegido!");
}
forward RetirarVida(playerid);
public 
RetirarVida(playerid)
{
    
SetPlayerHealth(playerid2.0);
    return 
1;

Isso й uma base do que eu entendi, Agora nгo sei qual objetivo й tbm nгo sei se vai funcionar essa base, mas e uma boa ideia!


Re: Arena que tira dano - Ermanhaut - 04.09.2018

Quote:
Originally Posted by SIZET
Посмотреть сообщение
Nгo sei qual objetivo vocк ta querendo mas use Variбveis e SetTimerEx

PHP код:
new pArena[MAX_PLAYERS];
new 
pMascara[MAX_PLAYERS];
new 
Timer[MAX_PLAYERS];
if(
pArena[playerid] == && pMascara[playerid] == 0)
{
    
Timer[playerid] = SetTimerEx("RetirarVida"2000true"d"playerid);
    
SendClientMessage(playerid, -1"| INFO | Vocк ta na arena sem mascara de gбs e esta sendo intoxicado!");
}
else if(
pArena[playerid] == && pMascara[playerid] == 1)
{
    
KillTimer(Timer[playerid]);
    
SendClientMessage(playerid, -1"| INFO | Vocк ta na arena com mascara de gбs e esta protegido!");
}
forward RetirarVida(playerid);
public 
RetirarVida(playerid)
{
    
SetPlayerHealth(playerid2.0);
    return 
1;

Isso й uma base do que eu entendi, Agora nгo sei qual objetivo й tbm nгo sei se vai funcionar essa base, mas e uma boa ideia!
O loop teria que ser quando o player fizesse spawn, fazendo as checagens que vocк colocou acima, porйm com um pouco menos de trabalho da pra fazer.

Код:
public OnPlayerSpawn(playerid) {
  SetTimerEx("ToxicAreaCheck", 1000, true, "%d", playerid);
}

forward ToxicAreaCheck(playerid); public ToxicAreaCheck(playerid) {
  if(playerInToxicArea(playerid) == true) {
    if(playerMask[playerid] == true) {
      intoxicatePlayer(playerid);
    }
  }

  return 1;
}

playerInToxicArea(playerid) {
  if(IsPlayerInRangeOfPoint(playerid, /*tamanho da area tуxica*/, /*coordenadas de inicio da area toxica*/)
    return true;
  else 
    return false;
}

intoxicatePlayer(playerid) {
  new Float:health;
  GetPlayerHealth(playerid, health);
  health -= 1.0;
  return SetPlayerHealth(playerid, health);
}



Re: Arena que tira dano - alexsandrofelix - 04.09.2018

vlw pessoal ajudo muito