Jump to content

DxDrawText Admin On Duty


Dimmitry007

Recommended Posts

hello peeps i've a problem i've a script that when u type /duty u have godmode and a text on ur head

i've a problem when i type /duty it's show Admin On Duty But it's not showing for other ppl so here's my code

Text.lua

addEvent ( "onDuty", true ) 
function duty()   
    if getElementData(getLocalPlayer( ),"duty") == true then   
        timer = setTimer ( function() 
            setElementData(getLocalPlayer( ),"onDuty",true) 
            local x, y, z = getElementPosition( getLocalPlayer( ) ) 
            local playerName = getPlayerName( getLocalPlayer( ) ) 
            local theText = dxDraw3DText( "Admin On Duty [NO DM]", x, y, z+1,05,"default",255,0,0,200) 
            setTimer ( function() 
                destroyElement(theText) 
                end, 59, 1) 
        end, 60, 0 ) 
    else 
        if isTimer(timer) then 
            killTimer(timer) 
        end 
        
        setElementData(getLocalPlayer( ),"duty",true) 
    end     
end 
  
addEventHandler ( "onDuty", getRootElement(), duty) 
addCommandHandler("duty",duty) 

3dtext.lua

local fonts = { [ "default" ] = true, [ "default-bold" ] = true,[ "clear" ] = true,[ "arial" ] = true,[ "sans" ] = true, 
      [ "pricedown" ] = true, [ "bankgothic" ] = true,[ "diploma" ] = true,[ "beckett" ] = true 
}; 
  
function dxDraw3DText( text, x, y, z, scale, font, r, g, b, maxDistance ) 
    assert( type( text ) == "string", "Bad argument @ dxDraw3DText" ); 
    assert( type( x ) == "number", "Bad argument @ dxDraw3DText" ); 
    assert( type( y ) == "number", "Bad argument @ dxDraw3DText" ); 
    assert( type( z ) == "number", "Bad argument @ dxDraw3DText" ); 
    if not scale or type( scale ) ~= "number" or scale <= 0 then 
        scale = 2 
    end 
    if not font or type( font ) ~= "string" or not fonts[ font ] then 
        font = "default" 
    end 
    if not r or type( r ) ~= "number" or r < 0 or r > 255 then 
        r = 255 
    end 
    if not g or type( g ) ~= "number" or g < 0 or g > 255 then 
        g = 255 
    end 
    if not b or type( b ) ~= "number" or b < 0 or b > 255 then 
        b = 255 
    end 
    if not maxDistance or type( maxDistance ) ~= "number" or maxDistance <= 1 then 
        maxDistance = 12 
    end 
    local textElement = createElement( "text" ); 
    if textElement then 
        setElementData( textElement, "text", text ); 
        setElementData( textElement, "x", x ); 
        setElementData( textElement, "y", y ); 
        setElementData( textElement, "z", z ); 
        setElementData( textElement, "scale", scale ); 
        setElementData( textElement, "font", font ); 
        setElementData( textElement, "rgba", { r, g, b, 255 } ); 
        setElementData( textElement, "maxDistance", maxDistance ); 
        return textElement 
    end 
    return false 
end 
  
addEventHandler( "onClientRender", root, 
    function( ) 
        local texts = getElementsByType( "text" ); 
        if #texts > 0 then 
            local pX, pY, pZ = getElementPosition( localPlayer ); 
            for i = 1, #texts do 
                local text = getElementData( texts[i], "text" ); 
                local tX, tY, tZ = getElementData( texts[i], "x" ), getElementData( texts[i], "y" ), getElementData( texts[i], "z" ); 
                local font = getElementData( texts[i], "font" ); 
                local scale = getElementData( texts[i], "scale" ); 
                local color = getElementData( texts[i], "rgba" ); 
                local maxDistance = getElementData( texts[i], "maxDistance" ); 
                if not text or not tX or not tY or not tZ then 
                    return 
                end 
                if not font then font = "default" end 
                if not scale then scale = 2 end 
                if not color or type( color ) ~= "table" then 
                    color = { 255, 255, 255, 255 }; 
                end 
                if not maxDistance then maxDistance = 12 end 
                local distance = getDistanceBetweenPoints3D( pX, pY, pZ, tX, tY, tZ ); 
                if distance <= maxDistance then 
                    local x, y = getScreenFromWorldPosition( tX, tY, tZ ); 
                    if x and y then 
                        dxDrawText( text, x, y, _, _, tocolor( color[1], color[2], color[3], color[4] ), scale, font, "center", "center" ); 
                    end 
                end 
            end 
        end 
    end 
); 

goduty.lua

