Jump to content

BriGhtx3

Members
  • Posts

    378
  • Joined

  • Last visited

Everything posted by BriGhtx3

  1. I still need help.. Not even Solidsnake or Kenix?
  2. Hey! I can't figure out how to create a sphere between 2 positions (X/Y). Currently I use createColCuboid and calculate the width and depth like this: width = math.abs(x1-x2) depth = math.abs(y1-y2) But when I create a sphere with a command, the sphere sometime gets created to the wrong/opposite side. For example: I create a sphere from the station at SF to the police department, but it gets created from the station to the opposite side. Is there another function to create a sphere with two positions?
  3. Send me the file name
  4. What the hell? Explain it better.
  5. I think it is stored in MTA itself. Try to download the decompiled MTA version and search after the setElementData function. It looks like a temporarly save of a certain key.
  6. I think it is just a snippet or he couldn't start the resource or would get errors.
  7. Sorry I didn't read your second pm. What is the size of the maps?
  8. Just give us the lines of the script where the errors are.
  9. Lol! Just ask Zipper! He gives you the support, if you bought it.
  10. BriGhtx3

    i need help

    for k,v in ipairs (getElementsByType("marker")) do end
  11. It still overlaps. But thank you for your help
  12. I script on a local server If you tell me how to put it online (because of the ports etc.) you can see it.
  13. Which script do you mean? oO If you mean this nametag script, of course^^ It is the race nametag-resource which I modified^^
  14. Ok, let me explain better ;D I have a player. Over his name should be three things like this: And in my code, this three things overlap. But they should be underneath each others. Thanks
  15. Would be nice if somebody could help me
  16. g_Root = getRootElement() g_ResRoot = getResourceRootElement(getThisResource()) g_Players = getElementsByType('player') g_Me = getLocalPlayer() nametag = {} local nametags = {} local g_screenX,g_screenY = guiGetScreenSize() local bHideNametags = false local NAMETAG_SCALE = 0.3 --Overall adjustment of the nametag, use this to resize but constrain proportions local NAMETAG_ALPHA_DISTANCE = 25 --Distance to start fading out local NAMETAG_DISTANCE = 25 --Distance until we're gone local NAMETAG_ALPHA = 120 --The overall alpha level of the nametag --The following arent actual pixel measurements, they're just proportional constraints local NAMETAG_TEXT_BAR_SPACE = 2 local NAMETAG_WIDTH = 50 local NAMETAG_HEIGHT = 5 local NAMETAG_TEXTSIZE = 0.9 local NAMETAG_OUTLINE_THICKNESS = 1.3 -- local NAMETAG_ALPHA_DIFF = NAMETAG_DISTANCE - NAMETAG_ALPHA_DISTANCE NAMETAG_SCALE = 1/NAMETAG_SCALE * 800 / g_screenY -- Ensure the name tag doesn't get too big local maxScaleCurve = { {0, 0}, {3, 3}, {13, 5} } -- Ensure the text doesn't get too small/unreadable local textScaleCurve = { {0, 0.8}, {0.8, 1.2}, {99, 99} } -- Make the text a bit brighter and fade more gradually local textAlphaCurve = { {0, 0}, {25, 100}, {120, 190}, {255, 190} } function nametagcreate ( player ) nametags[player] = true end function nametagdestroy ( player ) nametags[player] = nil end addEventHandler ( "onClientRender", g_Root, function() -- Hideous quick fix -- for i,player in ipairs(g_Players) do if isElement(player) then if player ~= g_Me then setPlayerNametagShowing ( player, false ) if not nametags[player] then nametagcreate ( player ) end end end end if bHideNametags then return end local x,y,z = getCameraMatrix() for player in pairs(nametags) do while true do if not isElement(player) then break end if getElementDimension(player) ~= getElementDimension(g_Me) then break end local px,py,pz = getElementPosition ( player ) if processLineOfSight(x, y, z, px, py, pz, true, false, false, true, false, true) then break end local pdistance = getDistanceBetweenPoints3D ( x,y,z,px,py,pz ) if pdistance <= NAMETAG_DISTANCE then --Get screenposition local sx,sy = getScreenFromWorldPosition ( px, py, pz+0.95, 0.06 ) --------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------ POSI OF STATUS ---------------------------------------------- --------------------------------------------------------------------------------------------------------------------- local sxStat,syStat = getScreenFromWorldPosition ( px, py, pz+0.85, 0.06 ) if not sx or not sy then break end if not sxStat or not syStat then break end --Calculate our components local scale = 1/(NAMETAG_SCALE * (pdistance / NAMETAG_DISTANCE)) local alpha = ((pdistance - NAMETAG_ALPHA_DISTANCE) / NAMETAG_ALPHA_DIFF) alpha = (alpha < 0) and NAMETAG_ALPHA or NAMETAG_ALPHA-(alpha*NAMETAG_ALPHA) scale = math.evalCurve(maxScaleCurve,scale) local textscale = math.evalCurve(textScaleCurve,scale) local textalpha = math.evalCurve(textAlphaCurve,alpha) local outlineThickness = NAMETAG_OUTLINE_THICKNESS*(scale) --Draw our text local health local p local r,g health = getElementHealth ( player ) health = math.max(health, 0)/100 p = -510*(health^2) r,g = math.max(math.min(p + 255*health + 255, 255), 0), math.max(math.min(p + 765*health, 255), 0) local offset = (scale) * NAMETAG_TEXT_BAR_SPACE/2 --------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------ STATUS ------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------- dxDrawText ( "DER STATUS", sxStat, syStat - offset, sxStat, syStat - offset, tocolor(10,10,10,255), (textscale*NAMETAG_TEXTSIZE)-0.3, "default", "center", "bottom", false, false, false ) if health <= 0 then --------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------ IMAGE -------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------- dxDrawImage ( sx - offset, sy - offset, 20, 20, 'images/tt.png' ) dxDrawText ( getPlayerName(player), sx, sy - offset, sx, sy - offset, tocolor(0,0,0,textalpha), (textscale*NAMETAG_TEXTSIZE)-0.3, "default", "center", "bottom", false, false, false ) else dxDrawText ( getPlayerName(player), sx, sy - offset, sx, sy - offset, tocolor(r,g,0,textalpha), (textscale*NAMETAG_TEXTSIZE)-0.3, "default", "center", "bottom", false, false, false ) end end break end end end ) ---------------THE FOLLOWING IS THE MANAGEMENT OF NAMETAGS----------------- addEventHandler('onClientResourceStart', g_ResRoot, function() for i,player in ipairs(getElementsByType("player")) do if player ~= g_Me then nametagcreate ( player ) end end end ) addEventHandler ( "onClientPlayerJoin", g_Root, function() if source == g_Me then return end setPlayerNametagShowing ( source, false ) nametagcreate ( source ) end ) addEventHandler ( "onClientPlayerQuit", g_Root, function() nametagdestroy ( source ) end ) -- Math functions function math.lerp(from,to,alpha) return from + (to-from) * alpha end -- curve is { {x1, y1}, {x2, y2}, {x3, y3} ... } function math.evalCurve( curve, input ) -- First value if input[1][1] then return curve[1][2] end -- Interp value for idx=2,#curve do if input[idx][1] then local x1 = curve[idx-1][1] local y1 = curve[idx-1][2] local x2 = curve[idx][1] local y2 = curve[idx][2] -- Find pos between input points local alpha = (input - x1)/(x2 - x1); -- Map to output points return math.lerp(y1,y2,alpha) end end -- Last value return curve[#curve][2] end The name-position is right. The text "Der Status"-position is wrong because it overlaps. And I didn't create the image, because at first I wanted to create the right text above. But when the player dies, an image appears which position is partly wrong.
  17. Hey, I still have the same problem as before. I want three "nametags" for one player. The first should contain the name. The second should contain a simple text. And the third an image. I use the standard race nametag resource. I think the problem is the offset. If someone created something like this before, could he just post a snippet how he created it? Or at least explain how I can adjust the offset (they should be underneath each others and not overlap). Thanks
  18. function value1(player) val1 = getTickCount() setElementData(player,"value1",tonumber(val1)) end addCommandHandler("val1",value1) function value2(player) val2 = getTickCount() setElementData(player,"value2",tonumber(val2)) end addCommandHandler("val2",value2) function timeVal1val2(player) local valu1 = getElementData(player,"value1") local valu2 = getElementData(player,"value2") local substract = valu1-valu2 outputChatBox(substract.." milliseconds passed") end addCommandHandler("getTimeBetweenVal1andVal2",timeVal1val2) Here is an example anyway ;D I wrote too slow -.-
  19. When you add this function to the ResourceStart-event and for example when you type /count you can substract both milliseconds. Then you know how much time passed between the start event and typing the command.
  20. Yes and? In this code you use GUI-Functions. In your code before you used dx-Functions which were not built-in!
  21. Close the Mtaserver.exe Open mtaserver.conf Add the resources to autostart like this : <resource src="RESOURCENAME" startup="1" protected="0"/> Open acl.xml Add this to groupname admin: <object name="resource.RESOURCENAME"></object>
×
×
  • Create New...