Jump to content

Tomas

Members
  • Posts

    2,530
  • Joined

  • Last visited

Everything posted by Tomas

  1. Tomas

    Freeroam

    No, eso no funcionaría ya que la función del bindKey no tiene ni argumento de jugador, y la supuesta función que "llamaría" está en el client-side. Server: addEventHandler("onPlayerLogin", root, function () setElementData(source, "isLoggedIn", true) end ) Client: (1620~) function toggleFRWindow() if ( not getElementData(localPlayer, "isLoggedIn") ) then return false end if isWindowOpen(wndMain) then showCursor(false) hideAllWindows() colorPicker.closeSelect() else showCursor(true) showAllWindows() end end addCommandHandler('fr', toggleFRWindow)
  2. Y también habría que buscar una manera de que un servidor que ejecute una compilación personalizada sea compatible con clientes que utilicen la original, o viceversa, lo cual creo que es un tanto difícil teniendo en cuenta que MTA: SA tiene un archivo net.dll que es de código cerrado para evitar precisamente eso y otros abusos. No entiendo bien eso, cydrio ya usa un servidor de compilacion no oficial, es decir, se modificar el source y se recompila y funciona perfectamente, a que te refieres con eso? Ellos están hablando del código del juego pues diste a entender que modificarías la funcionalidad del juego.
  3. No lo attachees al mismo momento, agrega un timer de 0.1s
  4. Agrega esto antes: if ( not clicksObjeto.player ) then clicksObjeto.player = {} end
  5. Lo que mostraste en tu código de ejemplo debería ser suficiente, de todas formas, tú quieres que se "sume" si tienen el mismo modelo, o si tienen la misma ID (key)?
  6. Client function getGridPlayer(userMoney,userKills,userDeaths,userJoins) if ( guiGridListGetSelectedItem ( playersGridList ) ) then local thePlayerName = guiGridListGetSelectedItemText ( playersGridList ) getUserName = getPlayerFromPartialName (thePlayerName) guiSetText (nameLabel,"Username: "..thePlayerName) triggerServerEvent("onClientRequestAccountNames", getLocalPlayer(),getUserName) guiSetText (moneyLabel,"Money: "..(userMoney or 0) ) guiSetText (killsLabel,"Kills: "..(userKills or 0) ) guiSetText (deathsLabel,"Deaths: "..(userDeaths or 0) ) guiSetText (joinLabel,"Joins: "..(userJoins or 0).."x") end end addEvent("onSendAccountNamesToClient", true) addEventHandler("onSendAccountNamesToClient", getRootElement(), getGridPlayer) addEventHandler ("onClientGUIClick",root,getGridPlayer)
  7. What's the size of the database?
  8. It depends on your code, it will work if you're being spawned before logging in, otherwise, it will not work.
  9. local cliksAhora = clicksObjecto[player] [objetoID[source]] or 0 clicksObjecto[player] [objetoID[source]] = clicksAhora + 1
  10. Mientras sea un lenguaje Turing completo y tenga las librerías suficientes, cualquier lenguaje sirve. Incluso podría haberlo hecho con Lua si se lo propusiese. La posibilidad de emplear Lua con tal uso sería uno bastante descabellado ya que llevaría a infinitas lineas más que en Python. Todo depende del tipo de vulnerabilidad, con Lua y cURL es posible.
  11. I did but still getting database error May you post the error you're getting?
  12. Usa root, no localPlayer. Hay que especificar que en cliente siempre se usa root para los events No siempre.
  13. Usa root, no localPlayer.
  14. Si te refieres a lenguajes: Lua, PHP, Javascript, Python, SQL, (HTML, CSS). ¿Cuanto tiempo te llevo PHP, JS y Python en aprenderlos? Los tres tienen el mismo "formato" que Lua, dejando de lado los raros code blocks de Python y su aire "tirando" a C. En PHP, lo más complejo es recordar los nombres de las funciones de cada librería ya que no siguen ningún patrón, en Javascript lo más dificil es ser eficiente ya que se nota bastante, dejando de lado eso son todos lenguajes bastante simples.
  15. Cuando compré GTA en Steam se solucionó, supongo que sería por las radios.
  16. Explica un poco más de qué se trata así nos podemos imaginar bien lo que quieres hacer
  17. chat_range=100 addEventHandler("onPlayerJoin",getRootElement(), function () bindKey(source,"u","down","chatbox","Local") end) addEventHandler("onResourceStart",getResourceRootElement(getThisResource()), function () for index, player in pairs(getElementsByType("player")) do bindKey(player,"u","down","chatbox","Local") end end) function isPlayerInRangeOfPoint(player,x,y,z,range) local px,py,pz=getElementPosition(player) return ((x-px)^2+(y-py)^2+(z-pz)^2)^0.5<=range end function onChat(player,_,...) local px,py,pz=getElementPosition(player) local msg = table.concat({...}, " ") local nick=getPlayerName(player) local tag = getElementData(player, "ID") or 0 for _,v in ipairs(getElementsByType("player")) do if isPlayerInRangeOfPoint(v,px,py,pz,chat_range) or isPlayerAdmin(v) then outputChatBox("#00FF00[Local]#cccccc[".. tag .."]#FFFFFF "..nick..": #FFFFFF"..msg,v,255,0,0,true) end end end addCommandHandler("Local",onChat) isAdmin_ACL = {"Admin", "SuperModerator", "Moderator"}; function isPlayerAdmin (player) if (player and isElement(player) and not isGuestAccount(getPlayerAccount(player)) ) then for _, aclName in ipairs(isAdmin_ACL) do if ( isObjectInACLGroup("user."..(getAccountName(getPlayerAccount(player))), aclGetGroup(aclName)) ) then return true; end end return false; end end
  18. function start_sound(keyPresser) triggerClientEvent(root, "start_sound", root, keyPresser) end function bindTheKeys (thePlayer, seat, jacked) if (getElementModel (source) == 480) then bindKey (thePlayer, "w", "down", start_sound) end end addEventHandler ("onVehicleEnter", getRootElement(), bindTheKeys) function start_sound (player) local vehicle = getPedOccupiedVehicle(player) local x,y,z = getElementPosition(vehicle) if not isElement(sound_track) then sound_start = playSound3D("files/start.wav",x,y,z, false) setSoundMaxDistance( sound_start, 40 ) --[[setSoundVolume(sound_start, 0.]] attachElements ( sound_start, vehicle, 0,0,0 ) sound_track = playSound3D("files/tracks.wav",x,y,z, true) setSoundMaxDistance( sound_track, 40 ) setSoundVolume(sound_track, 0.5) attachElements ( sound_track, vehicle, 0,0,0 ) if not isElement(sound_move) then sound_move = playSound3D("files/tank_move.wav",x,y,z, true) setSoundMaxDistance( sound_move, 40 ) setSoundVolume(sound_move, 0.5) attachElements ( sound_move, vehicle, 0,0,0 ) setTimer ( function () addEventHandler("onClientRender", root, stop_sound2) end, 50, 1 ) end end end addEvent("start_sound",true) addEventHandler("start_sound", getRootElement(), start_sound)
  19. Pega el código original, sin modificar.
  20. http://i.imgur.com/X59pOcm.jpg setElementData(player,"K/D Ratio", tostring(math.round(kdr, 2)))
  21. Si te refieres a lenguajes: Lua, PHP, Javascript, Python, SQL, (HTML, CSS).
  22. It will create a file automatically. Still not working guys ... Error : http://prntscr.com/bfduoq db = dbConnect( "sqlite", "file.db" )
  23. pm_ACL = {"Admin", "SuperModerator", "Moderator"}; function privateMessage(thePlayer,commandName,sendToName,...) local pmWords = { ... } local pmMessage = table.concat( pmWords, " " ) if sendToName then if (getPlayerFromParticalName (sendToName)) then toPlayer = (getPlayerFromParticalName (sendToName)) if not (toPlayer == thePlayer) then if not (pmMessage == "") then outputChatBox("#2971D5[#4E5861MP#2971D5]#FFFFFF: "..getPlayerName(thePlayer).." #2971D5 > #FFFFFF " .. getPlayerName(toPlayer) .. "#FFFFFF: " .. pmMessage, thePlayer, 255, 255, 255, true) outputChatBox("#2971D5[#4E5861MP#2971D5]#FFFFFF: "..getPlayerName(thePlayer).." #2971D5 > #FFFFFF " .. getPlayerName(toPlayer) .. "#FFFFFF: " .. pmMessage, toPlayer, 255, 255, 255, true) for _, players in ipairs(getElementsByType("player")) do if ( not isGuestAccount(getPlayerAccount(players)) and players ~= toPlayer and players ~= thePlayer ) then for _, aclName in ipairs(pm_ACL) do if ( isObjectInACLGroup("user."..(getAccountName(getPlayerAccount(players))), aclGetGroup(aclName))) then break outputChatBox("#2971D5[#4E5861MP#2971D5]#FFFFFF: "..getPlayerName(thePlayer).." #2971D5 > #FFFFFF " .. getPlayerName(toPlayer) .. "#FFFFFF: " .. pmMessage, players, 255, 255, 255, true) end end end end else outputChatBox("#2971D5[#4E5861MP#2971D5]#FFFFFF: Sintaxis inválida! Usa:#FFFFFF /pm [nombre del jugador] [mensaje]", thePlayer, 255, 255, 255, true) return false end else outputChatBox("#2971D5[#4E5861MP#2971D5]#FFFFFF: No te puedes mandar MP a ti mismo#FFFFFF!", thePlayer, 255, 255, 255, true) return false end else outputChatBox("#2971D5[#4E5861MP#2971D5]#FFFFFF: Jugador no encontrado! #FFFF00(#FFFFFF"..sendToName.."#FFFF00)", thePlayer, 255, 255, 255, true) return false end else outputChatBox("#2971D5[#4E5861MP#2971D5]#FFFFFF: Sintaxis inválida! Usa:#FFFFFF /mp [nombre del jugador] [mensaje]", thePlayer, 255, 255, 255, true) return false end end addCommandHandler("mp", privateMessage) function getPlayerFromParticalName(thePlayerName) local thePlayer = getPlayerFromName(thePlayerName) if thePlayer then return thePlayer end for _,thePlayer in ipairs(getElementsByType("player")) do if string.find(string.gsub(getPlayerName(thePlayer):lower(),"#%x%x%x%x%x%x", ""), thePlayerName:lower(), 1, true) then return thePlayer end end return false end
×
×
  • Create New...