Jump to content

AYUDA TE LO RUEGO (TIENDA DE CAMPAÑA)


Citrus

Recommended Posts

Necesito ayuda!!!!

Alguién podria ser TAN AMABLE de decirme o enseñarme como puedo hacer que cuando dentro de mi server (Day-Z) monto la famosa (TENT O TIENDA DE CAMPAÑA)

ésta no se aleje tanto del personaje al igual que cuando la desmonto. Ósea, mi intención es usar las tent o tienda de campaña para colocarla en la pared y luego retirarla

sin que se pierda dentro de la pared.

Estuve revisando los archivos del (Dayz) login y el survivorSystem.lua

Y en login encontré esto que fué lo que más me llamo la ATENCIÓN:

    tent = createObject(3243, getAccountData(tentData, "last_x"), getAccountData(tentData, "last_y"), getAccountData(tentData, "last_z"), 0, 0, getAccountData(tentData, "last_rz") or 0)
    setObjectScale(tent, 1.3)
    tentCol = createColSphere(getAccountData(tentData, "last_x"), getAccountData(tentData, "last_y"), getAccountData(tentData, "last_z"), 4)
    attachElements(tentCol, tent, 0, 0, 0)
    setElementData(tentCol, "parent", tent)
    setElementData(tent, "parent", tentCol)
    setElementData(tentCol, "tent", true)
    setElementData(tentCol, "vehicle", true)
    setElementData(tentCol, "MAX_Slots", 100)
    for i, data in ipairs(vehicleDataTable) do
      setElementData(tentCol, data[1], getAccountData(tentData, data[1]))
    end
  end
end

---------------------------------------------------------------------

Yen el survivorSystem.lua encontré esto:

function onPlayerPitchATent(itemName)
  setElementData(source, itemName, getElementData(source, itemName) - 1)
  setPedAnimation(source, "BOMBER", "BOM_Plant", -1,false,false,false,false)
  local source = source
  setTimer(function()
    local x, y, z = getElementPosition(source)
    local xr, yr, zr = getElementRotation(source)
    px, py, pz = getElementPosition(source)
    prot = getPedRotation(source)
    local offsetRot = math.rad(prot + 90)
    local vx = px + 5 * math.cos(offsetRot)
    local vy = py + 5 * math.sin(offsetRot)
    local vz = pz + 2
    local vrot = prot + 180
    tent = createObject(3243, vx, vy, z - 1, 0, 0, vrot)
    setObjectScale(tent, 1.3)
    tentCol = createColSphere(x, y, z, 4)
    attachElements(tentCol, tent, 0, 0, 0)
    setElementData(tentCol, "parent", tent)
    setElementData(tent, "parent", tentCol)
    setElementData(tentCol, "tent", true)
    setElementData(tentCol, "vehicle", true)
    setElementData(tentCol, "MAX_Slots", 100)
    triggerClientEvent(source, "refreshInventoryManual", source)
  end, 1500, 1)
end

------------------------------------------------------------------------------

No se si me explico, pero deseo saber cúal de los dos debo editar para que cuando monte una (tienda de campaña-tent) no se me aleje del personaje y quede en la misma posición que el personaje, así puedo "bugearla" dentro de la pared y luego desmontarla.

Como el server THE LONE SURVIVOR, que tienen esa misma configuracón..

MUCHAS GRACIAS PORL EER ESTO ESPERO ME AYUDES ME HARÁS FELIZ!!!!

Link to comment
  • 3 weeks later...

yo que tu empieso con

survivorSystem.lua

no te puse la solucion ya que no sabria cual editar, pero e tenido experiencia con lo de los DayZ y algo me dice que empieses por aqui  empuesa con

 tent = createObject(3243, vx, vy, z - 1, 0, 0, vrot)

juega un poco con eso moviendo y editando y revisando aver que tal te queda, capas y no es por hay pero bueno intentalo y dime que tal te fue y si no es pues dime que hisites para solucionarlo

Link to comment
local distance = 2.5

