Jump to content

Sasu

Members
  • Content Count

    1,055
  • 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)")
    end
    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
    	else
    		return false
    	end
    end
    
    
    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
        end
    end
    
    function myHours (player)
    	if (not isPlayerVIP(player)) then
    		return exports.chgnote:createNote("You are not VIP", player, 255, 0, 0)
    	end
    	
    	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)
    end
    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)
    	end
    	if (not hours) then
    		return exports.chgnote:createNote("Please insert a valid hours !", player, 255, 0, 0)
    	end
    	
    	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")
    				end
    			end
    		end
    	end
    end
    	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
    		end
    		local seconds = math.floor((minutes - math.floor(minutes)) * 60)
    		return hours, minutes, seconds
    	end
    end
  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.

  4.  

    function round(num, numDecimalPlaces)
      local mult = 10^(numDecimalPlaces or 0)
      return math.floor(num * mult + 0.5) / mult
    end
    
    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
        end
    end

     

  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:

    auidaaa.jpg.3f1c50e17292732352dea4021bd7

    Player 2:

    ce24e4d9-8b6e-4219-9aa1-898ef7963622.thu

    Thanks in advance.

  7. MUSIC SEARCH ENGINE

    (Provided by Youtube, Soundcloud and vmuzice.com)

    22408.png

     

    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...