UserToDelete Posted April 3, 2015 Share Posted April 3, 2015 He estado aprendiendo estos ultimos dos años mucha cantidad de script, y me gustaría seguir ampliando, Asi que doy la posibilidad de que me digan "Que hacer" en un archivo lua que posteriormente publicare para su correccion. Solo server side Link to comment
Tomas Posted April 3, 2015 Share Posted April 3, 2015 Una interfaz gráfica en server-side Link to comment
UserToDelete Posted April 3, 2015 Author Share Posted April 3, 2015 Una interfaz gráfica en server-side Explicate mejor, a que te refieres con interfaz grafica?, mostrando que tipo de informacion? Link to comment
Tomas Posted April 3, 2015 Share Posted April 3, 2015 Una interfaz gráfica en server-side Explicate mejor, a que te refieres con interfaz grafica?, mostrando que tipo de informacion? http://es.wikipedia.org/wiki/Interfaz_gráfica_de_usuario Link to comment
Sasu Posted April 4, 2015 Share Posted April 4, 2015 · Hidden Hidden Una interfaz gráfica en server-side ¿Es posible eso ._.? Link to comment
Tomas Posted April 4, 2015 Share Posted April 4, 2015 Una interfaz gráfica en server-side ¿Es posible eso ._.? Usando las funciones de texto de MTA en server-side se puede hacer un rectángulo, cuesta muucho lograrlo pero es posible Link to comment
Enargy, Posted April 4, 2015 Share Posted April 4, 2015 · Hidden Hidden Tomas tiene razón, si se puede hacer con TextCreateTextItem pero para hacerlo es estresante . Lo hice yo mismo con " | " y " _ " Link to comment
UserToDelete Posted April 4, 2015 Author Share Posted April 4, 2015 Ando trabajando en ello. Link to comment
UserToDelete Posted April 4, 2015 Author Share Posted April 4, 2015 (edited) Una interfaz gráfica en server-side RETO: A MEDIAS values = { oderecha = 0.35, oabajo = 0.05, spacing = 0.01667, lineas = 6, current_line = 0, derecha = 0.35, abajo = 0.05 } putaletra = { "lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll" } function createWindowc (source, command) for index=1, 9999999 do values.derecha = values.derecha + 0.001 local myDisplay = textCreateDisplay () textDisplayAddObserver(myDisplay, source) local myText = textCreateTextItem(putaletra[1], values.derecha,values.abajo,0,0,0,0,175,1) textDisplayAddText(myDisplay, myText) values.derecha = values.derecha + 0.001 local myText2 = textCreateTextItem(putaletra[1], values.derecha,values.abajo,0,0,0,0,175,1) textDisplayAddText(myDisplay, myText2) values.abajo = values.abajo + values.spacing values.current_line = values.current_line + 1 values.derecha = values.oderecha if values.current_line >= values.lineas then values.abajo = values.oabajo values.derecha = values.oderecha values.current_line = 1 textDisplayAddText(myDisplay, textCreateTextItem("Tu nombre es: "..getPlayerName(source):gsub("#%x%x%x%x%x%x", ""), values.oderecha + 0.015,values.oabajo + 0.03,0,255,255,255,255,1)) textDisplayAddText(myDisplay, textCreateTextItem("Tu IP es: "..getPlayerIP(source), values.oderecha + 0.015,values.oabajo + 0.06,0,255,255,255,255,1)) break end end end addCommandHandler("cc", createWindowc) Edited April 4, 2015 by Guest Link to comment
Tomas Posted April 4, 2015 Share Posted April 4, 2015 Con interfaz gráfica no me refiero a hacer un rectángulo, me refiero a una interfaz gráfica con funciones y todas esas weas Link to comment
UserToDelete Posted April 4, 2015 Author Share Posted April 4, 2015 Dame un par de horas o dias. Link to comment
Sasu Posted April 5, 2015 Share Posted April 5, 2015 · Hidden Hidden O mejor semanas ._.' Link to comment
DBY Posted April 5, 2015 Share Posted April 5, 2015 · Hidden Hidden O mejor semanas ._.' Meses mejor dicho... ¿Por qué sólo aceptas proposiciones de cosas de server-side? Link to comment
Tomas Posted April 5, 2015 Share Posted April 5, 2015 O mejor semanas ._.' Meses mejor dicho... ¿Por qué sólo aceptas proposiciones de cosas de server-side? TheChine deberías tener cuidado con el banner de las stats de tu servidor, está vulnerable a inyecciones SQL gg Link to comment
Kilfwan Posted April 5, 2015 Share Posted April 5, 2015 · Hidden Hidden Diganle Que Haga un Gamemode Haber si se Atreve Link to comment
DBY Posted April 6, 2015 Share Posted April 6, 2015 · Hidden Hidden O mejor semanas ._.' Meses mejor dicho... ¿Por qué sólo aceptas proposiciones de cosas de server-side? TheChine deberías tener cuidado con el banner de las stats de tu servidor, está vulnerable a inyecciones SQL gg O_o Link to comment
UserToDelete Posted April 6, 2015 Author Share Posted April 6, 2015 Díganle Que Haga un Gamemode Haber si se Atreve Tengo un server offline con el gamemode de BomBerman, bastante divertido. y ando haciendo un RPG muy trabajado. La GUI En server side, lo veo IMPOSIBLE, ya que en server side, no hay una function para detectar "Si estas viendo un objeto" o "detectar algo en sí" Necesitarías como mínimo un trigger desde client con la resolución de cliente. Por si a alguien se le ocurre como hacerlo, dejo la parte del script útil, y lo ha construir en comentario --[[ TODO - Saber la resolucion del cliente [ESTADO: IMPOSBIEL] ]] values = { oderecha = 0.35, oabajo = 0.05, spacing = 0.01667, lineas = 9, current_line = 0, derecha = 0.35, abajo = 0.05 } --[[playerData = { posx = nil, posy = nil, posz = nil }]] element = { posx = nil, posy = nil, posz = nil } mtaresolutions = { {1360, 768}, {1280, 768}, {1280, 720}, {1024, 768}, {800, 600}, {720, 576}, {720, 480}, {640, 480} } putaletra = { "lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll" } function createWindowc (source, command) for index=1, 9999999 do values.derecha = values.derecha + 0.001 myDisplay = textCreateDisplay () textDisplayAddObserver(myDisplay, source) myText = textCreateTextItem(putaletra[1], values.derecha,values.abajo,0,0,0,0,175,1) textDisplayAddText(myDisplay, myText) values.derecha = values.derecha + 0.001 myText2 = textCreateTextItem(putaletra[1], values.derecha,values.abajo,0,0,0,0,175,1) textDisplayAddText(myDisplay, myText2) values.abajo = values.abajo + values.spacing values.current_line = values.current_line + 1 values.derecha = values.oderecha if values.current_line >= values.lineas then values.abajo = values.oabajo values.derecha = values.oderecha values.current_line = 0 --textDisplayAddText(myDisplay, textCreateTextItem("Tu nombre es: "..getPlayerName(source):gsub("#%x%x%x%x%x%x", ""), values.oderecha + 0.015,values.oabajo + 0.03,0,255,255,255,255,1)) --textDisplayAddText(myDisplay, textCreateTextItem("Tu IP es: "..getPlayerIP(source), values.oderecha + 0.015,values.oabajo + 0.06,0,255,255,255,255,1)) textDisplayAddText(myDisplay, textCreateTextItem("PULSA 1 PARA VER TUS DETALLES", values.oderecha + 0.015,values.oabajo + 0.09,0,255,255,255,255,1)) textDisplayAddText(myDisplay, textCreateTextItem("_____________________________________________", values.oderecha + 0.015,values.oabajo + 0.1,0,255,255,255,255,1)) textDisplayAddText(myDisplay, textCreateTextItem("_____________________________________________", values.oderecha + 0.015,values.oabajo + 0.065,0,255,255,255,255,1)) showCursor(source, true) break end end --CAMERA CLIENT RESOLUTION GETTER --local x, y, z = getElementPosition(source) --playerData.posx, playerData.posy, playerData.posz = tonumber(x), tonumber(y), tonumber(z) --setCameraMatrix(source,0,0,5000,0,0,0,0) --toCheck = createMarker(990,0,4990,"corona", 1, 0, 0, 0, 255, source) --[[if isElementVisibleTo(toCheck, source) then outputChatBox("ES VISIBLE",source,0,255,0,true) else outputChatBox("NOO ES VISIBLE", source, 255,255,0,true) end ]] for ke, resolution in ipairs(mtaresolutions) do end end addCommandHandler("cc", createWindowc) local function onClickInServerScreen (button, state,element, wx, wy, wz, sx, sy) end addEventHandler("onClick", root, onClickInServerScreen) O mejor semanas ._.' Meses mejor dicho... ¿Por qué sólo aceptas proposiciones de cosas de server-side? Porque de client no tengo mucha idea, solo de funciones básicas, y lo mas seguro que digan en "client" serán animaciones de GUI O mejor semanas ._.' Semanas no, andaba pensando en crear un "element" para detectar la resolucion, pero al no poder comprobar si el objeto entra dentro de la pantalla de source en cuestión, no puedo comprobar si la pantalla esta mirando a ese elemento o no, de esa manera podrías comprobar la resolución desde server side. Resumidamente, si quieres hacer un gui desde server side, la unica manera de con keyBind. Link to comment
Sasu Posted April 7, 2015 Share Posted April 7, 2015 · Hidden Hidden Te costará algo de tiempo a no ser que estes todo el dia. -Las posiciones son relativas, no nesecitas la resolucion del cliente ¿Para que nesecitas saber si el jugador esta mirando un elemnto? No necesitas eso para el gui en server. Link to comment
Tomas Posted April 7, 2015 Share Posted April 7, 2015 Díganle Que Haga un Gamemode Haber si se Atreve Tengo un server offline con el gamemode de BomBerman, bastante divertido. y ando haciendo un RPG muy trabajado. La GUI En server side, lo veo IMPOSIBLE, ya que en server side, no hay una function para detectar "Si estas viendo un objeto" o "detectar algo en sí" Necesitarías como mínimo un trigger desde client con la resolución de cliente. Por si a alguien se le ocurre como hacerlo, dejo la parte del script útil, y lo ha construir en comentario --[[ TODO - Saber la resolucion del cliente [ESTADO: IMPOSBIEL] ]] values = { oderecha = 0.35, oabajo = 0.05, spacing = 0.01667, lineas = 9, current_line = 0, derecha = 0.35, abajo = 0.05 } --[[playerData = { posx = nil, posy = nil, posz = nil }]] element = { posx = nil, posy = nil, posz = nil } mtaresolutions = { {1360, 768}, {1280, 768}, {1280, 720}, {1024, 768}, {800, 600}, {720, 576}, {720, 480}, {640, 480} } putaletra = { "lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll" } function createWindowc (source, command) for index=1, 9999999 do values.derecha = values.derecha + 0.001 myDisplay = textCreateDisplay () textDisplayAddObserver(myDisplay, source) myText = textCreateTextItem(putaletra[1], values.derecha,values.abajo,0,0,0,0,175,1) textDisplayAddText(myDisplay, myText) values.derecha = values.derecha + 0.001 myText2 = textCreateTextItem(putaletra[1], values.derecha,values.abajo,0,0,0,0,175,1) textDisplayAddText(myDisplay, myText2) values.abajo = values.abajo + values.spacing values.current_line = values.current_line + 1 values.derecha = values.oderecha if values.current_line >= values.lineas then values.abajo = values.oabajo values.derecha = values.oderecha values.current_line = 0 --textDisplayAddText(myDisplay, textCreateTextItem("Tu nombre es: "..getPlayerName(source):gsub("#%x%x%x%x%x%x", ""), values.oderecha + 0.015,values.oabajo + 0.03,0,255,255,255,255,1)) --textDisplayAddText(myDisplay, textCreateTextItem("Tu IP es: "..getPlayerIP(source), values.oderecha + 0.015,values.oabajo + 0.06,0,255,255,255,255,1)) textDisplayAddText(myDisplay, textCreateTextItem("PULSA 1 PARA VER TUS DETALLES", values.oderecha + 0.015,values.oabajo + 0.09,0,255,255,255,255,1)) textDisplayAddText(myDisplay, textCreateTextItem("_____________________________________________", values.oderecha + 0.015,values.oabajo + 0.1,0,255,255,255,255,1)) textDisplayAddText(myDisplay, textCreateTextItem("_____________________________________________", values.oderecha + 0.015,values.oabajo + 0.065,0,255,255,255,255,1)) showCursor(source, true) break end end --CAMERA CLIENT RESOLUTION GETTER --local x, y, z = getElementPosition(source) --playerData.posx, playerData.posy, playerData.posz = tonumber(x), tonumber(y), tonumber(z) --setCameraMatrix(source,0,0,5000,0,0,0,0) --toCheck = createMarker(990,0,4990,"corona", 1, 0, 0, 0, 255, source) --[[if isElementVisibleTo(toCheck, source) then outputChatBox("ES VISIBLE",source,0,255,0,true) else outputChatBox("NOO ES VISIBLE", source, 255,255,0,true) end ]] for ke, resolution in ipairs(mtaresolutions) do end end addCommandHandler("cc", createWindowc) local function onClickInServerScreen (button, state,element, wx, wy, wz, sx, sy) end addEventHandler("onClick", root, onClickInServerScreen) O mejor semanas ._.' Meses mejor dicho... ¿Por qué sólo aceptas proposiciones de cosas de server-side? Porque de client no tengo mucha idea, solo de funciones básicas, y lo mas seguro que digan en "client" serán animaciones de GUI O mejor semanas ._.' Semanas no, andaba pensando en crear un "element" para detectar la resolucion, pero al no poder comprobar si el objeto entra dentro de la pantalla de source en cuestión, no puedo comprobar si la pantalla esta mirando a ese elemento o no, de esa manera podrías comprobar la resolución desde server side. Resumidamente, si quieres hacer un gui desde server side, la unica manera de con keyBind. ¿A qué te refieres con detectar "Si estas viendo un objeto"? Puedes guardar la información en una tabla y luego con una función leerla. No es imposible. Link to comment
UserToDelete Posted April 7, 2015 Author Share Posted April 7, 2015 O_o No me gusta el offtopic, Ni tus PM insultantes de los que ni hago caso porque no me drogo Enfin, la solucion de serverGUI que he pensado en en un loop con las resoluciones de MTA y checkear el click en cada una de ellas, si, es relativo, pero el click que devuelve "onClick", son absolutas. Alguna otra solucion? Link to comment
Sasu Posted April 7, 2015 Share Posted April 7, 2015 · Hidden Hidden Mmm... tienes razon. Lo que podrias hacer es un ida y vuelta al cliente para obtener su resolucion, o bien utilizar un element data. Link to comment
Sasu Posted April 7, 2015 Share Posted April 7, 2015 · Hidden Hidden onPlayerClick regresa posiciones absolutas de la pantalla, si se desea convertirla en posiciones relativas primero debemos conocer la resolucion de la pantalla del cliente. Link to comment
Tomas Posted April 8, 2015 Share Posted April 8, 2015 textItemGetPosition también devuelve posiciones relativas a la pantalla Link to comment
UserToDelete Posted April 8, 2015 Author Share Posted April 8, 2015 textItemGetPosition también devuelve posiciones relativas a la pantalla Tomas, fijate, onPlayerClick devuelve posiciones absolutas, no relativas, me interesa saber el getPosition absoluto, no relativo. He logrado hacer esto, no es efectivo, pero es lo unico que he podido hacer. local function onClickInServerScreen (button, state,element, wx, wy, wz, sx, sy) if button == "left" and state == "down" then for ke, VALUE in ipairs(mtaresolutions) do local rx = (sx / tonumber(VALUE[1])) --X relative. local ry = (sy / tonumber(VALUE[2])) --Y relative. local YZ = 0.135 local YY = YZ + 0.03 if rx >= values.oderecha + 0.015 and rx <= values.oderecha + 0.015 + (string.len("PULSA 1 PARA VER TUS DETALLES") * 0.014) and ry >= YZ and ry <= YY then return end end end end addEventHandler("onPlayerClick", root, onClickInServerScreen) Link to comment
Recommended Posts