-
Posts
2,869 -
Joined
-
Last visited
Everything posted by Alexs
-
Intenta esto: setElementData(source,"KDR",math.round((getElementData(source,"TK") or 0) / (getElementData(source,"TD") or 0,2 )))
-
No es por intentar moderarlos, pero no me parece prudente discutir de esta manera cuando hay un usuario que quiere ayuda, por lo demás, están todos equivocados. @Smokee échale un ojo a este post: viewtopic.php?f=146&t=78911 La idea central en el método utilizado por ambos recursos es la misma, aunque podría ser un poco mas complicado conseguir que las ondas/barras se muevan en relación al audio. * Quizá puedas utilizar 'getSoundFFTData'.
-
FosterMyHost.com - Alojamiento de calidad
Alexs replied to FosterMyHost's topic in Soluciones de hosting
Esta empresa cerró hace varios meses. -
Parece ser que en las lineas 27, 33 y 36 omitiste las comillas al definir las variables.
-
Comparas si es mayor a la posición inicial y menor a la posición final. Me tome el tiempo de describir el método comúnmente utilizado en una respuesta a este post: viewtopic.php?f=145&t=81013
-
No me refería eso, pero no hay motivos para seguir discutiendo al respecto.
-
Te publicare un código antiguo que antes utilicé: --Seleccion de idioma. addEvent( 'onClientLanguageSelect' ) lang = 1 local sW, sH = guiGetScreenSize() local iSlang = { [1] = { sW*.17, sH*.34, sW*.26, sH*.29 }, [2] = { sW*.60, sH*.34, sW*.26, sH*.29 }, [3] = { sW*.33, sH*.05, sW*.72, sH*.20 }, [4] = { sW*.33, sH*.77, sW*.72, sH*.93 } } local varText = { 'SELECCIONA TU IDIOMA', 'ESPAÑOL' } local alpha = 250 local sFont = dxCreateFont( 'files/idS.ttf', 24 ) local alreadySelected = false local langSel = 1 function drawLangSelect( ) dxDrawImage( iSlang[1][1],iSlang[1][2],iSlang[1][3],iSlang[1][4], 'files/1.png', 0,0,0,tocolor( 255,255,255,alpha ) ) dxDrawImage( iSlang[2][1],iSlang[2][2],iSlang[2][3],iSlang[2][4], 'files/2.png', 0,0,0,tocolor( 255,255,255,alpha ) ) dxDrawText( varText[1], iSlang[3][1],iSlang[3][2],iSlang[3][3],iSlang[3][4], tocolor( 214, 199, 204, alpha ), 1, sFont, 'center', 'center' ) dxDrawText( varText[2], iSlang[4][1],iSlang[4][2],iSlang[4][3],iSlang[4][4], tocolor( 214, 199, 204, alpha ), 1, sFont, 'center', 'center' ) if alreadySelected then alpha = math.max( alpha - 7.5, 0 ) end screenx, screeny, worldx, worldy, worldz = getCursorPosition() if screenx then if screenx < 0.5 then if langSel ~= 1 then langSel = 1 playSound( 'files/click.mp3', false ) varText[1] = 'SELECCIONA TU IDIOMA' varText[2] = 'ESPAÑOL' end else if langSel ~= 2 then langSel = 2 playSound( 'files/click.mp3', false ) varText[1] = 'CHOOSE A LANGUAGE' varText[2] = 'ENGLISH' end end end end showPlayerHudComponent ( 'radar', false ) addEventHandler( 'onClientResourceStart', resourceRoot, function() addEventHandler( 'onClientRender', root, drawLangSelect ) showCursor( true ) showChat( false ) end ) addEventHandler( 'onClientClick', root, function( button ) if not alreadySelected and button == 'left' then alreadySelected = true showCursor( false ) setElementData( localPlayer, 'lang', langSel, true ) lang = langSel --outputConsole( lang ) setTimer( function() triggerEvent( 'onClientLanguageSelect', localPlayer, langSel ) removeEventHandler( 'onClientRender', root, drawLangSelect ) langSel = nil varText = nil iSlang = nil alpha = nil end, 3500, 1 ) end end ) addEventHandler( 'onClientLanguageSelect', localPlayer, function() fadeCamera( true, 8 ) showLoginPanel( true ) --outputConsole( lang ) end ) engineImportTXD ( engineLoadTXD ( "files/pedsinho.txd" ), 264 ) engineReplaceModel ( engineLoadDFF ( "files/pedsinho.dff", 264 ), 264 ) logDat = { [1] = guiCreateEdit(0.175, 0.37, 0.16, 0.04, "", true), [2] = guiCreateEdit(0.175, 0.46, 0.16, 0.04, "", true) } guiEditSetMasked ( logDat[2], true ) guiSetVisible( logDat[1], false ) guiSetVisible( logDat[2], false ) function findRotation(x1,y1,x2,y2) local t = -math.deg(math.atan2(x2-x1,y2-y1)) if t < 0 then t = t + 360 end; return t; end local pedPos = { { -562.93627929688 , -182.88854980469 , 78.40625 }, { -570.56188964844 , -179.27172851563 , 78.40625 }, { -560.26354980469 , -190.67237854004 , 78.40625 }, { -545.92419433594 , -181.00379943848 , 81.885429382324 }, { -582.88909912109 , -194.32417297363 , 79.275253295898 }, { -570.77825927734 , -202.36463928223 , 78.370208740234 }, { -526.56927490234 , -210.44438171387 , 78.40625 }, { -587.90802001953 , -201.34634399414 , 78.540313720703} } function showLoginPanel( show ) if show then panelPed = createPed( 264, 0, 0, 0) addEventHandler( 'onClientRender', root, logPanelDesign ) guiSetVisible( logDat[1], true ) guiSetVisible( logDat[2], true ) showCursor( true ) appearing = true setCameraMatrix(-590.71081542969 , -202.83940124512 , 83.259002685547 , -281.35601806641 , -95.161087036133 , 36.83198547363, -18 , 80 ) setPedLookAt ( panelPed, -590.71081542969 , -202.83940124512 , 83.259002685547 ) pedTimer = setTimer( function() local x, y, z = unpack(pedPos[math.random(1, #pedPos)]) setElementPosition( panelPed, x, y, z +.12 ) local rotZ = findRotation(x, y, -590.71081542969 , -202.83940124512 ) setElementRotation( panelPed, 0, 0, rotZ, 'default', true ) end, 1600, 0 ) else showCursor( false ) setTimer( function() removeEventHandler( 'onClientRender', root, logPanelDesign ) end, 500, 1 ) guiSetVisible( logDat[1], false ) guiSetVisible( logDat[2], false ) appearing = false posLP = nil textB = nil killTimer( pedTimer ) fadeCamera( false, 5 ) destroyElement( panelPed ) panelPed = nil end end local alphaLog = 0 local posLP = { [1] = { 0, sH *.3, sW, sH*.43 }, --background rectangle [2] = { sW*.175, sH*.32, sW*.3, sH*.365 }, --Username Label [3] = { sW*.175, sH*.48, sW*.3, sH*.445 }, --Pass Label [4] = { sW*.5, sH*.32, sW*.5, sH*.7 }, --Line [5] = { sW*.175, sH*.512, sW*.16, sH*.0375 }, --Image [6] = { sW*.175, sH*.512, sW*.335, sH*.5495 }, --Ident [7] = { sW*.175, sH*.54, sW*.3, sH*.585 } --Av Label } local textB = { [1] = 'USUARIO:;USERNAME:', [2] = 'CONTRASEÑA:;PASSWORD:', [3] = 'IDENTIFICARSE;LOG IN' } local avs = { [4] = 'Esperando...;Waiting...', [5] = 'Identificando...;Identifying', [0] = 'Identificado!;Logged!', [1] = 'Cuenta no existente;Account not found', [2] = 'Contraseña Incorrecta;Wrong Password', [3] = 'ERROR!;ERROR!' } local idT = avs[4] local img = 'files/idleB.png' local overButton = false function logPanelDesign () if appearing then alphaLog = math.min(alphaLog + 6, 255) else alphaLog = math.max( alphaLog - 8, 0) end dxDrawImage( 0, 0, sW, sH, 'files/background.png', 0, 0, 0, tocolor( 0, 0, 0, alphaLog*.9 ) ) dxDrawRectangle( posLP[1][1],posLP[1][2],posLP[1][3],posLP[1][4],tocolor(255,240,240,alphaLog-50), false ) dxDrawText( gettok(textB[1], lang, 59), posLP[2][1],posLP[2][2],posLP[2][3],posLP[2][4], tocolor( 240, 0, 15, alphaLog ), 0.4, sFont, 'left', 'bottom' ) dxDrawText( gettok(textB[2], lang, 59), posLP[3][1],posLP[3][2],posLP[3][3],posLP[3][4], tocolor( 240, 0, 15, alphaLog ), 0.4, sFont, 'left', 'bottom' ) dxDrawLine( posLP[4][1],posLP[4][2],posLP[4][3],posLP[4][4], tocolor( 205, 110, 10, alphaLog ), 2 ) dxDrawImage( posLP[5][1],posLP[5][2],posLP[5][3],posLP[5][4], img ) dxDrawText( gettok(textB[3], lang, 59), posLP[6][1],posLP[6][2],posLP[6][3],posLP[6][4], tocolor( 240, 0, 15, alphaLog ), 0.32, sFont, 'center', 'center' ) dxDrawText( gettok(idT, lang, 59), posLP[7][1],posLP[7][2],posLP[7][3],posLP[7][4], tocolor( 24, 24, 24, alphaLog ), 0.4, sFont, 'center', 'center' ) if isCursorShowing() then local x, y, _, _, _ = getCursorPosition() if x > 0.175 and x < 0.335 and y > 0.512 and y < 0.5495 then if not overButton then overButton = true img = 'files/overB.png' playSound( 'files/click.mp3', false ) end else if overButton then overButton = false img = 'files/idleB.png' playSound( 'files/click.mp3', false ) end end end end spamming = false addEventHandler( 'onClientClick', root, function( button ) if not spamming then --outputConsole( button ) --outputConsole( tostring( overButton ) ) if button == 'left' and overButton then if #guiGetText( logDat[1] ) > 0 and #guiGetText( logDat[2] ) > 0 then triggerServerEvent( 'onPanelButtonPress', localPlayer, 1 ,guiGetText( logDat[1] ), md5(guiGetText( logDat[2] )):upper() ) spamming = true idT = avs[5] --outputConsole( 'Enviado' ) end end end end ) addEvent( 'onIdentifyEnd', true ) addEventHandler( 'onIdentifyEnd', root, function( logged, value ) if logged then appearing = false setTimer( showLoginPanel, 320, 1, false ) else spamming = false end idT = avs[(value or 3)] end ) local validSkins = getValidPedModels() local nonValidSkins = {0, 264} local actualValue = 1 for _, i in
-
No lo haré, el respeto a los principios, morales y de conducta, propios de un foro, en el cual el compañerismo esta basado en el respeto por las ideas ajenas, es parte de la responsabilidad de uso inherente a la naturaleza del mismo.
-
Hay ciertas maneras de "copiar" códigos completos de un recurso, sin embargo, como esto atenta a los principios éticos de este foro, no podríamos explicarte como.
-
Han pasado casi dos meses desde la ultima vez que se supo de @zero en este post y la ultima vez que supe de él, estaba con otros proyectos.
-
Are the anomaly and the map compatible with old computers?
-
En ese caso es fácil, puedes reemplazar el resultado por la operación: editUsername = guiCreateEdit(sWidth*(37/1024), sHeight*(144/768), sWidth*(248/1024), sHeight*(24/768), "", false, registerWindow) Aunque, si posees un mínimo de conciencia respecto a la eficiencia de tus códigos, te recomiendo seguir haciendo los cálculos y utilizando los resultados; las divisiones son operaciones que toman mucho tiempo en su ejecución y no veo el sentido de sacrificar este tiempo solo por pereza de realizar el calculo de manera manual.
-
Me parece excelente que hayas podido resolverlo, seria útil para personas con un problema semejante que pudieses publicar el código en su forma final.
-
Tu respuesta no tiene sentido, es la misma función que el quiere utilizar, solo que abreviada y sin posibilidad de utilizar otros métodos. @Narutimmy prueba esto: function math.round(number, decimals, method) decimals = decimals or 0 local factor = 10 ^ decimals if (method == "ceil" or method == "floor") then return math[method](number * factor) / factor else return tonumber(("%."..decimals.."f"):format(number)) end end setElementData(source,"KDR",math.round( (getElementData(source,"TK") / getElementData(source,"TD")), 2, 'ceil' ) ) Ando algo apresurado así que no lo comprobé, avísanos si funciona.
-
¿A que te refieres con 'las divisiones'?
-
Utiliza 'onVehicleStartEnter' y comprobaciones simples de información del jugador.
-
Te aconsejo echarle un ojo al siguiente tutorial: http://lua-users.org/wiki/TablesTutorial
-
¿Y si lo haces fuera del entorno de una función, por tanto, también ajeno de un evento?
-
¿Podrías publicar el recurso? No estoy seguro de tener el mismo recurso o la misma versión que tu.
-
Ambas respuestas deberían ser resueltas una vez comprendas que en realidad 'dxDrawRectangle' no genera un elemento, sino una simple visualización, entonces tendrás que utilizar aquellos datos que si conoces y que si existen de forma teórica-luego-pragmática (y ya no visual) del rectángulo dibujado, es decir, su posición y su tamaño. En el caso de los rectángulos, es en realidad sencillo conocer si el cursor se ubica dentro de este (es decir, dentro de su presentación gráfica), todo se basa en comprobar mediante aritmética simple si el cursor esta ubicado en una posición mayor a la posición inicial del cuadrado y menor a esta posición sumada -o en ciertos casos restada, si es que no me equivoco- al tamaño (es decir, la posición final de su forma). Por tanto, utilizando 'onClientRender' solucionaras tu segundo problema/duda y con 'onClientClick' resolverás el primero, ademas según veo, ya sabes que la posición del cursor se consigue utilizando 'getCursorPosition' y, por ende, deberías comprender que los parámetros de 'onClientClick' reemplazaran esta función en lo referente a la primera pregunta que planteas. * Ahora mismo no tengo a disposición inmediata un ejemplo lo suficientemente sencillo como para evitar cualquier confusión posible, por tanto, espero que alguno de los demás miembros de este foro aporte alguna ejemplificación simple en lo referente a este problema. * Edito; agradezco a @AsuS. por esta publicación: viewtopic.php?f=146&t=76790 En ella se muestran las respuestas y soluciones a tus dudas.
-
playSound3D reproduce el sonido en un lugar X de SA. Tanto 'playSound' como 'playSound3D' pueden ser utilizados en reproducir un sonido para todos los jugadores, no hay ningún problema en lo que dijo @Alfa. @pepsi18, intenta utilizar alguna de los dos funciones que ya mencione en conjunto a algún trigger y sin mayor problema conseguirás realizar lo que buscas.
-
Solo como comentario, espero no lo tomes como ofensa, te recomiendo mantener la forma de mis condicionales, es tautológico realizar en ellas una comprobación entre dos variables de tipo boolean. puerta = createObject (3115, -2183.6943359375, 608.4990234375, 58.674999237061) open = false function puerta1 (thePlayer) if not open then moveObject (puerta, 1000, -2183.6943359375, 626.99597167969, 58.674999237061) open = true outputChatBox ("#00ff00 Abriendo Puerta", thePlayer, 255, 255, 255, true ) elseif open then moveObject (puerta, 1000, -2183.6943359375, 608.4990234375, 58.674999237061) open = false outputChatBox ("#ff0000 Cerrando Puerta", thePlayer, 255, 255, 255, true ) end end addCommandHandler("abrir", puerta1)
-
No veo el problema, quizá no utilice las variables, pero su definición no afecta el rendimiento del recurso ni da problemas en su funcionamiento.