SA-MP Forums Archive
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