Jump to content


  • Content Count

  • Joined

  • Last visited

Posts posted by Sasu

  1. Hey!

    My problem is simple but weird. I'm just doing sockOpen to my socket server but for some reason the server console throws:

    ' WARNING: Bad argument @ 'triggerEvent' [Expected element at argument 2]'

    I'm using Linux x64 module (https://nightly.mtasa.com/files/modules/64/ml_sockets.so) and my script is like:

    local discordSocket = sockOpen("myurl.xyz", 777);

    My socket server is in nodejs:

    var App = require('express')();
    var server = require('http').Server(App);
    var io = require('socket.io')(server);
    server.listen(777, () => console.log("Escuchando puerto 777"));
    io.on('connection', function (socket) {
      console.log("Alguien se ha conectado!");


  2. I had already tested, and added some features.

    function onResourceStart ()
    	executeSQLQuery("CREATE TABLE IF NOT EXISTS vip (account TEXT, hours INT)")
    addEventHandler("onResourceStart", resourceRoot, onResourceStart)
    function isPlayerVIP (player)
    	local account = getAccountName(getPlayerAccount(player))
    	local query = executeSQLQuery("SELECT * FROM vip WHERE account=?", account)
    	if (query) and (#query > 0) then
    		return true
    		return false
    function getPlayerVIPHours (player)
    	if (isPlayerVIP(player)) then
    		local account = getAccountName(getPlayerAccount(player))
    		local query = executeSQLQuery("SELECT hours FROM vip WHERE account=?", account)
    		local hours = (tonumber (query[1].hours) - getRealTime ().timestamp)/3600
    	    return hours
    function myHours (player)
    	if (not isPlayerVIP(player)) then
    		return exports.chgnote:createNote("You are not VIP", player, 255, 0, 0)
    	local hours, minutes, seconds = hoursToTime(getPlayerVIPHours(player))
    	exports.chgnote:createNote("You have "..string.format("%02d hours %02d minutes %02d seconds", hours, minutes, seconds).." VIP Hours", player, 0, 255, 0)
    addCommandHandler("viphours", myHours)
    function addVIP (player, cmd, newVIP, hours)
    	local target = getPlayerFromNick ( newVIP )
    	local adderName = getPlayerName(player)
    	local targetN = getPlayerName( target )
    	if (not isElement(target)) then
    		return exports.chgnote:createNote("There is no player with that name !", player, 255, 0, 0)
    	if (not hours) then
    		return exports.chgnote:createNote("Please insert a valid hours !", player, 255, 0, 0)
    	hours = tonumber(hours)
    	if ( not isPlayerVIP(target)) then
    		if cmd == "addvip" then
    			if targetN then
    				if hours then
    				local time = getRealTime()
    					local timestamp = time.timestamp
    					local vHours = timestamp+hours*3600
    					outputChatBox(adderName.." gave "..targetN.." "..hours.." VIP Hours !", root, 0, 255, 0)
    					local acc = getAccountName(getPlayerAccount(target))
    					executeSQLQuery("INSERT INTO vip(account,hours) VALUES(?,?)", acc, vHours)
    					setElementData(target, "VIP", "Yes")
    	addCommandHandler("addvip", addVIP)
    --Return hours, minutes, seconds
    function hoursToTime(hours)
    	if hours and type(hours) == "number" then
    		local minutes = hours*60
    		hours = 0
    		while minutes >= 60 do
    			minutes = minutes - 60
    			hours = hours + 1
    		local seconds = math.floor((minutes - math.floor(minutes)) * 60)
    		return hours, minutes, seconds
  3. 15 hours ago, xMKHx said:

    No :/

    anyone helpme please

    Did you check if the column 'hours' was succesfully created? Use an application to see the table.

    Also in my script you can try to use outputChatBox to see what the variable 'hours' return.


    function round(num, numDecimalPlaces)
      local mult = 10^(numDecimalPlaces or 0)
      return math.floor(num * mult + 0.5) / mult
    function getPlayerVIPHours (player)
    	if (isPlayerVIP(player)) then
    		local account = getAccountName(getPlayerAccount(player))
    		local query = executeSQLQuery("SELECT hours FROM vip WHERE account=?", account)
    		local hours = round((tonumber (query[1].hours) - getRealTime ().timestamp)/3600, 2)
    	    return hours


  5. 5 hours ago, #x1AhMeD,-09 said:

    this is not MTA . that game is SA:MP ( San Andress Multi Player) it's anther game with another programming language

    I know it is SA:MP but that's not change the fact that it use GTA so if it possible there, in MTA could be too, of course it could have been added here or not. That's why I'm asking here.

    4 hours ago, NeverUnbeatable said:

    Find ids of those objects, then create them and attach to player element or use resource boneattach.

    I have already searched but I didn't find them. Maybe because they're not objects as well but I thought that there may be another way to work.

  6. Hi!

    Two players said that they're having their mta crashed after some time playing in a specific server. They reported to me that this is happening after the last update of the server. Can you told me why this could be happening?

    I told them to run MTADiag and give me their dump files so you could help.

    Player 1:


    Player 2:


    Thanks in advance.


    (Provided by Youtube, Soundcloud and vmuzice.com)



    Hey everyone! I have decided to release this script that I made it some time ago. There's no much to say, it's a simple tool to search music. 

    I don't have an updated video of this resource but I can say it is an improved version of this https://www.youtube.com/watch?v=q35h7dtYRrE (Which it is mine).

    1. First thing first: In the v2, you have three sources from where you get songs, but two of them you need to have an api key: Youtube and Soundcloud.

    2. Second thing: ADD THE RESOURCE TO THE ACL RPC (Needed for fetchRemote to get results from youtube, soundcloud, etc)
    3. Third thing: You can open the GUI in game using /youtube and '/youtube stop' to stop listening.

    Download link: https://community.mtasa.com/index.php?p=resources&s=details&id=14330

    Any question will be answered as soon as I can.

    • Like 1
  8. We have exactly the same problem.

    With Linux there is more packetloss, its like an interrupt or something that causes MTA Server to use 1 core at 100% fully for a brief period. MTA Server prefers windows for some reason.

  • Create New...