Sticmy Posted April 5, 2018 Share Posted April 5, 2018 (edited) Como hago para que ya no inserte nuevamente a un jugador desde una tabla? Edited April 5, 2018 by DostMaster Link to comment
Sticmy Posted April 5, 2018 Author Share Posted April 5, 2018 (edited) Por ejemplo si yo ya ando en la tabla que no me inserte otra vez, porque ya estoy ahí adentro. Edited April 5, 2018 by DostMaster Link to comment
#Dv^ Posted April 5, 2018 Share Posted April 5, 2018 Depende de que manera quieras insertar al jugador en una tabla. local _table = {} addEventHandler("onPlayerJoin", root, -- al ingresar, se insertará en la tabla. function() _table[source] = true end ) addEventHandler("onPlayerLogin", root, function() if _table[source] then -- si está en la tabla, devolverá la siguiente afirmación. return print("El jugador ya se encuentra en la tabla.") end _table[source] = true -- de lo contrario, si no está en la tabla se insertará. end ) addEventHandler("onPlayerLogout", root, -- opcional. function() if _table[source] then _table[source] = nil end end ) Pues sino, de esta manera. local _table = {} addEventHandler("onPlayerJoin", root, -- al ingresar, se insertará en la tabla. function() table.insert(_table, source) end ) addEventHandler("onPlayerLogin", root, function() for _, v in pairs(_table) do if v == source then print("El jugador ya está en la tabla.") end end end ) Link to comment
Sticmy Posted April 5, 2018 Author Share Posted April 5, 2018 7 hours ago, #Dv^ said: Depende de que manera quieras insertar al jugador en una tabla. local _table = {} addEventHandler("onPlayerJoin", root, -- al ingresar, se insertará en la tabla. function() _table[source] = true end ) addEventHandler("onPlayerLogin", root, function() if _table[source] then -- si está en la tabla, devolverá la siguiente afirmación. return print("El jugador ya se encuentra en la tabla.") end _table[source] = true -- de lo contrario, si no está en la tabla se insertará. end ) addEventHandler("onPlayerLogout", root, -- opcional. function() if _table[source] then _table[source] = nil end end ) Pues sino, de esta manera. local _table = {} addEventHandler("onPlayerJoin", root, -- al ingresar, se insertará en la tabla. function() table.insert(_table, source) end ) addEventHandler("onPlayerLogin", root, function() for _, v in pairs(_table) do if v == source then print("El jugador ya está en la tabla.") end end end ) Men y como hago para que no se repita muchas veces es que trato de hacer que aparezca jugadores cercanos ami y como que se repite muchas veces yse vuelven a insertar crees que me funcione tus dos formas de que no lo inserte men? Link to comment
Enargy, Posted April 5, 2018 Share Posted April 5, 2018 2 minutes ago, DostMaster said: Men y como hago para que no se repita muchas veces es que trato de hacer que aparezca jugadores cercanos ami y como que se repite muchas veces yse vuelven a insertar crees que me funcione tus dos formas de que no lo inserte men? Por lo menos prueba el código que él hizo por ti lo cual si funciona sin probarlo.... Link to comment
Sticmy Posted April 5, 2018 Author Share Posted April 5, 2018 1 minute ago, Enargy, said: Por lo menos prueba el código que él hizo por ti lo cual si funciona sin probarlo.... Ahí iré a probarlo Link to comment
Sticmy Posted April 5, 2018 Author Share Posted April 5, 2018 No me funciono quisiera que no se inserte mas el jugador que no se vuelva a repetir si ya me metió que no salga otra vez le dejo la función he intentado con el código de Dv pero aún asi no funciona local screenW, screenH = guiGetScreenSize() local jugadores = {} addEventHandler("onClientRender", root, function() if not isMTAWindowActive () then if not isPlayerMapVisible () then for i, v in ipairs(getElementsByType("player")) do local x, y, z = getElementPosition(localPlayer) local mx, my, mz = getElementPosition(v) if getDistanceBetweenPoints3D(x, y, z, mx, my, mz + 0.5) < 10 then outputDebugString(getPlayerName(v)) table.insert(jugadores, {getPlayerName(v), v}) end end -- jugadores for i, v in ipairs(jugadores) do local i = i - 1 if i < 5 then dxDrawText(v[1], screenW * 0.4113, screenH * 0.3133+(i*70), screenW * 0.6607, screenH * 0.3562, tocolor(255, 0, 0, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false) end end end end end ) Link to comment
Simple0x47 Posted April 5, 2018 Share Posted April 5, 2018 local i = i - 1 if i < 5 then ¿Para que requieres el empleo de la variable 'i'? ( Necesito esta respuesta para ofrecerte una adaptación correcta y funcional del código ). Link to comment
Sticmy Posted April 6, 2018 Author Share Posted April 6, 2018 1 hour ago, Simple01 said: local i = i - 1 if i < 5 then ¿Para que requieres el empleo de la variable 'i'? ( Necesito esta respuesta para ofrecerte una adaptación correcta y funcional del código ). Intente hacer que no lo vuelva a meter pero no funcionó Link to comment
aka Blue Posted April 6, 2018 Share Posted April 6, 2018 Te estás rallando demasiado para algo tan sencillo. Haz que cuando entre al servidor se inserte en la tabla y que cuando el recurso se reinicie, coja a todos los jugadores y los meta nuevamente en la tabla... También, que cuando salgan, los retire de la tabla. Link to comment
Sticmy Posted April 6, 2018 Author Share Posted April 6, 2018 5 hours ago, aka Blue said: Te estás rallando demasiado para algo tan sencillo. Haz que cuando entre al servidor se inserte en la tabla y que cuando el recurso se reinicie, coja a todos los jugadores y los meta nuevamente en la tabla... También, que cuando salgan, los retire de la tabla. Lo que quiero hacer yo es que aparezcan jugadores cercanos a mi posición Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now