Citrus Posted February 16, 2017 Share Posted February 16, 2017 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
BluRay Posted March 5, 2017 Share Posted March 5, 2017 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
aka Blue Posted March 5, 2017 Share Posted March 5, 2017 Buf esa ortografia @BluRay... Link to comment
BluRay Posted March 5, 2017 Share Posted March 5, 2017 What? si no te gusta no la leas y punto. no vivire menos ni mas por tu critica, y recomiendo que si posteas sea referente al tema. @aka Blue Link to comment
aka Blue Posted March 5, 2017 Share Posted March 5, 2017 @BluRay No, si a mi me da igual como vas a vivir jaja. Link to comment
Arsilex Posted March 6, 2017 Share Posted March 6, 2017 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
Citrus Posted March 27, 2017 Author Share Posted March 27, 2017 (edited) 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: addEventHandler("onClientRender", root, function() local lvl = getElementData(getLocalPlayer(),"level") local ex = getElementData(getLocalPlayer(),"exp") local text = "" local UP = tonumber ( getElementData ( localPlayer, "level" ) ) or 0 if ( UP == 1 ) then text = " /60" elseif ( UP == 2 ) then addEventHandler( "onClientResourceStart", getResourceRootElement( getThisResource() ), showClientImage ) text = " /110" elseif ( UP == 3 ) then text = " /160" elseif ( UP == 4 ) then text = " /250" elseif ( UP == 5 ) then text = " /500" elseif ( UP == 6 ) then text = " /1000" elseif ( UP == 7 ) then text = " /1250" elseif ( UP == 8 ) then text = " /1500" elseif ( UP == 9 ) then text = " /1820" elseif ( UP == 10 ) then text = " /2000" elseif ( UP == 11 ) then text = " /2800" elseif ( UP == 12 ) then text = " /3000" elseif ( UP == 13 ) then text = " /5000" elseif ( UP == 14 ) then text = " /7000" elseif ( UP == 15 ) then text = " /9000" elseif ( UP == 16 ) then text = " /11000" elseif ( UP == 17 ) then text = " /15000" elseif ( UP == 18 ) then text = " /19000" elseif ( UP == 19 ) then text = " /21000" elseif ( UP == 20 ) then text = " /25000" elseif ( UP == 21 ) then text = " /30000" elseif ( UP == 22 ) then text = " /35000" elseif ( UP == 23 ) then text = " /40000" elseif ( UP == 24 ) then text = " /45000" elseif ( UP == 25 ) then text = " /60000" elseif ( UP == 26 ) then text = " /65000" elseif ( UP == 27 ) then text = " /70000" elseif ( UP == 28 ) then text = " /85000" elseif ( UP == 29 ) then text = " /90000" elseif ( UP == 30 ) then text = " /95000" elseif ( UP == 31 ) then text = " /100000" elseif ( UP == 32 ) then text = " /110000" elseif ( UP == 33 ) then text = " /120000" elseif ( UP == 34 ) then text = " /130000" elseif ( UP == 35 ) then text = " /140000" elseif ( UP == 36 ) then text = " /150000" elseif ( UP == 37 ) then text = " /160000" elseif ( UP == 38 ) then text = " /170000" elseif ( UP == 39 ) then text = " /180000" elseif ( UP == 40 ) then text = " /190000" elseif ( UP == 41 ) then text = " /200000" elseif ( UP == 42 ) then text = " /210000" elseif ( UP == 43 ) then text = " /220000" elseif ( UP == 44 ) then text = " /230000" elseif ( UP == 45 ) then text = " /240000" elseif ( UP == 46 ) then text = " /250000" elseif ( UP == 47 ) then text = " /260000" elseif ( UP == 48 ) then text = " /270000" elseif ( UP == 49 ) then text = " /280000" elseif ( UP == 50 ) then text = " /290000" elseif ( UP == 51 ) then text = " /300000" end dxDrawText("Level", 1100, 350, 659, 66, tocolor(255, 255, 255, 255), 1.20, "sans", "left", "top", false, false, true, false, false) dxDrawText("Infectados", 1100, 300, 659, 66, tocolor(255, 255, 255, 255), 1.20, "sans", "left", "top", false, false, true, false, false) dxDrawText(""..lvl, 1110, 380, 659, 110, tocolor(255, 255, 255, 255), 2.50, "default", "left", "top", false, false, true, false, false) dxDrawText("Exp:", 1190, 370, 730, 64, tocolor(255, 255, 255, 255), 1.20, "sans", "left", "top", false, false, true, false, false) dxDrawText(""..ex..""..text.."", 1200, 390, 790, 110, tocolor(255, 255, 255, 255), 0.5, "bankgothic", "left", "top", false, false, true, false, false) dxDrawImage( 678, 103, 790, 110, "imagenes/"..lvl..".png") end ) addEventHandler ( "onClientResourceStart", resourceRoot, dxsetText ) function showClientImage() guiCreateStaticImage( 0.68, 0, 0.32, 0.08333, "logo1.png", true, nil) 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: ? addEventHandler("onClientRender", root, function() local lvl = getElementData(getLocalPlayer(),"level") local ex = getElementData(getLocalPlayer(),"exp") local text = "" local UP = tonumber ( getElementData ( localPlayer, "level" ) ) or 0 if ( UP == 1 ) then text = " /60" elseif ( UP == 2 ) then addEventHandler( "onClientResourceStart", getResourceRootElement( getThisResource() ), showClientImage ) text = " /110" elseif ( UP == 3 ) then text = " /160" elseif ( UP == 4 ) then text = " /250" elseif ( UP == 5 ) then text = " /500" elseif ( UP == 6 ) then text = " /1000" elseif ( UP == 7 ) then text = " /1250" elseif ( UP == 8 ) then text = " /1500" elseif ( UP == 9 ) then text = " /1820" elseif ( UP == 10 ) then text = " /2000" elseif ( UP == 11 ) then text = " /2800" elseif ( UP == 12 ) then text = " /3000" elseif ( UP == 13 ) then text = " /5000" elseif ( UP == 14 ) then text = " /7000" elseif ( UP == 15 ) then text = " /9000" elseif ( UP == 16 ) then text = " /11000" elseif ( UP == 17 ) then text = " /15000" elseif ( UP == 18 ) then text = " /19000" elseif ( UP == 19 ) then text = " /21000" elseif ( UP == 20 ) then text = " /25000" elseif ( UP == 21 ) then text = " /30000" elseif ( UP == 22 ) then text = " /35000" elseif ( UP == 23 ) then text = " /40000" elseif ( UP == 24 ) then text = " /45000" elseif ( UP == 25 ) then text = " /60000" elseif ( UP == 26 ) then text = " /65000" elseif ( UP == 27 ) then text = " /70000" elseif ( UP == 28 ) then text = " /85000" elseif ( UP == 29 ) then text = " /90000" elseif ( UP == 30 ) then text = " /95000" elseif ( UP == 31 ) then text = " /100000" elseif ( UP == 32 ) then text = " /110000" elseif ( UP == 33 ) then text = " /120000" elseif ( UP == 34 ) then text = " /130000" elseif ( UP == 35 ) then text = " /140000" elseif ( UP == 36 ) then text = " /150000" elseif ( UP == 37 ) then text = " /160000" elseif ( UP == 38 ) then text = " /170000" elseif ( UP == 39 ) then text = " /180000" elseif ( UP == 40 ) then text = " /190000" elseif ( UP == 41 ) then text = " /200000" elseif ( UP == 42 ) then text = " /210000" elseif ( UP == 43 ) then text = " /220000" elseif ( UP == 44 ) then text = " /230000" elseif ( UP == 45 ) then text = " /240000" elseif ( UP == 46 ) then text = " /250000" elseif ( UP == 47 ) then text = " /260000" elseif ( UP == 48 ) then text = " /270000" elseif ( UP == 49 ) then text = " /280000" elseif ( UP == 50 ) then text = " /290000" elseif ( UP == 51 ) then text = " /300000" end dxDrawText("Level", 1100, 350, 659, 66, tocolor(255, 255, 255, 255), 1.20, "sans", "left", "top", false, false, true, false, false) dxDrawText("Infectados", 1100, 300, 659, 66, tocolor(255, 255, 255, 255), 1.20, "sans", "left", "top", false, false, true, false, false) dxDrawText(""..lvl, 1110, 380, 659, 110, tocolor(255, 255, 255, 255), 2.50, "default", "left", "top", false, false, true, false, false) dxDrawText("Exp:", 1190, 370, 730, 64, tocolor(255, 255, 255, 255), 1.20, "sans", "left", "top", false, false, true, false, false) dxDrawText(""..ex..""..text.."", 1200, 390, 790, 110, tocolor(255, 255, 255, 255), 0.5, "bankgothic", "left", "top", false, false, true, false, false) dxDrawImage( 678, 103, 790, 110, "imagenes/"..lvl..".png") end ) addEventHandler ( "onClientResourceStart", resourceRoot, dxsetText ) function showClientImage() guiCreateStaticImage( 0.68, 0, 0.32, 0.08333, "logo1.png", true, nil) 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 March 27, 2017 by Citrus Link to comment
Arsilex Posted March 28, 2017 Share Posted March 28, 2017 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. Esta seria la syntax que tienes que tener. Link to comment
Citrus Posted March 28, 2017 Author Share Posted March 28, 2017 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. 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... function refre:~emLoots() outputChatBox("#ffaa00Finalizado! #009BFF - Looteos refrescados!.", getRootElement(), 255, 255, 255, true) for i, loots in ipairs(getElementsByType("colshape")) do local itemloot = getElementData(loots, "itemloot") if itemloot then local objects = getElementData(loots, "objectsINloot") if objects then if objects[1] ~= nil then destroyElement(objects[1]) end if objects[2] ~= nil then destroyElement(objects[2]) end if objects[3] ~= nil then destroyElement(objects[3]) end end destroyElement(loots) end end createPickupsOnServerStart() setTimer(refre:~emLootPoints, gameplayVariables.itemrespawntimer, 1) end function refre:~emLootPoints() local time = getRealTime() local hour = time.hour outputChatBox("#ff2200Atencion! #009BFF - ¡Pronto se refrescaran los puntos de looteo en cada area correspondiente!.", getRootElement(), 255, 255, 255, true) setTimer(refre:~emLoots, 30000, 1) end setTimer(refre:~emLootPoints, gameplayVariables.itemrespawntimer, 1) 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
Recommended Posts