Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 8,008
» Latest member: libzul
» Forum threads: 2,419
» Forum posts: 12,336

Full Statistics

Online Users
There are currently 97 online users.
» 0 Member(s) | 93 Guest(s)
Bing, Google, Applebot, Yandex

Latest Threads
Pawno compiler (pawncc.ex...
Forum: Support
Last Post: PutuSuhartawan
10 hours ago
» Replies: 0
» Views: 12
jtyyti
Forum: Releases
Last Post: libzul
Yesterday, 06:56 AM
» Replies: 0
» Views: 18
hretjurtu
Forum: Pawn Scripting
Last Post: libzul
Yesterday, 06:55 AM
» Replies: 0
» Views: 19
rhretjutu
Forum: Questions and Suggestions
Last Post: libzul
Yesterday, 06:53 AM
» Replies: 0
» Views: 18
🎮 Free SA-MP Server Hosti...
Forum: Chat
Last Post: Centnodes
2026-03-16, 08:24 AM
» Replies: 12
» Views: 2,542
[0.3.7 & 0.3.DL] Los Sant...
Forum: Advertisements
Last Post: renza1st
2026-03-16, 05:58 AM
» Replies: 0
» Views: 47
Las Venturas Gang Wars - ...
Forum: Advertisements
Last Post: lvgwgta
2026-03-13, 11:17 AM
» Replies: 0
» Views: 72
Atlanta DeathMatch/Team D...
Forum: Advertisements
Last Post: NixaSha
2026-03-10, 04:57 AM
» Replies: 1
» Views: 100
mysql_samp
Forum: Plugins
Last Post: NullSablex
2026-03-10, 03:33 AM
» Replies: 0
» Views: 118
backtrace
Forum: Questions and Suggestions
Last Post: Lyvex
2026-03-09, 06:32 AM
» Replies: 0
» Views: 80

 
  Stingers (Cops and Robbers)
Posted by: AbyssMorgan - 2021-04-18, 12:42 PM - Forum: Filterscripts - No Replies

Hello, I would like to present you the Stingers Script (Cops and Robbers)



Video:

https://www.youtube.com/watch?v=nslVT5RC3J0



Download:

Stingers.inc

3DTryg.inc



Installation:

Code:
#include <3DTryg>

#include <Stingers>



Functions:

Code:
CreateDynamicStinger(type,Float:x,Float:y,Float:z,Float:rx,Float:ty,Float:rz,worldid=-1,interiorid=-1,playerid=-1,Float:streamdistance=100.0,teamid=ANY_TEAM,byplayerid=INVALID_PLAYER_ID);

DestroyDynamicStinger(mobid);



bool:IsDynamicStingerActive(mobid);

GetDynamicStingerObjectID(mobid);

GetDynamicStingerTeam(mobid);

SetDynamicStingerTeam(mobid,teamid);

GetDynamicStingerPlayerID(mobid);

SetDynamicStingerPlayerID(mobid,byplayerid);

GetPlayerActiveDynamicStinger(playerid);

ToggleDynamicStingerDamage(mobid,bool:toggle);



Callbacks:

Code:
//called on vehicle damage updated by stinger

OnVehicleDamageByStinger(playerid,killerid,mobid,old_tires,new_tires);



Definitions:

Code:
STINGER_TYPE_SMALL //Object: 2899

STINGER_TYPE_BIG? //Object: 2892



Example code:

Code:
public OnVehicleDamageByStinger(playerid,killerid,mobid,old_tires,new_tires){

if(killerid != INVALID_PLAYER_ID){

new p_name[MAX_PLAYER_NAME],string[144];

GetPlayerName(killerid,p_name,sizeof(p_name));

format(string,sizeof(string),"{00AAFF}Your vehicle has been damaged by {00FF00}%s {00AAFF}stinger.",p_name);

SendClientMessage(playerid,-1,string);

}

return 1;

}



new StingerObj[MAX_PLAYERS];



public OnPlayerDisconnect(playerid,reason){

if(StingerObj[playerid] != 0){

DestroyDynamicStinger(StingerObj[playerid]);

StingerObj[playerid] = 0;

}

return 1;

}



CMD:stinger(playerid,params[]){

if(!strcmp(params,"destroy",true)){

DestroyDynamicStinger(StingerObj[playerid]);

StingerObj[playerid] = 0;

return SendClientMessage(playerid,-1,"Stinger Destroyed");

}

if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,-1,"First get out of the vehicle");

if(GetPlayerActiveDynamicStinger(playerid)) return SendClientMessage(playerid,-1,"You are near another stinger");

new type;

if(!strcmp(params,"big",true)){

type = STINGER_TYPE_BIG;

} else if(!strcmp(params,"small",true)){

type = STINGER_TYPE_SMALL;

} else {

if(!IsGM(playerid)){

return SendClientMessage(playerid,-1,"Usage /stinger <big/small/destroy>");

} else {

return SendClientMessage(playerid,-1,"Usage /stinger <big/small/destroy>");

}

}



new Float:x,Float:y,Float:z,Float:z_angle;

GetPlayerPos(playerid,x,y,z);

GetPlayerFacingAngle(playerid,z_angle);

DestroyDynamicStinger(StingerObj[playerid]);

StingerObj[playerid] = CreateDynamicStinger(type,x,y,z-0.9,0.0,0.0,CompRotationFloat(z_angle.0),-1,-1,-1,100.0,ANY_TEAM,playerid);

return SendClientMessage(playerid,-1,"Stinger added");

}



