Help with a command
#1

Hello,i've made this commando to offer a heal pack to other players:

pawn Код:
CMD:heal(playerid, params[])
{
    new giveplayerid,Float:heal,Float:X, Float:Y, Float:Z;
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pname,sizeof(pname));
    if(sscanf(params, "uf", giveplayerid, heal))return SendClientMessage(playerid, COLOR_YELLOW, "Usage: /heal (playerid) (health 1-90)");
    if(heal > 90) return SendClientMessage(playerid,0xFF0000FF, "You can't offer at this player health more than 90 hp.");
    if(playerid == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"Error: Wrong player ID");

    GetPlayerPos(playerid, X, Y, Z);
    if(!IsPlayerInRangeOfPoint(giveplayerid, 5.0, X, Y, Z)) return SendClientMessage(playerid, red, "This player is too far from you, you can't offer him health.");
   
    new Float:health;
    GetPlayerHealth(giveplayerid, health);
    if(health == 90.0)
    {
        SendClientMessage(playerid,0xFF0000FF, "This player already have full health, you can't offer him a refill.");
    }

    new string[128];
    new string2[128];
    format(string, sizeof(string), "You've received an offer to heal you by %s (%d) of %2.1f hp.", pname,playerid,heal);
    format(string2,sizeof(string2),"~w~You've received an offer to ~r~heal ~w~you by ~g~%s ~r~(%d) ~w~of ~r~%2.1f hp.", pname,playerid,heal);
    SendClientMessage(giveplayerid, COLOR_PINK, string);
    SendClientMessage(giveplayerid, COLOR_PINK, "Type in the chat \"Yes\" or \"No\" to reply the offer.");
    GameTextForPlayer(giveplayerid,string2,5000,5);
    pOffersHeal[giveplayerid] = playerid;
    HealthAmount[giveplayerid] = heal;
    return true;
}
The problem is: I want the command check if the heal receiver has full hp,in case of yes,don't send the health refill request.

It doesn't work in that way,thanks for help.
Reply
#2

Код:
CMD:heal(playerid, params[])
{
	new giveplayerid,Float:heal,Float:X, Float:Y, Float:Z;
	new pname[MAX_PLAYER_NAME];
	GetPlayerName(playerid,pname,sizeof(pname));
	if(sscanf(params, "uf", giveplayerid, heal))return SendClientMessage(playerid, COLOR_YELLOW, "Usage: /heal (playerid) (health 1-90)");
        if(heal > 90) return SendClientMessage(playerid,0xFF0000FF, "You can't offer at this player health more than 90 hp.");
        if(playerid == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"Error: Wrong player ID");

	GetPlayerPos(playerid, X, Y, Z);
	if(!IsPlayerInRangeOfPoint(giveplayerid, 5.0, X, Y, Z)) return SendClientMessage(playerid, red, "This player is too far from you, you can't offer him health.");
	
	new Float:health;
 	GetPlayerHealth(giveplayerid, health);
 	if(health > 90.0) return SendClientMessage(playerid,0xFF0000FF, "This player already have full health, you can't offer him a refill.");

	new string[128], string2[128]; 
	format(string, sizeof(string), "You've received an offer to heal you by %s (%d) of %2.1f hp.", pname,playerid,heal); 
	format(string2,sizeof(string2),"~w~You've received an offer to ~r~heal ~w~you by ~g~%s ~r~(%d) ~w~of ~r~%2.1f hp.", pname,playerid,heal); 
	SendClientMessage(giveplayerid, COLOR_PINK, string); 
	SendClientMessage(giveplayerid, COLOR_PINK, "Type in the chat 'Yes' or 'No' to reply the offer."); 
	GameTextForPlayer(giveplayerid,string2,5000,5); 
	pOffersHeal[giveplayerid] = playerid; 
	HealthAmount[giveplayerid] = heal; 
	return true; 
}
Tried this?

It was if(health == 90.0). That means it needs to be exactly 90.0%.
Reply
#3

Thank you, it works.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)