
So here's the code
I feel there is something wrong ?
Code:
new Float:fLastUsed[65];
new iHealthAdded[65];
#define HEALTH_COOLDOWN 20
public OnUltimateCommand(client,race,bool:pressed)
{
if(pressed && race==raceID)
{
new health_level=War3_GetSkillLevel(client,race,3);
new old_health=GetClientHealth(client);
new current_time=GetEngineTime();
if(health_level>0 && (current_time>=(fLastUsed[client]+HEALTH_COOLDOWN) || fLastUsed[client]==0.0))
{
switch(health_level)
{
case 1:
iHealthAdded[client]=20;
case 2:
iHealthAdded[client]=30;
case 3:
iHealthAdded[client]=40;
case 4:
iHealthAdded[client]=50;
}
SetEntityHealth(client,old_health+iHealthAdded[client]);
fLastUsed[client]=current_time;
CreateTimer(5.0,FinishHealth,GetClientUserId(client));
}
}
}
public Action:FinishHealth(Handle:timer,any:userid)
{
new client=GetClientOfUserId(userid);
if(client>0)
{
new new_hp=GetClientHealth(client)-iHealthAdded[client];
if(new_hp<1)
{
FakeClientCommand(client,"kill\n");
}
else
{
SetEntityHealth(client,new_hp);
}
}
}
new iHealthAdded[65];
#define HEALTH_COOLDOWN 20
public OnUltimateCommand(client,race,bool:pressed)
{
if(pressed && race==raceID)
{
new health_level=War3_GetSkillLevel(client,race,3);
new old_health=GetClientHealth(client);
new current_time=GetEngineTime();
if(health_level>0 && (current_time>=(fLastUsed[client]+HEALTH_COOLDOWN) || fLastUsed[client]==0.0))
{
switch(health_level)
{
case 1:
iHealthAdded[client]=20;
case 2:
iHealthAdded[client]=30;
case 3:
iHealthAdded[client]=40;
case 4:
iHealthAdded[client]=50;
}
SetEntityHealth(client,old_health+iHealthAdded[client]);
fLastUsed[client]=current_time;
CreateTimer(5.0,FinishHealth,GetClientUserId(client));
}
}
}
public Action:FinishHealth(Handle:timer,any:userid)
{
new client=GetClientOfUserId(userid);
if(client>0)
{
new new_hp=GetClientHealth(client)-iHealthAdded[client];
if(new_hp<1)
{
FakeClientCommand(client,"kill\n");
}
else
{
SetEntityHealth(client,new_hp);
}
}
}







Logged
