Jump to content

Enargy,

Members
  • Posts

    1,102
  • Joined

Everything posted by Enargy,

  1. Colocas unos nombres horribles a las funciones Que tengas suerte vendiendolos
  2. Enargy,

    HUD

    Disculpa al tardansa. local vida = math.floor(getElementHealth(getLocalPlayer())) local maxima = math.floor(getPedStat(getLocalPlayer(), 24)) BrrVida = 207*(vida/maxima) dxDrawImage((sx/x)*1130, (sy/y)*72, (sx/x)*BrrVida, (sy/y)*25, "Fondo/vida.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawText("Vida: "..math.ceil(vida), (sx/x)*1133, (sy/y)*75, (sx/x)*1291, (sy/y)*91, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("Vida: "..math.ceil(vida), (sx/x)*1135, (sy/y)*75, (sx/x)*1293, (sy/y)*91, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("Vida: "..math.ceil(vida), (sx/x)*1133, (sy/y)*77, (sx/x)*1291, (sy/y)*93, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("Vida: "..math.ceil(vida), (sx/x)*1135, (sy/y)*77, (sx/x)*1293, (sy/y)*93, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("Vida: "..math.ceil(vida), (sx/x)*1134, (sy/y)*76, (sx/x)*1292, (sy/y)*92, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
  3. Enargy,

    Hola :p

    addEventHandler("onClientGUIClick", gridlist, function() local row, column = guiGridListGetSelectedItem(source) if ( row ~= -1, and column ~= -1 ) then local pname = guiGridListGetItemText(source, row, column) local _row = guiGridListAddRow(anothergridlist) guiGridListSetItemText(anothergridlist, _row, 1, pname) end end, false )
  4. Enargy,

    HUD

    usando getPedStat por si el player tiene la vida al máximo le asignas 200, y 100 lo contrario, luego usando lo que te dijeron arriba lo multiplicas por el ancho del hud.
  5. Podrías postear la función donde asignas el dato a la tabla?
  6. Haz lo que hiciste en la que inicie el script usando la función del marker hit.
  7. marker = {} function Marcador(thePlayer) triggerClientEvent(thePlayer, "mostrarPanel", thePlayer) -- Utilizamos un evento Client end ----------Crear Marcador y comprobamos si es administrador--------------------- function crearMarcador(thePlayer, cmd) local obtCuent = getAccountName(getPlayerAccount(thePlayer)) -- Obtenemos el nombre de la cuenta if isObjectInACLGroup("user."..obtCuent, aclGetGroup("Admin")) then -- Comparamos si esta en el grupo de administradores local marcadores = LeerTxt(thePlayer) for i = 1, #marcadores do local x, y, z = unpack(marcadores[i]) --tipo, tamano, r, g, b, a if not marker[i] then marker[i] = createMarker(x, y, z, "cylinder", 2, 0 ,255, 0, 155, root ) addEventHandler("onMarkerHit", marker[i], Marcador) --Llamamos la funcion Marcador cuando un jugador toca el marker end end end end addEvent("p", true) addEventHandler("p", root, crearMarcador) addCommandHandler("crea", crearMarcador) function crearTxt(thePlayer) ------------------- Creamos el archivo y lo escribimos ---------------------------------- local x, y, z = getElementPosition(thePlayer) -- Obtenemos la posición del jugador local position = tostring(x) .. ", " .. tostring(y) ..", ".. tostring(z-1) .."\n" if fileExists ( "posicion.txt" ) then local file = fileOpen("posicion.txt") fileSetPos ( file, fileGetSize ( file ) ) fileWrite(file, position) fileClose(file) else local file = fileCreate("posicion.txt") fileWrite(file, position) fileClose(file) end end addCommandHandler("c", crearTxt) function LeerTxt(Player) local marcadores = {} local hFile = fileOpen("posicion.txt", true) if hFile then buffer = fileRead(hFile, fileGetSize(hFile)) strtable = split(buffer, "\n") for i = 1, #strtable do local x = tonumber(gettok(strtable[i], 1, ",")) local y = tonumber(gettok(strtable[i], 2, ",")) local z = tonumber(gettok(strtable[i], 3, ",")) marcadores[i] = {x, y, z} end fileClose(hFile) return marcadores else outputConsole("Unable to open test.txt") end return false end
  8. usa onMarkerHit y cuando entres tomas la posición del player, puedes usar la función de Arsilex para hacer eso.
  9. strtable = split(buffer, "\n") for i = 1, #strtable do marcadores[i] = tostring(strtable[i] outputConsole(marcadores[i], Player) end
  10. Enargy,

    Una ayudadita

    Creas tres variables con los colores que van a ir tu texto sin pasar los 40 fps y luego una sentencia if comparando los fps que sean mayor o igual que 40, si es verdadera dentro de la misma sentencia re-escribes las tres variables y le colocas el color que quieras. Todo eso antes de la dxText y obviamente asignándoles los primeras tres argumento de tocolor de en sí por las tres variables que creaste.
  11. if mouse ~= "left" and state ~= "down" then -- Coloca esas dos variables en donde van los parametros de la función, en el orden que está.
  12. Hechale un vistazo a dbExec y dbQuery, que son los que vas a tener que usar para hacer lo que quieres. Gracias por eso, luego veo como funcionan. Ahora principalmente lo que necesito es saber como hacer que al comprar una skin se te ponga en otra gridlist la skin comprada, alguna idea de como podría hacerlo? (mientras tanto iré leyendo lo de dbExec y dbQuery, por que la verdad no sé ni como empezar para que la skin que compres se mande a otra gridlist.) Al comprar la skin, añades una nueva row a la otra gridlist con guiGridListAddRow y le colocas el nombre con guiGridListSetItemText del item que está seleccionado en esa gridlist (usando guiGridListGetItemText).
  13. Hechale un vistazo a dbExec y dbQuery, que son los que vas a tener que usar para hacer lo que quieres.
  14. local status = false addCommandHandler("m", function() status = not status end) addEventHandler('onClientPlayerDamage', localPlayer, function (_, weapon) if status and weapon == 54then setPedAnimation(localPlayer, "BLOCK", "ANIM") end end )
  15. Si quieres mostrar al primero que tenga mas kills usa table.sort y haces la comparacion de mayor a menor.
  16. El 'k' es el índice especifico de una tabla, y ese código esta bien a simple vista. Si lo que quieres es eliminar el item de la gridlist usa guiGridListRemoveRow. PD: Lo mejor sería probar las cosas antes de postearla
  17. Por que crear otra función que haga exactamente lo mismo que otra?
  18. local oxygen = getPedOxygenLevel(localPlayer) Ox = (screenW * 0.0300)*(oxygen/1000) Oy = (screenH * 0.1067)*(oxygen/1000) if isElementInWater(localPlayer) then dxDrawImage(screenW * 0.8788, screenH * 0.1233, Ox, Oy, ":hud/respiracioh.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) end
  19. Las puede guardar en SQL y luego al cargar el recurso lea todos los valores dentro de la db y se las asigne de nuevo a la tabla. Yo tenía un sistema parecido a ese.
  20. Concuerdo, pero él quiere aprender hacer los scripts requeridos para su servidor, mas no dijo que quería aprender a programar a nivel global. @GHOSTKILLER1546 aquí en el foro hay muchos post sobre la iniciativa en aprender hacer resources de bajo a alta gama, Empieza a buscarlos tanto como en el foro ingles como el hispano.
  21. Para eso esta la opción de activar o desactivar dicha sincronización.
  22. En cliente es onClientPlayerDamage.
  23. Hola, yo no poder entender te ami go.
  24. Entonces eso significa, que saldría lo mismo usando tablas? Si, salvo que al usar el método de setElementData que te di tendrías que llamar dos funciones al momento de leer la tabla, getElementData y fromJSON. es mas practico y eficiente para mi usar tablas comunes
×
×
  • Create New...