Issues:

- Stinger can not be located near to another stinger



Notice:

Filterscript not exist because filterscripts have limits.

This has been replaced by include, having automatic installation, efficient GameMode/FilterScript.


  Los Santos Gang Graffiti
Posted by: AbyssMorgan - 2021-04-18, 12:30 PM - Forum: Filterscripts - No Replies

Hello, I would like to present you the Los Santos Gang Graffiti.



Video:

[Image: c0RgnwW.gif]



Installation:

Code:
#include <streamer>

#include <3DTryg>



//#define GRAFFITI_DEFAULT_GANG 0

//#define GRAFFITI_DEFAULT_COLOR 0x003D00FF

//#define GRAFFITI_DEFAULT_NAME "Sekhmete Axion Rush"



#include <Graffiti>



public OnGameModeInit(){

//...load gang meta before init Graffiti

Graffiti::Init();

return 1;

}



public Graffiti::GetPlayerGang(playerid){

return PlayerData[playerid][gang]; //your variable returning gangid

}



//called after player change graffiti tag

public OnGraffitiTagChanged(mobid,playerid,gangid,old_gangid){

new buffer[32];

format(buffer,sizeof(buffer),"~w~Tag painted ~n~%d of %d",Graffiti::CountGangTags(gangid),MAX_GRAFFITI);

GameTextForPlayer(playerid,buffer,3000,4);



//Graffiti::SetGangName(mobid,0xDBDE1FFF,"Grove Street");

return 1;

}



//called after server init

public OnGraffitiTagCreated(mobid,gangid){



//Graffiti::SetGangName(mobid,0xDBDE1FFF,"Grove Street");

return 1;

}



Download:

Graffiti.inc

graffiti.bin (put in /scriptfiles)

3DTryg.inc



Notice:

Filterscript not exist because filterscripts have limits.

This has been replaced by include, having automatic installation, efficient GameMode/FilterScript.


  Magic Wand
Posted by: AbyssMorgan - 2021-04-18, 12:28 PM - Forum: Filterscripts - Replies (1)

Hello, I would like to present you the Magic Wand Script



Video:

https://www.youtube.com/watch?v=aaHfVz-UxR8



Download:

Magic.inc

3DTryg.inc

ColAndreas Plugin



Installation:

Code:
#include <colandreas>

#include <3DTryg>

#include <Magic>



Functions:

Code:
Magic::ToggleUseTeam(bool:toggle);            //default: false

Magic::IsToggleUseTeam();

Magic::ToggleForAll(bool:toggle);             //default: false

Magic::IsToggleForAll();

Magic::ToggleForPlayer(playerid,bool:toggle); //default: false

Magic::IsToggleForPlayer(playerid);

Magic::GetDamage(playerid);

Magic::SetDamage(playerid,Float:amount);

Magic::GetSpeed(playerid);

Magic::SetSpeed(playerid,Float:speed);

Magic::GetRange(playerid);

Magic::SetRange(playerid,Float:range);

Magic::GetAmmo(playerid);

