I need help with /sethealth
#1

This is how it looks but when i got in game it says that the player isn't connected. Somehow it stops there. Could someone help me out?
This also happened with my other commands.
Thank you.

Код:
CMD:sethealth(playerid, params[])
{
    new id;
    new hp;
    if(PlayerInfo[playerid][pAdmin] >= 6)
            {
                        if(!sscanf(params, "ui", id, hp))
                        {
                					if(!IsPlayerConnected(id))
									{
                                        SendClientMessage(playerid, -1, "SERVER: The player isn't connected.");
								     	return 1;
									}
                                    new string[64];
                                    new name[MAX_PLAYER_NAME], PlayerName[MAX_PLAYER_NAME];
                                    GetPlayerName(playerid, name, sizeof(name));
                                    GetPlayerName(id, PlayerName, sizeof(PlayerName));
                                    format(string, sizeof(string), "SERVER: Administrator %s has set your health to %d", name, hp);
                                    SendClientMessage(id, BLUE, string);
                                    format(string, sizeof(string), "SERVER: You have Set %s health to %d.", PlayerName, hp);
                                    SendClientMessage(playerid, BLUE, string);
                                    SetPlayerHealth(id, hp);
                                    return 1;
                        }
                        else return SendClientMessage(playerid, -1, "SERVER: /sethealth [PlayerId/PartOfName] [Hp]");
            }
			else
			{
                SendClientMessage(playerid, RED, "You cannot use this command.");
		     	return 1;
			}
}
Reply
#2

Try This

pawn Код:
CMD:sethealth(playerid, params[])
{
    new string[128], playa, health;
    if(sscanf(params, "ud", playa, health))
    {
        SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /sethealth [playerid/partofname] [hp]");
        return 1;
    }
    if(PlayerInfo[playerid][pAdmin] >= 6)
    {
        if(AdminDuty[playerid] != 1 && PlayerInfo[playerid][pAdmin] < 6)
        {
            SendClientMessage(playerid,COLOR_WHITE, "You're not on-duty as admin. To access your admin commands you must be on-duty. Type /aduty to go on-duty.");
            return 1;
        }
        if(IsPlayerConnected(playa)) {
            if(playa != INVALID_PLAYER_ID)
            {
                SetPlayerHealth(playa, health);
                format(string, sizeof(string), "You have set %s's health to %d.", GetPlayerNameEx(playa), health);
                SendClientMessage(playerid, COLOR_WHITE, string);
                format(string, sizeof(string), "AdmCmd: %s has set %s's health to %d.", GetPlayerNameEx(playerid), GetPlayerNameEx(playa), health);
                ABroadCast(COLOR_LIGHTRED,string, 4);
                format(string, sizeof(string), "Admin %s had set your health to %d.", GetPlayerNameEx(playerid), health);
                SendClientMessage(playa, COLOR_WHITE, string);
            }
        }
        else SendClientMessage(playerid, COLOR_GRAD1, "Invalid player specified.");
    }
    else {
        SendClientMessage(playerid, COLOR_GRAD1, "You're not authorized to use that command!");
    }
    return 1;
}
Reply
#3

This way i will have few problems with GetPlayerNameEx need to add that stock.
I will try to see if it will work.
Reply
#4

I have edited it abit and still doesn't work says:
Reply
#5

Did you do this CMD just foryourself ?
Reply
#6

Yes i have tested it only on myself.
Reply
#7

Health is a float not an integer.
Reply
#8

Can anyone show me something because everything i made with this kind of commands and actions it's still the same problem. Don't know if i got bug somewhere else.
Reply
#9

You've already been told by Stinged, all you had to do was ****** the SCCANF - Floats. Utter laziness.

Here:
pawn Код:
CMD:sethealth(playerid, params[])
{
    new id;
    new Float:hp;
    if(PlayerInfo[playerid][pAdmin] >= 6)
            {
                        if(!sscanf(params, "uf", id, hp))
                        {
                                    if(!IsPlayerConnected(id))
                                    {
                                        SendClientMessage(playerid, -1, "SERVER: The player isn't connected.");
                                        return 1;
                                    }
                                    new string[64];
                                    new name[MAX_PLAYER_NAME], PlayerName[MAX_PLAYER_NAME];
                                    GetPlayerName(playerid, name, sizeof(name));
                                    GetPlayerName(id, PlayerName, sizeof(PlayerName));
                                    format(string, sizeof(string), "SERVER: Administrator %s has set your health to %f", name, hp);
                                    SendClientMessage(id, BLUE, string);
                                    format(string, sizeof(string), "SERVER: You have Set %s health to %f.", PlayerName, hp);
                                    SendClientMessage(playerid, BLUE, string);
                                    SetPlayerHealth(id, hp);
                                    return 1;
                        }
                        else return SendClientMessage(playerid, -1, "SERVER: /sethealth [PlayerId/PartOfName] [Hp]");
            }
            else
            {
                SendClientMessage(playerid, RED, "You cannot use this command.");
                return 1;
            }
}
Reply
#10

Thank you alot!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)