Jump to content

Tomas

Members
  • Posts

    2,530
  • Joined

  • Last visited

Everything posted by Tomas

  1. De todos modos... string.find es para conseguir la posición, tú sólo necesitas saber si se encuentra ahí, así que es mejor utilizar string.match EDIT: string.find no es funcional con los operadores lógicos ya que siempre devuelve un string, incluso cuando se llama a la función con strings vacíos, actualmente no funcionaría.
  2. Se cortó un pedazo del código cuando lo pegué.. aquí está completo: bannedchar = { ["$"] = true, ["%"] = true, ["&"] = true } for i = 1, #name do cache = {} cache[i] = string.sub(name, i, i) end for _, str in ipairs(cache) do if ( bannedchar[str] ) then return end end cache = nil Ambas hacen lo mismo, pero esta es otra forma de resolverlo
  3. Es más eficiente así: bannedchar = { ["$"] = true, ["%"] = true, ["&"] = true } if ( bannedchar[str] ) then return end
  4. local now = getRealTime().timestamp local tomorrow = now+86400 Guardas el timestamp de cuando lo usó, si ese timestamp + 86400 es mayor o igual ya ha pasado un día.
  5. Hola perdon por la demora y por molestar tanto, pero como podria hacer para que muestre eso en el label probe modificando unas cosas pero no funciono. Postea tu intento
  6. Bueno se supone NFO es uno de ellos.... Deberían mitigar un ataque DDoS.. ¿no?
  7. Pasate a alguna empresa seria que proteja sus servidores
  8. Puede haber sido simplemente un lag spike, duró sólo un minuto...
  9. Dile a tus jugadores que descarguen el nightly patch y se debería solucionar. (también está en www.mtasa.com)
  10. -- client addEvent("ipcallback", true) function getPlayerIPByName(name) local name = name or "" if ( not getPlayerFromName(name) ) then return false end triggerServerEvent("getPlayerIPfn", root, localPlayer, getPlayerFromName(name)) end addEventHandler("ipcallback", root, function (ip) outputChatBox(ip) end ) -- server addEvent("getPlayerIPfn", true) addEventHandler("getPlayerIPfn", root, function (player, whosip) triggerClientEvent(player, "ipcallback", player, getPlayerIP(whosip)) end )
  11. Joven... acaba de salvar mi trasero, realize la prueba y efewctivamente es eso... si le das 1 vez lagea poco... pero si le das 2...4..10 veces full lag 500% CPU, y suponeo que los users al darle click normal ok , pero como no sale nada es tipico darle muchos clicks. Puedes hacer lo que hacemos en mi servidor, en vez de cada vez hacer un query a la base de datos cuando el resource carga guardas los grupos en una tabla, cuando un miembro se sale, entra, bla bla bla, actualizas la tabla y en vez de hacer un query tomas la información desde ahí y no lag
  12. Agrega esto al principio de cada función donde haya algún for-loop: onFunctionCall(debug.getinfo(1).name)
  13. ya lo revise y monitore por un buen tiempo y nada solo sale lo de aborting y network trouble Es algún loop que está tomando mucho tiempo en ejecutarse o simplemente es infinito, aquí tienes una forma de darte cuenta cuál es: debugging = {} function onFunctionCall(func) if ( #debugging > 5 ) then debugging = {} end debugging[#debugging+1] = {func, debug.getinfo(_G[func]).linedefined} end addEventHandler("onResourceStop", resourceRoot, function () outputDebugString("Resource stopped, listing last called functions...") for ind, data in ipairs(debugging) do outputDebugString(ind..": "..table.concat(data), ", ") end end) Y en cada función que haya algún loop (al inicio de la función) agrega: onFunctionCall(debug.getinfo(1).name)
  14. Comprueba si lo del stackoverflow aparece en la consola
  15. Para eso debes hacer un trigger al servidor y luego desde ahí al cliente para editar los valores.
  16. Las funciones de archivo 'file' trabajan con los archivos no con los recursos, no importa si está cargado o no, lo debería leer igual.
  17. function createlistp() for id, playeritem in ipairs(getElementsByType("player")) do local row = guiGridListAddRow(gridlistt) guiGridListSetItemText(gridlistt, row, 1, getPlayerName(playeritem), false, false) end end addEventHandler("onClientResourceStart", getRootElement(), createlistp)
  18. ¿Idea de cuándo pasa? ¿Alguna relación entre las veces que pasa? (cada x segundos, siempre), addonGrup es el recurso?
  19. setRadioChannel(0) function makeRadioStayOff() if ( getRadioChannel() == 0 ) then return end setRadioChannel(0) ---773 Linea cancelEvent() end addEventHandler("onClientPlayerRadioSwitch",getRootElement(),makeRadioStayOff) Aunque te recomiendo simplemente desactivar los controles de la radio
  20. Puedes comprar dólares con BitCoins entonces utilizas PayPal para comprar
  21. getTimerDetails (primeramente) devuelve la cantidad de segundos que quedan para que el timer se execute (llegue a 0), getTimerDetails(theTimer)
  22. Cuando se desconecte, getTimerDetails lo guardas en su cuenta y cuando loguea, lo metes pa' dentro usando el tiempo guardado en su acc
  23. mods = { [455] = {"txd", "dff", "col"}, [312] = {"txd", "dff", "col"}, } -- [Model] = {"file.txd", "file.dff", "file.col"}, local mods_folder_path = "/mods/" addEventHandler("onClientResourceStart", resourceRoot, function () for model, data in ipairs(mods) do if ( data[1] ) then engineImportTXD(engineLoadTXD(mods_folder_path..data[1], model) elseif ( data[2] ) then engineReplaceModel(engineLoadDFF(mods_folder_path..data[2], model) elseif ( data[3] ) then engineReplaceCOL(engineLoadCOL(mods_folder_path..data[3], model) end end end )
  24. Intenta usarlo con compatibilidad a windows 7, si no, cambia la resolución de MTA y GTA a la de tu monitor, no debería cambiar.
×
×
  • Create New...