Changing /onduty
#1

i want to change this when player is already duty the message will be Error: you are already on duty and i want only in one command and if player is off duty Error: you are not on duty

Код:
CMD:onduty(playerid,params[])
{
    new str [128];
    if(PInfo[playerid][Level] < 2) return SendClientMessage(playerid,red,error);
    SetPlayerSkin(playerid, 217);
    SetPlayerHealth(playerid, 99999);
    GivePlayerWeapon(playerid,38,99999);
    GivePlayerWeapon(playerid,31,99999);
    GivePlayerWeapon(playerid,32,99999);
    GivePlayerWeapon(playerid,34,99999);
    format(str,sizeof(str),"» Administrator %s(%d) has been On Duty!",GetPName(playerid),playerid);
    SendClientMessageToAll(green,str);
	format(str, sizeof(str), "[Player-Act]: %s has used /onduty",GetPName(playerid));
    SendAdminMessage(green2,str);
	return 1;
}
CMD:offduty(playerid,params[])
{
    new str [128];
    if(PInfo[playerid][Level] < 2) return SendClientMessage(playerid,red,error);
    SetPlayerSkin(playerid, 133);
    SetPlayerHealth(playerid, 100);
    ResetPlayerWeapons(playerid);
    format(str,sizeof(str),"» Administrator %s(%d) has been Off Duty!",GetPName(playerid),playerid);
    SendClientMessageToAll(green,str);
    format(str, sizeof(str), "[Player-Act]: %s has used /offduty",GetPName(playerid));
    SendAdminMessage(green2,str);
	return 1;
}
Reply
#2

Add this some where:
pawn Код:
new duty[MAX_PLAYERS];
and add
pawn Код:
duty[playerid] = 0;
under onplayerconnect
pawn Код:
CMD:onduty(playerid,params[])
{
    new str [128];
    if(duty[playerid] == 1) return SendClientMessage(playerid, red, "Already on duty.");
    if(PInfo[playerid][Level] < 2) return SendClientMessage(playerid,red,error);
    SetPlayerSkin(playerid, 217);
    SetPlayerHealth(playerid, 99999);
    GivePlayerWeapon(playerid,38,99999);
    GivePlayerWeapon(playerid,31,99999);
    GivePlayerWeapon(playerid,32,99999);
    GivePlayerWeapon(playerid,34,99999);
    format(str,sizeof(str),"» Administrator %s(%d) has been On Duty!",GetPName(playerid),playerid);
    SendClientMessageToAll(green,str);
    format(str, sizeof(str), "[Player-Act]: %s has used /onduty",GetPName(playerid));
    SendAdminMessage(green2,str);
    duty[playerid] = 1;
    return 1;
}
CMD:offduty(playerid,params[])
{
    new str [128];
    if(duty[playerid] == 0) return SendClientMessage(playerid, red, "Already off duty.");
    if(PInfo[playerid][Level] < 2) return SendClientMessage(playerid,red,error);
    SetPlayerSkin(playerid, 133);
    SetPlayerHealth(playerid, 100);
    ResetPlayerWeapons(playerid);
    format(str,sizeof(str),"» Administrator %s(%d) has been Off Duty!",GetPName(playerid),playerid);
    SendClientMessageToAll(green,str);
    format(str, sizeof(str), "[Player-Act]: %s has used /offduty",GetPName(playerid));
    SendAdminMessage(green2,str);
    duty[playerid] = 0;
    return 1;
}
OR:
pawn Код:
CMD:duty(playerid,params[])
{
    new str[128];
    if(PInfo[playerid][Level] < 2) return SendClientMessage(playerid,red,error);
    if(duty[playerid] == 0)
    {
        SetPlayerSkin(playerid, 217);
        SetPlayerHealth(playerid, 99999);
        GivePlayerWeapon(playerid,38,99999);
        GivePlayerWeapon(playerid,31,99999);
        GivePlayerWeapon(playerid,32,99999);
        GivePlayerWeapon(playerid,34,99999);
        format(str,sizeof(str),"» Administrator %s(%d) has been On Duty!",GetPName(playerid),playerid);
        SendClientMessageToAll(green,str);
        format(str, sizeof(str), "[Player-Act]: %s has used /onduty",GetPName(playerid));
        SendAdminMessage(green2,str);
        duty[playerid] = 1;
        return 1;
    }
    if(duty[playerid] == 1)
    {
        SetPlayerSkin(playerid, 133);
        SetPlayerHealth(playerid, 100);
        ResetPlayerWeapons(playerid);
        format(str,sizeof(str),"» Administrator %s(%d) has been Off Duty!",GetPName(playerid),playerid);
        SendClientMessageToAll(green,str);
        format(str, sizeof(str), "[Player-Act]: %s has used /offduty",GetPName(playerid));
        SendAdminMessage(green2,str);
        duty[playerid] = 0;
        return 1;
    }
    return 1;
}
EDIT: I had to fix my code real quick, I added 2 extra brackets, sorry!
Reply
#3

It is best for u too do it like this
Код:
#define SCMTA SendClientMessageToAll

new AdminDuty[MAX_PLAYERS];

CMD:aduty(playerid, params[])
{
	if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, -1, "Only Admins");
	new string[256];
	if(AdminDuty[playerid] == 0)
	{
		format(string,sizeof(string), Admin %s is on duty ",GetName(playerid));
		SCMTA(-1,string); 
		AdminDuty[playerid] = 1;
		SetPlayerColor(playerid, 0xFF0000);
		SetPlayerArmour(playerid, 99.0);
		SetPlayerHealth(playerid, 99.0);
	}
	else if(AdminDuty[playerid] == 1)
	{
		SetPlayerArmour(playerid, 0);
		SetPlayerHealth(playerid, 99.0);
		SetPlayerColor(playerid,0xFFFFFF);
		format(string,sizeof(string),"Admin %s is off duty ",GetName(playerid));
		SCMTA(-1,string);
		AdminDuty[playerid] = 0;
	}
	return 1;
}
//GetName
stock GetName(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    return name;
}
Reply
#4

thanks
Reply
#5

You're welcome
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)