SA-MP Forums Archive
[help] PPC_Business - 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] PPC_Business (/showthread.php?tid=353846)



[help] PPC_Business || PPC_Housing - jeffery30162 - 24.06.2012

solved.. but ima having another problem...

here

http://forum.sa-mp.com/showthread.ph...51#post1947951


Re: [help] PPC_Business - Badger(new) - 24.06.2012

Hello.

If you want all players to be able to enter, then you don't need to check what businesses the player owns.

pawn Код:
COMMAND:enter(playerid, params[])
{
    // If a player hasn't logged in properly, he cannot use this command
    if (INT_IsPlayerLoggedIn(playerid) == 0) return 0;

    // Setup local variables
    new BusID, BusType;

    // Make sure the player isn't inside a vehicle
    if (GetPlayerVehicleSeat(playerid) == -1)
//end of start
First off, I'd recommend using "if(! GetPlayerVehicleID(playerid) )" to check if the player is in a vehicle.
This basically checks if the vehicle ID for that player is 0 (the ! means the condition after it must be FALSE or 0).

Now.
pawn Код:
//continued from above
        // Loop through all player-owned businesses
        for (new BusSlot; BusSlot < MAX_BUSINESSPERPLAYER; BusSlot++)
        {
            // Get the business-id at the selected slot from the player
            BusID = APlayerData[playerid][Business][BusSlot];

            // Check if the player has a business in this slot
            if (BusID != 0)
            {
Here you should instead be looping through all the businesses on the server, rather than every business slot the player has.
Example:
pawn Код:
for(new BID; BID < sizeof(ABusinessData); BID++)
Here, we will use:
"BID" for the ID of the business that the loop is on
"sizeof(ABusinessData)" to work out how many businesses the loop will need to go through (if you have a function/variable that can find the exact number of businesses in the server, use that instead)

And then basically you can continue with the code:
pawn Код:
//continue from "end of start" above
        for(new BID; BID < sizeof(ABusinessData); BID++)
        {
            if (IsPlayerInRangeOfPoint(playerid, 2.5, ABusinessData[BID][BusinessX], ABusinessData[BID][BusinessY], ABusinessData[BID][BusinessZ]))
            {
                // Get the business-type
                BusType = ABusinessData[BID][BusinessType];

                // Set the worldid so other players cannot see him anymore
                SetPlayerVirtualWorld(playerid, 2000 + BID);
                // Set the player inside the interior of the business
                SetPlayerInterior(playerid, ABusinessInteriors[BusType][InteriorID]);
                // Set the position of the player at the spawn-location of the business's interior
                SetPlayerPos(playerid, ABusinessInteriors[BusType][IntX], ABusinessInteriors[BusType][IntY], ABusinessInteriors[BusType][IntZ]);

                // Also set a tracking-variable to enable /busmenu to track in which business the player is
                APlayerData[playerid][CurrentBusiness] = BID;
                // Also let the player know he can use /busmenu to control his business
                SendClientMessage(playerid, 0xFFFFFFFF, "{00FF00}Use {FFFF00}/busmenu{00FF00} to change options for your business");
   
                // Exit the function
                return 1;
            }
        }
Now I did fragment your code a lot, so here is the final outcome (make sure to read everything above so you can understand the errors I have pointed out):
pawn Код:
COMMAND:enter(playerid, params[])
{
    // If a player hasn't logged in properly, he cannot use this command
    if (INT_IsPlayerLoggedIn(playerid) == 0) return 0;
   
    // Setup local variables
    new BusType;//Removed BusID
   
    // Make sure the player isn't inside a vehicle
    if (! GetPlayerVehicleID(playerid) )
    {
        // Loop through all player-owned businesses
        for(new BID; BID < sizeof(ABusinessData); BID++)
        {
            if (IsPlayerInRangeOfPoint(playerid, 2.5, ABusinessData[BusID][BusinessX], ABusinessData[BusID][BusinessY], ABusinessData[BusID][BusinessZ]))
            {
                // Get the business-type
                BusType = ABusinessData[BusID][BusinessType];

                // Set the worldid so other players cannot see him anymore
                SetPlayerVirtualWorld(playerid, 2000 + BusID);
                // Set the player inside the interior of the business
                SetPlayerInterior(playerid, ABusinessInteriors[BusType][InteriorID]);
                // Set the position of the player at the spawn-location of the business's interior
                SetPlayerPos(playerid, ABusinessInteriors[BusType][IntX], ABusinessInteriors[BusType][IntY], ABusinessInteriors[BusType][IntZ]);

                // Also set a tracking-variable to enable /busmenu to track in which business the player is
                APlayerData[playerid][CurrentBusiness] = BusID;
                // Also let the player know he can use /busmenu to control his business
                SendClientMessage(playerid, 0xFFFFFFFF, "{00FF00}Use {FFFF00}/busmenu{00FF00} to change options for your business");
   
                // Exit the function
                return 1;
            }
        }
    }

    // If no business was in range, allow other scripts to use the same command (like the housing-script)
    return 0;
}



Re: [help] PPC_Business - jeffery30162 - 24.06.2012

omfg your amazing. ima test this out right now TTTHHAAANNNKKK YYYOOUU


Re: [help] PPC_Business - jeffery30162 - 26.06.2012

I have another problem that I can't seem to figure out. please help me.

http://forum.sa-mp.com/showthread.ph...51#post1947951