Help with fines script - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Help with fines script (
/showthread.php?tid=322332)
Help with fines script -
thimo - 01.03.2012
Hello so i created a speedcamera script but i want to do that if hes like 10 KPH too fast he gets 250$ fines and about 30 KPH 500$ and at 50 KPH 750. But i dont know how. Can anyone show me it? this is my code so far:
pawn Код:
// This function checks if the player is speeding near a speedcamera
CheckPlayerSpeeding(playerid)
{
// Check if the player hasn't been caught speeding recently
if (APlayerData[playerid][PlayerCaughtSpeeding] == 0)
{
// Loop through all speedcameras
for (new CamID; CamID < MAX_CAMERAS; CamID++)
{
// Check if this camera has been created
if (ACameras[CamID][CamSpeed] != 0)
{
// Check if the player is the driver of the vehicle
if (GetPlayerVehicleSeat(playerid) == 0)
{
// Check if the player's speed is greater than the speed allowed by this camera (no need to process a distance-check if not speeding)
if (APlayerData[playerid][PlayerSpeed] > ACameras[CamID][CamSpeed])
{
// Check if the player is near the camera
if (IsPlayerInRangeOfPoint(playerid, 50.0, ACameras[CamID][CamX], ACameras[CamID][CamY], ACameras[CamID][CamZ]))
{
new speed = random(4);
switch(speed)
{
case 0, 1, 2:
{
APlayerData[playerid][PlayerCaughtSpeeding] = 20;
APlayerData[playerid][Fines] += 500;
SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}You've been caught by a speedtrap, slow down!");
}
case 3:
{
SendClientMessage(playerid, 0xFFFFFFFF, "You are being lucky! Speedtrap couldn't catch you.");
}
}
}
}
}
}
}
}
else // If the player has been caught before, reduce the value until it's 0 again, then he can be caught again
APlayerData[playerid][PlayerCaughtSpeeding]--;
}
Re: Help with fines script -
brett7 - 01.03.2012
Make a timer to call that function.
Re: Help with fines script -
thimo - 01.03.2012
i know -_-" but it now only fines 500$ always when u get caught but i want it when u drive 10 KPH too fast u get fined 250 and when u drive 30 KPH too fast u get fined 500 and when you drive 50 KPH too fast you get 100 fines. But i dont know how to do this :S
Re: Help with fines script -
thimo - 02.03.2012
Err bump? :S
Re: Help with fines script -
niels44 - 02.03.2012
maybe you can use this? XD dont know if this is what you mean
pawn Код:
SetTimer("10kph", 500, 1);
forward 10kph();
public 10kph()
{
GivePlayerMoney(playerid, -250);
return 1;
}
i dont know if the time of timer is right but you could make something like this.
EDIT: you could also use this to get the speed of the player:
pawn Код:
stock GetPlayerSpeed(playerid, bool:kmh) // by misco
{
new Float:Vx,Float:Vy,Float:Vz,Float:rtn;
if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),Vx,Vy,Vz); else GetPlayerVelocity(playerid,Vx,Vy,Vz);
rtn = floatsqroot(floatabs(floatpower(Vx + Vy + Vz,2)));
return kmh?floatround(rtn * 100 * 1.61):floatround(rtn * 100);
}
Re: Help with fines script -
thimo - 02.03.2012
I want it to be like if(PlayerSpeed = 10 above Maxspeed)... But how to use that? XD