Sziasztok!
Elég rég óta nem pawnoztam, úgy éreztem ideje volt megírni és publikálni egy scriptet.
Parancsai:
/tlerak - Trafipax lerakása.
/tfelszed - Trafipax felszedése.
/tfelszedall - Az összes trafipax felszedése.
#include a_samp
#include zcmd
#include sscanf
#define MAX_TRAFI 200
//----------------------------------------SZÍNEK----------------------------------------//
#define ZOLD 0x03b01aAA
#define SARGA 0xeefa00AA
#define NARANCSS 0xf0a400AA
#define PIROS 0xe60000AA
enum tInfo
{
Van,
Object,
Birsag,
Maxsebesseg,
Gyorshajtasok,
Float: PosX,
Float: PosY,
Float: PosZ,
Float: Fordulas
};
new TrafiInfo[MAX_TRAFI][tInfo];
forward TrafiEllenor();
public OnFilterScriptInit()
{
SetTimer(\"TrafiEllenor\", 2000, true);
return 1;
}
CMD:tlerak(playerid, params[])
{
new string[128];
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, PIROS, \"Kocsiból nem rakhatod le.\");
if(sscanf(params, \"dd\", TrafiInfo[tInfo][Maxsebesseg], TrafiInfo[tInfo][birsag])) return SendClientMessage(playerid, PIROS, \"Használat: /tlerak [max sebesség] [bírság]\");
for(new trafi; trafi < MAX_TRAFI; trafi++)
{
if(TrafiInfo[trafi][Van] == 0)
{
GetPlayerPos(playerid, TrafiInfo[tInfo][PosX], TrafiInfo[tInfo][PosY], TrafiInfo[tInfo][PosZ]);
GetPlayerFacingAngle(playerid, TrafiInfo[tInfo][Fordulas]);
TrafiInfo[tInfo][Object] = CreateObject(2600, TrafiInfo[tInfo][PosX], TrafiInfo[tInfo][PosY], TrafiInfo[tInfo][PosZ]-1, 0.0, 0.0, TrafiInfo[trafi][Fordulas]);
TrafiInfo[tInfo][Van] = 1;
TrafiInfo[tInfo][Gyorshajtasok] = 0;
format(string, sizeof(string), \"Max sebesség: %d | Bírság: %d\", TrafiInfo[tInfo][Maxsebesseg], TrafiInfo[tInfo][birsag]);
SendClientMessage(playerid, SARGA, \"Leraktál egy trafipaxot.\");
SendClientMessage(playerid, ZOLD, string);
break;
}
}
return 1;
}
CMD:tfelszed(playerid)
{
new string[128], Float:x, Float:y, Float:z;
for(new trafi; trafi < MAX_TRAFI; trafi++)
{
if(TrafiInfo[trafi][Van] == 1)
{
GetObjectPos(TrafiInfo[tInfo][Object], x, y, z);
if(IsPlayerInRangeOfPoint(playerid, 3.0, x, y, z))
{
DestroyObject(TrafiInfo[trafi][Object]);
format(string, sizeof(string), \"ID: %d | Gyorshajtások: %d | Bírságok összege: $%d\", trafi, TrafiInfo[trafi][Gyorshajtasok], TrafiInfo[trafi][Gyorshajtasok]*TrafiInfo[trafi][birsag]);
TrafiInfo[trafi][Van] = 0;
TrafiInfo[trafi][PosX] = 0;
TrafiInfo[trafi][PosY] = 0;
TrafiInfo[trafi][PosZ] = 0;
TrafiInfo[trafi][Fordulas] = 0;
SendClientMessage(playerid, SARGA, \"Felszedtél egy trafipaxot.\");
SendClientMessage(playerid, ZOLD, string);
break;
}
}
}
return 1;
}
CMD:tfelszedall(playerid)
{
for(new trafi; trafi < MAX_TRAFI; trafi++)
{
DestroyObject(TrafiInfo[tInfo][Object]);
TrafiInfo[tInfo][Van] = 0;
TrafiInfo[tInfo][PosX] = 0;
TrafiInfo[tInfo][PosY] = 0;
TrafiInfo[tInfo][PosZ] = 0;
TrafiInfo[tInfo][Fordulas] = 0;
}
SendClientMessage(playerid, SARGA, \"Felszedted az összes trafipaxot.\");
return 1;
}
stock GetVehicleSpeed(vehicleid)
{
new Float:vSpeed[3];
GetVehicleVelocity( vehicleid, vSpeed[0], vSpeed[1], vSpeed[2] );
new Float:vSpeed_Float;
vSpeed_Float = floatsqroot( ((vSpeed[0] * vSpeed[0]) + (vSpeed[1] * vSpeed[1])) + (vSpeed[2] * vSpeed[2])) * 180.0;
new vSpeed_Int;
vSpeed_Int = floatround( vSpeed_Float, floatround_round );
return vSpeed_Int;
}
public TrafiEllenor()
{
new nev[MAX_PLAYER_NAME];
new Float:x, Float:y, Float:z, string[128];
for(new playerid; playerid < MAX_TRAFI; playerid++)
{
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, nev, sizeof(nev));
for(new trafi; trafi < MAX_TRAFI; trafi++)
{
if(TrafiInfo[tInfo][Van] == 1)
{
GetObjectPos(TrafiInfo[tInfo][Object], x, y, z);
if(IsPlayerInRangeOfPoint(playerid, 30.0, x, y, z) && IsPlayerInAnyVehicle(playerid))
{
new vehicleid = GetPlayerVehicleID(playerid);
if(GetVehicleSpeed(vehicleid) > TrafiInfo[tInfo][Maxsebesseg])
{
TrafiInfo[tInfo][Gyorshajtasok]++;
GivePlayerMoney(playerid, -TrafiInfo[tInfo][birsag]);
format(string, sizeof(string), \"%st lekapta a trafipax! Max sebesség: %d | Sebessége: %d | Bírság: $%d\", nev, TrafiInfo[trafi][Maxsebesseg], GetVehicleSpeed(vehicleid), TrafiInfo[trafi][birsag]);
SendClientMessageToAll(SARGA, string);
break;
}
}
}
}
}
}
return 1;
}
Régi, pwn:
http://www.solidfiles.com/d/4f61cd1292/Új, Pastebin:
http://pastebin.com/BcVKaQKb