-
Posts
21,935 -
Joined
-
Last visited
-
Days Won
6
Everything posted by Castillo
-
This resource: https://community.multitheftauto.com/index.php?p= ... ls&id=3879 Includes: Shoot, Reload, Explosion sounds.
-
If you change it on your side, it'll be changed only for you. But you can change the default settings when a player joins the game.
-
function chatbox(text, msgtype) local account = getAccountName(getPlayerAccount(source)) local name = getPlayerName(source) local tag = getElementData(source, "ID") or 0 local r, g, b = getPlayerNametagColor(source) local hex = RGBToHex(r, g, b) if (msgtype == 0) then if isObjectInACLGroup("user." .. account, aclGetGroup("HeadAdmin")) then cancelEvent(true) outputChatBox(" #cccccc[".. tag .."] #8B1A1A[HEADADMIN] ".. hex .."".. name ..": #FFFFFF".. text, root, 255, 255, 255, true) outputServerLog("CHAT: [HEADADMIN] " .. name .. ": " .. text) elseif isObjectInACLGroup("user." .. account, aclGetGroup("Admin")) then cancelEvent(true) outputChatBox("#cccccc[".. tag .."] #FF0000[ADMIN] ".. hex .."" .. name ..": #FFFFFF" .. text, root, 255, 255, 255, true) outputServerLog("CHAT: [ADMIN] " .. name .. ": " .. text) elseif isObjectInACLGroup("user." .. account, aclGetGroup("Moderator")) then cancelEvent(true) outputChatBox("#cccccc[".. tag .."] #00FF00[MODERATOR] ".. hex .."" .. name .. ": #FFFFFF" .. text, root, 255, 255, 255, true) outputServerLog("CHAT: [MODERATOR] " .. name .. ": " .. text) elseif isObjectInACLGroup("user." .. account, aclGetGroup("Everyone")) then cancelEvent(true) outputChatBox("#cccccc[".. tag .."] #FFFFFF".. hex .."" .. name .. ": #FFFFFF" .. text, root, 255, 255, 255, true) outputServerLog("CHAT: " .. name .. ": " .. text) end end end addEventHandler("onPlayerChat", root, chatbox) function RGBToHex(red, green, blue, alpha) if((red < 0 or red > 255 or green < 0 or green > 255 or blue < 0 or blue > 255) or (alpha and (alpha < 0 or alpha > 255))) then return nil end if(alpha) then return string.format("#%.2X%.2X%.2X%.2X", red,green,blue,alpha) else return string.format("#%.2X%.2X%.2X", red,green,blue) end end That seems to work.
-
Scoreboard has a settings window, you can try changing it there?
-
You want to change the font of team name on scoreboard?
-
You want to show on player screen the amount of players on his/her team?
-
For nitro: Maybe you can use a shader to hide it. About pickups: You have to hide the vehicle again when a player hits a pickup.
-
Scoreboard used to have a setting to remove the HEX colors from the name.
-
You need to loop through all vehicles and freeze them. getElementsByType( "vehicle" ) -- This combined with a for-loop to get all vehicles. setElementFrozen -- To freeze the vehicle.
-
function chatbox(text, msgtype) local account = getAccountName(getPlayerAccount(source)) local name = getPlayerName(source) local tag = getElementData(source, "ID") or 0 local r, g, b = getPlayerNametagColor(source) if (msgtype == 0) then if isObjectInACLGroup("user." .. account, aclGetGroup("HeadAdmin")) then cancelEvent(true) outputChatBox(" #cccccc[".. tag .."] #8B1A1A[HEADADMIN] ".. name ..": #FFFFFF".. text, root, r, g, b, true) outputServerLog("CHAT: [HEADADMIN] " .. name .. ": " .. text) elseif isObjectInACLGroup("user." .. account, aclGetGroup("Admin")) then cancelEvent(true) outputChatBox("#cccccc[".. tag .."] #FF0000[ADMIN] " .. name ..": #FFFFFF" .. text, root, r, g, b, true) outputServerLog("CHAT: [ADMIN] " .. name .. ": " .. text) elseif isObjectInACLGroup("user." .. account, aclGetGroup("Moderator")) then cancelEvent(true) outputChatBox("#cccccc[".. tag .."] #00FF00[MODERATOR] " .. name .. ": #FFFFFF" .. text, root, r, g, b, true) outputServerLog("CHAT: [MODERATOR] " .. name .. ": " .. text) elseif isObjectInACLGroup("user." .. account, aclGetGroup("Everyone")) then cancelEvent(true) outputChatBox("#cccccc[".. tag .."] #FFFFFF" .. name .. ": #FFFFFF" .. text, root, 255, 255, 255, true) outputServerLog("CHAT: " .. name .. ": " .. text) end end end addEventHandler("onPlayerChat", root, chatbox)
-
Do the script actually work? any error(s) shown on debugscript?
-
Yes it is .You can use getTickCount function https://wiki.multitheftauto.com/wiki/GetTickCount Read example. Take getTickCount when player joins server and subtract it from current tick count. I would suggest splitting the "Online Time" data and then compare it.
-
IF THIS TOPIC IS NOT CLOSED THEN YOU CAN USE THIS COMMAND TO DISABLE ANY COMMAND addEventHandler("onPlayerSpawn", root, function () removeCommandHandler("reconnect") end) No, you can't remove native MTA commands, the same way you can't detect them when you use the command(s).
-
call(getResourceFromName("scoreboard"), "addScoreboardColumn", "wins") call(getResourceFromName("scoreboard"), "addScoreboardColumn", "points") function loadPlayerData ( player, datatype ) if ( not player or not isElement( player ) ) then return false end local playerIP = getPlayerSerial ( player ) if ( playerIP ) then local root = xmlLoadFile ("users.xml") if ( root ) then local usersNode = xmlFindChild ( root, "user", 0 ) if ( usersNode ) then local playerRootNode = xmlFindChild ( usersNode, "SERIAL_" .. getPlayerSerial(player), 0 ) if not ( playerRootNode == false ) then local playerData = xmlNodeGetAttribute ( playerRootNode, datatype ) if ( playerData ) then xmlUnloadFile ( root ) return playerData else xmlNodeSetAttribute ( playerRootNode, datatype, 0 ) xmlSaveFile ( root ) xmlUnloadFile ( root ) return 0 end else local playerRootNode = xmlCreateChild ( usersNode, "SERIAL_" .. getPlayerSerial(player) ) xmlNodeSetAttribute ( playerRootNode, datatype, 0 ) xmlSaveFile ( root ) xmlUnloadFile ( root ) return 0 end end end end end function savePlayerData ( player, datatype, newvalue ) if ( not player or not isElement( player ) ) then return false end local playerIP = getPlayerSerial (player) if ( playerIP ) then local root = xmlLoadFile ("users.xml") if ( root ) then local usersNode = xmlFindChild ( root, "user", 0 ) if ( usersNode ) then local playerRootNode = xmlFindChild ( usersNode, "SERIAL_" .. getPlayerSerial(player), 0 ) if not ( playerRootNode == false ) then local newNodeValue = xmlNodeSetAttribute ( playerRootNode, datatype, newvalue ) xmlSaveFile ( root ) xmlUnloadFile ( root ) return newNodeValue else local playerRootNode = xmlCreateChild ( usersNode, "SERIAL_" .. getPlayerSerial(player) ) local newNodeValue = xmlNodeSetAttribute ( playerRootNode, datatype, newvalue ) xmlSaveFile ( root ) xmlUnloadFile ( root ) return newNodeValue end end end end end function exporter() local playerCash = tonumber( loadPlayerData ( source, "wins" ) ) setElementData ( source, "wins", playerCash ) local playerPoint = tonumber( loadPlayerData ( source, "points" ) ) setElementData ( source, "points", playerPoint ) end addEventHandler ( "onPlayerJoin", getRootElement(), exporter) addEventHandler ( "onPlayerWasted", getRootElement(), exporter) addEventHandler ( "onPlayerChat", getRootElement(), exporter) addEventHandler ( "onNotifyPlayerReady", getRootElement(), exporter) addEventHandler ( "onPlayerPickUpRacePickup", getRootElement(), exporter) ----------------------------------------------------------------- addEvent("onPlayerDestructionDerbyWin",true) addEventHandler("onPlayerDestructionDerbyWin",getRootElement(), function (winner) if ( getPlayerCount() >= 2 )then local cashToWin = 1 local playerCash = tonumber( loadPlayerData( winner, "wins" ) ) savePlayerData( winner, "wins", playerCash + cashToWin ) local pointsToWin = 3 local playerPoints = tonumber ( loadPlayerData( winner, "points" ) ) savePlayerData( winner, "points", playerPoints + pointsToWin ) outputChatBox ( "#c0c0c0* #abcdef" .. getPlayerName(winner) .." #c0c0c0has win this round.", root, 255, 255, 255, true ) else outputChatBox( "#c0c0c0* Not enough players to earn money - #ABCDEF2 players #c0c0c0required.", winner, 255, 255, 255, true ) totalMoneyEarnedAdd ( winner, cashToWin ) scoreboardRefresh ( winner ) refreshStats ( winner ) progressBarUpdate ( winner ) totalMoneyAchievements ( winner ) end end ) Your mistakes: 1: You forgot the "( )" from "tonumber" function. 2: You have created another function to give the points, but that is not needed.
-
call(getResourceFromName("scoreboard"), "addScoreboardColumn", "cash") function loadPlayerData ( player, datatype ) if ( not player or not isElement( player ) ) then return false end local playerIP = getPlayerSerial ( player ) if ( playerIP ) then local root = xmlLoadFile ("users.xml") if ( root ) then local usersNode = xmlFindChild ( root, "user", 0 ) if ( usersNode ) then local playerRootNode = xmlFindChild ( usersNode, "SERIAL_" .. getPlayerSerial(player), 0 ) if not ( playerRootNode == false ) then local playerData = xmlNodeGetAttribute ( playerRootNode, datatype ) if ( playerData ) then xmlUnloadFile ( root ) return playerData else xmlNodeSetAttribute ( playerRootNode, datatype, 0 ) xmlSaveFile ( root ) xmlUnloadFile ( root ) return 0 end else local playerRootNode = xmlCreateChild ( usersNode, "SERIAL_" .. getPlayerSerial(player) ) xmlNodeSetAttribute ( playerRootNode, datatype, 0 ) xmlSaveFile ( root ) xmlUnloadFile ( root ) return 0 end end end end end function savePlayerData ( player, datatype, newvalue ) if ( not player or not isElement( player ) ) then return false end local playerIP = getPlayerSerial (player) if ( playerIP ) then local root = xmlLoadFile ("users.xml") if ( root ) then local usersNode = xmlFindChild ( root, "user", 0 ) if ( usersNode ) then local playerRootNode = xmlFindChild ( usersNode, "SERIAL_" .. getPlayerSerial(player), 0 ) if not ( playerRootNode == false ) then local newNodeValue = xmlNodeSetAttribute ( playerRootNode, datatype, newvalue ) xmlSaveFile ( root ) xmlUnloadFile ( root ) return newNodeValue else local playerRootNode = xmlCreateChild ( usersNode, "SERIAL_" .. getPlayerSerial(player) ) local newNodeValue = xmlNodeSetAttribute ( playerRootNode, datatype, newvalue ) xmlSaveFile ( root ) xmlUnloadFile ( root ) return newNodeValue end end end end end function exporter() local playerCash = tonumber( loadPlayerData ( source, "cash" ) ) -- You're using 'thePlayer', but your event handlers uses 'source' as player argument. setElementData ( source, "Cash", playerCash ) end addEventHandler ( "onPlayerJoin", getRootElement(), exporter) addEventHandler ( "onPlayerWasted", getRootElement(), exporter) addEventHandler ( "onPlayerChat", getRootElement(), exporter) addEventHandler ( "onNotifyPlayerReady", getRootElement(), exporter) addEventHandler ( "onPlayerPickUpRacePickup", getRootElement(), exporter) addEvent("onPlayerDestructionDerbyWin",true) addEventHandler("onPlayerDestructionDerbyWin",getRootElement(), function (winner) if ( getPlayerCount() >= 2 )then local cashToWin = 1 local playerCash = tonumber( loadPlayerData( winner, "cash" ) ) savePlayerData( winner, "cash", playerCash + cashToWin ) local playerCash = loadPlayerData( winner, "cash" ) outputChatBox ( "#c0c0c0* #abcdef" .. getPlayerName(winner) .." #c0c0c0has win this round.", root, 255, 255, 255, true ) else outputChatBox( "#c0c0c0* Not enough players to earn money - #ABCDEF2 players #c0c0c0required.", winner, 255, 255, 255, true ) totalMoneyEarnedAdd ( winner, cashToWin ) scoreboardRefresh ( winner ) refreshStats ( winner ) progressBarUpdate ( winner ) totalMoneyAchievements ( winner ) end end ) addCommandHandler ("spd", function ( player, command, toplayername, datatype, amount ) if hasObjectPermissionTo ( player, "function.kickPlayer", false ) then if ( toplayername ) and ( datatype ) and ( amount ) then if ( findPlayerByName ( toplayername ) ) then toplayer = findPlayerByName ( toplayername ) savePlayerData( toplayer, datatype, amount ) outputChatBox ( "setPlayerData: " .. getPlayerName ( toplayer ) .. " | Player's " .. datatype .. " has been set to: " .. amount, player, 255, 0, 0, true ) --outputChatBox ("" .. getPlayerName (player) .. " has set your " .. datatype .." to: " .. amount, toplayer,255,0,0,true) local playerCash = loadPlayerData ( toplayer, "cash" ) scoreboardRefresh(toplayer) refreshStats(toplayer) progressBarUpdate(toplayer) end else outputChatBox ( "ERROR! Syntax: /spd [playername] [datatype] [new_amount]", player, 255, 255, 255, true ) end end end ) I fixed all I could.
-
Oh, you're talking about the player who has the most online time?
-
Your script is server side, remove this from meta.xml: "users.xml" type="client"/>
-
Ok, no hay problema. P.D: Te agregue al msn.
-
Me parece ami o estas usando mas de una cuenta para postear? hay alguna razon?
-
I'm afraid I don't understand you, what do you mean by "best time"?
-
Copy the code again and try it.