Magic::SetAmmo(playerid,ammo);

Magic::TogglePoisoning(playerid,bool:toggle);

Magic::IsTogglePoisoning(playerid);

Magic::GetPoisoningTime(playerid);

Magic::SetPoisoningTime(playerid,seconds);

Magic::GetPoisoningDamage(playerid);

Magic::SetPoisoningDamage(playerid,Float:damage);

Magic::SetProjectile(playerid,modelid=18693,Float:rx=90.0,Float:ry=0.0,Float:rz=0.0,Float:offx=0.0,Float:offy=0.0,Float:offz=0.0);

Magic::GetProjectile(playerid,&modelid,&Float:rx=0.0,&Float:ry=0.0,&Float:rz=0.0,&Float:offx=0.0,&Float:offy=0.0,&Float:offz=0.0);



Callbacks:

Code:
OnPlayerRequestMagicShot(playerid,targetid); //return 0 - prevent to use magic shoot (this callback is called also if ammo is 0)



Definitions:

Code:
MAGIC_SPEED

MAGIC_MAX_RADIUS

MAGIC_REFRESH_ACTION

MAGIC_DAMAGE

MAGIC_DOT_POISONING

MAGIC_POISONING_TIME

MAGIC_WEAPON_AMMO_INFINITY



WEAPON_MAGIC_BULLET

WEAPON_MAGIC_POISONING



Activation:

Code:
Weapon: Fist

Left Mouse Button



Notice:

Filterscript not exist because filterscripts have limits.

This has been replaced by include, having automatic installation, efficient GameMode/FilterScript.


  Knife Shot / Throwing knife
Posted by: AbyssMorgan - 2021-04-18, 12:23 PM - Forum: Filterscripts - No Replies

Hello, I would like to present you the Knife Shot Script



Video:

https://www.youtube.com/watch?v=WJZCn3XXRHY

https://www.youtube.com/watch?v=PSfgKwm3Mc8



Download:

Knife.inc

3DTryg.inc

ColAndreas Plugin



Installation:

Code:
#include <colandreas>

#include <3DTryg>

#include <Knife>



Functions:

Code:
Knife::ToggleUseTeam(bool:toggle);            //default: false

Knife::IsToggleUseTeam();

Knife::ToggleForAll(bool:toggle);             //default: false

Knife::IsToggleForAll();

Knife::ToggleForPlayer(playerid,bool:toggle); //default: false

Knife::IsToggleForPlayer(playerid);

Knife::GetDamage(playerid);

Knife::SetDamage(playerid,Float:amount);

Knife::GetSpeed(playerid);

Knife::SetSpeed(playerid,Float:speed);

Knife::GetRange(playerid);

Knife::SetRange(playerid,Float:range);

Knife::GetAmmo(playerid);

Knife::SetAmmo(playerid,ammo);

Knife::TogglePoisoning(playerid,bool:toggle);

Knife::IsTogglePoisoning(playerid);

Knife::GetPoisoningTime(playerid);

Knife::SetPoisoningTime(playerid,seconds);

Knife::GetPoisoningDamage(playerid);

Knife::SetPoisoningDamage(playerid,Float:damage);



Callbacks:

Code:
OnPlayerRequestKnifeShot(playerid,targetid); //return 0 - prevent to use knife shoot (this callback is called also if ammo is 0)



Definitions:

Code:
KNIFE_SPEED

KNIFE_MAX_RADIUS

KNIFE_REFRESH_ACTION

KNIFE_REFRESH_MISS

KNIFE_DAMAGE

KNIFE_WEAPON_AMMO_INFINITY

KNIFE_DOT_POISONING

KNIFE_POISONING_TIME



WEAPON_KNIFE_THROWN

WEAPON_KNIFE_POISONING



Activation:

Code:
Weapon: Knife



Step 1: Right Mouse Button

Step 2: Left Mouse Button



Notice:

Filterscript not exist because filterscripts have limits.

This has been replaced by include, having automatic installation, efficient GameMode/FilterScript.


  VehPara (Vehicle parachute)
Posted by: AbyssMorgan - 2021-04-18, 12:14 PM - Forum: Filterscripts - Replies (4)

Hello, I would like to present you the Vehicle Parachute Script



Video:

