Changed /enter to F button instead, but doesn't work
#1

pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new string[256];
    new sendername[MAX_PLAYER_NAME];
    new pveh = GetVehicleModel(GetPlayerVehicleID(playerid));
    new newcar = GetPlayerVehicleID(playerid);
    if(newkeys == KEY_JUMP)
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            if(IsPlayerConnected(playerid))
            {
                if(!engineOn[GetPlayerVehicleID(playerid)])
                {
                    if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
                    {
                        return 1;
                    }
                    if(IsAnOwnableCar(newcar))
                    {
                        if(PlayerInfo[playerid][pPcarkey] == newcar) { }
                        else if(PlayerInfo[playerid][pPcarkey2] == newcar) { }
                        else if(PlayerInfo[playerid][pPcarkey3] == newcar) { }
                        else { return 1; }
                    }
                    if(pveh == 510 || pveh == 462 || pveh == 481 || pveh == 509)
                    {
                        return 1;
                    }
                    if(newcar == 59 || newcar == 60)
                    {
                        return 1;
                    }
                    if(newcar >= 135 && newcar <= 154)
                    {
                        if(HireCar[playerid] != newcar)
                        {
                            return 1;
                        }
                    }
                    if(IsAHarvest(newcar))
                    {
                        return 1;
                    }
                    if(IsADrugHarvest(newcar))
                    {
                        return 1;
                    }
                    if(IsAPlane(newcar))
                    {
                        return 1;
                    }
                    if(IsASweeper(newcar))
                    {
                        return 1;
                    }
                    if(gEngine[playerid] == 1) { return 1; }

                    PutPlayerInVehicle(playerid, newcar, 0);
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "* %s spins a key and tries to start vehicle engine.", sendername);
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    SetTimerEx("StartingTheVehicle",3500,0,"i",playerid);
                    GameTextForPlayer(playerid, "~w~Starting vehicle engine...",3500,3);
                    gEngine[playerid] = 1;
                    return 1;
                }
            }
        }
    }
