Giter Site home page Giter Site logo

samp-util's Introduction

samp-util

sampctl Total Downloads

A set of useful utility functions for SA-MP.

Installation

Simply install to your project:

sampctl package install WoutProvost/samp-util

Include in your code and begin using the library:

#include <util>

Usage

Detailed documentation is provided in the include files.

Color.inc

#define COLOR_SP_MAPICON_ENEMY				0xb31a1eff
#define COLOR_SP_MAPICON_ALLY				0x343d7eff
#define COLOR_SP_MAPICON_OBJECTIVE			0xe2c063ff
#define COLOR_SP_GAMETEXT_RED				0x9c1634ff
#define COLOR_SP_GAMETEXT_BLUE				0x2b346eff
#define COLOR_SP_GAMETEXT_YELLOW			0xc4a656ff
#define COLOR_SP_HEALTH_FG				0xb4191dff
#define COLOR_SP_HEALTH_BG				0x5a0c0eff
#define COLOR_SP_ARMOUR_FG				0xe1e1e1ff
#define COLOR_SP_ARMOUR_BG				0x707070ff
#define COLOR_SP_BREATH_FG				0xaccbf1ff
#define COLOR_SP_BREATH_BG				0x566578ff
#define COLOR_SP_MONEY					0x2f5a26ff
#define COLOR_SP_CLOCK					0xc3c3c3ff
#define COLOR_DIALOG_INFO_NORMAL			0xa9c4e4ff
#define COLOR_LOG					0xa9c4e4ff

Math.inc

#define PI						(Float:3.14159265)
#define INFINITY					cellmax // = 2147483647
#define NEG_INFINITY					cellmin // = -2147483648
#define FLOAT_INFINITY					(Float:0x7F800000)
#define FLOAT_NEG_INFINITY				(Float:0xFF800000)
#define FLOAT_NAN					(Float:0x7FFFFFFF)

bool:IsNaN(number);
GetPointOnEdgeOfCircle(&Float:x, &Float:y, Float:r, Float:a, bool:isGTAAngle = false);

String.inc

#define MAX_TEXT_INPUT					128
#define MAX_TEXT_OUTPUT					144

strtok(const string[], &index, delimiter = ' ');
strrest(const string[], &index, delimiter = ' ');
strcpy(dest[], const source[], len = sizeof(dest));
strclr(string[]);
bool:strempty(const string[]);
strcount(const string[], character);
strtolower(string[]);
strtoupper(string[]);
GetCharacterWidth(c);
GetStringWidth(const string[]);
AddThousandsSeparators(number, separator = ',');
TrimTrailingZeros(string[], keep = 0);
ReplaceDecimalSeparator(Float:number, separator = ',', precision = 6);
FormatFloat(Float:number, keep = 0, precision = 6, decimalSeparator = '.', thouasandsSeparator = ',');

Calendar.inc

#define MAX_WEEKDAY_NAME				9
#define MAX_WEEKDAY_SHORT_NAME				3
#define MAX_MONTH_NAME					9
#define MAX_MONTH_SHORT_NAME				3

GetWeekDay(year, month, day);
GetWeekdayName(weekday, name[], len);
GetWeekdayShortName(weekday, name[], len);
GetMonthName(month, name[], len);
GetMonthShortName(month, name[], len);

Invalid.inc

#define INVALID_SKIN_ID					-1
#define INVALID_MODEL_ID				-1
#define INVALID_CHECKPOINT_ID				-1
#define INVALID_MAPICON_ID				-1
#define INVALID_PICKUP_ID				-1
#define INVALID_AREA_ID					-1
#define INVALID_TIMER_ID				-1

Limit.inc

#define MAX_CHECKPOINTS					1
#define MAX_RACE_CHECKPOINTS				1
#define MAX_MAPICONS					100
#define MAX_OBJECT_MATERIAL_TEXT			2048
#define MAX_PLAYER_VARIABLES				800
#define MAX_GAMEMODES					16
#define MAX_FILTERSCRIPTS				16

