Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- new RDTimer;
- new Float:VVX[MAX_PLAYERS];
- new Float:VVY[MAX_PLAYERS];
- new Float:VVZ[MAX_PLAYERS];
- new Float:SPD[MAX_PLAYERS];
- public OnFilterScriptInit()
- {
- RDTimer = SetTimer("RDLeadCheck",300,true);
- return 1;
- }
- public OnFilterScriptExit()
- {
- KillTimer(RDTimer);
- return 1;
- }
- forward RDLeadCheck();
- public RDLeadCheck()
- {
- for(new i=0; i< MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i) && IsPlayerInRaceDuel[i] == true)
- {
- if(IsPlayerInAnyVehicle(i))
- {
- new Float:FX, Float:FY;
- GetXYInFrontOfPlayer(i, FX, FY, 13);
- new Float:X, Float:Y, Float:Z;
- GetPlayerPos(i,X,Y,Z);
- new Float:X2, Float:Y2, Float:Z2, r;
- GetPlayerPos(r, X2, Y2, Z2);
- new Float:VZA, Float:VZAB;
- GetVehicleZAngle(GetPlayerVehicleID(i),VZA);
- GetVehicleZAngle(GetPlayerVehicleID(r),VZAB);
- if(!IsPlayerInRangeOfPoint(r,80,X,Y,Z))
- {
- GameTextForPlayer(r,"~r~Your Opponent is far ahead!",2000,3);
- }
- GetVehicleVelocity(GetPlayerVehicleID(i), VVX[i],VVY[i], VVZ[i]);
- GetVehicleVelocity(GetPlayerVehicleID(r), VVX[r],VVY[r], VVZ[r]);
- SPD[i] = floatsqroot(((VVX[i]*VVX[i])+(VVY[i]*VVY[i]))+(VVZ[i]*VVZ[i]))*100;
- SPD[r] = floatsqroot(((VVX[r]*VVX[r])+(VVY[r]*VVY[r]))+(VVZ[r]*VVZ[r]))*100;
- if(IsPlayerInRangeOfPoint(r,15,FX,FY,Z))
- {
- if(VZA >= VZAB-60 && VZA <= VZAB+60)
- {
- GameTextForPlayer(r,"~g~You are leading now.",1000,3);
- }
- }
- if(IsPlayerInRangeOfPoint(r,25,X,Y,Z))
- {
- if(SPD[i]+25 < SPD[r])
- {
- GameTextForPlayer(r,"~g~You are leading now.",1000,3);
- }
- }
- }
- return true;
- }
- }
- return true;
- }
- GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
- { // Created by Y_Less
- new Float:a;
- GetPlayerPos(playerid, x, y, a);
- GetPlayerFacingAngle(playerid, a);
- if (GetPlayerVehicleID(playerid)) {
- GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
- }
- x += (distance * floatsin(-a, degrees));
- y += (distance * floatcos(-a, degrees));
- }
Add Comment
Please, Sign In to add comment