|
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. |