https://www.youtube.com/watch?v=TrxYkMeBtsU



Download:

VehPara.inc

3DTryg.inc

ColAndreas Plugin



Installation:

Code:
#include <ColAndreas>

#include <3DTryg>

#include <VehPara>



Functions:

Code:
bool:IsPlayerUsingVehPara(playerid);

bool:IsToggleVehicleParachute(vehicleid);

ToggleVehicleParachute(vehicleid,bool:toggle);

SetVehicleParachuteKey(key);



Callbacks:

Code:
OnVehicleParachuteThrown(playerid,vehicleid);

OnVehicleParachuteOpened(playerid,vehicleid);

OnVehicleParachuteOpenFail(playerid,vehicleid);



Activation:

Code:
H - Open/thrown parachute



Example Code:

Code:
CMD:vehpara(playerid){



new vid = GetPlayerVehicleID(playerid);

if(IsToggleVehicleParachute(vid)) return SendClientMessage(playerid,0xCC0000FF,"Your vehicle already has a parachute");

if(!IsVehicleFlag(GetVehicleFlags(vid),VF_STREET)) return SendClientMessage(playerid,0xCC0000FF,"For this vehicle can not be mounted parachute");



ToggleVehicleParachute(vid,true);

return 1;

}



//Callbacks:

public OnVehicleParachuteThrown(playerid,vehicleid){

GameTextForPlayer(playerid,"~g~Parachute has been thrown",2500,3);

return 1;

}



public OnVehicleParachuteOpened(playerid,vehicleid){

GameTextForPlayer(playerid,"~g~Parachute has been opened",2500,3);

return 1;

}



public OnVehicleParachuteOpenFail(playerid,vehicleid){

GameTextForPlayer(playerid,"~g~Cannot use parachute",2500,3);

return 1;

}



Notice:

Filterscript not exist because filterscripts have limits.

This has been replaced by include, having automatic installation, efficient GameMode/FilterScript.


  ExtendedGrenade
Posted by: AbyssMorgan - 2021-04-18, 12:11 PM - Forum: Libraries - No Replies

Hello, I would like to present you the Extended Granade.



Video:

https://www.youtube.com/watch?v=wlFEwpE0j7k



Functions:

Code:
Grenade::IsWeaponEnable(playerid,special_weaponid);

Grenade::WeaponEnable(playerid,special_weaponid,bool:enable);

Grenade::GetSpecialAmmo(playerid,special_weaponid);

Grenade::SetSpecialAmmo(playerid,special_weaponid,ammo);

Grenade::GetEffectID(playerid,special_weaponid);

Grenade::SetEffectID(playerid,special_weaponid,effectid);

Grenade::GetDamage(playerid,special_weaponid);

Grenade::SetDamage(playerid,special_weaponid,Float:damage);

Grenade::GetVehicleDamage(playerid,special_weaponid);

Grenade::SetVehicleDamage(playerid,special_weaponid,Float:damage);

Grenade::GetTime(playerid,special_weaponid);

Grenade::SetTime(playerid,special_weaponid,seconds);

Grenade::IsToggleGasMask(playerid);

Grenade::ToggleGasMask(playerid,bool:toggle);

Grenade::GetSpecialWeaponID(weaponid);

Grenade::GrenadeEffectByPlayer(playerid,special_weaponid,Float:x,Float:y,Float:z);

Grenade::CreateGrenadeEffect(special_weaponid,effectid,Float:x,Float:y,Float:z,worldid,interiorid,playerid,Float:streamdistance,Float:damage,Float:veh_damage,active_time=25,byplayerid=INVALID_PLAYER_ID);

Grenade::DestroyEffect(mobid);



Definitions:

Code:
MAX_GRENADE_EFFECT



GRENADE_DOT_TEAR_GAS

GRENADE_DOT_FIRE



GRENADE_EFFECT_TIME



GRENADE_DEFAULT_PLAYER_DAMAGE

GRENADE_DEFAULT_VEHICLE_DAMAGE



INVALID_GRENADE_ID



//death reason

WEAPON_SUFFOCATION

WEAPON_NAPALM



GRENADE_MAX_SPECIAL_WEAPON



GRENADE_SPECIAL_WEAPON_NONE

GRENADE_SPECIAL_WEAPON_GRENADE

