27.01.2011, 02:20
(
Last edited by ipsBruno; 27/01/2011 at 06:08 PM.
)
Olб, estou com alguns problemas com o “life” do meu servidor... Eu fiz um sistema que utiliza a variбvel (phealth) para armazenar a saъde de um jogador e calcular o seu dano, mas quando eu aumento o “life” o “Update” funзгo que o define retorna para seu valor anterior...
Se eu setar a vida em mim, funciona... Mas dos demais players nгo, nгo sei se й porque sou o id 0 ou algo do tipo...
OBS: Se eu fazer o comando muitas vezes na pessoa ele seta...
Ninguйm? uhadshu
Se eu setar a vida em mim, funciona... Mas dos demais players nгo, nгo sei se й porque sou o id 0 ou algo do tipo...
OBS: Se eu fazer o comando muitas vezes na pessoa ele seta...
Code:
#define UPDATE_HEALTH 4 new pUpdate[MAX_PLAYERS]; new Float:pHealth[MAX_PLAYERS]; stock SetPlayerSysHealth(playerid, Float:health) { pHealth[playerid] = health; SetPlayerHealth(playerid, pHealth[playerid]); return pUpdate[playerid] |= UPDATE_HEALTH; } stock AddPlayerSysHealth(playerid, Float:health) { pHealth[playerid] += health; SetPlayerHealth(playerid, pHealth[playerid]); return pUpdate[playerid] |= UPDATE_HEALTH; } stock GetPlayerSysHealth(playerid, &Float:health) health = pHealth[playerid]; public OnGameModeInit() { SetTimer("Update", 50, true); } public Update() { for(new n = 0; n < MAX_PLAYERS; n++) { if(IsPlayerConnected(n) && IsPlayerLogged(n)) { if(pUpdate[n] & UPDATE_HEALTH) { if(pHealth[n] < 1.0) pHealth[n] = 1.0; if(pHealth[n] > 100.0) pHealth[n] = 100.0; SetPlayerHealth(n, pHealth[n]); pUpdate[n] &= ~UPDATE_HEALTH; } else { new Float:H; GetPlayerHealth(n, H); if(H < pHealth[n]) { new Float:D; D = pHealth[n] - H; SetPlayerSysHealth(n, H); OnPlayerDamage(n, D); } } } } }