function onPlayerPitchATent(itemName)
	setElementData(source, itemName, getElementData(source, itemName) - 1)
	setPedAnimation(source, "BOMBER", "BOM_Plant", -1,false,false,false,false)
	local source = source
	setTimer(function()
		local x, y, z = getElementPosition(source)
		local xr, yr, zr = getElementRotation(source)
		px, py, pz = getElementPosition(source)
		prot = getPedRotation(source)
		local offsetRot = math.rad(prot + 90)
		local vx = px + distance * math.cos(offsetRot)
		local vy = py + distance * math.sin(offsetRot)
		local vz = pz + 2
		local vrot = prot + 180
		tent = createObject(3243, vx, vy, z - 1, 0, 0, vrot)
		setObjectScale(tent, 1.3)
		tentCol = createColSphere(x, y, z, 4)
		attachElements(tentCol, tent, 0, 0, 0)
		setElementData(tentCol, "parent", tent)
		setElementData(tent, "parent", tentCol)
		setElementData(tentCol, "tent", true)
		setElementData(tentCol, "vehicle", true)
		setElementData(tentCol, "MAX_Slots", 100)
		triggerClientEvent(source, "refreshInventoryManual", source)
	end, 1500, 1)
end

 

Link to comment
  • 3 weeks later...

Gracias a todos lo que me respondieron lo valoro muchísimo!!!... Igual ya lo solucioné por mí mismo!!! y aunque parezca cómico récien leeo esto ya que soy nuevo aqui y no me ha notificado de las respuestas de ustedes!!!...

