Help with this command
#1

I want to make a command by which player can own land. I have made a command but with it i can only change Dynamic3DTextLanble but i want to make land owned buy player and variable PlayerInfo[playerid][pLand] = to land id..

Command:
PHP код:
CMD:setlandowner(playeridparams[])
{
    if(
PlayerInfo[playerid][pAdmin] >= 5)
    {
        new 
landplayername[24], string[128];
        if(
sscanf(params"ds[24]"landplayername)) return SendClientMessage(playeridCOLOR_WHITE"USAGE: /setlandowner [landid] [name]");
        if(
LandInfo[land][landCreated] == 1)
        {
            
format(LandInfo[land][landOwner], 24"%s"playername);
            
format(stringsizeof(string), "You have set land %d's owner to '%s'"landLandInfo[land][landOwner]);
            
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
            
format(stringsizeof(string), "%s's Land (%d)"LandInfo[land][landOwner], land);
            
UpdateDynamic3DTextLabelText(LandInfo[land][landText], COLOR_REALREDstring);
            
LandInfo[land][landOwned] = 1;
        }
        else
        {
            
SendClientMessage(playeridCOLOR_GREY"That land does not exist.");
        }
    }
    return 
1;

+REP
Reply
#2

Use this stock to get playerid from name:

Quote:
Originally Posted by Correlli
Посмотреть сообщение
Код:
stock GetPlayerIdFromName(playername[])
{
  for(new i = 0; i <= MAX_PLAYERS; i++)
  {
    if(IsPlayerConnected(i))
    {
      new playername2[MAX_PLAYER_NAME];
      GetPlayerName(i, playername2, sizeof(playername2));
      if(strcmp(playername2, playername, true, strlen(playername)) == 0)
      {
        return i;
      }
    }
  }
  return INVALID_PLAYER_ID;
}
Then:

Код:
CMD:setlandowner(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 5)
    {
        new land, playername[24], string[128];
        if(sscanf(params, "ds[24]", land, playername)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /setlandowner [landid] [name]");
        if(LandInfo[land][landCreated] == 1)
        {
            format(LandInfo[land][landOwner], 24, "%s", playername);
            format(string, sizeof(string), "You have set land %d's owner to '%s'", land, LandInfo[land][landOwner]);
            SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
            format(string, sizeof(string), "%s's Land (%d)", LandInfo[land][landOwner], land);
            UpdateDynamic3DTextLabelText(LandInfo[land][landText], COLOR_REALRED, string);
            LandInfo[land][landOwned] = 1;
            PlayerInfo[GetPlayerIdFromName(playername)][pLand] = land;
        }
        else
        {
            SendClientMessage(playerid, COLOR_GREY, "That land does not exist.");
        }
    }
    return 1;
}
Reply
#3

Try this:
PHP код:
CMD:setlandowner(playeridparams[])
{
    if(
PlayerInfo[playerid][pAdmin] >= 5)
    {
        new 
landplayername[24], string[128];
        if(
sscanf(params"ds[24]"landplayername)) return SendClientMessage(playeridCOLOR_WHITE"USAGE: /setlandowner [landid] [name]");
        if(
LandInfo[land][landCreated] == 1)
        {
            
format(LandInfo[land][landOwner], 24"%s"playername);
            
format(stringsizeof(string), "You have set land %d's owner to '%s'"landLandInfo[land][landOwner]);
            
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
            
format(stringsizeof(string), "%s's Land (%d)"LandInfo[land][landOwner], land);
            
UpdateDynamic3DTextLabelText(LandInfo[land][landText], COLOR_REALREDstring);
            
LandInfo[land][landOwned] = 1;
        }
        else
        {
            
SendClientMessage(playeridCOLOR_GREY"That land does not exist.");
        }
    }
    return 
1;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)