[HELP] Disable Command [ZCMD]
#1

Hello, i want to make it so if a medic types this (( /heal )), that it wont work, and have it say 'Sorry, You Are Not On Duty! [/medicduty]':
Код:
COMMAND:heal(playerid, params[])
{
	if(Class[playerid] == 4)
	{
	Attach3DTextLabelToPlayer(MEDIC[playerid], playerid, 0.0, 0.0, 0.7);
	new Float:health, user, Float:x, Float:y, Float:z;
	if (sscanf(params, "i", user)) return SendClientMessage(playerid, COLOR_SERVER, "[USAGE]: /heal [playerid]");
	GetPlayerPos(user, x, y, z); GetPlayerHealth(user, health);
	if (!IsPlayerInRangeOfPoint(playerid, 5, x, y, z)) return SendClientMessage(playerid, COLOR_SERVER, "You Are Not Close Enough To The Player!");
	if (health > 50) return SendClientMessage(playerid, COLOR_SERVER, "Player's Health Is Above 50, And Cannot Be Healed!");
	SendClientMessage(playerid, COLOR_ORANGE, "You have just been healed!");
	SetPlayerHealth(playerid, health + 50);
	}
	else return SendClientMessage(playerid,COLOR_SERVER_WARNING,"You Are Not An Medic!");
	return 1;
}
Unless they first type this (( /medicduty )) and go on duty as a medic
Код:
COMMAND:medicduty(playerid, params[])
{
	if(Class[playerid] == 4)
	{
	Attach3DTextLabelToPlayer(MEDIC[playerid], playerid, 0.0, 0.0, 0.7);
	}
	else return SendClientMessage(playerid,COLOR_SERVER_WARNING,"You Are Not An Medic!");
	return 1;
}
If possible, please keep it in ZCMD form.

Thanks in advance
Reply
#2

pawn Код:
new bool:IsOnDuty[MAX_PLAYERS];

COMMAND:medicduty(playerid, params[])
{
    if(Class[playerid] == 4)
    {
            if(IsOnDuty[playerid] == false)
            {
            Attach3DTextLabelToPlayer(MEDIC[playerid], playerid, 0.0, 0.0, 0.7);
                IsOnDuty[playerid] = true;
            }
            else return SendClientMessage(playerid,COLOR_RED,"You are already on duty!");
    }
    else return SendClientMessage(playerid,COLOR_SERVER_WARNING,"You Are Not An Medic!");
    return 1;
}

COMMAND:heal(playerid, params[])
{
    if(Class[playerid] == 4 && IsOnDuty[playerid] == true)
    {
    Attach3DTextLabelToPlayer(MEDIC[playerid], playerid, 0.0, 0.0, 0.7);
    new Float:health, user, Float:x, Float:y, Float:z;
    if (sscanf(params, "i", user)) return SendClientMessage(playerid, COLOR_SERVER, "[USAGE]: /heal [playerid]");
    GetPlayerPos(user, x, y, z); GetPlayerHealth(user, health);
    if (!IsPlayerInRangeOfPoint(playerid, 5, x, y, z)) return SendClientMessage(playerid, COLOR_SERVER, "You Are Not Close Enough To The Player!");
    if (health > 50) return SendClientMessage(playerid, COLOR_SERVER, "Player's Health Is Above 50, And Cannot Be Healed!");
    SendClientMessage(playerid, COLOR_ORANGE, "You have just been healed!");
    SetPlayerHealth(playerid, health + 50);
    }
    else return SendClientMessage(playerid,COLOR_SERVER_WARNING,"You Are Not An Medic!");
    return 1;
}
Reply
#3

Heal works, but this doesnt:

Код:
CMD:mduty(playerid, params[])
{
    if(Class[playerid] == 4)
    {
            if(IsOnDuty[playerid] == false)
            {
            Attach3DTextLabelToPlayer(MEDIC[playerid], playerid, 0.0, 0.0, 0.7);
            IsOnDuty[playerid] = true;
            }
            else return SendClientMessage(playerid,COLOR_SERVER_WARNING,"You Are Already On Duty!");
    }
    else return SendClientMessage(playerid,COLOR_SERVER_WARNING,"You Are Not An Medic!");
    return 1;
}
And also, even though heal works, it says 'You Are Not An Medic' when we are.
Reply
#4

Sorry For Double Post: I fixed the problem, thanks for the help. (( Requesting Topic Lock, Even Though It Wont Happen ))
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)