How to make /td cmd need help!
#1

i made this script and i am getting problem while ending/closing this timer it work all good but when current hp becomes equal to required hp it do not stop i think there is a mistake help me out pls...

rep++;


Code:
CMD:td(playerid, params[])
{
	new amount;
	if(sscanf(params, "d", amount)) return SendClientMessage(playerid, -1, "* Usage: /td [Amount]");
	if(Player[playerid][OnDose] == 1) return SendClientMessage(playerid, -1, "* You are already on dose can not take more drug right now.");
	if(Player[playerid][Drug] < amount || amount < 0) return SendClientMessage(playerid, -1, "* You do not have that much drugs.");
	if(amount > 5 ) return SendClientMessage(playerid, -1, "* You can die caz of over dose");
	if(amount == 0 || amount < 0 ) return 1;
	amount = amount * 10;
	new Float:hp;
	GetPlayerHealth(playerid, hp);
	new msg[100];
	format(msg, sizeof(msg), "* Your hp is: %f ", hp);
	SendClientMessage(playerid, -1, msg);

	if(hp == 100 || hp > 100) return SendClientMessage(playerid, -1, "* You already have full HP.");

	hp = hp + float(amount);
	
	Player[playerid][OnDose] = 1;
	amount = amount / 10;
	Player[playerid][Drug] = Player[playerid][Drug] - amount;
	
	format(msg, sizeof(msg), "* Your hp should be: %f ", hp);
	SendClientMessage(playerid, -1, msg);

	Player[playerid][DrugTimer] = SetTimerEx("drugHealthIncrease", 1000, true, "i f", playerid, hp);

	return 1;
}

//------------//
public drugHealthIncrease(playerid, hp)
{
	new Float:hpp;
	new msg[100];
	format(msg, sizeof(msg), "* Value of hp in func. : %f ", hp);
    SendClientMessage(playerid, -1, msg);
	GetPlayerHealth(playerid, hpp);
	format(msg, sizeof(msg), "* Value of hpp in func. : %f ", hpp);
    SendClientMessage(playerid, -1, msg);

	if(hp <= hpp)
	{
        KillTimer( Player[playerid][DrugTimer] );
        
        Player[playerid][OnDose] =0;
        format(msg, sizeof(msg), "* Your health has set to %f ", hpp);
        SendClientMessage(playerid, -1, msg);
        
        return 1;
	}else{
	    SendClientMessage(playerid, -1, "Falied to stop timer. and enter if statment");
	}
	
	SetPlayerHealth(playerid, (hpp + 5.00) );
	
	return 1;
}
Reply
#2

PHP Code:
    if(hp <= hpp)
    {
        
KillTimerPlayer[playerid][DrugTimer] );
        
        
Player[playerid][OnDose] =0;
        
format(msgsizeof(msg), "* Your health has set to %f "hpp);
        
SendClientMessage(playerid, -1msg);
        
        
//return 1;// Remove this line or disable it!
    
}else{
        
SendClientMessage(playerid, -1"Falied to stop timer. and enter if statment");
    }
    
    
SetPlayerHealth(playerid, (hpp 5.00) );
    
    return 
1;

Maybe with disabling return that I said your code will be fixed.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)