function aduty ( player ) 
local accName = getAccountName(getPlayerAccount(player)) 
if isObjectInACLGroup ( "user." ..accName, aclGetGroup ( "Admin") ) then 
outputChatBox(" Administrator "..getPlayerName(player).." Is Now OnDuty!",getRootElement(),255,0,0) 
outputChatBox("",getRootElement(),255,0,0) 
outputServerLog(" Administrator "..getPlayerName(player).." Is Now OnDuty!") 
setElementData( player, "blood", 99999999999999999999999 ) 
heal = "9999999999999999999999999999" 
end 
end 
addCommandHandler("duty",aduty) 
  
function offaduty ( player ) 
local accName = getAccountName(getPlayerAccount(player)) 
if isObjectInACLGroup ( "user." ..accName, aclGetGroup ( "Admin") ) then 
outputChatBox(" Administrator "..getPlayerName(player).." Is No Longer OnDuty!",getRootElement(),255,0,0) 
outputChatBox("",getRootElement(),255,0,0) 
outputServerLog(" Administrator "..getPlayerName(player).." Is No Longer OnDuty!") 
setElementData( player, "blood", 12000 ) 
end 
end 
addCommandHandler("offaduty",offduty) 
  
function heal_func ( player ) 
local accName = getAccountName(getPlayerAccount(player)) 
if isObjectInACLGroup ( "user." ..accName, aclGetGroup ( "Admin") ) then 
if heal == "an" then 
setElementData( player, "food", 250 ) 
setElementData( player, "thirst", 250 ) 
end 
end 
end 
setTimer(heal_func, 60000, 0) 

meta.xml

<meta> 
    <info name="duty" author="JACK" description="duty" version="1.0" type="script"></info> 
    <script src="onduty2.lua" type="client"></script> 
    <script src="3D.lua" type="client"></script> 
    <script src="goduty.lua" type="server"></script> 
  
  
     
     
</meta> 
  

Link to comment

<meta> 
    <info name="duty" author="JACK" description="duty" version="1.0" type="script"></info> 
    <script src="onduty2.lua" type="server"></script> 
    <script src="3D.lua" type="server"></script> 
    <script src="goduty.lua" type="server"></script> 
  
  
    
    
</meta> 
  

This should work?

Link to comment

No because dxDraw3DText will only work on client side.

Client side;

addEvent ( "onDuty", true ) 
function duty()   
    if getElementData(source,"duty") == true then   
        timer = setTimer ( function() 
            setElementData(source,"onDuty",true) 
            local x, y, z = getElementPosition(source ) 
            local playerName = getPlayerName(source ) 
            local theText = dxDraw3DText( "Admin On Duty [NO DM]", x, y, z+1,05,"default",255,0,0,200) 
            setTimer ( function() 
                destroyElement(theText) 
                end, 59, 1) 
        end, 60, 0 ) 
    else 
        if isTimer(timer) then 
            killTimer(timer) 
        end 
        
        setElementData(source,"duty",true) 
    end     
end 
addEventHandler ( "onDuty", root, duty) 

Server side;

function aduty ( player ) 
local accName = getAccountName(getPlayerAccount(player)) 
if isObjectInACLGroup ( "user." ..accName, aclGetGroup ( "Admin") ) then 
outputChatBox(" Administrator "..getPlayerName(player).." Is Now OnDuty!",getRootElement(),255,0,0) 
outputChatBox("",getRootElement(),255,0,0) 
outputServerLog(" Administrator "..getPlayerName(player).." Is Now OnDuty!") 
setElementData( player, "blood", 99999999999999999999999 ) 
heal = "9999999999999999999999999999" 
triggerClientEvent(player,"onDuty",getRootElement()) 
end 
end 
addCommandHandler("duty",aduty) 
  
function offaduty ( player ) 
local accName = getAccountName(getPlayerAccount(player)) 
if isObjectInACLGroup ( "user." ..accName, aclGetGroup ( "Admin") ) then 
outputChatBox(" Administrator "..getPlayerName(player).." Is No Longer OnDuty!",getRootElement(),255,0,0) 
outputChatBox("",getRootElement(),255,0,0) 
outputServerLog(" Administrator "..getPlayerName(player).." Is No Longer OnDuty!") 
setElementData( player, "blood", 12000 ) 
end 
end 
addCommandHandler("offaduty",offduty) 
  
function heal_func ( player ) 
local accName = getAccountName(getPlayerAccount(player)) 
if isObjectInACLGroup ( "user." ..accName, aclGetGroup ( "Admin") ) then 
if heal == "an" then 
setElementData( player, "food", 250 ) 
setElementData( player, "thirst", 250 ) 
end 
end 
end 
setTimer(heal_func, 60000, 0) 

But i didn't tested it , should work , /duty :wink:

Link to comment
  • 4 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...