SA-MP Forums Archive
WHY IT NOT TP? - 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: WHY IT NOT TP? (/showthread.php?tid=542765)



WHY IT NOT TP? - ThunderX - 22.10.2014

pawn Код:
CMD:event1(playerid, params[]) // SPEED-RACER (rules who got first place win!!!)
{
    if(IsPlayerAdmin(playerid))
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            SetVehiclePos(GetPlayerVehicleID(playerid), -1397.782470, -203.723114, 1051.346801);
            SetVehicleZAngle(GetPlayerVehicleID(playerid), 93.569358);
            LinkVehicleToInterior(GetPlayerVehicleID(playerid), 7);

            SetPlayerPos(playerid, -1397.782470, -203.723114, 1051.346801);
            SetPlayerFacingAngle(playerid, 93.569358);

            SetPlayerInterior(playerid, 7);
            SendClientMessage(playerid, COLOR_RED, "!!Teleported!!");
        }
    }
    else SendClientMessage(playerid,-1,"Only Rcon admins");
    return 1;
}
I MAKE IT FOR ADMIN ONLY BUT WHEN I USE IT NOT TP ME TO -1397.782470, -203.723114, 1051.346801

Question Why


Re: WHY IT NOT TP? - Kaperstone - 22.10.2014

if it doesn't show you anything, then probably you're not in any vehicle. (as a driver or passenger)


Re: WHY IT NOT TP? - ThunderX - 22.10.2014

pawn Код:
if(IsPlayerInAnyVehicle(playerid))
so i have to delete this? or add

pawn Код:
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
if any one know can show me in pawn?


Re: WHY IT NOT TP? - Kaperstone - 22.10.2014

no you don't, probably you were trying to use this command on foot before.

It tells the server that you must be in any vehicle in order to use this command.

pawn Код:
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
This will check if the player is not only in a vehicle, but if he is the driver as well.


Re: WHY IT NOT TP? - Threshold - 22.10.2014

Look at your code. Read what it is doing.
pawn Код:
CMD:event1(playerid, params[]) //When a player types "/event1"
{
    if(IsPlayerAdmin(playerid))
    {
        //Everything in here will only be executed if the player is an RCON admin
        if(IsPlayerInAnyVehicle(playerid))
        {
            //Everything in here will only be executed if the player is in a vehicle.
            SetVehiclePos(GetPlayerVehicleID(playerid), -1397.782470, -203.723114, 1051.346801);
            SetVehicleZAngle(GetPlayerVehicleID(playerid), 93.569358);
            LinkVehicleToInterior(GetPlayerVehicleID(playerid), 7);

            SetPlayerPos(playerid, -1397.782470, -203.723114, 1051.346801);
            SetPlayerFacingAngle(playerid, 93.569358);

            SetPlayerInterior(playerid, 7);
            SendClientMessage(playerid, COLOR_RED, "!!Teleported!!");
        }
        //If the player is not in a vehicle, everything here will be executed
        //There is nothing here though? Nothing will be called...
    }
    else SendClientMessage(playerid,-1,"Only Rcon admins");
    return 1;
}
The correct code:
pawn Код:
CMD:event1(playerid, params[])
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Only RCON admins can use this command.");
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) //Player is a driver
    {
        new vid = GetPlayerVehicleID(playerid);
        SetVehiclePos(vid, -1397.782470, -203.723114, 1051.346801);
        SetVehicleZAngle(vid, 93.569358);
        LinkVehicleToInterior(vid, 7);
    }
    else //Player is not a driver
    {
        SetPlayerPos(playerid, -1397.782470, -203.723114, 1051.346801);
        SetPlayerFacingAngle(playerid, 93.569358);
    }
    SetPlayerInterior(playerid, 7);
    SendClientMessage(playerid, COLOR_RED, "!!Teleported!!");
    return 1;
}



Re: WHY IT NOT TP? - ThunderX - 22.10.2014

thank you


Re: WHY IT NOT TP? - DavidBilla - 22.10.2014

@Threshold
Your code will send only the vehicle to that position if he is a driver....

Below the LinkVehicleToInterior line add these two lines
pawn Код:
SetPlayerInterior(playerid,7);
PutPlayerInVehicle(playerid,vid);



Re: WHY IT NOT TP? - Threshold - 22.10.2014

Quote:
Originally Posted by DavidBilla
Посмотреть сообщение
@Threshold
Your code will send only the vehicle to that position if he is a driver....

Below the LinkVehicleToInterior line add these two lines
pawn Код:
SetPlayerInterior(playerid,7);
PutPlayerInVehicle(playerid,vid);
Oh you're right about one thing, I didn't set the player's interior to 7 when he's in a vehicle. Although when you set a vehicle's position, it automatically takes the driver and its passengers with it, so there is no need to add PutPlayerInVehicle.

I made it that way so that passengers cannot teleport the driver with them if they decide to use /event1. I updated my original post so that the player's interior is set to 7 when they teleport.


Re: WHY IT NOT TP? - ThunderX - 22.10.2014

pawn Код:
CMD:event1(playerid, params[])
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Only RCON admins can use this command.");
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) //Player is a driver
    {
        new vid = GetPlayerVehicleID(playerid);
        SetVehiclePos(vid, -1397.782470, -203.723114, 1051.346801);
        SetVehicleZAngle(vid, 93.569358);
        LinkVehicleToInterior(vid, 7);
    }
    else //Player is not a driver
    {
        SetPlayerPos(playerid, -1397.782470, -203.723114, 1051.346801);
        SetPlayerFacingAngle(playerid, 93.569358);
    }
    SetPlayerInterior(playerid, 7);
    SendClientMessage(playerid, COLOR_RED, "!!Teleported!!");
    return 1;
}
i test code it work but when i tp normal accout to me his say his didnt see any map on it his say only his stand on the air.


Question: why normal player that tp to Interior by admin but normal user cant see any thing?


Re: WHY IT NOT TP? - Threshold - 22.10.2014

I assume you're using some sort of /get command?
You are probably not setting the other player's interior.

pawn Код:
SetPlayerInterior(targetid, GetPlayerInterior(playerid));
'targetid' is the player you are teleporting, 'playerid' is the admin.