GRENADE_SPECIAL_WEAPON_TEARGAS

GRENADE_SPECIAL_WEAPON_MOLTOV



GRENADE_EFFECT_NONE



GRENADE_EFFECT_CLUSTER_BOMB_1

GRENADE_EFFECT_CLUSTER_BOMB_2

GRENADE_EFFECT_CLUSTER_BOMB_3

GRENADE_EFFECT_CLUSTER_BOMB_4

GRENADE_EFFECT_BANG_GRENADE



GRENADE_EFFECT_SMALL_SMOKE

GRENADE_EFFECT_HUGE_SMOKE_1

GRENADE_EFFECT_HUGE_SMOKE_2

GRENADE_EFFECT_HUGE_SMOKE_3



GRENADE_EFFECT_NAPALM



Download:

ExtendedGrenade.inc

3DTryg.inc

ColAndreas Plugin


  vnpc (Visible FCNPC HP Bar)
Posted by: AbyssMorgan - 2021-04-18, 12:02 PM - Forum: Libraries - Replies (6)

This include allowing to enable/disable FCNPC HP Nick Bars



Screen:

https://i.imgur.com/BEyhX5d.png



Functions:

Code:
ShowNPCInTabList(npcid);

HideNPCInTabList(npcid);



Issues:

- Sometimes, npc need respawn after visible toggling.



Notice:

- This function don't display an NPC on player list in SA:MP application.



Download:

vnpc.inc


  #hashtag
Posted by: AbyssMorgan - 2021-04-18, 12:00 PM - Forum: Libraries - Replies (1)

Include contain function for chat #hashtag system



Code:
hashtag.inc

Copyright ? 2021 Abyss Morgan. All rights reserved.

Contributors: None



Website: https://adm.ct8.pl



Plugins: SScanf

Modules: RGB



File Version: 1.2.1



Functions:

GetHashTag(playerid,text[],hashtag_color=0xCC0000FF,back_color=0xFFFFFFFF,max_len=sizeof(text));

GetAllowedHashTag();

SetAllowedHashTag(number);

HashTag::name(playerid);



Callbacks:

OnHashTagPresented(hashtag[]);



Example:

Code:
//I want #suicide now :D

HashTag::suicide(playerid){

    SetPlayerHealth(playerid,0.0);

    return 1;

}



HashTag::banned(playerid){

    PlayAudioStreamForPlayer(playerid,"example.com");

    return 1;

}



public OnPlayerText(playerid,text[]){

    GetHashTag(playerid,text,0xCC0000FF,0x00AA00FF,2048); //back_color the same as first chat color

    SendClientMessageToAll(0x00AA00FF,text);

    return 0;

}



Download:

hashtag.inc

RGB.inc

DataConvert.inc


  BitFunctions
Posted by: AbyssMorgan - 2021-04-18, 11:54 AM - Forum: Libraries - No Replies

Include contains functions for manipulating bits / cells.



Code:
BitFunctions.inc

Copyright ? 2021 Abyss Morgan. All rights reserved.



Website: https://adm.ct8.pl



Plugins: None

Modules: None



File Version: 1.8.0



bit 0 - 31:

(bit 31) --> 11111111000000001111010001010000 <-- (bit 0)



Example cell mode:

Mode 2 (cell id 15) --> 11 11 11 11 00 00 00 00 11 11 01 00 01 01 00 00 <-- (cell id 0)

Mode 4 (cell id 7) --> 1111 1111 0000 0000 1111 0100 0101 0000 <-- (cell id 0)

Mode 8 (cell id 3) --> 11111111 00000000 11110100 01010000 <-- (cell id 0)

Mode 16 (cell id 1) --> 1111111100000000 1111010001010000 <-- (cell id 0)



General Macros:

GetValueBit(value,bit);

SetValueBit(&value,bit,power);? //power 0 or 1

SetValueBitTrue(&value,bit);

SetValueBitFalse(&value,bit);

GetCellValue(value,cellid,mode);

SetCellValue(&value,cellid,mode,power);

GetCellValueEx(value,offset,cellsize);

SetCellValueEx(&value,offset,cellsize,power);

InvertValue(value);

InvertValueEx(value,key); //default key 0xFFFFFFFF

bool:CheckValue(value,&count=0); //even - false,uneven - true