Textdraw.inc

#define MAX_TEXT_DRAW_TEXT				1024
#define MAX_TEXT_DRAWS_SHOWN				MAX_TEXT_DRAWS+MAX_PLAYER_TEXT_DRAWS
#define MAX_TEXT_DRAW_SPRITES_SHOWN			100
#define PlayerTextDrawCreate				CreatePlayerTextDraw

Dialog.inc

#define MAX_DIALOGS					32768
#define MAX_DIALOG_CAPTION				64
#define MAX_DIALOG_INFO					4096
#define MAX_DIALOG_BUTTON_TEXT				10
#define MAX_DIALOG_INPUT				128
#define MAX_DIALOG_COLUMNS				4
#define MAX_DIALOG_COLUMN_NAME				128
#define MAX_DIALOG_ROW_TEXT				256

Virtualworld.inc

#define MAX_VIRTUAL_WORLDS				cellmax // = 2147483647
#define INVALID_VIRTUAL_WORLD_ID			-1
#define VIRTUAL_WORLD_NORMAL				0

Interior.inc

#define MAX_INTERIORS					256
#define INVALID_INTERIOR_ID				-1
#define INTERIOR_NORMAL					0

Weather.inc

#define WEATHER_NORMAL					10

GetWeather();

Time.inc

#define TIME_HOUR_NORMAL				12
#define TIME_MINUTE_NORMAL				0

GetWorldTime();

Class.inc

#define INVALID_CLASS_ID				-1
#define MAX_CLASSES					320

AddPlayerClassEx(teamid, modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, weapon1 = 0, weapon1_ammo = 0, weapon2 = 0, weapon2_ammo = 0, weapon3 = 0, weapon3_ammo = 0, worldid = VIRTUAL_WORLD_NORMAL, interiorid = INTERIOR_NORMAL);
AddPlayerClass(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, weapon1 = 0, weapon1_ammo = 0, weapon2 = 0, weapon2_ammo = 0, weapon3 = 0, weapon3_ammo = 0, teamid = NO_TEAM, worldid = VIRTUAL_WORLD_NORMAL, interiorid = INTERIOR_NORMAL);

// Makes sure that the player respawns in the world belonging to the class.
// Makes sure that the player respawns in the interior belonging to the class.

Vehicle.inc

#define MAX_VEHICLE_MODELS				212
#define INVALID_PAINTJOB_ID				-1
#define PAINTJOB_NONE					3
#define INVALID_VEHICLE_COLOR_ID			-2
#define MAX_VEHICLE_MODEL_NAME				21
#define INVALID_VEHICLE_TYPE				-1
enum {
	VEHICLE_TYPE_CAR,
	VEHICLE_TYPE_TRACTOR,
	VEHICLE_TYPE_BIKE,
	VEHICLE_TYPE_BICYCLE,
	VEHICLE_TYPE_QUAD,
	VEHICLE_TYPE_HOVERCRAFT,
	VEHICLE_TYPE_RC,
	VEHICLE_TYPE_BOAT,
	VEHICLE_TYPE_HELI,
	VEHICLE_TYPE_SEAHELI,
	VEHICLE_TYPE_PLANE,
	VEHICLE_TYPE_SEAPLANE,
	VEHICLE_TYPE_TRAIN,
	VEHICLE_TYPE_TRAILER
}

