Create fun and useful ziplines players can use to speed across large areas quickly.
Warning: does not work well with laggy players.
Simply install to your project:
sampctl package install Southclaws/samp-ziplineInclude in your code and begin using the library:
#include <zipline>MAX_ZIPLINE:- Zipline creation limit.
CreateZipline(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2, worldid = 0, interiorid = 0):- Create a zipline between the two sets of coordinates.
DestroyZipline(ziplineid):- Delete a zipline from the game world.
IsValidZipline(ziplineid):- Returns if a zipline ID is a valid zipline.
GetZiplineStartAreaID(ziplineid):- Returns the ID of the streamer area used for the start point.
GetZiplineEndAreaID(ziplineid):- Returns the ID of the streamer area used for the end point.
GetZiplineLineID(ziplineid):- Returns the ID of the line segment object used for the zipline.
GetZiplineStartPos(ziplineid, &Float:x, &Float:y, &Float:z):- Returns the start point position.
SetZiplineStartPos(ziplineid, Float:x, Float:y, Float:z):- Sets the start point position and updates the line segment object accordingly.
GetZiplineEndPos(ziplineid, &Float:x, &Float:y, &Float:z):- Returns the end point position.
SetZiplineEndPos(ziplineid, Float:x, Float:y, Float:z):- Sets the end point position and updates the line segment object accordingly.
GetZiplineVector(ziplineid, &Float:x, &Float:y, &Float:z):- Returns the 3D direction vector of the zipline from the start point.
GetZiplineWorld(ziplineid):- Returns the virtual world in which the zipline is located.
SetZiplineWorld(ziplineid, worldid):- Sets the virtual world of the zipline and updates the line segment object accordingly.
GetZiplineInterior(ziplineid):- Returns the interior in which the zipline is located.
SetZiplineInterior(ziplineid, interiorid):- Sets the interior of the zipline and updates the line segment object accordingly.
IsPlayerOnZipline(playerid):- Returns if a player is currently on any zipline.
GetPlayerZipline(playerid):- Returns the zipline that a player is currently on.
OnPlayerKeyStateChange:- For checking when a player interacts with a zipline entry point.
OnPlayerEnterDynamicArea:- For checking when the player reaches the end of a zipline so they can be removed.
To test, simply run the package:
sampctl package run