CMD:buyhouse bug +REP if helped
#1

When I do /buyhouse at the house Icon, nothing happens.
Код:
CMD:buyhouse(playerid, params[])
{
    new string[128];
    new playername[MAX_PLAYER_NAME];
    new sendername[MAX_PLAYER_NAME];
    new Float:oldposx, Float:oldposy, Float:oldposz;
    GetPlayerName(playerid, playername, sizeof(playername));
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    for(new h = 0; h < sizeof(HouseInfo); h++)
	{
        if(IsPlayerInRangeOfPoint(playerid,2.0,HouseInfo[h][hExteriorX], HouseInfo[h][hExteriorY], HouseInfo[h][hExteriorZ]) )
		{
            if( HouseInfo[h][hOwned] == 0 )
			{
                if(PlayerInfo[playerid][pLevel] < HouseInfo[h][hLevel])
				{
                    format(string, sizeof(string), "   You must be Level %d to purchase this!", HouseInfo[h][hLevel]);
                    SendClientMessageEx(playerid, COLOR_GRAD5, string);
                    return 1;
                }
                if(PlayerInfo[playerid][pPhousekey] == INVALID_HOUSE_ID)
				{

					if(GetPlayerCash(playerid) > HouseInfo[h][hValue])
					{
						PlayerInfo[playerid][pPhousekey] = h;
						HouseInfo[h][hOwned] = 1;
						GetPlayerName(playerid, sendername, sizeof(sendername));
						strmid(HouseInfo[h][hOwner], sendername, 0, strlen(sendername), 255);
						GivePlayerMoney(playerid,-HouseInfo[h][hValue]);
						SetPlayerInterior(playerid,HouseInfo[h][hHInteriorWorld]);
						if(HouseInfo[h][hCustomInterior] == 1)
						{
							TogglePlayerControllable(playerid, 0);
							GameTextForPlayer(playerid, "Objects loading...", 4000, 5);
							SetPVarInt(playerid, "LoadingObjects", 1);
							SetTimerEx("SafeLoadObjects", 4000, 0, "d", playerid);
						}
						SetPlayerPos(playerid,HouseInfo[h][hInteriorX],HouseInfo[h][hInteriorY],HouseInfo[h][hInteriorZ]);
						GameTextForPlayer(playerid, "~w~Welcome Home~n~You can exit at any time by moving to this door and typing /exit.", 5000, 3);
						PlayerInfo[playerid][pInt] = HouseInfo[h][hHInteriorWorld];
						SendClientMessageEx(playerid, COLOR_WHITE, "Congratulations on your new purchase!");
						SendClientMessageEx(playerid, COLOR_WHITE, "Type /help to review the property help section!");
						SaveHouses();
						PlayerInfo[playerid][pLocal] = h+6000;
						PlayerInfo[playerid][pVW] = h+6000;
						SetPlayerVirtualWorld(playerid, h+6000);
						DestroyDynamicPickup(HouseInfo[h][hPickupID]);
						DestroyDynamicMapIcon(HouseInfo[h][hMapIcon]);
						HouseInfo[h][hPickupID] = CreateDynamicPickup(1272, 23, HouseInfo[h][hExteriorX], HouseInfo[h][hExteriorY], HouseInfo[h][hExteriorZ]);
						format(string, sizeof(string), "This house is owned by\n %s\nLevel: %d\nID: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel],h);
						UpdateDynamic3DTextLabelText(HouseInfo[h][hTextID], COLOR_GREEN, string);
						new ip[32];
						GetPlayerIp(playerid,ip,sizeof(ip));
						format(string,sizeof(string),"%s (IP: %s) has bought house ID %d for $%d.",GetPlayerNameEx(playerid),ip,h,HouseInfo[h][hValue]);
						Log("logs/house.log", string);
						return 1;
					}
					else
					{
						SendClientMessageEx(playerid, COLOR_WHITE, "   You don't have the cash for that!");
						return 1;
					}
				}
				else if(PlayerInfo[playerid][pPhousekey2] == INVALID_HOUSE_ID)
				{
					if(GetPlayerCash(playerid) > HouseInfo[h][hValue])
					{
						PlayerInfo[playerid][pPhousekey2] = h;
						HouseInfo[h][hOwned] = 1;
						GetPlayerName(playerid, sendername, sizeof(sendername));
						strmid(HouseInfo[h][hOwner], sendername, 0, strlen(sendername), 255);
						GivePlayerMoney(playerid,-HouseInfo[h][hValue]);
						SetPlayerInterior(playerid,HouseInfo[h][hHInteriorWorld]);
						if(HouseInfo[h][hCustomInterior] == 1)
						{
							TogglePlayerControllable(playerid, 0);
							GameTextForPlayer(playerid, "Objects loading...", 4000, 5);
							SetPVarInt(playerid, "LoadingObjects", 1);
							SetTimerEx("SafeLoadObjects", 4000, 0, "d", playerid);
						}
						SetPlayerPos(playerid,HouseInfo[h][hInteriorX],HouseInfo[h][hInteriorY],HouseInfo[h][hInteriorZ]);
						GameTextForPlayer(playerid, "~w~Welcome Home~n~You can exit at any time by moving to this door and typing /exit.", 5000, 3);
						PlayerInfo[playerid][pInt] = HouseInfo[h][hHInteriorWorld];
						SendClientMessageEx(playerid, COLOR_WHITE, "Congratulations on your new purchase!");
						SendClientMessageEx(playerid, COLOR_WHITE, "Type /help to review the property help section!");
						SaveHouses();
						PlayerInfo[playerid][pLocal] = h+6000;
						PlayerInfo[playerid][pVW] = h+6000;
						SetPlayerVirtualWorld(playerid, h+6000);
						DestroyDynamicPickup(HouseInfo[h][hPickupID]);
						DestroyDynamicMapIcon(HouseInfo[h][hMapIcon]);
						HouseInfo[h][hPickupID] = CreateDynamicPickup(1272, 23, HouseInfo[h][hExteriorX], HouseInfo[h][hExteriorY], HouseInfo[h][hExteriorZ]);
						format(string, sizeof(string), "This house is owned by\n %s\nLevel: %d\nID: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel],h);
						UpdateDynamic3DTextLabelText(HouseInfo[h][hTextID], COLOR_GREEN, string);
						new ip[32];
						GetPlayerIp(playerid,ip,sizeof(ip));
						format(string,sizeof(string),"%s (IP: %s) has bought house ID %d for $%d.",GetPlayerNameEx(playerid),ip,h,HouseInfo[h][hValue]);
						Log("logs/house.log", string);
						return 1;
					}
					else
					{
						SendClientMessageEx(playerid, COLOR_WHITE, "   You don't have the cash for that!");
						return 1;
					}
				}
            }
            else
			{
                SendClientMessageEx( playerid, COLOR_WHITE, "This house is owned." );
            }
        }
    }
    return 1;
}
Reply
#2

Try this, I haven't tested it.
pawn Код:
CMD:buyhouse(playerid, params[])
{
    new string[128];
    new playername[MAX_PLAYER_NAME];
    new sendername[MAX_PLAYER_NAME];
    new Float:oldposx, Float:oldposy, Float:oldposz;
    GetPlayerName(playerid, playername, sizeof(playername));
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
        if(IsPlayerInRangeOfPoint(playerid,2.0,HouseInfo[h][hExteriorX], HouseInfo[h][hExteriorY], HouseInfo[h][hExteriorZ]) )
        {
            if(HouseInfo[h][hOwned] == 1)
            {
                SendClientMessage(playerid, -1, "This house is already owned.");
                return 1;
            }
            if(PlayerInfo[playerid][pLevel] < HouseInfo[h][hLevel])
            {
                format(string, sizeof(string), "   You must be Level %d to purchase this!", HouseInfo[h][hLevel]);
                SendClientMessageEx(playerid, COLOR_GRAD5, string);
                return 1;
            }
            if(GetPlayerCash(playerid) < HouseInfo[h][hValue])
            {
                SendClientMessage(playerid, -1, "You do not have the funds for this house.");
                return 1;
            }
            if(PlayerInfo[playerid][pPhousekey2] == INVALID_HOUSE_ID)
            {
                PlayerInfo[playerid][pPhousekey] = h;
                HouseInfo[h][hOwned] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                strmid(HouseInfo[h][hOwner], sendername, 0, strlen(sendername), 255);
                GivePlayerMoney(playerid,-HouseInfo[h][hValue]);
                SetPlayerInterior(playerid,HouseInfo[h][hHInteriorWorld]);
                if(HouseInfo[h][hCustomInterior] == 1)
                {
                    TogglePlayerControllable(playerid, 0);
                    GameTextForPlayer(playerid, "Objects loading...", 4000, 5);
                    SetPVarInt(playerid, "LoadingObjects", 1);
                    SetTimerEx("SafeLoadObjects", 4000, 0, "d", playerid);
                }
                SetPlayerPos(playerid,HouseInfo[h][hInteriorX],HouseInfo[h][hInteriorY],HouseInfo[h][hInteriorZ]);
                GameTextForPlayer(playerid, "~w~Welcome Home~n~You can exit at any time by moving to this door and typing /exit.", 5000, 3);
                PlayerInfo[playerid][pInt] = HouseInfo[h][hHInteriorWorld];
                SendClientMessageEx(playerid, COLOR_WHITE, "Congratulations on your new purchase!");
                SendClientMessageEx(playerid, COLOR_WHITE, "Type /help to review the property help section!");
                SaveHouses();
                PlayerInfo[playerid][pLocal] = h+6000;
                PlayerInfo[playerid][pVW] = h+6000;
                SetPlayerVirtualWorld(playerid, h+6000);
                DestroyDynamicPickup(HouseInfo[h][hPickupID]);
                DestroyDynamicMapIcon(HouseInfo[h][hMapIcon]);
                HouseInfo[h][hPickupID] = CreateDynamicPickup(1272, 23, HouseInfo[h][hExteriorX], HouseInfo[h][hExteriorY], HouseInfo[h][hExteriorZ]);
                format(string, sizeof(string), "This house is owned by\n %s\nLevel: %d\nID: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel],h);
                UpdateDynamic3DTextLabelText(HouseInfo[h][hTextID], COLOR_GREEN, string);
                new ip[32];
                GetPlayerIp(playerid,ip,sizeof(ip));
                format(string,sizeof(string),"%s (IP: %s) has bought house ID %d for $%d.",GetPlayerNameEx(playerid),ip,h,HouseInfo[h][hValue]);
                Log("logs/house.log", string);
                return 1;
            }
            else if(PlayerInfo[playerid][pPhousekey2] == INVALID_HOUSE_ID)
            {
                PlayerInfo[playerid][pPhousekey2] = h;
                HouseInfo[h][hOwned] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                strmid(HouseInfo[h][hOwner], sendername, 0, strlen(sendername), 255);
                GivePlayerMoney(playerid,-HouseInfo[h][hValue]);
                SetPlayerInterior(playerid,HouseInfo[h][hHInteriorWorld]);
                if(HouseInfo[h][hCustomInterior] == 1)
                {
                    TogglePlayerControllable(playerid, 0);
                    GameTextForPlayer(playerid, "Objects loading...", 4000, 5);
                    SetPVarInt(playerid, "LoadingObjects", 1);
                    SetTimerEx("SafeLoadObjects", 4000, 0, "d", playerid);
                }
                SetPlayerPos(playerid,HouseInfo[h][hInteriorX],HouseInfo[h][hInteriorY],HouseInfo[h][hInteriorZ]);
                GameTextForPlayer(playerid, "~w~Welcome Home~n~You can exit at any time by moving to this door and typing /exit.", 5000, 3);
                PlayerInfo[playerid][pInt] = HouseInfo[h][hHInteriorWorld];
                SendClientMessageEx(playerid, COLOR_WHITE, "Congratulations on your new purchase!");
                SendClientMessageEx(playerid, COLOR_WHITE, "Type /help to review the property help section!");
                SaveHouses();
                PlayerInfo[playerid][pLocal] = h+6000;
                PlayerInfo[playerid][pVW] = h+6000;
                SetPlayerVirtualWorld(playerid, h+6000);
                DestroyDynamicPickup(HouseInfo[h][hPickupID]);
                DestroyDynamicMapIcon(HouseInfo[h][hMapIcon]);
                HouseInfo[h][hPickupID] = CreateDynamicPickup(1272, 23, HouseInfo[h][hExteriorX], HouseInfo[h][hExteriorY], HouseInfo[h][hExteriorZ]);
                format(string, sizeof(string), "This house is owned by\n %s\nLevel: %d\nID: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel],h);
                UpdateDynamic3DTextLabelText(HouseInfo[h][hTextID], COLOR_GREEN, string);
                new ip[32];
                GetPlayerIp(playerid,ip,sizeof(ip));
                format(string,sizeof(string),"%s (IP: %s) has bought house ID %d for $%d.",GetPlayerNameEx(playerid),ip,h,HouseInfo[h][hValue]);
                Log("logs/house.log", string);
                return 1;
            }
        }
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)