Jump to content

DRW

Members
  • Posts

    363
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by DRW

  1. In principle, Lua & SQL are the only necessary languages you need to know! You need to go through Lua to do SQL queries, you need to go through Lua to do anything related to HTML. MySQL is SQL, yes. The default database of MTA is SQLite, which is a little different from MySQL (faster but does not have as many features). You can actually use HTML in MTA for all kinds of things, obviously with Lua in the back end.
  2. Discover the new FINISHERS and PVP LEAGUES now live on ZNEXT!
  3. ZNEXT: AFTERMATH ZNEXT: Aftermath es un proyecto con la intención de convertir GTA SA en un MMORPG de alta calidad con su propia historia y sistemas jamás vistos en otro servidor. Entra a un San Andreas postapocalíptico y lucha contra más de 30 tipos diferentes de enemigos y bosses con diferentes dificultades y habilidades, mejora y personaliza tu personaje a base de subir de nivel, completar retos y un sistema de cajas sin mecánicas Pay-to-Win que romperán tu experiencia. Conoce nuevos personajes, criaturas y sets de armas, experimenta con un innovador sistema cuerpo a cuerpo o únete a nuestros sólidos modos PvP para enseñar a otros supervivientes quién es el jefe. Entra en nuestra comunidad internacional, habla con otros jugadores, SIN IMPORTAR SU NACIONALIDAD, con nuestro innovador sistema de traducciones de chats. Sube capturas, videos, recibe soporte, interactúa con jugadores y desarrolladores, recibe notificaciones del servidor y estadísticas en vivo del servidor directamente desde nuestro Discord. Actualizaciones CONSTANTES, buen rendimiento, diversión sin fin y un endgame completo. · CARACTERÍSTICAS: NPCs enemigos, sobre 40+ tipos con diferentes armas, habilidades y tipos de daño NPCs boss, sobre 10+ types con habilidades únicas que mantendrán el gameplay dinámico. NPCs cazadores, cientos de enemigos en el mundo que tratarán de perseguirte en vehículos para acabar contigo. NPCs zombie, un sistema complejo de zombies variados que escalarán con tu nivel. NUEVAS ARMAS, descubre un único arsenal que servirán en situaciones diferentes, con un balance único. COMBATE MELEE: Un sistema de combate cuerpo a cuerpo jamás visto en MTA. Ataca, bloquea y despedaza a tus enemigos con combos. MOVILIDAD: Salta más alto, apunta en el aire, corre por las paredes y dispara desde paracaídas, descubre el gameplay más satisfactorio de MTA. CAJAS Y SKINS: Los enemigos podrán tirar cajas que al abrirlas darán skins. SKINS: Sobre 20 skins por arma, creando sobre 300 combinaciones posibles. ZONAS DE PELIGRO, que podrás conquistar con tus compañeros de clan y amigos. RETOS, que te desbloquearán skins de personaje únicas, una prueba de tu destreza. UN MUNDO VIVO con NPCs interactivos que llenarán de ambientación al mundo. CLANS/WARS: Un sistema de turfs con enemigos NPC y jugadores que te proporcionará acción constante e inigualable mientras conquistas para tu clan. PVP ARENA: Lucha un todos contra todos en el arena PvP y enseña quién es el jefe. UN SAN ANDREAS RENOVADO, completamente retexturizado para cumplir con nuestra visión del Nuevo Mundo. MISIONES, misiones dinámicas con cinemáticas propias del San Andreas original. EL MÁS BONITO: Shaders y efectos ambientales como luces dinámicas, rastros de bala, oclusión ambiental, reflejos, profundidad de campo dinámico y mucho más que hará a cualquier PC arder MULTI-IDIOMA: El servidor está traducido COMPLETAMENTE a español, inglés, brasileño, ruso, turco y árabe. CHAT TRADUCIDO: Da igual el idioma, ZNEXT traduce los chats de otros usuarios a tu idioma, para así entender a cualquier jugador da igual si es de otra parte del mundo. COMUNIDAD: Ofrecemos soporte e interacción en nuestro Discord oficial, sube tus capturas, vídeos, recibe notificaciones de eventos y actualizaciones e incluso información sobre los clanes dominantes en guerras, y podrás comunicarte con el servidor desde el mismo Discord. NUESTRA PRIORIDAD ES EL RENDIMIENTO. Intentamos mantener una buena optimización en nuestro código, y siempre afrontamos nuevas actualizaciones desde la viabilidad en ordenadores de menores recursos, podrás incluso desactivar elementos ya existentes. 60MB SOLO! Créenos, tenemos mucho contenido que sobrepasa esos 60mb, pero eso no quita que te permitamos jugar a partir de ahí, simplemente con unas skins menos que no notarás en niveles bajos. Hay muchísimo más, ¡pero estaríamos spoileándote! · CAPTURAS: · ¡ÚNETE! IP: mtasa://104.36.110.227:22003 DISCORD: https://discord.gg/CxMxjvC5pB
  4. Hi, Just done a little grep on my code and it would be around 50 to 60 timers total, roughly 60% of those timers would be client-side, I would suppose that might be enough to impact performance. I've checked the implementation you sent and I like the idea, might do this soon and see how it goes. Would this work from external resources? For example an AI resource, which accesses local variables from the resource itself, then creating this custom timer and letting it execute from there, or would that fail? Agree with your points, I use other methods for operations that need precision, in this case it's usually things like loops that I don't really care if they happen a couple seconds later (maybe it delays too much but haven't found issues with this personally, but now that you mentioned the synchronous nature of events it might scale really badly in the future). A couple of questions about this: Do/can timers execute in another thread? Is there any alternative to events/exports that could be executed in another thread? SQL comes to mind. Thank you
  5. Hi everyone, I'm quite interested in keeping the best performance in my server, and I know exports, custom events and timers are some of the most performance impacting features. So I created a global timer system, where a single, 50ms timer would send events like "onHalfSecondPass", "onSecondPass", "onTenSecondPass", etc. when necessary and other resources would catch that event without the need to create a timer each time. As I'm planning to basically publish a suite of performance improvement tools, I'm showing the code anyway: function hasIntervalPassed (secondInterval) local moduleInterval = timePassed % secondInterval if moduleInterval == 0 then return true else return false end end local eventIntervals = { {50, "on50MillisecondPass"}, {100, "onOneTenthSecondPass"}, {250, "onQuarterSecondPass"}, {500, "onHalfSecondPass"}, {1000, "onSecondPass"}, {2000, "onTwoSecondPass"}, {5000, "onFiveSecondPass"}, {10000, "onTenSecondPass"}, {30000, "onThirtySecondPass"}, {60000, "onMinutePass"}, {300000, "onFiveMinutePass"}, {600000, "onTenMinutePass"}, } Timer(function() if timePassed >= eventIntervals[#eventIntervals][1] then timePassed = 0 end timePassed = timePassed + 50 for i, intData in ipairs(eventIntervals) do local sec, event = unpack(intData) if hasIntervalPassed(sec) then triggerEvent(event, root) end end end,50,0) Is this really a better option than just creating timers? I'm seeing this timer using 4-5, even 8% of the client's CPU (based on the performance browser)... which I believe is a lot, so maybe sending so many events to a lot of resources is still very (maybe more?) demanding and I might as well just create a timer. But then maybe the CPU load of each resource's timers would be more distributed but could affect the performance even more. What do you think? Thank you in advance
  6. What I would recommend is: Add a the "onClientResourceStart" event and call the server with triggerServerEvent (let's call it "requestServerTime") so to ask for the server's time. Implement the event on the server, then return the server's real time with triggerClientEvent (let's call this one "returnServerTime"). Implement "returnServerTime" in client, then do a comparison with the server time you just received and the client time. Make sure you compare the hour AND day, and do the difference (try to round this to the next half hour as probably you'll be off by a second or so). The difference should return the differences in time zone. Save the difference in a variable, create a function to retrieve the realTime of the client + difference, and now you have a good way to get the time of the server with just a couple initial setup requests.
  7. ZNEXT: AFTERMATH ZNEXT: Aftermath is a dream project, turning GTA SA into a high quality MMORPG with its own storyline and systems that have never been seen before in any other server. Enter a post-apocalyptic San Andreas and fight 40+ types of enemies and 10+ bosses with varying difficulties and skills, improve and customize your character by leveling up, completing challenges and a solid lootbox system with no Pay-to-Win mechanics that will break your experience. Enter the international ZNEXT community, talk with players NO MATTER THE LANGUAGE THEY SPEAK with our innovative chat translation system. Upload screenshots and videos, get support, interact with other players and developers, get notified of events and updates, get live stats and chat with the server right from our Discord. · FEATURES: NPC enemies, over 40+ types with different weapons, skills, and damage types. NPC bosses, over 10+ types with really unique powers that will keep the gameplay as dynamic as possible. NPC hunters, hundreds of enemies in vehicles that will try to attack you while driving. NPC zombies, a very complex system with various types that will scale with your level. NEW weapons, a unique arsenal of totally new weapons that will actually keep a balance. MELEE SYSTEM: An incredible combo-based melee that's actually viable against enemies and is incredibly satisfying and entertaining. NEW MOBILITY: Do high jumps, aim in the air, walk on walls and shoot from parachutes, discover the greatest mobility you'll ever see in a server. LOOTBOXES: Enemies have a chance to drop lootboxes, which contain weapon skins. WEAPON SKINS: Over 20 skins per weapon, providing over 300+ weapon-skin combinations! Danger zones, which you'll be able to conquer along other players, filled with all kinds of enemies that will challenge you. Challenges, which will let you unlock player skins. A living, breathing world with NPCs interacting and random encounters. CLANS/WARS: We have a solid turf system with NPC enemies and normal players that will provide constant explosive action while conquering for your clan. PVP ARENA: Fight a free-for-all with other players and show them who's boss. A new San Andreas, retextured to match our vision of the New World. Missions, actual story with innovative cinematics and great writing. MAKE SAN ANDREAS LOOK GREAT AGAIN: Shaders and ambience effects that will look crazy and tax even good rigs MULTILANGUAGE: We have translated the server to RUSSIAN, TURKISH, SPANISH, PORTUGUESE, ENGLISH, ARABIC AND POLISH. TRANSLATED CHAT: No matter the language, we translate automatically every chat text so EVERYONE will understand you, breaking the language barrier. COMMUNITY: We provide support and interaction on our official Discord, upload your screenshots, videos, receive server notifications and even live clan war stats and chat with our server through our Discord. PERFORMANCE IS OUR PRIORITY. We try to maintain a good code and optimization is always on our mind, so no matter your PC, you'll handle it. 60MB ONLY! There's much more content, but you'll be able to play once those 60MB are finished, with the essential skins! There's much more, but we'd be just spoiling the fun! · SCREENSHOTS: · STORY: Welcome to the New World of San Andreas, where it all started... After years in the darkness where we've been subdued by the sudden appearance of genetically modified humans, societies have re-emerged and recovered what was theirs and are now fighting back, stronger than ever. We rebuilt the world, we turned a deserted country into a paradise, a world for the opportunist and the entrepreneur, a once again stable country, just like the old times. But you know politics, they always get in the way of freedom, different ideals have risen and separated our people. Ambition took the best of us and turned them into cold-blooded killers and scavengers, seeking success while destroying the foundations that rose this world to a golden age. The bandits were born. So... While we went on to fight a civil war, our old enemy was rising behind the scenes, stronger than ever. Once again, the undead, zombies if you will, started appearing at an alarming rate, destroying unprepared outposts and terminating all human life that gets in their way. It was always clear this was not a virus, nor an bite-induced infection like in the movies, they were created by something, something that has woken up once again to resume its project. Not much later, rare encounters of superhumans were not as rare anymore, hundreds of the genetic freaks with enhanced senses and physical traits set their way to our outposts and built their own on top of ours, burned our houses and tortured our people, with the intent to enslave and eventually exterminate us to further their own evolution and prevail over the old human formula. The Supersoldiers were here to stay. Now that we are not united anymore, now that we deal with our personal fights by any means necessary, mercenaries have become the main weapon of the New World. And here you are... hearing our stories, dreaming of riches and success, coming all the way from Liberty City to achieve what you want, just another hired gun... But are you ready for an unprecedented war? Killing our own brothers and sisters while fighting a menace of unknown power? PREPARE FOR WAR. · JOIN NOW! IP: mtasa://104.36.110.227:22003 DISCORD: https://discord.gg/CxMxjvC5pB
  8. That's crazy, maybe making users firstly authorize the payment then automatically charge them when the day comes would surely help. First, this would completely remove the 24h (I don't know if it was changed) reservation time that is given to servers that miss their chance. You authorize, then you can either cancel (which would instantly give your spot to the next server) or just pay. Second, this would add some risk to the transaction for people who mass subscribe their IP to the list for monetary gain because for sure they won't fill every single IP/port they register. Also, this would make the transaction easier for people who can't wait for the server to be listed in the top 20. I personally think it's not that hard to make that happen, but I would happily help if needed. Also I'm sure there's plenty of servers with the same e-mail related to a shady hoster or whatever, but I understand that manually checking this might be a lot of time, and I don't even know the scale of this issue.
  9. Hi everyone, I'm really trying to figure out what's happening with the toplist system, I've used this many times before around 2017-2019 and this was a great feature that helped servers increase their visibility while being quite affordable. Usually you added your server to the list and maybe 70-100 servers were in front of you, but you know, people ended up not paying or overlooking this so the queue was much faster, maybe 15 days. I believe it's been 160-180 days (so >160 servers) since I added my server to this system, still over 100 servers are in front of us, then I seem to see the same servers time and time again in the front page. I heard something about hosters abusing this system and adding the host to the toplist then selling a package with a higher price for the advantage. 6 months and god knows how much time is left, maybe an additional 6 months... it's too much time to look forward to, even more not knowing how much time there is left, at that point it's not really worth the hassle. I don't know, I understand it's being successful, this is a lot of demand it seems, though I see you don't want this to happen as you tried to prevent this kind of abuse by hiding the server queue. This is also affecting the ones that don't abuse it, because personally I don't have hope I'll see a day when my server enters the toplist, or I'll just forget about it and miss the e-mail, it's always >100 servers, you might as well hide it completely at this point. I'm a software engineer, I worked with PayPal and similar paygates, I know their APIs provide the tools necessary to at least authorize the payment then do it when the time comes, this could definitely help filter out filler servers and removing the need to be constantly attentive for the toplist e-mail (because after 6 months I'm pretty much checking the list every week or two), then maybe: increasing the price, expanding to 25-30 servers, blacklisting certain abusers (You're probably doing it but just in case), I'm sure you've talked about this and got more ideas, but the problem persists. Personally I'm not that frustrated, the toplist alone is not nearly enough to make a server succeed, but luckily I had an old playerbase to start with, I can't imagine being a completely new 0-player server. Thanks for reading this unnecessarily long essay >:), DRW
  10. DRW

    Hi i have a problem

    You need to either restart the server or do an aclReload() after changing the ACL directly in the file. When you have access to the admin panel you'll be able to access and modify the ACL with no need to reload the file.
  11. playSound3D(), no other way
  12. DRW

    Super Punch

    Hi, That's a little bit more complicated to do it right here, but the things you should use are: addCommandHandler() -- to register the command. setElementData(player, "gamemode.superpunch", true) -- to activate/deactivate the user that's using a superpunch getElementData(player, "gamemode.superpunch") -- to check if the superpunch is enabled for the player Check the wiki for these functions. Alternatively (and a better practice in terms of server performance, element data syncs between the clients which is not necessary for what you want to do) you could create a table and assign players to it and check against it but I believe you should learn about tables first!
  13. Hi, setPedVoice() should do!
  14. Hi, Did you try https://wiki.multitheftauto.com/wiki/CreateProjectile?
  15. DRW

    Super Punch

    Hi, local damage = 30 addEventHandler("onPlayerDamage", root, function(attacker, weapon) if isElement(attacker) and getElementType(attacker)=="player" then local health = getElementHealth(source) -- get health if weapon == 0 then -- is the weapon a fist? local expectedHealth = health-damage if expectedHealth <= 0 then -- setting health to 0 causes sync issues and does not register the attacker as the killer. So we prevent this. killPed(player, attacker, weapon) -- kill and register the attacker as the killer else setElementHealth(player, expectedHealth) -- just damage the player end end end end) This should work, and explained it a little bit . Might have some errors, been using OOP since forever.
  16. This guy knows! This is very useful, I will suggest it, thank you. For now, I might have to fight the constant fear of learning HLSL and try doing that haha That’s what I thought too, but didn’t have a very good experience with custom mapping and draw distances, and some “fixes” can affect performance greatly when thinking about scalability. By the way, love your scripts!
  17. Hi everyone, Using the latest server build alongside an nginx server we sometimes notice some client files straight up can't be downloaded correctly. Sometimes they're translation files (.properties extension) or models, and sometimes they're entire .lua files! This means the local resource just won't run correctly and effectively break the experience, as we use exports to sync with the HUD and other things. Tested Nginx and works great, and the issue usually happens to a player and not the others, so I don't know why it happens. All of these .lua files are obfuscated with the maximum level you got available in the luac API. We've got some essential client-sided scripts which control damage, AI movement and other things. This is fixed by asking the client to restart MTA. Then everything is okay, but just reconnecting won't work. The user usually receives some console message regarding that file and that it could not be loaded. Thank you in advance, Drew
  18. But I suppose "WorldModels" are not "Objects", also I don't see any function that retrieves WorldModels, so how can I specify I want an original building double-sided if it's not an element per se? EDIT: We can set them double-sided in 3ds max, we noticed. Still if there's something I didn't notice and these world models are actually possible to double-side please tell me!
  19. Hi everyone, After replacing some original models, we found these are not double-sided, which is something we need. Is there any way to retrieve world models and double-side them? I can only see restoreWorldModel and removeWorldModel exist, and I can't find a way to get all world models using getElementsByType or others. Thank you in advance.
  20. Hi everyone, I am looking for someone who knows their shaders. What I expect: Someone who's capable of making shaders that can be applied to textures (gold-like with fake reflections, texture overlays, moving textures, maybe tiling textures without stretch if possible. Knowledge of modifying meshes and all of those cool things is not needed.). Don't know what's possible with shaders, don't have time for them either. I need special focus on performance also, please advise me on which of my requirements can severely affect user performance. Down below I'll leave my Discord/E-Mail if possible, I will try to take a look at MTA DMs but a quicker response is assured on Discord. DRW#7022 / [email protected] Please contact me with an estimation, a couple of screenshots or any media so I can verify the quality of your scripting and your hourly rate, then we can talk or negotiate a price. Will make sure the payment is good for both of us. Can do PayPal or crypto. Best regards, Drew
  21. I request a topic lock. Retired temporarily.
  22. Es decir, ¿permitís la publicación de resources hackeados y descompilados? Pues allá vuestros estándares y vuestra moralidad. Me la pela un poco que atribuyáis la responsabilidad al creador y exhimáis a los ladrones de scripts de toda culpa, sois personas inmorales y justificar eso me hace pensar que sóis los que hacen a grandes servidores con AÑOS de trabajo, estar en la mierda. Vosotros sólos mataréis a MTA. Hoy yo, mañana tú.
  23. You know, it's kind of funny. 4 months ago, before I came back to MTA I thinking about going straight to FiveM (an MTA """"equivalent"""" mod for GTA V) because I thought MTA was dying. Until I found out there are servers that get more concurrent players than most Call of Duty games, .
×
×
  • Create New...