Filterscript to Gamemode?
#1

Hello there, it's me again. This time i would like to know how to convert or what it is called filterscript to gamemode. So i could set cmd only available for cops.

Quote:

/*
© Stefantjuh97
Mail: S.dorst1997@gmail.com
SAMP Forum name: Stefand.
Release Date: 18-6-2012
Version: 3.0


Changelog V2.0
Fixed:
- Headlights keep flashing when you are out of the vehicle.
Thanks to BrandyPenguin

- if you did /flash 2 times without /flashoff you had a bugged vehicle.

Added:
- Working for ambulance
- Working for Firetruck

Changelog V3.0
Fixed:
- /flash for turning flash on and /flash for turning it off
Thanks to BrandyPenguin

Added:
- Nothing
*/

#include <a_samp>
#include <zcmd>

#define FILTERSCRIPT

forward FlasherFunc();

new obj[MAX_VEHICLES] = { INVALID_OBJECT_ID, ... };
new obj2[MAX_VEHICLES] = { INVALID_OBJECT_ID, ... };
new LightPwr[MAX_VEHICLES];
new Flasher[MAX_VEHICLES] = 0;
new FlasherState[MAX_VEHICLES];
new FlashTimer;

public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Police Flash lights V2.1");
print(" By Stefantjuh97");
print("--------------------------------------\n");

for (new x=0; x<MAX_VEHICLES; x++)
{
LightPwr[x]=1;
Flasher[x]=0;
FlasherState[x]=0;
}

FlashTimer = SetTimer("FlasherFunc",200,1); // "200" is the speed from the flashing headlights
return 1;
}

public OnFilterScriptExit()
{
KillTimer(FlashTimer);
for (new i = 0; i < MAX_VEHICLES; i++)
{
DestroyObject(obj[i]);
DestroyObject(obj2[i]);
}
return 1;
}




public OnVehicleSpawn(vehicleid)
{
DestroyObject(obj[vehicleid]);
DestroyObject(obj2[vehicleid]);
Flasher[vehicleid] = 0;
return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
DestroyObject(obj[vehicleid]);
DestroyObject(obj2[vehicleid]);
Flasher[vehicleid] = 0;
return 1;
}

