new Text3D:label1[MAX_PLAYERS]; new Text3D:label2[MAX_PLAYERS]; OnplayerSpawn: For Admins switch(PlayerInfo[playerid][Level]) { case 1: { label1[playerid] = Create3DTextLabel("(Tester)", lightblue,30.0,40.0,50.0,40.0,0); Attach3DTextLabelToPlayer(label1[playerid], playerid, 0.0, 0.0, 0.4); } case 2: { label1[playerid] = Create3DTextLabel("(Co-Moderator)", lightblue,30.0,40.0,50.0,40.0,0); Attach3DTextLabelToPlayer(label1[playerid], playerid, 0.0, 0.0, 0.4); } case 3: { label1[playerid] = Create3DTextLabel("(Moderator)", lightblue,30.0,40.0,50.0,40.0,0); Attach3DTextLabelToPlayer(label1[playerid], playerid, 0.0, 0.0, 0.4); } case 4: { label1[playerid] = Create3DTextLabel("(Admin)", lightblue,30.0,40.0,50.0,40.0,0); Attach3DTextLabelToPlayer(label1[playerid], playerid, 0.0, 0.0, 0.4); } case 5: { label1[playerid] = Create3DTextLabel("(Leader)", lightblue,30.0,40.0,50.0,40.0,0); Attach3DTextLabelToPlayer(label1[playerid], playerid, 0.0, 0.0, 0.4); } case 6: { label1[playerid] = Create3DTextLabel("(Manager/CEO)", lightblue,30.0,40.0,50.0,40.0,0); Attach3DTextLabelToPlayer(label1[playerid], playerid, 0.0, 0.0, 0.4); } } VIPS switch(PlayerInfo[playerid][pVip]) { case 1: { label2[playerid] = Create3DTextLabel("(Bronze VIP 1)", yellow,30.0,40.0,50.0,40.0,0); Attach3DTextLabelToPlayer(label2[playerid], playerid, 0.0, 0.0, 0.4); } case 2: { label2[playerid] = Create3DTextLabel("(Bronze VIP 2)", yellow,30.0,40.0,50.0,40.0,0); Attach3DTextLabelToPlayer(label2[playerid], playerid, 0.0, 0.0, 0.4); } case 3: { label2[playerid] = Create3DTextLabel("(Silver VIP 1)", yellow,30.0,40.0,50.0,40.0,0); Attach3DTextLabelToPlayer(label2[playerid], playerid, 0.0, 0.0, 0.4); } case 4: { label2[playerid] = Create3DTextLabel("(Silver VIP 2)", yellow,30.0,40.0,50.0,40.0,0); Attach3DTextLabelToPlayer(label2[playerid], playerid, 0.0, 0.0, 0.4); } case 5: { label2[playerid] = Create3DTextLabel("(Gold VIP 5)", yellow,30.0,40.0,50.0,40.0,0); Attach3DTextLabelToPlayer(label2[playerid], playerid, 0.0, 0.0, 0.4); } case 6: { label2[playerid] = Create3DTextLabel("(Premium VIP 6)", yellow,30.0,40.0,50.0,40.0,0); Attach3DTextLabelToPlayer(label2[playerid], playerid, 0.0, 0.0, 0.4); } } Onplayerdisconnect if(PlayerInfo[playerid][Level] > 0) Delete3DTextLabel(label1[playerid]); if(PlayerInfo[playerid][pVip] > 0) Delete3DTextLabel(label2[playerid]); |
// Make sure if you add levels change this defines and then add the respective level name into the correspond array below.
#define MAX_ADMIN_LEVELS 6
#define MAX_VIP_LEVELS 6
// This will work better instead of switching the player level/vip everytime he spawns.
new PlayerAdminLevelTagNames[MAX_ADMIN_LEVELS][] = {"Tester", "(Co-Moderator)", "(Moderator)", "(Admin)", "(Leader)", "(Manager/CEO)"},
PlayerVIPLevelTagNames[MAX_VIP_LEVELS][] = {"(Bronze VIP 1)", "(Bronze VIP 2)", "(Silver VIP 1)", "(Silver VIP 1)", "(Gold VIP 5)", "(Premium VIP 6)"},
Text3D:Admin_PlayerLabel[MAX_PLAYERS] = {Text3D:INVALID_3DTEXT_ID, ...},
Text3D:VIP_PlayerLabel[MAX_PLAYERS]= {Text3D:INVALID_3DTEXT_ID, ...}
;
public OnPlayerSpawn(playerid)
{
// If the player level is More than 0 And Less or equal to MAX_ADMIN_LEVELS and NO labels has been created for the player then..
if( 0 < PlayerInfo[playerid][Level] <= MAX_ADMIN_LEVELS && Admin_PlayerLabel[playerid] != Text3D:INVALID_3DTEXT_ID)
{
// Create the label with the corresponding level Name from the Array / NOTE: Only players in virtual world 0 will see the label!
Admin_PlayerLabel[playerid] = Create3DTextLabel(PlayerAdminLevelTagNames[PlayerInfo[playerid][Level] - 1], lightblue, 0.0, 0.0, 0.0, 40.0, 0);
Attach3DTextLabelToPlayer(Admin_PlayerLabel[playerid], playerid, 0.0, 0.0, 0.4);
}
// Same, but using the VIP Label (MAX_VIP_LEVELS)
if( 0 < PlayerInfo[playerid][pVip] <= MAX_VIP_LEVELS && VIP_PlayerLabel[playerid] != Text3D:INVALID_3DTEXT_ID)
{
VIP_PlayerLabel[playerid] = Create3DTextLabel(PlayerVIPLevelTagNames[PlayerInfo[playerid][pVip] - 1], yellow, 0.0, 0.0, 0.0, 40.0, 0);
Attach3DTextLabelToPlayer(VIP_PlayerLabel[playerid], playerid, 0.0, 0.0, 0.8); // Changed the Z-offset. What if the player is also an Admin?
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
Delete3DTextLabel(Admin_PlayerLabel[playerid]);
Delete3DTextLabel(VIP_PlayerLabel[playerid]);
return 1;
}
Text3D: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:streamdistance = 100.0);
new Text3D:playerLabel[MAX_PLAYERS];
if(PlayerInfo[playerid][pAdmin]) { switch(PlayerInfo[playerid][pAdmin) { case 1: ... } } else if(PlayerInfo[playerid][pVIP]) { switch(PlayerInfo[playerid][pVIP]) { case 1: ... } } else { // (Player) above his head? You don't really need this but it's your choice. }