I rather use my own
Code:
CMD:aduty(playerid, params[]) { new id; if(IsAdmin(playerid)) { if(IsOnAdminDuty(playerid)) { PlayerInfo[playerid][pAdminDuty] = 0; SendClientMessage(playerid, COLOR_YELLOW, "You are now off duty."); DestroyDynamic3DTextLabel(PlayerAdminLabel[playerid]); } else { PlayerAdminLabel[playerid] = CreateDynamic3DTextLabel(ReturnAdminLevel(playerid), 0xFFA500FF, 0.0, 0.0, 0.1, 5.0, .attachedplayer = playerid, .testlos = 1); SendClientMessageEx(playerid, COLOR_YELLOW, "You are now on duty as a %s", ReturnAdminLevel(id)); PlayerInfo[playerid][pAdminDuty] = 1; } } else return SendClientMessage(playerid, COLOR_RED, "ERROR: You are not an Administrator!"); return 1; } |
It's the same. Except you added if statements filled by variables from your gamemode, things I don't have. And used my code
|
new PlayerText3D:PlayerAdminLabel[MAX_PLAYERS]; ReturnAdminLevel(playerid) { new string[64] ; switch (PlayerInfo[playerid][pAdmin]) { case 1: string= "Moderator"; case 2: string= "Game Administrator"; case 3: string= "Lead Administrator"; case 4: string= "Server Manager"; default: string= "Undefined"; } return string; } CMD:aduty(playerid, params[]) { new id; if(IsAdmin(playerid)) { if(IsOnAdminDuty(playerid)) { PlayerInfo[playerid][pAdminDuty] = 0; SendClientMessage(playerid, COLOR_YELLOW, "You are now off duty."); DestroyDynamic3DTextLabel(PlayerAdminLabel[playerid]); } else { PlayerAdminLabel[playerid] = CreateDynamic3DTextLabel(ReturnAdminLevel(playerid), 0xFFA500FF, 0.0, 0.0, 0.1, 5.0, .attachedplayer = playerid, .testlos = 1); SendClientMessageEx(playerid, COLOR_YELLOW, "You are now on duty as a %s", ReturnAdminLevel(id)); PlayerInfo[playerid][pAdminDuty] = 1; } } else return SendClientMessage(playerid, COLOR_RED, "ERROR: You are not an Administrator!"); return 1; }
new PlayerText3D:PlayerAdminLabel[MAX_PLAYERS];
new Text3D:PlayerAdminLabel[MAX_PLAYERS]; ReturnAdminLevel(playerid) { new string[64] ; switch (PlayerInfo[playerid][pAdmin]) { case 1: string= "Moderator"; case 2: string= "Game Administrator"; case 3: string= "Lead Administrator"; case 4: string= "Server Manager"; default: string= "Undefined"; } return string; } CMD:aduty(playerid, params[]) { new id; if(IsAdmin(playerid)) { if(IsOnAdminDuty(playerid)) { PlayerInfo[playerid][pAdminDuty] = 0; SendClientMessage(playerid, COLOR_YELLOW, "You are now off duty."); DestroyDynamic3DTextLabel(Text3D:PlayerAdminLabel[MAX_PLAYERS]); } else { Text3D:PlayerAdminLabel = CreateDynamic3DTextLabel(ReturnAdminLevel(playerid), 0xFFA500FF, 0.0, 0.0, 0.1, 5.0, .attachedplayer = playerid, .testlos = 1); SendClientMessageEx(playerid, COLOR_YELLOW, "You are now on duty as a %s", ReturnAdminLevel(id)); PlayerInfo[playerid][pAdminDuty] = 1; } } else return SendClientMessage(playerid, COLOR_RED, "ERROR: You are not an Administrator!"); return 1; }
CMD:aduty(playerid, params[])
{
new id;
if(IsAdmin(playerid))
{
if(IsOnAdminDuty(playerid))
{
PlayerInfo[playerid][pAdminDuty] = 0;
SendClientMessage(playerid, COLOR_YELLOW, "You are now off duty.");
DestroyDynamic3DTextLabel(PlayerAdminLabel[playerid]);
}
else
{
PlayerAdminLabel[playerid] = CreateDynamic3DTextLabel(ReturnAdminLevel(playerid), 0xFFA500FF, 0, 0, 0, 40.0, playerid, INVALID_VEHICLE_ID, 0, -1, -1, -1, 100.0);
PlayerInfo[playerid][pAdminDuty] = 1;
SendClientMessageEx(playerid, COLOR_YELLOW, "You are now on duty as a %s", ReturnAdminLevel(id));
}
}
else
return SendClientMessage(playerid, COLOR_RED, "ERROR: You are not an Administrator!");
return 1;
}
pawn Code:
|
#include <a_samp> #include <zcmd> #include <streamer> new Text3D:PlayerAdminLabel[MAX_PLAYERS]; ReturnAdminLevel(playerid) { new string[64] ; switch (pInfo[playerid][Admin]) { case 1: string= "Moderator"; case 2: string= "Game Administrator"; case 3: string= "Lead Administrator"; case 4: string= "Server Manager"; default: string= "Undefined"; } return string; } CMD:aduty(playerid, params[]) { if(IsAdmin(playerid)) { if(IsOnAdminDuty(playerid)) { if(IsValidDynamic3DTextLabel(PlayerAdminLabel[playerid])) DestroyDynamic3DTextLabel(PlayerAdminLabel[playerid]); PlayerInfo[playerid][pAdminDuty] = 0; SendClientMessage(playerid, COLOR_YELLOW, "You are now off duty."); } else { PlayerAdminLabel[playerid] = CreateDynamic3DTextLabel(ReturnAdminLevel(playerid), 0x8CAA63FF, 0.0, 0.0, 0.1, 5.0, .attachedplayer = playerid, .testlos = 1); SendClientMessage(playerid, COLOR_YELLOW, "You are now on duty as a %s", ReturnAdminLevel(playerid)); PlayerInfo[playerid][pAdminDuty] = 1; } } else return SendClientMessage(playerid, COLOR_RED, "ERROR: You are not an Administrator!"); return 1; }
This does work, but how do I make it so the tag stays put if I come closer? Right now if I go further away the tag moves up
|
PlayerAdminLabel[playerid] = CreateDynamic3DTextLabel(ReturnAdminLevel(playerid), 0x8CAA63FF, 0.0, 0.0, 0.1, 12.0 /*Change the 12 to whatever radius you want, 12 is already a good range*/, .attachedplayer = playerid, .testlos = 1);
Code:
#include <a_samp> #include <zcmd> #include <streamer> new Text3D:PlayerAdminLabel[MAX_PLAYERS]; ReturnAdminLevel(playerid) { new string[64] ; switch (pInfo[playerid][Admin]) { case 1: string= "Moderator"; case 2: string= "Game Administrator"; case 3: string= "Lead Administrator"; case 4: string= "Server Manager"; default: string= "Undefined"; } return string; } CMD:aduty(playerid, params[]) { if(IsAdmin(playerid)) { if(IsOnAdminDuty(playerid)) { if(IsValidDynamic3DTextLabel(PlayerAdminLabel[playerid])) DestroyDynamic3DTextLabel(PlayerAdminLabel[playerid]); PlayerInfo[playerid][pAdminDuty] = 0; SendClientMessage(playerid, COLOR_YELLOW, "You are now off duty."); } else { PlayerAdminLabel[playerid] = CreateDynamic3DTextLabel(ReturnAdminLevel(playerid), 0x8CAA63FF, 0.0, 0.0, 0.1, 5.0, .attachedplayer = playerid, .testlos = 1); SendClientMessage(playerid, COLOR_YELLOW, "You are now on duty as a %s", ReturnAdminLevel(playerid)); PlayerInfo[playerid][pAdminDuty] = 1; } } else return SendClientMessage(playerid, COLOR_RED, "ERROR: You are not an Administrator!"); return 1; } Then: Play with the draw distance argument in the native: CreateDynamic3DTextLabel(const text[], color, Float: x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0); So it will become: pawn Code:
|
No, it does work on diff ids, I've tried it myself.
Everything works. Cheers. |