command(flash, playerid, params[])
{
new vehicleid,panels,doors,lights,tires;
vehicleid = GetPlayerVehicleID(playerid);
if(!Flasher[vehicleid]) {
if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
{
return SendClientMessage(playerid, -1, "* You are not the driver!");
}
if (!GetVehicleModel(vehicleid)) return SendClientMessage(playerid, -1, "* You are not in a vehicle!");
if (IsValidObject(obj[vehicleid]) || IsValidObject(obj2[vehicleid]))
{
SendClientMessage(playerid, -1, "You switched off the lights."), DestroyObject(obj[vehicleid]), DestroyObject(obj2[vehicleid]);
GetVehicleDamageStatus(vehicleid,panels,doors,ligh ts,tires);
if(LightPwr[vehicleid] == 1)
UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
else
UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
Flasher[vehicleid] = 0;
}
switch (GetVehicleModel(vehicleid))
{
case 596:
{
obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
obj2[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.599999,-0.375000,0.899999,0.000000,0.000000,0.000000);
AttachObjectToVehicle(obj2[vehicleid], vehicleid, -0.599999,-0.375000,0.899999,0.000000,0.000000,0.000000);
GetVehicleDamageStatus(vehicleid,panels,doors,ligh ts,tires);
Flasher[vehicleid] = 1;
}
case 597:
{
obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
obj2[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.599999,-0.375000,0.899999,0.000000,0.000000,0.000000);
AttachObjectToVehicle(obj2[vehicleid], vehicleid, -0.599999,-0.375000,0.899999,0.000000,0.000000,0.000000);

GetVehicleDamageStatus(vehicleid,panels,doors,ligh ts,tires);
Flasher[vehicleid] = 1;
}
case 598:
{
obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
obj2[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.524999, -0.300000, 0.899999, 0.000000, 0.000000, 0.000000);
AttachObjectToVehicle(obj2[vehicleid], vehicleid, -0.524999, -0.300000, 0.899999, 0.000000, 0.000000, 0.000000);
GetVehicleDamageStatus(vehicleid,panels,doors,ligh ts,tires);
Flasher[vehicleid] = 1;
}
case 599:
{
obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
obj2[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.524999,0.000000,1.125000,0.000000,0.000000,0.000 000);
AttachObjectToVehicle(obj2[vehicleid], vehicleid, -0.524999,0.000000,1.125000,0.000000,0.000000,0.000 000);
GetVehicleDamageStatus(vehicleid,panels,doors,ligh ts,tires);
Flasher[vehicleid] = 1;
}
case 541://bullet
{
obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.375000,0.524999,0.375000,0.000000,0.000000,0.000 000);

GetVehicleDamageStatus(vehicleid,panels,doors,ligh ts,tires);
Flasher[vehicleid] = 1;
}
case 426://premier
{
obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.524999,0.749999,0.375000,0.000000,0.000000,0.000 000);

GetVehicleDamageStatus(vehicleid,panels,doors,ligh ts,tires);
Flasher[vehicleid] = 1;
}
case 427://enforcer
{
GetVehicleDamageStatus(vehicleid,panels,doors,ligh ts,tires);
Flasher[vehicleid] = 1;
}
case 416://Ambulance
{
GetVehicleDamageStatus(vehicleid,panels,doors,ligh ts,tires);
Flasher[vehicleid] = 1;
}
case 407://FireTruck
{
GetVehicleDamageStatus(vehicleid,panels,doors,ligh ts,tires);
Flasher[vehicleid] = 1;
}
case 560://sultan
{
obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.225000,0.750000,0.449999,0.000000,0.000000,0.000 000);
GetVehicleDamageStatus(vehicleid,panels,doors,ligh ts,tires);
Flasher[vehicleid] = 1;
}
case 490://FBI
{
obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.000000,1.125000,0.599999,0.000000,0.000000,0.000 000);
GetVehicleDamageStatus(vehicleid,panels,doors,ligh ts,tires);
Flasher[vehicleid] = 1;
}
default:
{
return SendClientMessage(playerid, -1, "You are not in a CODE 2 compatible police vehicle!");
}
}
return SendClientMessage(playerid, -1, "Lights on, you are now in a CODE 2 run!");
} else {
if (IsValidObject(obj[vehicleid]) || IsValidObject(obj2[vehicleid])) {
SendClientMessage(playerid, -1, "You switched off the lights."), DestroyObject(obj[vehicleid]), DestroyObject(obj2[vehicleid]);
}
GetVehicleDamageStatus(vehicleid,panels,doors,ligh ts,tires);
if(LightPwr[vehicleid] == 1)
UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
else
UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
Flasher[vehicleid] = 0;
}
return 1;
}

public FlasherFunc() {
new panelsx,doorsx,lightsx,tiresx;
for (new p=0; p<MAX_VEHICLES; p++)
{
if (Flasher[p] == 1)
{
if (FlasherState[p] == 1)
{
GetVehicleDamageStatus(p,panelsx,doorsx,lightsx,ti resx);
UpdateVehicleDamageStatus(p, panelsx, doorsx, 4, tiresx);
FlasherState[p] = 0;
}
else
{
GetVehicleDamageStatus(p,panelsx,doorsx,lightsx,ti resx);
UpdateVehicleDamageStatus(p, panelsx, doorsx, 1, tiresx);
FlasherState[p] = 1;
}
}
}
return 1;
}

I would like this filterscript make script what i can put into gamemode.pawn file
Reply
#2

Copy all to Gamemode
But this:
pawn Код:
#define FILTERSCRIPT
delete it
Reply
#3

Quote:
Originally Posted by ScRipTerZ
Посмотреть сообщение
Copy all to Gamemode
But this:
pawn Код:
#define FILTERSCRIPT
delete it
That won't work dude, he needs to hook all the callbacks as well with either y_hooks (ysi.tl) or ALS hooking https://sampforum.blast.hk/showthread.php?tid=441293
Reply
#4

Why do filterscripts need the #define FILTERSCRIPT anyway?
I don't have it in my filterscript and everything works as intended.
I'm not using Y_hooks or anything like that, maybe those includes/plugins need it.

But for default samp code, it's not really required in my opinion.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)