File Byte Macros:

ExtractValue(value,&byte1,&byte2,&byte3,&byte4);

ExtractFloat(Float:value,&byte1,&byte2,&byte3,&byte4);

MergeValue(&value,byte1,byte2,byte3,byte4);

MergeFloat(&Float:value,byte1,byte2,byte3,byte4);

MergeValueEx(byte1,byte2,byte3,byte4);

Float:MergeFloatEx(byte1,byte2,byte3,byte4);



Dynamic Toggle Config Macros:

GetConfigAddress(itemid);

GetConfigBit(itemid);

GetConfigSize(max_items);

IsToggleConfigInformation(variable,itemid);

ToggleConfigInformation(variable,itemid,value); //values: 1/0



Download:

BitFunctions.inc



Example:

Code:
new ExampleConfig[GetConfigSize(MAX_PLAYERS)];

//get:

IsToggleConfigInformation(ExampleConfig,playerid);

//set:

ToggleConfigInformation(ExampleConfig,playerid,1);



Value Extract/Merge:

Code:
new val = 0x89ABCDEF;

new a, b, c, d;

ExtractValue(val,a,b,c,d);

printf("%x %x %x %x",a,b,c,d); //prints 89 AB CD EF

new tmp = 0;

MergeValue(tmp,a,b,c,d);

printf("%x",tmp); //prints 89ABCDEF


  LY (Unsigned Long)
Posted by: AbyssMorgan - 2021-04-18, 11:52 AM - Forum: Libraries - No Replies

Hello, I would like to present the function to use the "unsigned long", or at least to increase the limit of numbers to

2 147 483 647 000 000 000



Code:
LY.inc

Copyright ? 2021 Abyss Morgan. All rights reserved.



Website: https://adm.ct8.pl



Plugins: None

Modules: None



File Version: 1.6.1



Pawn Unsigned Long for 32 Bit language (precision 61-bit)

Available limit:

0 - 2 147 483 647 000 000 000

0 - 2 000 000 000 000 000 000



Functions:

IsValueContainLY(prefix,suffix,value);

GetLYString(prefix,suffix,string[],maxdest = sizeof(string));

LYStringToLY(&prefix,&suffix,const string[]); //Reverse to GetLYString

UpdateLY(&prefix,&suffix,value,limitprefix = DEFAULT_MAX_LY_PREFIX);

AddSeparatorLY(string[],const separator[]);

DeleteSeparatorLY(const string[],const separator[]);

CalculatePercentLY(&prefix,&suffix,Float:percent = 0.0,increase = true,limitprefix = DEFAULT_MAX_LY_PREFIX);

GetPercentLY(prefix,suffix,&o_prefix,&o_suffix,Float:percent = 0.0,limitprefix = DEFAULT_MAX_LY_PREFIX);



Operators:

IsLYEqual(prefix,suffix,from_prefix,from_suffix);

IsLYSmallerThan(prefix,suffix,from_prefix,from_suffix);

IsLYSmallerThanOrEqual(prefix,suffix,from_prefix,from_suffix);

IsLYBiggerThan(prefix,suffix,from_prefix,from_suffix);

IsLYBiggerThanOrEqual(prefix,suffix,from_prefix,from_suffix);



Example for bank system:

Code:
pVar[playerid][pMoney] - your variable suffix

pVar[playerid][pMoneyLY] - your variable prefix

//adding money to the bank

UpdateLY(pVar[playerid][pMoneyLY], pVar[playerid][pMoney], amount); //<-- set your amount

GivePlayerMoney(playerid,-amount);

//the payment from the bank

if(IsValueContainLY(pVar[playerid][pMoneyLY], pVar[playerid][pMoney], amount)){ //<-- set your amount

? ? UpdateLY(pVar[playerid][pMoneyLY], pVar[playerid][pMoney], -amount);

? ? GivePlayerMoney(playerid,amount);

} else {

? ? //you do not have enough money

}

//The amount of money in bank

new mymoney[LY_STRING_LEN], buffer[128];

GetLYString(pVar[playerid][pMoneyLY], pVar[playerid][pMoney], mymoney);

format(buffer,sizeof buffer,"You money in bank: %s",mymoney);

SendClientMessage(playerid,-1,buffer);?



Download:

LY.inc