CMD not working
#1

Hi, i started scripting SA-MP yesterday, and i wanted to make a command called: "heal", but it's not working!
Code:


CMD:heal(playerid, params[]){
new targetid;
if(sscanf(params, "ud", targetid)) return SendClientMessage(playerid, 0xFF0000AA, "Perdorimi: /heal [ID]");
else {
new Float:currentHp;
new Float:hpmomentale = GetPlayerHealth(playerid, currentHp);
SetPlayerHealth(playerid, 100-hpmomentale);
return 1;
}
}

Any help?
Reply
#2

Quote:
Originally Posted by ddiioonn123
Посмотреть сообщение
Hi, i started scripting SA-MP yesterday, and i wanted to make a command called: "heal", but it's not working!
Code:


CMD:heal(playerid, params[]){
new targetid;
if(sscanf(params, "ud", targetid)) return SendClientMessage(playerid, 0xFF0000AA, "Perdorimi: /heal [ID]");
else {
new Float:currentHp;
new Float:hpmomentale = GetPlayerHealth(playerid, currentHp);
SetPlayerHealth(playerid, 100-hpmomentale);
return 1;
}
}

Any help?
Код:
CMD:heal(playerid, params[])
{
	new targetid,amount;
	if(sscanf(params, "ud", targetid,amount)) return  SendClientMessage(playerid, 0xFF0000AA, "Perdorimi: /heal [ID]");
        if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xFF0000AA,  "Error: Invalid player ID.");
	SetPlayerHealth(targetid, amount);
	return 1;
}
Improved it a bit, you can translate the error message to your language if you want, you can also limit the amount by doing:
Код:
if(amount > 100) return SendClientMessage(playerid, 0x0xFF0000AA, "Error: Maximum amount is 100.");
Reply
#3

Код:
CMD:heal(playerid, params[])
{
	new targetid;
	if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, 0xFF0000AA, "Perdorimi: /heal [ID]");
	SetPlayerHealth(targetid, 100);
	return 1;
}
Enjoy
Reply
#4

Hi, i didn't say that Command is not working(function of it), but it's saying: UNKNOWN Command in both codes.
Reply
#5

Quote:
Originally Posted by ddiioonn123
Посмотреть сообщение
Hi, i didn't say that Command is not working(function of it), but it's saying: UNKNOWN Command in both codes.
Show OnPlayerCommandPerformed callback (if you have it).
Otherwise im not sure what the issue might be.
Reply
#6

You forgot the return for the command and you added 2 params in the sscanf's quotes and only one after them (targetid)! Also you don't need to check the player's health in your case!
Try this:
CMD:heal(playerid, params[])
{
new targetid;
if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, 0xFF0000AA, "Perdorimi: /heal [ID]");
else SetPlayerHealth(playerid, 100-hpmomentale);
return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)