//-----------------------------------------------[Enters]----------------------------------------------
    else if(newkeys & KEY_SECONDARY_ATTACK)
    {
        if(IsPlayerInRangeOfPoint(playerid, 2.0, 1123.7134,-2037.2380,69.8862)) // La Cosa Nostra HQ Entrance
        {
            SetPlayerPos(playerid, 1298.8898,-796.3945,1084.0078);
            GameTextForPlayer(playerid, "~w~La Cosa Nostra HQ",5000,1);
            SetPlayerInterior(playerid,5);
            PlayerInfo[playerid][pInt] = 5;
        }
        else if(IsPlayerInRangeOfPoint(playerid, 2.0, 1298.8898,-796.3945,1084.0078)) //La Cosa Nostra HQ Exit
        {
            SetPlayerPos(playerid, 1123.7134,-2037.2380,69.8862);
            GameTextForPlayer(playerid, "~w~Los Santos",5000,1);
            SetPlayerInterior(playerid,0);
            PlayerInfo[playerid][pInt] = 0;
        }
//-----------------------------------------------[Business/House Enters]----------------------------------------------
        for(new i = 0; i < sizeof(HouseInfo); i++)
            {
                if (PlayerToPoint(3, playerid,HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]))
                {
                    //printf("Found House :%d",i);
                    if(PlayerInfo[playerid][pPhousekey] == i || HouseInfo[i][hLock] == 0)
                    {
                        SetPlayerInterior(playerid,HouseInfo[i][hInt]);
                        SetPlayerVirtualWorld(playerid,HouseInfo[i][hWorld]);
                        SetPlayerPos(playerid,HouseInfo[i][hExitx],HouseInfo[i][hExity],HouseInfo[i][hExitz]);
                        GameTextForPlayer(playerid, "~w~Welcome Home", 5000, 1);
                        PlayerInfo[playerid][pInt] = HouseInfo[i][hInt];
                        PlayerInfo[playerid][pLocal] = i;
                        HouseEntered[playerid] = i;
                    }
                    else
                    {
                        GameTextForPlayer(playerid, "~r~Locked", 5000, 1);
                    }
                }
            }
        }
        for(new i = 0; i < sizeof(BizzInfo); i++)
        {
            if (PlayerToPoint(3, playerid,BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]))
            {
                //printf("Found House :%d",i);
                if(!IsACop(playerid) && i == 3)
                {
                    SendClientMessage(playerid, COLOR_RED, "   Cops only !");
                    return 1;
                }
                if(PlayerInfo[playerid][pPbiskey] == i || GetPlayerMoney(playerid) >= BizzInfo[i][bEntranceCost])
                {
                    if(PlayerInfo[playerid][pPbiskey] != i)
                    {
                        if(BizzInfo[i][bLocked] == 1)
                        {
                            GameTextForPlayer(playerid, "~r~Closed", 5000, 1);
                            return 1;
                        }
                        if(BizzInfo[i][bProducts] == 0)
                        {
                            GameTextForPlayer(playerid, "~r~Out Of Stock", 5000, 1);
                            return 1;
                        }
                        SafeGivePlayerMoney(playerid,-BizzInfo[i][bEntranceCost]);
                        format(string, sizeof(string), "~r~-$%d~n~~w~type /exit~n~to get out", BizzInfo[i][bEntranceCost]);
                        BizzInfo[i][bTill] += BizzInfo[i][bEntranceCost];
                        ExtortionBiz(i, BizzInfo[i][bEntranceCost]);
                        BizzInfo[i][bProducts]--;
                        OnPropUpdate();
                        GameTextForPlayer(playerid, string, 5000, 3);
                    }
                    SetPlayerInterior(playerid,BizzInfo[i][bInterior]);
                    SetPlayerPos(playerid,BizzInfo[i][bExitX],BizzInfo[i][bExitY],BizzInfo[i][bExitZ]);
                    PlayerInfo[playerid][pInt] = BizzInfo[i][bInterior];
                    PlayerInfo[playerid][pLocal] = i+99;
                    new dood[MAX_PLAYER_NAME];
                    GetPlayerName(playerid, dood, sizeof(dood));
                    format(string, sizeof(string), "%s payed $%d to enter biz %d", dood, BizzInfo[i][bEntranceCost], i);
                    printf("%s", string);
                    PayLog(string);
                    //PlayerInfo[playerid][pLocal] = i;
                }
                else
                {
                    GameTextForPlayer(playerid, "~r~You dont have the cash", 5000, 1);
                }
            }
        }
        for(new i = 0; i < sizeof(SBizzInfo); i++)
        {
            if (PlayerToPoint(3, playerid,SBizzInfo[i][sbEntranceX], SBizzInfo[i][sbEntranceY], SBizzInfo[i][sbEntranceZ]))
            {
                if(PlayerInfo[playerid][pPbiskey] == i || GetPlayerMoney(playerid) >= SBizzInfo[i][sbEntranceCost])
                {
                    if(PlayerInfo[playerid][pPbiskey] != i)
                    {
                        if(SBizzInfo[i][sbLocked] == 1)
                        {
                            GameTextForPlayer(playerid, "~r~Closed", 5000, 1);
                            return 1;
                        }
                        if(SBizzInfo[i][sbProducts] == 0)
                        {
                            GameTextForPlayer(playerid, "~r~Out Of Stock", 5000, 1);
                            return 1;
                        }
                        if(i == 10)
                        {
                            PaintballPlayers ++;
                            PlayerPaintballing[playerid] = 1;
                            new rand = random(sizeof(PaintballSpawns));
                            SetPlayerPos(playerid, PaintballSpawns[rand][0], PaintballSpawns[rand][1], PaintballSpawns[rand][2]);
                            TogglePlayerControllable(playerid, 0);
                        }
                        else if(i == 11)
                        {
                            PlayerKarting[playerid] = 1;
                            SendClientMessage(playerid, TEAM_GROVE_COLOR, "You can now parcipitate in a Karting Race, grab a Kart.");
                        }
                        else
                        {
                            return 1;
                        }
                        SafeGivePlayerMoney(playerid,-SBizzInfo[i][sbEntranceCost]);
                        gSpentCash[playerid] = GetPlayerMoney(playerid);
                        SBizzInfo[i][sbProducts]--;
                        SBizzInfo[i][sbTill] += SBizzInfo[i][sbEntranceCost];
                        ExtortionSBiz(i, SBizzInfo[i][sbEntranceCost]);
                        new dood[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, dood, sizeof(dood));
                        format(string, sizeof(string), "%s payed $%d to enter sbiz %d", dood, SBizzInfo[i][sbEntranceCost], i);
                        printf("%s", string);
                        PayLog(string);
                        OnPropUpdate();
                    }
                }
                else
                {
                    GameTextForPlayer(playerid, "~r~You dont have the cash", 5000, 1);
                }
            }
        }
        for(new i = 0; i <  sizeof(HouseInfo); i++)
        {
            //printf("House :%d",i);
            if (PlayerToPoint(3, playerid,HouseInfo[i][hExitx], HouseInfo[i][hExity], HouseInfo[i][hExitz]))
            {
                if(HouseEntered[playerid] == i)
                {
                    SetPlayerInterior(playerid,0);
                    SetPlayerPos(playerid,HouseInfo[i][hEntrancex],HouseInfo[i][hEntrancey],HouseInfo[i][hEntrancez]);
                    PlayerInfo[playerid][pInt] = 0;
                    PlayerInfo[playerid][pLocal] = 255;
                    SetCameraBehindPlayer(playerid);
                    SetPlayerVirtualWorld(playerid,0);
                    HouseEntered[playerid] = 255;
                    if(HouseInfo[i][hHel] == 1)
                    {
                        new Float:tempheal;
                        GetPlayerHealth(playerid,tempheal);
                        if(tempheal < 100.0)
                        {
                            SetPlayerHealth(playerid,100.0);
                        }
                    }
                    return 1;
                }
            }
        }
        for(new i = 0; i <  sizeof(BizzInfo); i++)
        {
            //printf("Bizz :%d",i);
            if (PlayerToPoint(3, playerid,BizzInfo[i][bExitX], BizzInfo[i][bExitY], BizzInfo[i][bExitZ]))
            {
                SetPlayerInterior(playerid,0);
                PlayerInfo[playerid][pInt] = 0;
                SetPlayerPos(playerid,BizzInfo[i][bEntranceX],BizzInfo[i][bEntranceY],BizzInfo[i][bEntranceZ]);
                PlayerInfo[playerid][pLocal] = 255;
            }
        }
        return 1;
    }
Tried to change it so that if I press F I get into buildings, instead of writing /enter all the time, but for some reason, it won't work on houses. And on businesses, it works on both F and space, which is pretty irritating when I'm trying to run as soon as I get out of the building.
I removed a whole lot of locations before putting it out here, because it's a freaking long list.
I get no errors, and I've checked for missing brackets, so my last option is to ask for help.
How can i fix this?

Thanks in advance
Reply
#2

I would recommend you read the wiki page

https://sampwiki.blast.hk/wiki/OnPlayerKeyStateChange
https://sampwiki.blast.hk/wiki/OnPlayerK...heck_for_a_key
https://sampwiki.blast.hk/wiki/OnPlayerK..._being_pressed
Reply
#3

Fixed.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)