Jump to content

UserToDelete

Members
  • Posts

    766
  • Joined

  • Last visited

Everything posted by UserToDelete

  1. Osea que split servia para eso, buena informacion Gracias!
  2. El evento de onPlayerRegister no existe, solo si tu mismo lo creas. Cierto, pensé que existia
  3. function _blip () for k,v in ipairs(getElementsByType("player")) do if getElementDimension(v) == 1 then --createBlip else --destroyBlip end end end
  4. <spawn> <spawn>-2463, -627, 135</spawn> <spawn>-706, 953, 15</spawn> </spawn> El problema que tengo, es que al usar la funcion "spawnPlayer" me da error en el argumento 3, dice el error que no tiene nada. Lo que quiero saber es, como convertir esa string, por ejemplo "-2463, -627, 135" en tres strings distintas; "-2463", "-627", "135", es decir, pasarlo a un "formato tabla" function dead() if fileExists("spawn.xml") then local rootFile = xmlLoadFile("spawn.xml") local node = xmlNodeGetChildren(rootFile) local spaawn = math.random(1,#node) local val = xmlNodeGetValue(node[spaawn]) spawnPlayer(source, val) end end addEventHandler("onPlayerWasted", root, dead)
  5. No entiendo que hace el "isElement" en esa función
  6. Y es server side skin = 286 function _skin () setElementModel(source, skin) end addEventHandler("onPlayerLogin", root, _skin) De esta ya no estoy tan seguro de que funcione, esta sin testar. Todo depende de como quieras usarlo skin = 286 function _skin () repeat until setElementModel(source, skin) end addEventHandler("onPlayerLogin", root, _skin)
  7. las estadisticas de MTA:SA Community, que tipo de query tienen?, es decir, todas las estadisticas están a cero. Es un bug, o tiene query?
  8. Que pasaría en el supuesto hecho de que pusiera: if true then return ; else return false; end Daria como return else, o nada?
  9. No seas racista, porfavor. es una frase hecha de España
  10. Funciona cuando te unes al server con una IP como nombre? A mi no LOL
  11. Me disculpo por no haber especificado antes. La intención es cancelar el cambio de nombre al encontrar una coincidencia, Break rompe el loop, no? Y lo que no hace, es "No permitir el nombre", es decir, no filtra el nombre en sí, deja conectar con un nombre como "127.0.0.1" o "smod", al igual al cambiar de nombre EDIT: Solo no funciona al unirse, ni las "ips". Hice caso a Tomas. --[[ /////////////////////// / - CATH nickFilter / / - server.lua ////// /////////////////////// ]] noname = { "mod", "sobeit", "3arc" } function onChangeNick (old, new) for idName,name in ipairs(ipArray) do local nameFiltered = string.lower(new):gsub("#%x%x%x%x%x%x", "") local ids = string.find(name, nameFiltered) if ids and ids >= 1 then outputChatBox("No puedes ponerte este nombre.", root, 255,0,0,true) cancelEvent() end end for idName,name in ipairs(noname) do local nameFiltered = string.lower(new):gsub("#%x%x%x%x%x%x", "") local ids = string.find(name, nameFiltered) if ids and ids >= 1 then outputChatBox("No puedes ponerte este nombre.", root, 255,0,0,true) cancelEvent() end end end addEventHandler("onPlayerChangeNick", root, onChangeNick) function onConnect (Nick, IP, communityName, serial, version, versionStringed) for idName, name in ipairs(noname) do local ids = string.find(name, string.lower(Nick):gsub("#%x%x%x%x%x%x", "")) if ids and ids >= 1 then cancelEvent(true, "Por favor, cambia tu nombre y vuelve a conectarte.") end end for idName_, ips in ipairs(ipArray) do local ids = string.find(ips, string.lower(Nick):gsub("#%x%x%x%x%x%x", "")) if ids and ids >= 1 then cancelEvent(true, "Por favor, cambia tu nombre y vuelve a conectarte.") end end end addEventHandler("onPlayerConnect", root, onConnect)
  12. Exactamente para que sirve esto: repeat until while
  13. Es lo que yo llamo "scripts on dimension based" Cada script que hagas debe actuar en la dimension correspondiente, porque si pones freeroam en la misma que race, es un poco cruel
  14. Total de acuerdo con eso, a veces es solamente aprender a usar onClientRender o otro tipo de evento.
  15. Resulta que habia creado un perfectisisimo filtro de nombres, y que en el pasado, nose cuando, pero en el pasado funcionaba, dejo el codigo, ni errores, ni nada, debe ser algo que para al loop. onConnect, tampoco funciona, por lo tanto debe ser un problema con las tablas. --[[ /////////////////////// / - CATH nickFilter / / - server.lua ////// /////////////////////// ]] noname = { "admin", "root", "moderador", "moderator", "mod", "sobeit", "3arc", "supermoderator", "supermod", "smoderator", "smod", "adm" } function onChangeNick (old, new) for idName,name in ipairs(ipArray) do local nameFiltered = string.lower(new):gsub("#%x%x%x%x%x%x", "") local ids = string.find(name, nameFiltered) if ids and ids >= 1 then outputChatBox("No puedes ponerte este nombre.", root, 255,0,0,true) cancelEvent() break end end for idName,name in ipairs(noname) do local nameFiltered = string.lower(new):gsub("#%x%x%x%x%x%x", "") local ids = string.find(name, nameFiltered) if ids and ids >= 1 then outputChatBox("No puedes ponerte este nombre.", root, 255,0,0,true) cancelEvent() break end end end addEventHandler("onPlayerChangeNick", root, onChangeNick) function onConnect (Nick, IP, communityName, serial, version, versionStringed) for idName, name in ipairs(noname) do local ids = string.find(name, string.lower(Nick):gsub("#%x%x%x%x%x%x", "")) if ids then cancelEvent(true, "Por favor, cambia tu nombre y vuelve a conectarte.") return end end for idName_, ips in ipairs(ipArray) do local ids = string.find(ips, string.lower(Nick):gsub("#%x%x%x%x%x%x", "")) if ids then cancelEvent(true, "Por favor, cambia tu nombre y vuelve a conectarte.") return end end end addEventHandler("onPlayerConnect", root, onConnect)
  16. Seguramente has puesto lo siguiente; listaDeCanciones= { [1] = "www.ejemplo1.com", [2] = "www.ejemplo2.com", [3] = "www.ejemplo3.com" } playSound3D(listaDeCanciones) En vez de escoger solo una listaDeCanciones= { [1] = "www.ejemplo1.com", [2] = "www.ejemplo2.com", [3] = "www.ejemplo3.com" } playSound3D(listaDeCanciones[1], x,y,z,false) --El [?] Se usa para definir el 'id' de la tabla a referir, en este caso, el 1: http://www.ejemplo1.com Aun así postea tu codigo
  17. la cuestión es tenerlo todo en server side, si tengo un trighger a client, ya no sirve , de esa manera, seria mucha mas facil en client, dxDraw y fuera!
  18. values = { oderecha = 0.35, oabajo = 0.05, spacing = 0.01667, lineas = 9, current_line = 0, derecha = 0.35, abajo = 0.05 } 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 --[[for ke, resolution in ipairs(mtaresolutions) do for INDEX, VALUE in ipairs(resolution) do outputChatBox(tostring(VALUE[1]).." ANOTHER WRITE: "..tostring(VALUE[2])), source, 255,0,0,true) end end]] end addCommandHandler("cc", createWindowc) local function onClickInServerScreen (button, state,element, wx, wy, wz, sx, sy) if button == "left" and state == "down" then --outputChatBox("RIGHT "..tostring(sx).. " | "..tostring(sy), root) for ke, VALUE in ipairs(mtaresolutions) do --outputChatBox("FIRST RES: "..tostring(VALUE[1]), root) 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 --outputChatBox("rx: "..tostring(rx).. " | ry: "..tostring(ry), root) 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 --outputChatBox("CORRECT ZONE", root) --outputChatBox(tostring(ry), root) break end end end end addEventHandler("onPlayerClick", root, onClickInServerScreen) Este es el lua "limpio"
  19. 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)
  20. function el_boton() guiSetVisible(GUI, false) showCursor(false) end addEventHandler ( "onClientGUIClick", botoncerrar, el_boton, false )
  21. Solo si tienes un bucle y una function que tarde mas que el timer en terminar, si con "lag" te refieres a Network Trouble
  22. 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?
  23. Corregido, thank you. Lo reconstrui, lo tenia borrado
  24. TheChine te ha puesto el evento, es mas efectivo cara a un onClientRender, No sé para que inventan este evento, es inutil. Ya que solo se ejecuta una vez addEventHandler("onClientPlayerTarget", localPlayer, nil) Ah bueno, puedes combinarlo con un cancel. addEventHandler("onClientPlayerTarget", root, function () cancelEvent() end ) Vamos, casi inutil.
×
×
  • Create New...