Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #include "../include/gl_common.inc" // For PlayerName() Func
- #define DIALOG_TELEPORTS 20
- new first[MAX_PLAYERS];
- enum teleInfo
- {
- Name[50],
- Float:tx,
- Float:ty,
- Float:tz,
- Float:rad
- };
- new Teleports[][teleInfo] =
- {
- // Add your own: (Name, X, Y, Z, angle)
- {"Las Venturas", 2114.524414, 1863.202758, 10.671875, 259.017700},
- {"Los Santos", 2487.428710, -1671.656127, 13.335947, 274.707855},
- {"San Fierro", -2243.251220, 319.896331, 35.171875, 272.201202}
- };
- // Command
- CMD:teleports(playerid, params[])
- {
- new teleString[400];
- for(new i = 0; i < sizeof(Teleports); i++)
- {
- strcat(teleString, Teleports[i][Name]);
- strcat(teleString, "\n");
- }
- ShowPlayerDialog(playerid, DIALOG_TELEPORTS, DIALOG_STYLE_LIST, "Choose your place:", teleString, "Choose", "Cancel");
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_TELEPORTS:
- {
- if(response)
- {
- // Time in secs,
- GotoPlace(playerid, 3, Teleports[listitem][tx], Teleports[listitem][ty], Teleports[listitem][tz], Teleports[listitem][rad], 0);
- new str[300];
- format(str, 300, "%s Has been teleported to %s! [/Tele]", PlayerName(playerid), Teleports[listitem][Name]);
- SendClientMessageToAll(-1, str);
- }
- return 1;
- }
- }
- return 0;
- }
- // Teleport Function
- forward GotoPlace(playerid, time, Float:x, Float:y, Float:z, Float:angle, interior);
- public GotoPlace(playerid, time, Float:x, Float:y, Float:z, Float:angle, interior)
- {
- if(first[playerid] != 1) // First time player TP
- {
- if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
- {
- SetPlayerPos(playerid, x, y, z + 2);
- SetPlayerFacingAngle(playerid, angle);
- }
- else if(IsPlayerInAnyVehicle(playerid))
- {
- SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z + 8); // + 8 due cars doesn't freeze
- SetVehicleZAngle(GetPlayerVehicleID(playerid), angle);
- }
- SetPlayerInterior(playerid, interior);
- TogglePlayerControllable(playerid, 0);
- first[playerid] = 1;
- }
- if(time == 0) // Time ends, player unfreezed
- {
- TogglePlayerControllable(playerid, 1);
- GameTextForPlayer(playerid,"~n~~n~~n~~n~~w~Unfreezed!", 3000, 4);
- first[playerid] = 0;
- }
- else
- SetTimerEx("GotoPlace", 1000, 0, "ddffffd", playerid, time - 1, x, y, z, angle, interior);
- return 1;
- }
Add Comment
Please, Sign In to add comment