Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <sscanf2>
- #include <zcmd>
- new Text:Map[4], Text:PlayerDraw[MAX_PLAYERS], Text:StatsDraw[MAX_PLAYERS];
- new bool:ShowMap[MAX_PLAYERS];
- public OnFilterScriptInit()
- {
- Map[0] = TextDrawCreate(330.000030, 263.681488, "samaps:map");
- TextDrawLetterSize(Map[0], 0.000000, 0.000000);
- TextDrawTextSize(Map[0], 149.000000, 98.000000);
- TextDrawAlignment(Map[0], 1);
- TextDrawColor(Map[0], -1);
- TextDrawSetShadow(Map[0], 0);
- TextDrawSetOutline(Map[0], 0);
- TextDrawBackgroundColor(Map[0], 255);
- TextDrawFont(Map[0], 4);
- TextDrawSetProportional(Map[0], 0);
- TextDrawSetShadow(Map[0], 0);
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- if(ShowMap[playerid]) UpdateMap(playerid);
- return 1;
- }
- stock CheckMapCords(Float:x, Float:y, &Float:X, &Float:Y)
- {
- // velikost mapy td = 151.000000, 138.000000
- // pozice levého horního td = 324.500000, 249.937500
- X = clamp(x, -3000, 3000) * (149 / 6000) + 330.0 + 149/2; // x velikost mapy, x souřadnice levého td
- Y = -clamp(y, 0, 3000) * (98 / 6000) + 263.681488 + 98/2; // y velikost mapy, y souřadnice levého td
- }
- stock CreatePlayerMapDraws(playerid,giveplayerid)
- {
- if(!ShowMap[playerid]) return 1;
- new string[50], Float:x, Float:y, Float:z, Float:Pos_X, Float:Pos_Y;
- GetPlayerPos(giveplayerid, x, y, z);
- CheckMapCords(x, y, Pos_X, Pos_Y);
- PlayerDraw[playerid] = TextDrawCreate(Pos_X, Pos_Y, ".");
- TextDrawFont(PlayerDraw[playerid], 1);
- TextDrawLetterSize(PlayerDraw[playerid], 0.49, 2.9);
- TextDrawColor(PlayerDraw[playerid], 0xFAAA3CFF);
- TextDrawSetOutline(PlayerDraw[playerid], 1);
- new Name[24];
- GetPlayerName(giveplayerid,Name,24);
- format(string, sizeof(string), "Marker", giveplayerid, Name);
- StatsDraw[playerid] = TextDrawCreate(Pos_X-10, Pos_Y+10, string);
- TextDrawFont(StatsDraw[playerid], 1);
- TextDrawLetterSize(StatsDraw[playerid], 0.16, 0.6);
- TextDrawColor(StatsDraw[playerid], 0xFFFFFFFF);
- TextDrawSetOutline(StatsDraw[playerid], 1);
- TextDrawShowForPlayer(playerid, PlayerDraw[playerid]);
- TextDrawShowForPlayer(playerid, StatsDraw[playerid]);
- return true;
- }
- stock DestroyPlayerMapDraws(playerid)
- {
- TextDrawHideForAll(PlayerDraw[playerid]);
- TextDrawDestroy(PlayerDraw[playerid]);
- TextDrawHideForAll(StatsDraw[playerid]);
- TextDrawDestroy(StatsDraw[playerid]);
- return true;
- }
- stock UpdateMap(playerid)
- {
- if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING)
- {
- DestroyPlayerMapDraws(playerid);
- if(IsPlayerConnected(playerid))
- {
- CreatePlayerMapDraws(playerid,playerid);
- }
- }
- return true;
- }
- stock TogglePlayerMap(playerid, toggle)
- {
- if(toggle == 1)
- {
- if(!ShowMap[playerid])
- {
- new Float:X, Float:Y, Float:Z;
- GetPlayerCameraPos(playerid, X, Y, Z);
- if(X == -1795 && Y == 1735 && Z == -99) return SendClientMessage(playerid, -1, "");
- TextDrawShowForPlayer(playerid, Map[0]);
- TextDrawShowForPlayer(playerid, Map[1]);
- TextDrawShowForPlayer(playerid, Map[2]);
- TextDrawShowForPlayer(playerid, Map[3]);
- ShowMap[playerid] = true;
- TextDrawShowForPlayer(playerid, PlayerDraw[playerid]);
- TextDrawShowForPlayer(playerid, StatsDraw[playerid]);
- }
- }
- else
- {
- TextDrawHideForPlayer(playerid, PlayerDraw[playerid]);
- TextDrawHideForPlayer(playerid, StatsDraw[playerid]);
- TextDrawHideForPlayer(playerid, Map[0]);
- TextDrawHideForPlayer(playerid, Map[1]);
- TextDrawHideForPlayer(playerid, Map[2]);
- TextDrawHideForPlayer(playerid, Map[3]);
- ShowMap[playerid] = false;
- }
- return true;
- }
- CMD:su(playerid, params[])
- {
- if(!ShowMap[playerid])
- {
- if(sscanf(params,"d",params[0])) return SendClientMessage(playerid, -1, ": /su [ID]");
- if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid,-1,"");
- SetPVarInt(playerid,"give_id",params[0]);
- TogglePlayerMap(playerid, 1);
- }
- else
- {
- DeletePVar(playerid,"give_id");
- TogglePlayerMap(playerid, 0);
- SendClientMessage(playerid,-1,"");
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement