SA-MP Forums Archive
Help with this command - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Help with this command (/showthread.php?tid=594798)



Help with this command - Alpha000 - 23.11.2015

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


Re: Help with this command - MeCom - 23.11.2015

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;
}



Re: Help with this command - XBrianX - 23.11.2015

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;