Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Navigation Filterscript © 2010 by ZKX v1.1
- >>>>>>>>>>>>>>>>Credits<<<<<<<<<<<<<<<<
- ZKX for creating this Include!
- SA:MP for Function list!
- CuervO_NegrO for floatsqroot!
- >>>>>>>>>>>>>>>>Credits<<<<<<<<<<<<<<<<
- native ZKX_OnGameModeInit();
- native ZKX_OnPlayerConnect(playerid);
- native ZKX_OnPlayerStateChange(playerid, newstate);
- native ZKX_SetGPSSystemOn(playerid);
- native ZKX_SetGPSSystemOff(playerid);
- native ZKX_SetRoute(playerid, Float:x1, Float:y1, Float:z1);
- */
- #include <a_samp>
- #pragma tabsize 0
- new Text:ZKX_TD_Titel[MAX_PLAYERS],Text:ZKX_TD_GPSBox[MAX_PLAYERS],Text:ZKX_TD_Distanz[MAX_PLAYERS],Text:ZKX_TD_SLinks[MAX_PLAYERS],Text:ZKX_TD_SRechts[MAX_PLAYERS];
- new Text:ZKX_TD_Wenden[MAX_PLAYERS],Text:ZKX_TD_Geradeaus[MAX_PLAYERS],Text:ZKX_TD_Ziel[MAX_PLAYERS],Text:ZKX_TD_Links[MAX_PLAYERS],Text:ZKX_TD_Rechts[MAX_PLAYERS];
- enum ZKX_Zielort_
- {
- Float:GPS_X,
- Float:GPS_Y,
- Float:GPS_Z
- };
- new Float:ZKX_Zielort[MAX_PLAYERS][ZKX_Zielort_],z_Navi_ON[MAX_PLAYERS];
- forward ZKX_GPSTimer();
- forward ZKX_SetRoute(playerid, Float:x1, Float:y1, Float:z1);
- public OnGameModeInit()
- {
- SetTimer("ZKX_GPSTimer",250,true);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- ZKX_TD_Titel[playerid] = TextDrawCreate(40.000000,279.000000,"~y~]~w~GPS System~y~]");
- ZKX_TD_GPSBox[playerid] = TextDrawCreate(35.000000,287.000000,".");
- ZKX_TD_Distanz[playerid] = TextDrawCreate(70.000000,298.000000,"5000~n~Meter");
- ZKX_TD_SLinks[playerid] = TextDrawCreate(34.000000,299.000000,"~<~~<~");
- ZKX_TD_SRechts[playerid] = TextDrawCreate(118.000000,299.000000,"~>~~>~");
- ZKX_TD_Links[playerid] = TextDrawCreate(48.000000,299.000000,"~<~");
- ZKX_TD_Rechts[playerid] = TextDrawCreate(118.000000,299.000000,"~>~");
- ZKX_TD_Wenden[playerid] = TextDrawCreate(85.000000,317.000000,"~d~");
- ZKX_TD_Geradeaus[playerid] = TextDrawCreate(86.000000,289.000000,"~u~");
- ZKX_TD_Ziel[playerid] = TextDrawCreate(55.000000,303.000000,"Ziel erreicht!");
- TextDrawUseBox(Text:ZKX_TD_GPSBox[playerid],1);
- TextDrawBoxColor(Text:ZKX_TD_GPSBox[playerid],0x00000099);
- TextDrawTextSize(Text:ZKX_TD_GPSBox[playerid],142.000000,0.000000);
- TextDrawAlignment(Text:ZKX_TD_Titel[playerid],0);
- TextDrawAlignment(Text:ZKX_TD_GPSBox[playerid],0);
- TextDrawAlignment(Text:ZKX_TD_Distanz[playerid],0);
- TextDrawAlignment(Text:ZKX_TD_SLinks[playerid],0);
- TextDrawAlignment(Text:ZKX_TD_SRechts[playerid],0);
- TextDrawAlignment(Text:ZKX_TD_Links[playerid],0);
- TextDrawAlignment(Text:ZKX_TD_Rechts[playerid],0);
- TextDrawAlignment(Text:ZKX_TD_Wenden[playerid],0);
- TextDrawAlignment(Text:ZKX_TD_Geradeaus[playerid],0);
- TextDrawAlignment(Text:ZKX_TD_Ziel[playerid],0);
- TextDrawBackgroundColor(Text:ZKX_TD_Titel[playerid],0x000000ff);
- TextDrawBackgroundColor(Text:ZKX_TD_GPSBox[playerid],0x000000ff);
- TextDrawBackgroundColor(Text:ZKX_TD_Distanz[playerid],0x000000ff);
- TextDrawBackgroundColor(Text:ZKX_TD_SLinks[playerid],0x000000ff);
- TextDrawBackgroundColor(Text:ZKX_TD_SRechts[playerid],0x000000ff);
- TextDrawBackgroundColor(Text:ZKX_TD_Links[playerid],0x000000ff);
- TextDrawBackgroundColor(Text:ZKX_TD_Rechts[playerid],0x000000ff);
- TextDrawBackgroundColor(Text:ZKX_TD_Wenden[playerid],0x000000ff);
- TextDrawBackgroundColor(Text:ZKX_TD_Geradeaus[playerid],0x000000ff);
- TextDrawBackgroundColor(Text:ZKX_TD_Ziel[playerid],0x000000ff);
- TextDrawFont(Text:ZKX_TD_Titel[playerid],2);
- TextDrawLetterSize(Text:ZKX_TD_Titel[playerid],0.299999,1.300000);
- TextDrawFont(Text:ZKX_TD_GPSBox[playerid],1);
- TextDrawLetterSize(Text:ZKX_TD_GPSBox[playerid],-0.000000,4.400000);
- TextDrawFont(Text:ZKX_TD_Distanz[playerid],1);
- TextDrawLetterSize(Text:ZKX_TD_Distanz[playerid],0.399999,1.000000);
- TextDrawFont(Text:ZKX_TD_SLinks[playerid],3);
- TextDrawLetterSize(Text:ZKX_TD_SLinks[playerid],1.000000,1.400000);
- TextDrawFont(Text:ZKX_TD_SRechts[playerid],3);
- TextDrawLetterSize(Text:ZKX_TD_SRechts[playerid],0.599999,1.400000);
- TextDrawFont(Text:ZKX_TD_Links[playerid],3);
- TextDrawLetterSize(Text:ZKX_TD_Links[playerid],1.000000,1.400000);
- TextDrawFont(Text:ZKX_TD_Rechts[playerid],3);
- TextDrawLetterSize(Text:ZKX_TD_Rechts[playerid],1.000000,1.400000);
- TextDrawFont(Text:ZKX_TD_Wenden[playerid],1);
- TextDrawLetterSize(Text:ZKX_TD_Wenden[playerid],0.299999,1.000000);
- TextDrawFont(Text:ZKX_TD_Geradeaus[playerid],3);
- TextDrawLetterSize(Text:ZKX_TD_Geradeaus[playerid],1.000000,1.000000);
- TextDrawFont(Text:ZKX_TD_Ziel[playerid],2);
- TextDrawLetterSize(Text:ZKX_TD_Ziel[playerid],0.199999,0.799999);
- TextDrawColor(Text:ZKX_TD_Titel[playerid],0xffffffff);
- TextDrawColor(Text:ZKX_TD_GPSBox[playerid],0xffffffff);
- TextDrawColor(Text:ZKX_TD_Distanz[playerid],0xffffff99);
- TextDrawColor(Text:ZKX_TD_SLinks[playerid],0xffffffff);
- TextDrawColor(Text:ZKX_TD_SRechts[playerid],0xffffffff);
- TextDrawColor(Text:ZKX_TD_Links[playerid],0xffffffff);
- TextDrawColor(Text:ZKX_TD_Rechts[playerid],0xffffffff);
- TextDrawColor(Text:ZKX_TD_Wenden[playerid],0xffffffff);
- TextDrawColor(Text:ZKX_TD_Geradeaus[playerid],0xffffffff);
- TextDrawColor(Text:ZKX_TD_Ziel[playerid],0x00ff00ff);
- TextDrawSetOutline(Text:ZKX_TD_Titel[playerid],1);
- TextDrawSetOutline(Text:ZKX_TD_GPSBox[playerid],1);
- TextDrawSetOutline(Text:ZKX_TD_Distanz[playerid],1);
- TextDrawSetOutline(Text:ZKX_TD_SLinks[playerid],1);
- TextDrawSetOutline(Text:ZKX_TD_SRechts[playerid],1);
- TextDrawSetOutline(Text:ZKX_TD_Links[playerid],1);
- TextDrawSetOutline(Text:ZKX_TD_Rechts[playerid],1);
- TextDrawSetOutline(Text:ZKX_TD_Wenden[playerid],1);
- TextDrawSetOutline(Text:ZKX_TD_Geradeaus[playerid],1);
- TextDrawSetOutline(Text:ZKX_TD_Ziel[playerid],1);
- TextDrawSetProportional(Text:ZKX_TD_Titel[playerid],1);
- TextDrawSetProportional(Text:ZKX_TD_GPSBox[playerid],1);
- TextDrawSetProportional(Text:ZKX_TD_Distanz[playerid],1);
- TextDrawSetProportional(Text:ZKX_TD_SLinks[playerid],1);
- TextDrawSetProportional(Text:ZKX_TD_SRechts[playerid],1);
- TextDrawSetProportional(Text:ZKX_TD_Links[playerid],1);
- TextDrawSetProportional(Text:ZKX_TD_Rechts[playerid],1);
- TextDrawSetProportional(Text:ZKX_TD_Wenden[playerid],1);
- TextDrawSetProportional(Text:ZKX_TD_Geradeaus[playerid],1);
- TextDrawSetProportional(Text:ZKX_TD_Ziel[playerid],1);
- TextDrawSetShadow(Text:ZKX_TD_Titel[playerid],1);
- TextDrawSetShadow(Text:ZKX_TD_GPSBox[playerid],1);
- TextDrawSetShadow(Text:ZKX_TD_Distanz[playerid],1);
- TextDrawSetShadow(Text:ZKX_TD_SLinks[playerid],1);
- TextDrawSetShadow(Text:ZKX_TD_SRechts[playerid],1);
- TextDrawSetShadow(Text:ZKX_TD_Links[playerid],1);
- TextDrawSetShadow(Text:ZKX_TD_Rechts[playerid],1);
- TextDrawSetShadow(Text:ZKX_TD_Wenden[playerid],1);
- TextDrawSetShadow(Text:ZKX_TD_Geradeaus[playerid],1);
- TextDrawSetShadow(Text:ZKX_TD_Ziel[playerid],1);
- z_Navi_ON[playerid] = 0;
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate)
- {
- if(newstate == PLAYER_STATE_DRIVER)
- {
- if(z_Navi_ON[playerid] == 1)
- {
- TextDrawShowForPlayer(playerid,Text:ZKX_TD_Titel[playerid]);
- TextDrawShowForPlayer(playerid,Text:ZKX_TD_GPSBox[playerid]);
- TextDrawShowForPlayer(playerid,Text:ZKX_TD_Distanz[playerid]);
- }
- }
- return 1;
- }
- ZKX_SetGPSSystemOn(playerid)
- {
- z_Navi_ON[playerid] = 1;
- return 1;
- }
- ZKX_SetGPSSystemOff(playerid)
- {
- z_Navi_ON[playerid] = 0;
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Titel[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_GPSBox[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Distanz[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SLinks[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SRechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Links[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Rechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Wenden[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Geradeaus[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Ziel[playerid]);
- return 1;
- }
- public ZKX_GPSTimer()
- {
- for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
- {
- if(IsPlayerConnected(playerid))
- {
- if(IsPlayerInAnyVehicle(playerid))
- {
- if(z_Navi_ON[playerid] == 1)
- {
- z_Navi_ON[playerid] = 1;
- ZKX_SetRoute(playerid,ZKX_Zielort[playerid][GPS_X],ZKX_Zielort[playerid][GPS_Y],ZKX_Zielort[playerid][GPS_Z]);
- }
- else if(z_Navi_ON[playerid] == 0)
- {
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Titel[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_GPSBox[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Distanz[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SLinks[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SRechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Links[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Rechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Wenden[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Geradeaus[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Ziel[playerid]);
- return 1;
- }
- return 1;
- }
- }
- }
- return 1;
- }
- stock ZKX_SetRoute(playerid, Float:x1, Float:y1, Float:z1)
- {
- ZKX_Zielort[playerid][GPS_X] = x1;
- ZKX_Zielort[playerid][GPS_Y] = y1;
- ZKX_Zielort[playerid][GPS_Z] = z1;
- if(IsPlayerInAnyVehicle(playerid)&&z_Navi_ON[playerid] == 1)
- {
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_GPSBox[playerid]);
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_Titel[playerid]);
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_Distanz[playerid]);
- new Float:zAchse1,Float:zAchse2,Float:sDistanz,Float:x2, Float:y2, Float:z2,Distanzstring[256],Float:Richtung;
- GetVehiclePos(GetPlayerVehicleID(playerid), x2, y2, z2);
- GetVehicleZAngle(GetPlayerVehicleID(playerid), zAchse1);
- sDistanz = floatsqroot(floatpower(floatabs(floatsub(x1,x2)),2)+floatpower(floatabs(floatsub(y1,y2)),2)+floatpower(floatabs(floatsub(z1,z2)),2));
- if( (y1-y2) >= 0.0) zAchse2 = acos((x1-x2)/sDistanz) - 90;
- else zAchse2 = 270 - acos((x1-x2)/sDistanz);
- Richtung = 360.0 - zAchse1 + zAchse2;
- if(Richtung >= 360.0) Richtung = Richtung - 360.0;
- else if(Richtung < 0.0) Richtung = Richtung + 360.0;
- format(Distanzstring,sizeof(Distanzstring),"%d ~n~Meter", floatround(sDistanz));
- TextDrawSetString(Text:ZKX_TD_Distanz[playerid],Distanzstring);
- if(floatround(sDistanz) <= 25)
- {
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_Ziel[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Distanz[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SLinks[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SRechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Links[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Rechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Wenden[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Geradeaus[playerid]);
- return 0;
- }
- if(Richtung >= 330.0 || Richtung < 30.0)// ^^
- {
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SLinks[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SRechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Links[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Rechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Wenden[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Ziel[playerid]);
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_Geradeaus[playerid]);
- }
- else if(Richtung >= 30.0 && Richtung < 60.0)// <
- {
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SLinks[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SRechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Geradeaus[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Rechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Wenden[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Ziel[playerid]);
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_Links[playerid]);
- }
- else if(Richtung >= 60.0 && Richtung < 100.0)// <<
- {
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Geradeaus[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SRechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Links[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Rechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Wenden[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Ziel[playerid]);
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_SLinks[playerid]);
- }
- else if(Richtung >= 100.0 && Richtung < 150.0)// v>
- {
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SLinks[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SRechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Geradeaus[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Rechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Ziel[playerid]);
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_Links[playerid]);
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_Wenden[playerid]);
- }
- else if(Richtung >= 150.0 && Richtung < 210.0)// vv
- {
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SLinks[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SRechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Links[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Rechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Geradeaus[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Ziel[playerid]);
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_Wenden[playerid]);
- }
- else if(Richtung >= 210.0 && Richtung < 260.0)// >v
- {
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SLinks[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SRechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Links[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Geradeaus[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Ziel[playerid]);
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_Rechts[playerid]);
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_Wenden[playerid]);
- }
- else if(Richtung >= 260.0 && Richtung < 300.0)// >>
- {
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SLinks[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Geradeaus[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Links[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Rechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Wenden[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Ziel[playerid]);
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_SRechts[playerid]);
- }
- else if(Richtung >= 300.0 && Richtung < 330.0)// >
- {
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SLinks[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_SRechts[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Links[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Geradeaus[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Wenden[playerid]);
- TextDrawHideForPlayer(playerid, Text:ZKX_TD_Ziel[playerid]);
- TextDrawShowForPlayer(playerid, Text:ZKX_TD_Rechts[playerid]);
- }
- }
- else
- {
- z_Navi_ON[playerid] = 0;
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement