[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] == 1 && pMascara[playerid] == 0)
{
Timer[playerid] = SetTimerEx("RetirarVida", 2000, true, "d", playerid);
SendClientMessage(playerid, -1, "| INFO | Vocк ta na arena sem mascara de gбs e esta sendo intoxicado!");
}
else if(pArena[playerid] == 1 && 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(playerid, 2.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] == 1 && pMascara[playerid] == 0)
{
Timer[playerid] = SetTimerEx("RetirarVida", 2000, true, "d", playerid);
SendClientMessage(playerid, -1, "| INFO | Vocк ta na arena sem mascara de gбs e esta sendo intoxicado!");
}
else if(pArena[playerid] == 1 && 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(playerid, 2.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