Sziasztok!
A mai nap \"editeltem\" egy olyan scriptet, amely hasonló a cleo módokban található emergency módokhoz. (Magyarul a jármű első fényszórói szépen villognak
)
Eredeti Link:
http://forum.sa-mp.com/showthread.php?t=571926Amit érdemes róla tudni:
Jelenleg úgy van beállítva, ha a jármű elkezd szirénázni, akkor a lámpa is villog, ha kikapcsolja akkor nem villog. !De ha át állítod \"#define plo 0\"-át 1-re akkor az összes olyan jármű (függetlenül hogy van szirénája, vagy nincs), akkor a 2-es gombbal is tudod de/aktiválni a villogást.
Tudom, lehet egyszerű a script, de lehet valakinek majd jól jön, és még nem nagyon találtam itt.
Lássuk is a scriptet:
#include <a_samp>
#define plc 1 //ha ez a szám 1, akkor az összes olyan jármű ami tud szirénázni, az tud \"villogni\" abban az esetben ha be van kapcsolva a sziréna
#define plo 0 //ha ez a szám 1, akkor bármelyik jármű tud \"villogni\" a 2es gomb segítségével
#define PRESSED(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
new iFlashCount = 0;
new FlashTime[MAX_VEHICLES];
new iFlash[MAX_PLAYERS];
forward OnLightFlash(vehicleid);
public OnLightFlash(vehicleid)
{
new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
switch(iFlashCount)
{
case 0: UpdateVehicleDamageStatus(vehicleid, panels, doors, 2, tires);
case 1: UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
case 2: UpdateVehicleDamageStatus(vehicleid, panels, doors, 2, tires);
case 3: UpdateVehicleDamageStatus(vehicleid, panels, doors, 4, tires);
case 4: UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
case 5: UpdateVehicleDamageStatus(vehicleid, panels, doors, 4, tires);
}
if(iFlashCount >=5) iFlashCount = 0;
else iFlashCount++;
return 1;
}
public OnVehicleSirenStateChange(playerid, vehicleid, newstate)
{
if(newstate && iFlash[playerid] == 0)
{
iFlash[playerid]=1;
FlashTime[vehicleid] = SetTimerEx(\"OnLightFlash\", 120, true, \"d\", vehicleid);//minnél nagyobb a ms annál lassabban villog
}
if(!newstate && iFlash[playerid] == 1)
{
iFlash[playerid]=0;
new panels, doors, lights, tires;
KillTimer(FlashTime[vehicleid]);
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
}
return 1;
}
public OnFilterScriptExit()
{
new panels, doors, lights, tires;
for(new i=0; i<GetVehiclePoolSize(); i++)
{
KillTimer(FlashTime);
GetVehicleDamageStatus(i, panels, doors, lights, tires);
UpdateVehicleDamageStatus(i, panels, doors, 0, tires);
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(PRESSED(KEY_SUBMISSION) && plo == 1)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(iFlash[playerid] == 0)
{
iFlash[playerid]=1;
FlashTime[vehicleid] = SetTimerEx(\"OnLightFlash\", 120, true, \"d\", vehicleid);//minnél nagyobb a ms annál lassabban villog
}
else
{
iFlash[playerid]=0;
new panels, doors, lights, tires;
KillTimer(FlashTime[vehicleid]);
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
}
}
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
iFlash[playerid]=0;
new panels, doors, lights, tires;
KillTimer(FlashTime[vehicleid]);
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
return 1;
}