Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Script Title: zTeleports
- Scripter: zDivine aka Mercenary
- Script Date: 20130423
- Script Version: 1.0.0.0
- */
- #define FILTERSCRIPT
- #include <a_samp>
- #include <sscanf2>
- #include <zcmd>
- #include <YSI\y_colours>
- #if defined FILTERSCRIPT
- public OnFilterScriptInit()
- {
- print("\n-------------------------------------------");
- print(" zTeleports by zDivine successfully loaded.");
- print("-------------------------------------------\n");
- LoadTeleports();
- print("\n----------------------------------------");
- print(" All teleports loaded ");
- print("----------------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- SaveTeleports();
- return 1;
- }
- #endif
- // Server Defines
- /* -------------------------------------------------------------------------------------------- */
- #define MAX_TELES 50
- // Maximum amount of teleports for the server.
- /* -------------------------------------------------------------------------------------------- */
- new PLAYER_TELEPORTING = 0;
- // Allow players to teleport to other players via OnPlayerClickPlayer(). (0 = false / 1 = true)
- /* -------------------------------------------------------------------------------------------- */
- // Enums
- enum teleInfo
- {
- tName[32],
- Float: tX,
- Float: tY,
- Float: tZ,
- Float: tA,
- tVW,
- tInt
- };
- new TeleInfo[MAX_TELES][teleInfo];
- // Saving and Loading
- LoadTeleports()
- {
- new string[128];
- new File: file = fopen("teleports.cfg", io_read);
- new idx;
- while(idx < sizeof(TeleInfo) && fread(file, string))
- {
- sscanf(string, "p<|>s[32]ffffii",
- TeleInfo[idx][tName],
- TeleInfo[idx][tX],
- TeleInfo[idx][tY],
- TeleInfo[idx][tZ],
- TeleInfo[idx][tA],
- TeleInfo[idx][tVW],
- TeleInfo[idx][tInt]);
- ++idx;
- }
- return fclose(file);
- }
- SaveTeleports()
- {
- new string[128];
- new File: file = fopen("teleports.cfg", io_write);
- for(new i = 0; i < MAX_TELES; i++)
- {
- format(string, sizeof(string), "%s|%f|%f|%f|%f|%d|%d\r\n",
- TeleInfo[i][tName],
- TeleInfo[i][tX],
- TeleInfo[i][tY],
- TeleInfo[i][tZ],
- TeleInfo[i][tA],
- TeleInfo[i][tVW],
- TeleInfo[i][tInt]);
- fwrite(file, string);
- }
- return fclose(file);
- }
- // Stocks
- stock GetFreeTeleSlot()
- {
- for(new i = 0; i < MAX_TELES; i++)
- {
- if(strlen(TeleInfo[i][tName]) == 0) return i;
- }
- return -1;
- }
- stock PlayerName(playerid)
- {
- new pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- return pname;
- }
- public OnPlayerConnect(playerid)
- {
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/mycommand", cmdtext, true, 10) == 0)
- {
- // Do something here
- return 1;
- }
- return 0;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- if(PLAYER_TELEPORTING == 1)
- {
- new Float: x, Float: y, Float: z, string[128];
- GetPlayerPos(clickedplayerid, x, y, z);
- SetPlayerPos(playerid, x, y+1, z+0.3);
- format(string, sizeof(string), "Teleported to %s", PlayerName(clickedplayerid));
- SendClientMessage(playerid, X11_ORANGE, string);
- }
- return 1;
- }
- CMD:help(playerid, params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- SendClientMessage(playerid, X11_ORANGE, "RCON COMMMANDS: /createtele /telename /destroytele /telepos /togglept");
- }
- SendClientMessage(playerid, X11_WHITE, "COMMANDS: /teles /teleport");
- return 1;
- }
- CMD:createtele(playerid, params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- new name[32], string[128];
- new idx = GetFreeTeleSlot();
- if(sscanf(params, "s[32]", name)) return SendClientMessage(playerid, X11_GREEN, "USAGE: /createtele [name]");
- GetPlayerPos(playerid, TeleInfo[idx][tX], TeleInfo[idx][tY], TeleInfo[idx][tZ]);
- GetPlayerFacingAngle(playerid, TeleInfo[idx][tA]);
- TeleInfo[idx][tVW] = GetPlayerVirtualWorld(playerid);
- TeleInfo[idx][tInt] = GetPlayerInterior(playerid);
- strmid(TeleInfo[idx][tName], name, 0, strlen(name), 32);
- format(string, sizeof(string), "Teleport Created: [Name: %s | ID: %d | X: %.02f | Y: %.02f | Z: %.02f | A: %.02f | VW: %d | Int: %d]",
- TeleInfo[idx][tName], idx, TeleInfo[idx][tX], TeleInfo[idx][tY], TeleInfo[idx][tZ], TeleInfo[idx][tA], TeleInfo[idx][tVW], TeleInfo[idx][tInt]);
- SendClientMessage(playerid, X11_ORANGE, string);
- SaveTeleports();
- }
- else
- {
- SendClientMessage(playerid, X11_RED, "ERROR: You are not authorized to use this command.");
- }
- return 1;
- }
- CMD:telename(playerid, params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- new idx, name[32], string[128];
- if(sscanf(params, "ds[32]", idx, name)) return SendClientMessage(playerid, X11_GREEN, "USAGE: /telename [teleid] [name]");
- if(strlen(TeleInfo[idx][tName]) == 0) return SendClientMessage(playerid, X11_RED, "ERROR: That teleport doesn't exist.");
- new oldname[32];
- strmid(oldname, TeleInfo[idx][tName], 0, strlen(TeleInfo[idx][tName]), 32);
- strmid(TeleInfo[idx][tName], name, 0, strlen(name), 32);
- format(string, sizeof(string), "Teleport Name Edited: [ID: %d | Previous Name: %s | New Name: %s]",
- idx, oldname, TeleInfo[idx][tName]);
- SendClientMessage(playerid, X11_ORANGE, string);
- SaveTeleports();
- }
- else
- {
- SendClientMessage(playerid, X11_RED, "ERROR: You are not authorized to use this command.");
- }
- return 1;
- }
- CMD:destroytele(playerid, params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- new idx, string[128];
- if(sscanf(params, "d", idx)) return SendClientMessage(playerid, X11_GREEN, "USAGE: /destroytele [teleid]");
- if(strlen(TeleInfo[idx][tName]) == 0) return SendClientMessage(playerid, X11_RED, "ERROR: That teleport doesn't exist.");
- format(string, sizeof(string), "Teleport Destroyed: [ID: %d | Name: %s]",
- idx, TeleInfo[idx][tName]);
- SendClientMessage(playerid, X11_ORANGE, string);
- strdel(TeleInfo[idx][tName], 0, strlen(TeleInfo[idx][tName]));
- TeleInfo[idx][tX] = 0.0;
- TeleInfo[idx][tY] = 0.0;
- TeleInfo[idx][tZ] = 0.0;
- TeleInfo[idx][tA] = 0.0;
- TeleInfo[idx][tVW] = 0;
- TeleInfo[idx][tInt] = 0;
- SaveTeleports();
- }
- else
- {
- SendClientMessage(playerid, X11_RED, "ERROR: You are not authorized to use this command.");
- }
- return 1;
- }
- CMD:telepos(playerid, params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- new idx, string[128];
- if(sscanf(params, "d", idx)) return SendClientMessage(playerid, X11_GREEN, "USAGE: /telepos [teleid]");
- if(strlen(TeleInfo[idx][tName]) == 0) return SendClientMessage(playerid, X11_RED, "ERROR: That teleport doesn't exist.");
- GetPlayerPos(playerid, TeleInfo[idx][tX], TeleInfo[idx][tY], TeleInfo[idx][tZ]);
- GetPlayerFacingAngle(playerid, TeleInfo[idx][tA]);
- TeleInfo[idx][tVW] = GetPlayerVirtualWorld(playerid);
- TeleInfo[idx][tInt] = GetPlayerInterior(playerid);
- format(string, sizeof(string), "Teleport Position Edited: [ID: %d | X: %.02f | Y: %.02f | Z: %.02f | A: %.02f | VW: %d | Int: %d]",
- idx, TeleInfo[idx][tX], TeleInfo[idx][tY], TeleInfo[idx][tZ], TeleInfo[idx][tA], TeleInfo[idx][tVW], TeleInfo[idx][tInt]);
- SendClientMessage(playerid, X11_ORANGE, string);
- SaveTeleports();
- }
- else
- {
- SendClientMessage(playerid, X11_RED, "ERROR: You are not authorized to use this command.");
- }
- return 1;
- }
- CMD:teleport(playerid, params[])
- {
- new idx, string[128];
- if(sscanf(params, "d", idx)) return SendClientMessage(playerid, X11_GREEN, "USAGE: /teleport [teleid]");
- if(strlen(TeleInfo[idx][tName]) == 0) return SendClientMessage(playerid, X11_RED, "ERROR: That teleport doesn't exist.");
- SetPlayerPos(playerid, TeleInfo[idx][tX], TeleInfo[idx][tY], TeleInfo[idx][tZ]);
- SetPlayerFacingAngle(playerid, TeleInfo[idx][tA]);
- SetPlayerVirtualWorld(playerid, TeleInfo[idx][tVW]);
- SetPlayerInterior(playerid, TeleInfo[idx][tInt]);
- format(string, sizeof(string), "Teleported to: %s [ID: %d | VW: %d | Int: %d]",
- TeleInfo[idx][tName], idx, TeleInfo[idx][tVW], TeleInfo[idx][tInt]);
- SendClientMessage(playerid, X11_ORANGE, string);
- return 1;
- }
- CMD:teles(playerid, params[])
- {
- new string[128];
- SendClientMessage(playerid, X11_GREEN, "* Listing current teleports...");
- for(new i = 0; i < MAX_TELES; i++)
- {
- if(strlen(TeleInfo[i][tName]) != 0)
- {
- format(string, sizeof(string), "Teleport %d: [Name: %s | VW: %d | Int: %d]",
- i, TeleInfo[i][tName], TeleInfo[i][tVW], TeleInfo[i][tInt]);
- SendClientMessage(playerid, X11_WHITE, string);
- }
- }
- return 1;
- }
- CMD:togglept(playerid, params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- new string[128];
- if(PLAYER_TELEPORTING == 0)
- {
- PLAYER_TELEPORTING = 1;
- format(string, sizeof(string), "zTeleports: %s has enabled player teleporting.", PlayerName(playerid));
- SendClientMessageToAll(X11_GREEN, string);
- }
- else
- {
- PLAYER_TELEPORTING = 0;
- format(string, sizeof(string), "zTeleports: %s has disabled player teleporting.", PlayerName(playerid));
- SendClientMessageToAll(X11_RED, string);
- }
- }
- else
- {
- SendClientMessage(playerid, X11_RED, "ERROR: You are not authorized to use this command.");
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment