Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Filter-Script: TextDraw Map. by Robo_N1X
- /* NOTES:
- > This script only work for SA:MP 0.3d version!
- > Please don't change something here that you don't understand.
- > Credits: SA:MP Team, Zamaroth TextDraw Editor (Edited by MakuPL).
- > Please note that SA:MP has Textdraw limits, see http://wiki.sa-mp.com/wiki/Limits
- */
- #include <a_samp>
- #define VERSION "0.1 [February,2012]" // Don't change this
- #define PRESSED(%0) \
- (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0))) // Check pressed key
- #define TDMap_IconID 0 // Change this (0 to 99) if you already have another Map icon ID
- new Text:Map_Caption, // Header text
- Text:Map_North, // North icon
- Text:Map_Help, // Help textdraw
- Text:Map_TextDraw, // Map textdraw
- Text:Map_PlayerPos[MAX_PLAYERS], // Player coordinates text
- Text:Map_PlayerMark[MAX_PLAYERS], // Player waypoint
- Text:Map_Player[MAX_PLAYERS]; // Player icon in the map
- new Float:X,Float:Y,Float:Z,Float:A;
- new TDMapString[256]; // TextDraw Map String
- new UpdateTDMapTimerID; // TDMap ID
- forward UpdatePlayerTDMap(playerid);
- /* Map Border :
- > Player=X:194~450|Y:103~359
- > Marker=X:192~447|Y:112~367*/
- public OnFilterScriptInit()
- {
- Map_Caption = TextDrawCreate(196.00, 103.25, "San Andreas Map");
- TextDrawBackgroundColor(Map_Caption, 255);
- TextDrawFont(Map_Caption, 0);
- TextDrawLetterSize(Map_Caption, 0.50, 1.00);
- TextDrawColor(Map_Caption, -1);
- TextDrawSetOutline(Map_Caption, 1);
- TextDrawSetProportional(Map_Caption, 1);
- TextDrawUseBox(Map_Caption, 1);
- TextDrawBoxColor(Map_Caption, 127);
- TextDrawTextSize(Map_Caption, 448.00, 0.00);
- Map_North = TextDrawCreate(317.50, 102.50, "hud:radar_north");
- TextDrawBackgroundColor(Map_North, 255);
- TextDrawFont(Map_North, 4);
- TextDrawLetterSize(Map_North, 0.50, 1.00);
- TextDrawColor(Map_North, -1);
- TextDrawSetOutline(Map_North, 0);
- TextDrawSetProportional(Map_North, 1);
- TextDrawSetShadow(Map_North, 1);
- TextDrawUseBox(Map_North, 1);
- TextDrawBoxColor(Map_North, 255);
- TextDrawTextSize(Map_North, 10.00, 10.00);
- Map_Help = TextDrawCreate(419.00, 102.50, "~w~Press ~b~~h~AIM~w~/~b~~h~2~w~ key~n~ to mark/unmark");
- TextDrawAlignment(Map_Help, 2);
- TextDrawBackgroundColor(Map_Help, 255);
- TextDrawFont(Map_Help, 2);
- TextDrawLetterSize(Map_Help, 0.15, 0.45);
- TextDrawColor(Map_Help, -65);
- TextDrawSetOutline(Map_Help, 0);
- TextDrawSetProportional(Map_Help, 1);
- TextDrawSetShadow(Map_Help, 1);
- Map_TextDraw = TextDrawCreate(194.00, 114.00, "samaps:map");
- TextDrawBackgroundColor(Map_TextDraw, 255);
- TextDrawFont(Map_TextDraw, 4);
- TextDrawLetterSize(Map_TextDraw, 0.50, 1.00);
- TextDrawColor(Map_TextDraw, -129);
- TextDrawSetOutline(Map_TextDraw, 0);
- TextDrawSetProportional(Map_TextDraw, 1);
- TextDrawSetShadow(Map_TextDraw, 1);
- TextDrawUseBox(Map_TextDraw, 1);
- TextDrawBoxColor(Map_TextDraw, 255);
- TextDrawTextSize(Map_TextDraw, 256.00, 256.00);
- UpdateTDMapTimerID=SetTimer("UpdatePlayerTDMap",500,true);
- printf(" [FS] TextDraw-Map (v%s): Succesfully loaded!",VERSION);
- return 1;
- }
- public OnFilterScriptExit()
- {
- TextDrawHideForAll(Map_Caption);
- TextDrawHideForAll(Map_North);
- TextDrawHideForAll(Map_Help);
- TextDrawHideForAll(Map_TextDraw);
- TextDrawDestroy(Map_North);
- TextDrawDestroy(Map_Help);
- TextDrawDestroy(Map_TextDraw);
- for(new i = 0; i < MAX_PLAYERS && IsPlayerConnected(i); i++)
- {
- DeletePVar(i,"OpenedMap");
- if(GetPVarInt(i,"Marked") == 1) { RemovePlayerMapIcon(i,TDMap_IconID); }
- DeletePVar(i,"Marked");
- TextDrawHideForAll(Map_PlayerPos[i]);
- TextDrawHideForAll(Map_PlayerMark[i]);
- TextDrawHideForAll(Map_Player[i]);
- TextDrawDestroy(Map_PlayerPos[i]);
- TextDrawDestroy(Map_PlayerMark[i]);
- TextDrawDestroy(Map_Player[i]);
- }
- KillTimer(UpdateTDMapTimerID);
- print(" [FS] TextDraw-Map: Succesfully unloaded!");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- Map_PlayerPos[playerid] = TextDrawCreate(322.00, 371.50, "X[0000.0000] Y[0000.0000] Z[0000.0000] A[000.0000]");
- TextDrawAlignment(Map_PlayerPos[playerid], 2);
- TextDrawBackgroundColor(Map_PlayerPos[playerid], 255);
- TextDrawFont(Map_PlayerPos[playerid], 1);
- TextDrawLetterSize(Map_PlayerPos[playerid], 0.20, 0.40);
- TextDrawColor(Map_PlayerPos[playerid], -1);
- TextDrawSetOutline(Map_PlayerPos[playerid], 0);
- TextDrawSetProportional(Map_PlayerPos[playerid], 1);
- TextDrawSetShadow(Map_PlayerPos[playerid], 1);
- TextDrawUseBox(Map_PlayerPos[playerid], 1);
- TextDrawBoxColor(Map_PlayerPos[playerid], 127);
- TextDrawTextSize(Map_PlayerPos[playerid], 0.00, 252.00);
- Map_PlayerMark[playerid] = TextDrawCreate(320.00, 240.00, "hud:radar_waypoint");
- TextDrawBackgroundColor(Map_PlayerMark[playerid], 255);
- TextDrawFont(Map_PlayerMark[playerid], 4);
- TextDrawLetterSize(Map_PlayerMark[playerid], 0.50, 1.00);
- TextDrawColor(Map_PlayerMark[playerid], -1);
- TextDrawSetOutline(Map_PlayerMark[playerid], 0);
- TextDrawSetProportional(Map_PlayerMark[playerid], 1);
- TextDrawSetShadow(Map_PlayerMark[playerid], 1);
- TextDrawUseBox(Map_PlayerMark[playerid], 1);
- TextDrawBoxColor(Map_PlayerMark[playerid], 255);
- TextDrawTextSize(Map_PlayerMark[playerid], 5.00, 5.00);
- Map_Player[playerid] = TextDrawCreate(323.00, 231.50, ".");
- TextDrawAlignment(Map_Player[playerid], 2);
- TextDrawBackgroundColor(Map_Player[playerid], 255);
- TextDrawFont(Map_Player[playerid], 2);
- TextDrawLetterSize(Map_Player[playerid], 0.35, 1.50);
- TextDrawColor(Map_Player[playerid], -1);
- TextDrawSetOutline(Map_Player[playerid], 1);
- TextDrawSetProportional(Map_Player[playerid], 1);
- return 1;
- }
- public OnPlayerDisconnect(playerid,reason)
- {
- DeletePVar(playerid,"OpenedMap");
- if(GetPVarInt(playerid,"Marked") == 1) { RemovePlayerMapIcon(playerid,TDMap_IconID); }
- DeletePVar(playerid,"Marked");
- TextDrawHideForPlayer(playerid,Map_Caption);
- TextDrawHideForPlayer(playerid,Map_North);
- TextDrawHideForPlayer(playerid,Map_Help);
- TextDrawHideForPlayer(playerid,Map_TextDraw);
- TextDrawHideForPlayer(playerid,Map_PlayerPos[playerid]);
- TextDrawHideForPlayer(playerid,Map_PlayerMark[playerid]);
- TextDrawHideForPlayer(playerid,Map_Player[playerid]);
- TextDrawDestroy(Map_PlayerPos[playerid]);
- TextDrawDestroy(Map_PlayerMark[playerid]);
- TextDrawDestroy(Map_Player[playerid]);
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(PRESSED(KEY_YES))
- {
- if(GetPVarInt(playerid,"OpenedMap") == 0)
- {
- TextDrawShowForPlayer(playerid,Map_Caption);
- TextDrawShowForPlayer(playerid,Map_North);
- TextDrawShowForPlayer(playerid,Map_Help);
- TextDrawShowForPlayer(playerid,Map_TextDraw);
- TextDrawShowForPlayer(playerid,Map_PlayerPos[playerid]);
- if(GetPVarInt(playerid,"Marked") == 1) { TextDrawShowForPlayer(playerid,Map_PlayerMark[playerid]); }
- TextDrawShowForPlayer(playerid,Map_Player[playerid]);
- SetPVarInt(playerid,"OpenedMap",1);
- }
- else
- {
- TextDrawHideForPlayer(playerid,Map_Caption);
- TextDrawHideForPlayer(playerid,Map_North);
- TextDrawHideForPlayer(playerid,Map_Help);
- TextDrawHideForPlayer(playerid,Map_TextDraw);
- TextDrawHideForPlayer(playerid,Map_PlayerPos[playerid]);
- TextDrawHideForPlayer(playerid,Map_PlayerMark[playerid]);
- TextDrawHideForPlayer(playerid,Map_Player[playerid]);
- SetPVarInt(playerid,"OpenedMap",0);
- }
- }
- if(((PRESSED(128) && !IsPlayerInAnyVehicle(playerid)) || (PRESSED(KEY_SUBMISSION))) && GetPVarInt(playerid,"OpenedMap") == 1)
- {
- GetPlayerPos(playerid,X,Y,Z);
- if(GetPVarInt(playerid,"Marked") == 0)
- {
- TextDrawHideForPlayer(playerid,Map_PlayerMark[playerid]);
- TextDrawDestroy(Map_PlayerMark[playerid]);
- new Float:ResultX=320.00+(X/23.4375);
- new Float:ResultY=240.00-(Y/23.4375);
- if(ResultX > 447.00) ResultX=447.00;
- else if(ResultX < 192.00) ResultX=192.00;
- if(ResultY > 367.00) ResultY=357.00;
- else if(ResultY < 112.00) ResultY=112.00;
- Map_PlayerMark[playerid] = TextDrawCreate(ResultX, ResultY, "hud:radar_waypoint");
- TextDrawBackgroundColor(Map_PlayerMark[playerid], 255);
- TextDrawFont(Map_PlayerMark[playerid], 4);
- TextDrawLetterSize(Map_PlayerMark[playerid], 0.50, 1.00);
- TextDrawColor(Map_PlayerMark[playerid], -1);
- TextDrawSetOutline(Map_PlayerMark[playerid], 0);
- TextDrawSetProportional(Map_PlayerMark[playerid], 1);
- TextDrawSetShadow(Map_PlayerMark[playerid], 1);
- TextDrawUseBox(Map_PlayerMark[playerid], 1);
- TextDrawBoxColor(Map_PlayerMark[playerid], 255);
- TextDrawTextSize(Map_PlayerMark[playerid], 5.00, 5.00);
- TextDrawShowForPlayer(playerid,Map_PlayerMark[playerid]);
- SetPlayerMapIcon(playerid,TDMap_IconID,X,Y,Z,41,-1,MAPICON_GLOBAL);
- PlayerPlaySound(playerid,1083,X,Y,Z);
- SetPVarInt(playerid,"Marked",1);
- }
- else
- {
- TextDrawHideForPlayer(playerid,Map_PlayerMark[playerid]);
- RemovePlayerMapIcon(playerid,TDMap_IconID);
- PlayerPlaySound(playerid,1084,X,Y,Z);
- SetPVarInt(playerid,"Marked",0);
- }
- }
- return 1;
- }
- public UpdatePlayerTDMap(playerid)
- {
- if(IsPlayerConnected(playerid) && GetPVarInt(playerid,"OpenedMap") == 1)
- {
- if(IsPlayerInAnyVehicle(playerid))
- {
- GetVehiclePos(GetPlayerVehicleID(playerid),X,Y,Z);
- GetVehicleZAngle(GetPlayerVehicleID(playerid),A);
- }
- else
- {
- GetPlayerPos(playerid,X,Y,Z);
- GetPlayerFacingAngle(playerid,A);
- }
- TextDrawHideForPlayer(playerid,Map_Player[playerid]);
- TextDrawDestroy(Map_Player[playerid]);
- new Float:ResultX=323.00+(X/23.4375);
- new Float:ResultY=231.50-(Y/23.4375);
- if(ResultX > 450.00) ResultX=450.00;
- else if(ResultX < 194.00) ResultX=194.00;
- if(ResultY > 359.00) ResultY=359.00;
- else if(ResultY < 103.00) ResultY=103.00;
- Map_Player[playerid] = TextDrawCreate(ResultX, ResultY, ".");
- TextDrawAlignment(Map_Player[playerid], 2);
- TextDrawBackgroundColor(Map_Player[playerid], 255);
- TextDrawFont(Map_Player[playerid], 2);
- TextDrawLetterSize(Map_Player[playerid], 0.35, 1.50);
- TextDrawColor(Map_Player[playerid], -1);
- TextDrawSetOutline(Map_Player[playerid], 1);
- TextDrawSetProportional(Map_Player[playerid], 1);
- TextDrawShowForPlayer(playerid,Map_PlayerPos[playerid]);
- format(TDMapString,sizeof(TDMapString),"X[%.4f] Y[%.4f] Z[%.4f] A[%.4f]",X,Y,Z,A);
- TextDrawSetString(Map_PlayerPos[playerid],TDMapString);
- TextDrawShowForPlayer(playerid,Map_Player[playerid]);
- }
- return 1;
- }
- // EOF [275 Lines]
Advertisement
Add Comment
Please, Sign In to add comment