Como aprendíz LUA aún me falta muchísimo... Y también he buscado y notado que la mayoría de los script de MTA tiene fallas o funcionan a medias, por ejemplo en otra publicación un usuario había pedido esto:


 
  1.  
  2. addEventHandler("onClientRender", root,
  3.     function()
  4.     local lvl = getElementData(getLocalPlayer(),"level")
  5.   local ex = getElementData(getLocalPlayer(),"exp")
  6.     local text = ""
  7.     local UP = tonumber ( getElementData ( localPlayer, "level" ) ) or 0
  8.     if ( UP == 1 ) then
  9.         text = "  /60"
  10.     elseif ( UP == 2 ) then
  11. addEventHandler( "onClientResourceStart", getResourceRootElement( getThisResource() ), showClientImage )
  12.         text = "  /110"
  13.     elseif ( UP == 3 ) then
  14.         text = "  /160"
  15.     elseif ( UP == 4 ) then
  16.         text = "  /250"
  17.     elseif ( UP == 5 ) then
  18.         text = "  /500"
  19.     elseif ( UP == 6 ) then
  20.         text = "  /1000"
  21.     elseif ( UP == 7 ) then
  22.         text = "  /1250"
  23.     elseif ( UP == 8 ) then
  24.         text = "  /1500"
  25.     elseif ( UP == 9 ) then
  26.         text = "  /1820"
  27.     elseif ( UP == 10 ) then
  28.         text = "  /2000"
  29.     elseif ( UP == 11 ) then
  30.         text = "  /2800"
  31.     elseif ( UP == 12 ) then
  32.         text = "  /3000"
  33.     elseif ( UP == 13 ) then
  34.         text = "  /5000"
  35.     elseif ( UP == 14 ) then
  36.         text = "  /7000"
  37.     elseif ( UP == 15 ) then
  38.         text = "  /9000"
  39.     elseif ( UP == 16 ) then
  40.         text = "  /11000"
  41.     elseif ( UP == 17 ) then
  42.         text = "  /15000"
  43.     elseif ( UP == 18 ) then
  44.         text = "  /19000"
  45.     elseif ( UP == 19 ) then
  46.         text = "  /21000"
  47.     elseif ( UP == 20 ) then
  48.         text = "  /25000"
  49.     elseif ( UP == 21 ) then
  50.         text = "  /30000"
  51.     elseif ( UP == 22 ) then
  52.         text = "  /35000"
  53.     elseif ( UP == 23 ) then
  54.         text = "  /40000"
  55.     elseif ( UP == 24 ) then
  56.         text = "  /45000"
  57.     elseif ( UP == 25 ) then
  58.         text = "  /60000"
  59.     elseif ( UP == 26 ) then
  60.         text = "  /65000"
  61.     elseif ( UP == 27 ) then
  62.         text = "  /70000"
  63.     elseif ( UP == 28 ) then
  64.         text = "  /85000"
  65.     elseif ( UP == 29 ) then
  66.         text = "  /90000"
  67.     elseif ( UP == 30 ) then
  68.         text = "  /95000"
  69.     elseif ( UP == 31 ) then
  70.         text = "  /100000"
  71.     elseif ( UP == 32 ) then
  72.         text = "  /110000"
  73.     elseif ( UP == 33 ) then
  74.         text = "  /120000"
  75.     elseif ( UP == 34 ) then
  76.         text = "  /130000"
  77.     elseif ( UP == 35 ) then
  78.         text = "  /140000"
  79.     elseif ( UP == 36 ) then
  80.         text = "  /150000"
  81.     elseif ( UP == 37 ) then
  82.         text = "  /160000"
  83.     elseif ( UP == 38 ) then
  84.         text = "  /170000"
  85.     elseif ( UP == 39 ) then
  86.         text = "  /180000"
  87.     elseif ( UP == 40 ) then
  88.         text = "  /190000"
  89.     elseif ( UP == 41 ) then
  90.         text = "  /200000"    
  91.     elseif ( UP == 42 ) then
  92.         text = "  /210000"  
  93.     elseif ( UP == 43 ) then
  94.         text = "  /220000"  
  95.     elseif ( UP == 44 ) then
  96.         text = "  /230000"  
  97.     elseif ( UP == 45 ) then
  98.         text = "  /240000"  
  99.     elseif ( UP == 46 ) then
  100.         text = "  /250000"  
  101.     elseif ( UP == 47 ) then
  102.         text = "  /260000"  
  103.     elseif ( UP == 48 ) then
  104.         text = "  /270000"
  105.     elseif ( UP == 49 ) then
  106.         text = "  /280000"  
  107.     elseif ( UP == 50 ) then
  108.         text = "  /290000"  
  109.     elseif ( UP == 51 ) then
  110.         text = "  /300000"    
  111.        
  112.     end
  113.         dxDrawText("Level", 1100, 350, 659, 66, tocolor(255, 255, 255, 255), 1.20, "sans", "left", "top", false, false, true, false, false)
  114.         dxDrawText("Infectados", 1100, 300, 659, 66, tocolor(255, 255, 255, 255), 1.20, "sans", "left", "top", false, false, true, false, false)
  115.         dxDrawText(""..lvl, 1110, 380, 659, 110, tocolor(255, 255, 255, 255), 2.50, "default", "left", "top", false, false, true, false, false)
  116.         dxDrawText("Exp:", 1190, 370, 730, 64, tocolor(255, 255, 255, 255), 1.20, "sans", "left", "top", false, false, true, false, false)
  117.         dxDrawText(""..ex..""..text.."", 1200, 390, 790, 110, tocolor(255, 255, 255, 255), 0.5, "bankgothic", "left", "top", false, false, true, false, false)
  118.         dxDrawImage( 678, 103, 790, 110, "imagenes/"..lvl..".png")
  119. end
  120. )
  121.  
  122. addEventHandler ( "onClientResourceStart", resourceRoot, dxsetText )
  123. function showClientImage()
  124.    guiCreateStaticImage( 0.68, 0, 0.32,  0.08333, "logo1.png", true, nil)
  125. end

 

Qué es esto? pues una sencilla script que te muestra en la pantalla un Dxtext del nivel y experiencia o como se diga, y que según el nivel que seas esta te mostrará una imagén en formato PNG distinta...

Todo funciona bien pero lo que no funciona es lo de las fotos!!!. En pocas palabras lo que el chico hizo fúe crear una script que sea nivel por rango, si eres nivel 1? tendras una estrella si eres nivel 4 tendras 4 estrella (Según la foto que hallas puesto).