bool:IsValidVehicle(vehicleid);
bool:IsVehicleInNormalWorld(vehicleid);
GetVehicleInterior(vehicleid);
SetVehicleInterior(vehicleid, interiorid);
SetVehiclePaintjob(vehicleid, paintjobid);
ChangeVehicleColor(vehicleid, color1, color2);
ChangeVehicleColors(vehicleid, color1, color2);
ChangeVehicleColour(vehicleid, color1, color2);
ChangeVehicleColours(vehicleid, color1, color2);
SetVehicleColor(vehicleid, color1, color2);
SetVehicleColors(vehicleid, color1, color2);
SetVehicleColour(vehicleid, color1, color2);
SetVehicleColours(vehicleid, color1, color2);
GetVehicleModelName(modelid, name[], len);
GetVehicleModelSeatCount(modelid);
GetVehicleModelType(modelid);
GetVehicleDriver(vehicleid);
bool:IsVehicleUpsideDown(vehicleid);
CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1 = -1, color2 = -1, respawn_delay = 0, addsiren = false, worldid = VIRTUAL_WORLD_NORMAL, interiorid = INTERIOR_NORMAL, paintjobid = PAINTJOB_NONE);
AddStaticVehicleEx(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1 = -1, color2 = -1, respawn_delay = 0, addsiren = false, worldid = VIRTUAL_WORLD_NORMAL, interiorid = INTERIOR_NORMAL, paintjobid = PAINTJOB_NONE);
AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1 = -1, color2 = -1, respawn_delay = 0, addsiren = false, worldid = VIRTUAL_WORLD_NORMAL, interiorid = INTERIOR_NORMAL, paintjobid = PAINTJOB_NONE);
DestroyVehicle(vehicleid);

forward OnVehicleVirtualWorldChange(vehicleid, newvirtualworldid, oldvirtualworldid);
forward OnVehicleInteriorChange(vehicleid, newinteriorid, oldinteriorid);

// Makes sure that trains are always created with AddStaticVehicleEx and not wrongly with CreateVehicle. Trains can only be added with AddStaticVehicle and AddStaticVehicleEx.
// Makes sure that the vehicle respawns in the world it was first created.
// Makes sure that the vehicle respawns in the interior it was first created.
// Makes sure that the vehicle respawns with the paintjob it was given when it was first created.
// Syncs random vehicle colours between players.

Player.inc

ClearChat(playerid);
ClearKillFeed(playerid);
ClearGameTexts(playerid);
ReturnPlayerNameAndID(playerid);
PlaySoundForPlayersInRange(soundid, Float:x, Float:y, Float:z, Float:range = 50.0, worldid = VIRTUAL_WORLD_NORMAL, interiorid = INTERIOR_NORMAL);
bool:IsPlayerInNormalWorld(playerid);
SetPlayerPos(playerid, Float:x, Float:y, Float:z, bool:preload = false);

forward OnPlayerVirtualWorldChange(playerid, newvirtualworldid, oldvirtualworldid);

Weapon.inc

#define MAX_WEAPONS					47
#define INVALID_WEAPON_ID				-1
#define WEAPON_FISTS					0
#define WEAPON_NIGHTVISION				44
#define WEAPON_INFRARED					45
#define MAX_WEAPON_NAME					31

bool:IsValidWeapon(weaponid);
GetWeaponModel(weaponid);
bool:IsWeaponSprintAllowed(weaponid);
bool:IsWeaponCrouchAllowed(weaponid);
Float:GetWeaponDamage(weaponid);
Float:GetWeaponVehicleDamage(weaponid);
bool:IsMeleeWeapon(weaponid);
GetWeaponName(weaponid, name[], len);

Audiostream.inc

PlayAudioStream(playerid, const url[], Float:posX = 0.0, Float:posY = 0.0, Float:posZ = 0.0, Float:distance = 50.0, usepos = 0, time = -1);
StopAudioStream(playerid);

Zone.inc

#define MAX_ZONES					366
#define MAX_ZONE_NAME					26

GetZoneID(Float:x, Float:y, Float:z);
GetZoneName(zoneid, name[], len);
GetZoneCoordinates(zoneid, &Float:x_min, &Float:y_min, &Float:z_min, &Float:x_max, &Float:y_max, &Float:z_max);

Custom/Interior.inc

#define INTERIOR_LIBERTY_CITY				1

Custom/Vehicle.inc

#define PAINTJOB_MOTHERSHIP				0

Testing

To test, simply run the package:

sampctl package run

samp-util's People

Contributors

southclaws avatar woutprovost avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

samp-util's Issues

A wiki??

How am i supposed to know the functions...?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.