Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by AGENT_STEELMEAT

  1. I was recently globally banned by MTA for reason: TRAINER. I'm not aware of any trainers/cheats/DLL injectors on my PC and do not know why I've been banned. My serial is 7536B26535A16F4CDAE63978DF25CD44 and my in-game name is the same as my forum name.
  2. yall aint got nothin on inspector gadget
  3. nothing, its long dead, same with the other mods for III/VC (minus VC-MP?)
  4. That would start the mta server twice: it is started automatically on boot by Ubuntu (it's an Upstart job). Using that command will start it a second time (or fail). What you should do, however, is create a shell script in the mtasa directory that runs those commands, and then update the upstart job to point to the new shell script.
  5. I'm not using screen here, I use service mtasa stop/start to start/stop the MTA server. It's my personal preference. To set that up, you would want to set up a shell script to run the screen command to start the MTA server, and modify the upstart job to point to the new shell script.
  6. How about instead of asking for a global ban list, you learn how to properly administrate your server? The reason MOJRM/whoever you have a hard-on for is able to keep coming back isn't because they have godly skills, it's because you don't know how to use the admin panel.
  7. I have written a detailed set of instructions for setting up a basic MTA server on Ubuntu Server 12.04.1 LTS, both 32 and 64 bit. Click here to access the tutorial. Please PM if you have any issues or notice that there is something I need to update. Hope this helps!
  8. The MTA serial system is very reliable and can't be changed easily, unless you switch computers. An account system, on the other hand, would be easy to work around (just register a new account). As far as people claiming that "oh my brother played on my PC and got banned and now I can't play", 99% of the time they are lying. I speak from experience. I agree with in regards to theft prevention within the actual software, and heavier moderation on the community page. Once you start scanning servers / removing server from the browser, you've gone to far. One of MTA's greatest strengths is the openness of the platform, and any attempt to protect content creators needs to keep that in mind. This is like the SOPA/PIPA debate, but on a much smaller scale. Well, people suck. Put a bunch of kids behind a monitor and give them anonymity and you'll always see stuff like that. It''s normal and to be expected. If there aren't any admins on the server and votekick doesn't help, then move on to a different server.
  9. It sucks to hear that your stuff got stolen, but in reality, there isn't much the Team can (or should) do about stolen resources. - No server should be banned remotely. Such moderation tactics are always subject to abuse and controversy, and are typically more trouble to implement & moderate than they are worth. However, a server 'verification' system would be a good idea, where servers can apply for a verification to protect their name in the server browser. That said, there should never be a 'verified' tab, verified servers should just get a discrete checkmark next to their name or something. Also, servers already have unique IDs assigned to them, but its only used internally. - Global accounts are not necessary, that is what client serials are for. - Client-side scripts are protected from theft already, look up the new protected flag that ryden added a while ago. The place where the MTA Team could (and should) try to hammer away at these issues is on the community center. A proper flagging system and a stricter set of guidelines would do a lot of good there (such as not allowing resources containing compiled scripts or obvious luac output). I really can't comment on player behavior, since I really haven't seen anything that bad. On the whole, I feel like MTA has a more sophisticated player base than, say, Xbox live. Or maybe I just don't hang out on the bad servers enough.
  10. local screenWidth, screenHeight = guiGetScreenSize() local function renderRectangle() if getKeyState("m") then dxDrawRectangle(screenWidth * 0.7, screenHeight * 0.5, screenWidth * 0.15, screenHeight * 0.5, tocolor(0,0,0,100), false) end end addEventHandler("onClientRender", root, renderRectangle) I based the relative values off of a resolution of 1920x1080, you might need to re-adjust them.
  11. Don't you want to have some rainbow fun?
  12. Nice to see my script is getting put to good use.
  13. Sad to see that most of the people that try to help on this forum are all idiots. How unfortunate. Anyway - this uses dxDrawText's wordBreak parameter to wrap the text, and the clip parameter to stop it from drawing outside the box. It might need some tweaking to suit your needs, but the basics are there. -- Basic constants local SCREEN_WIDTH, SCREEN_HEIGHT = guiGetScreenSize() local BOX_LEFT, BOX_TOP = (SCREEN_WIDTH/2) - 150, (SCREEN_HEIGHT/2) - 150 local BOX_WIDTH, BOX_HEIGHT = 300, 300 local BOX_COLOR = tocolor(0, 0, 0, 200) local FONT_HEIGHT, EXPIRE_TIME = dxGetFontHeight(1, "default-bold"), 15000 -- Table of all notifications local g_notifications = {} -- Adds a notification to the notification list function addNotification(message, r, g, b) if type(message) ~= "string" then error("Invalid argument(s) to addNotification() [expected string at argument 1]!", 2); end if type(r) ~= "number" then r = 255 g = 255 b = 255 end -- If 5 notifications already exist, remove the oldest one -- If this is the first notification, call addEventHandler if #g_notifications >= 5 then table.remove(g_notifications) elseif #g_notifications <= 0 then addEventHandler("onClientRender", root, drawNotifications) end -- Determine the height of this notification local notificationWidth = dxGetTextWidth(message, 1, "default-bold") local numLines = math.ceil(notificationWidth / BOX_WIDTH) local notificationHeight = (FONT_HEIGHT + 1) * numLines -- Insert the new notification at beginning of table (it will be drawn at the top of the box) table.insert(g_notifications, 1, {message, tocolor(r, g, b), getTickCount(), notificationHeight}) end -- Draws the notifications function drawNotifications() -- Draw the base rectangle dxDrawRectangle(BOX_LEFT, BOX_TOP, BOX_WIDTH, BOX_HEIGHT, BOX_COLOR) -- Track the top of the notification and the current tick count local notificationTop = BOX_TOP + 2 local thisTick = getTickCount() for i, notification in ipairs(g_notifications) do -- Remove this notification if it is expired -- If there are no more notifications, call removeEventHandler if thisTick - notification[3] >= EXPIRE_TIME then table.remove(g_notifications, i) if #g_notifications <= 0 then removeEventHandler("onClientRender", root, drawNotifications) return end else -- Draw this notification, and increment notificationTop so we can draw the next one under it dxDrawText(notification[1], BOX_LEFT, notificationTop, BOX_LEFT + BOX_WIDTH, BOX_TOP + BOX_HEIGHT, notification[2], 1, "default-bold", "left", "top", true, true) notificationTop = notificationTop + notification[4] + 2 end end end GET ON MY LEVEL.
  14. You can install the MySQL server anywhere you want (I suggest you keep it on the same machine), just point to it in your script.
  15. Account data is fine for basic RPG modes that don't need to share data across services. They are integrated into MTA, so they are easier to use, and they are just as efficient (in terms of latency between the server and database) if not more than MySQL. XML should not be used for account data - XML is meant to store small amounts of data, i.e the elements of a map or the settings of a gamemode. Using XML in places where there will be a lot of read/write accesses is just a bad idea, not to mention it's very inefficient. Also, it is just as easy to view account data/SQLite tables as it is MySQL, you just need to download the SQLite browser (or implement your own GUI in MTA, which is also quite easy).
  16. Depends - what sort of functionality do you want in your gamemode? Do you want player's account data to be easily available to other services (i.e a web server, or another MTA server)? Use MySQL. Otherwise, use the internal account functions for storing account data. It's not so much about performance as much as it is about proper usage.
  17. Hey karlis, I would be very interested in using your knives script as a part of the stealth resource that I am re-writing - however that would entail you releasing this script with an open-source license. If you are interested, let me know.
  • Create New...