La pregunta del millon? Por qué no aparecen las fotos? en qué se equivocó el scripting?.

Ojala me lo fixen porque yo ya lo intenté y no me ha salido ni de por casulidad...

On 6/3/2017 at 08:20, Arsilex said:

local distance = 2.5

function onPlayerPitchATent(itemName)
	setElementData(source, itemName, getElementData(source, itemName) - 1)
	setPedAnimation(source, "BOMBER", "BOM_Plant", -1,false,false,false,false)
	local source = source
	setTimer(function()
		local x, y, z = getElementPosition(source)
		local xr, yr, zr = getElementRotation(source)
		px, py, pz = getElementPosition(source)
		prot = getPedRotation(source)
		local offsetRot = math.rad(prot + 90)
		local vx = px + distance * math.cos(offsetRot)
		local vy = py + distance * math.sin(offsetRot)
		local vz = pz + 2
		local vrot = prot + 180
		tent = createObject(3243, vx, vy, z - 1, 0, 0, vrot)
		setObjectScale(tent, 1.3)
		tentCol = createColSphere(x, y, z, 4)
		attachElements(tentCol, tent, 0, 0, 0)
		setElementData(tentCol, "parent", tent)
		setElementData(tent, "parent", tentCol)
		setElementData(tentCol, "tent", true)
		setElementData(tentCol, "vehicle", true)
		setElementData(tentCol, "MAX_Slots", 100)
		triggerClientEvent(source, "refreshInventoryManual", source)
	end, 1500, 1)
end

 

Gracias a todos lo que me respondieron lo valoro muchísimo!!!... Igual ya lo solucioné por mí mismo!!! y aunque parezca cómico récien leeo esto ya que soy nuevo aqui y no me ha notificado de las respuestas de ustedes!!!...

Como aprendíz LUA aún me falta muchísimo... Y también he buscado y notado que la mayoría de los script de MTA tiene fallas o funcionan a medias, por ejemplo en otra publicación un usuario había pedido esto:

?

 
  1.  
  2.  
  1.  
  2. addEventHandler("onClientRender", root,
  3.     function()
  4.     local lvl = getElementData(getLocalPlayer(),"level")
  5.   local ex = getElementData(getLocalPlayer(),"exp")
  6.     local text = ""
  7.     local UP = tonumber ( getElementData ( localPlayer, "level" ) ) or 0
  8.     if ( UP == 1 ) then
  9.         text = "  /60"
  10.     elseif ( UP == 2 ) then
  11. addEventHandler( "onClientResourceStart", getResourceRootElement( getThisResource() ), showClientImage )
  12.         text = "  /110"
  13.     elseif ( UP == 3 ) then
  14.         text = "  /160"
  15.     elseif ( UP == 4 ) then
  16.         text = "  /250"
  17.     elseif ( UP == 5 ) then
  18.         text = "  /500"
  19.     elseif ( UP == 6 ) then
  20.         text = "  /1000"
  21.     elseif ( UP == 7 ) then
  22.         text = "  /1250"
  23.     elseif ( UP == 8 ) then
  24.         text = "  /1500"
  25.     elseif ( UP == 9 ) then
  26.         text = "  /1820"
  27.     elseif ( UP == 10 ) then
  28.         text = "  /2000"
  29.     elseif ( UP == 11 ) then
  30.         text = "  /2800"
  31.     elseif ( UP == 12 ) then
  32.         text = "  /3000"
  33.     elseif ( UP == 13 ) then
  34.         text = "  /5000"
  35.     elseif ( UP == 14 ) then
  36.         text = "  /7000"
  37.     elseif ( UP == 15 ) then
  38.         text = "  /9000"
  39.     elseif ( UP == 16 ) then
  40.         text = "  /11000"
  41.     elseif ( UP == 17 ) then
  42.         text = "  /15000"
  43.     elseif ( UP == 18 ) then
  44.         text = "  /19000"
  45.     elseif ( UP == 19 ) then
  46.         text = "  /21000"
  47.     elseif ( UP == 20 ) then
  48.         text = "  /25000"
  49.     elseif ( UP == 21 ) then
  50.         text = "  /30000"
  51.     elseif ( UP == 22 ) then
  52.         text = "  /35000"
  53.     elseif ( UP == 23 ) then
  54.         text = "  /40000"
  55.     elseif ( UP == 24 ) then
  56.         text = "  /45000"
  57.     elseif ( UP == 25 ) then
  58.         text = "  /60000"
  59.     elseif ( UP == 26 ) then
  60.         text = "  /65000"
  61.     elseif ( UP == 27 ) then
  62.         text = "  /70000"
  63.     elseif ( UP == 28 ) then
  64.         text = "  /85000"
  65.     elseif ( UP == 29 ) then
  66.         text = "  /90000"
  67.     elseif ( UP == 30 ) then
  68.         text = "  /95000"
  69.     elseif ( UP == 31 ) then
  70.         text = "  /100000"
  71.     elseif ( UP == 32 ) then
  72.         text = "  /110000"
  73.     elseif ( UP == 33 ) then
  74.         text = "  /120000"
  75.     elseif ( UP == 34 ) then
  76.         text = "  /130000"
  77.     elseif ( UP == 35 ) then
  78.         text = "  /140000"
  79.     elseif ( UP == 36 ) then
  80.         text = "  /150000"
  81.     elseif ( UP == 37 ) then
  82.         text = "  /160000"
  83.     elseif ( UP == 38 ) then
  84.         text = "  /170000"
  85.     elseif ( UP == 39 ) then
  86.         text = "  /180000"
  87.     elseif ( UP == 40 ) then
  88.         text = "  /190000"
  89.     elseif ( UP == 41 ) then
  90.         text = "  /200000"    
  91.     elseif ( UP == 42 ) then
  92.         text = "  /210000"  
  93.     elseif ( UP == 43 ) then
  94.         text = "  /220000"  
  95.     elseif ( UP == 44 ) then
  96.         text = "  /230000"  
  97.     elseif ( UP == 45 ) then
  98.         text = "  /240000"  
  99.     elseif ( UP == 46 ) then
  100.         text = "  /250000"  
  101.     elseif ( UP == 47 ) then
  102.         text = "  /260000"  
  103.     elseif ( UP == 48 ) then
  104.         text = "  /270000"
  105.     elseif ( UP == 49 ) then
  106.         text = "  /280000"  
  107.     elseif ( UP == 50 ) then
  108.         text = "  /290000"  
  109.     elseif ( UP == 51 ) then
  110.         text = "  /300000"    
  111.        
  112.     end
  113.         dxDrawText("Level", 1100, 350, 659, 66, tocolor(255, 255, 255, 255), 1.20, "sans", "left", "top", false, false, true, false, false)
  114.         dxDrawText("Infectados", 1100, 300, 659, 66, tocolor(255, 255, 255, 255), 1.20, "sans", "left", "top", false, false, true, false, false)
  115.         dxDrawText(""..lvl, 1110, 380, 659, 110, tocolor(255, 255, 255, 255), 2.50, "default", "left", "top", false, false, true, false, false)
  116.         dxDrawText("Exp:", 1190, 370, 730, 64, tocolor(255, 255, 255, 255), 1.20, "sans", "left", "top", false, false, true, false, false)
  117.         dxDrawText(""..ex..""..text.."", 1200, 390, 790, 110, tocolor(255, 255, 255, 255), 0.5, "bankgothic", "left", "top", false, false, true, false, false)
  118.         dxDrawImage( 678, 103, 790, 110, "imagenes/"..lvl..".png")
  119. end
  120. )
  121.  
  122. addEventHandler ( "onClientResourceStart", resourceRoot, dxsetText )
  123. function showClientImage()
  124.    guiCreateStaticImage( 0.68, 0, 0.32,  0.08333, "logo1.png", true, nil)
  125. end

 

Qué es esto? pues una sencilla script que te muestra en la pantalla un Dxtext del nivel y experiencia o como se diga, y que según el nivel que seas esta te mostrará una imagén en formato PNG distinta...

Todo funciona bien pero lo que no funciona es lo de las fotos!!!. En pocas palabras lo que el chico hizo fúe crear una script que sea nivel por rango, si eres nivel 1? tendras una estrella si eres nivel 4 tendras 4 estrella (Según la foto que hallas puesto).

La pregunta del millon? Por qué no aparecen las fotos? en qué se equivocó el scripting?.

Ojala me lo fixen porque yo ya lo intenté y no me ha salido ni de por casulidad...

Edited by Citrus
Link to comment

Asegúrate de que tienes las imágenes así: 

 

imagenes/1.png
imagenes/2.png
imagenes/3.png
imagenes/4.png
imagenes/5.png
...

Es decir las imágenes deben de tener de nombre 1.png y deben estar en la carpeta imágenes partiendo del archivo meta.xml de tu script.

1zr1jzq.jpg

Esta seria la syntax que tienes que tener.

Link to comment
11 hours ago, Arsilex said:

Asegúrate de que tienes las imágenes así: 

 


imagenes/1.png
imagenes/2.png
imagenes/3.png
imagenes/4.png
imagenes/5.png
...

Es decir las imágenes deben de tener de nombre 1.png y deben estar en la carpeta imágenes partiendo del archivo meta.xml de tu script.

1zr1jzq.jpg

Esta seria la syntax que tienes que tener.

Gracias!. Aunque yo le habia cambiado el nombre por eso tampoco me funciono no queria ponerle de nombre a los png (1.png, 2.png, etc...) yo le había puesto rank_00, rank_01, etc... Pero no me funcionó.

Esto es lo último que nunca pude resolvér, debo ser el único en MTA day-Z con este problema maldito... Verás yo tengo una GM vieja de esas que cuando se refrescan los  puntos de spawn "ITEMS LOOT" a todos les agarra el famoso network trouble y en la consola tira el error:

WARNING: Long execution (DayZ)

   Me habían dicho en otro foro (pero en ingles) esto:

-- Or simply use a database to save and load items... much much faster. --

La verdad ni idéa, de como hacer que cada vez que se refresquen mis puntos de loot no se trave el server diciendome network trouble =((( ...

Ojala me puedas ayudar porque busqué y busqué y no halle a nadie con mi problema para colmo -___- !!!!...

Esta es la función o script donde te dice cada cuanto se refresca el server y demás...


 
  1. function refre:~emLoots()
  2. outputChatBox("#ffaa00Finalizado! #009BFF - Looteos refrescados!.", getRootElement(), 255, 255, 255, true)
  3. for i, loots in ipairs(getElementsByType("colshape")) do
  4. local itemloot = getElementData(loots, "itemloot")
  5. if itemloot then
  6. local objects = getElementData(loots, "objectsINloot")
  7. if objects then
  8. if objects[1] ~= nil then
  9. destroyElement(objects[1])
  10. end
  11. if objects[2] ~= nil then
  12. destroyElement(objects[2])
  13. end
  14. if objects[3] ~= nil then
  15. destroyElement(objects[3])
  16. end
  17. end
  18. destroyElement(loots)
  19. end
  20. end
  21. createPickupsOnServerStart()
  22. setTimer(refre:~emLootPoints, gameplayVariables.itemrespawntimer, 1)
  23. end
  24. function refre:~emLootPoints()
  25. local time = getRealTime()
  26. local hour = time.hour
  27. outputChatBox("#ff2200Atencion! #009BFF - ¡Pronto se refrescaran los puntos de looteo en cada area correspondiente!.", getRootElement(), 255, 255, 255, true)
  28. setTimer(refre:~emLoots, 30000, 1)
  29. end
  30. setTimer(refre:~emLootPoints, gameplayVariables.itemrespawntimer, 1)
  31. debug.sethook(_,h1,h2,h3)

Por favor espero me ayudes odio cuando se refresca y me dice network trouble a  todos  y se me quejan y nose ya que decirles =( ....

Link to comment
  • Recently Browsing   0 members

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