These resources are giving the following errors:
HelloMessages\script\server.lua
g_Root = getRootElement()
countryNames = {
AD="Andorra",
AE="Arabian",
AF="Afghanistan",
AG="Antigua Bardura",
AI="Anguilla",
AL="Albania",
AM="Armenia",
AN="Netherlands Antilles",
AO="Angola",
AP="Asia",
AR="Argentina",
AS="American Samoa",
AT="Austria",
AU="Australia",
AW="Aruba",
AZ="Azerbaijan",
BA="Bosnia Herzrgowina",
BB="Barbados",
BD="Bangladesh",
BE="Belgium",
BF="Burkina Faso",
BG="Bulgaria",
BH="Bahrain",
BI="Burundi",
BJ="Benin",
BM="Bermuda",
BN="Brunei Darussalam",
BO="Bolivia",
BR="Brasil",
BS="Bahamas",
BT="Bhutan",
BW="Botswana",
BY="Belarus",
BZ="Belize",
CA="Canada",
CD="Congo The Democratic",
CF="Centra African Republic",
CH="Switzerland",
CI="Cote Divoire",
CK="Cook Isladinds",
CL="Chile",
CM="Cameroon",
CN="China",
CO="Colombia",
CR="Costa Rica",
CS="Serbia and Montenegro",
CU="Cuba",
CY="CY",
CZ="Czech Republic",
DE="Alemania",
DJ="Djibouti",
DK="Denmark",
DO="Dominican Republic",
DZ="Algeria",
EC="Ecuador",
EE="Estonia",
EG="Egipto",
ER="Eritrea",
ES="España",
ET="Ethiopia",
EU="Europa",
FI="Finland",
FJ="Fiji",
FM="Microdencia",
FO="Faroe Islands",
FR="Francia",
GA="Gabon",
GB="United Kingdom",
GD="Grenada",
GE="Gorgia",
GF="Frech Guinia",
GH="Ghana",
GI="GibraItar",
GL="Greenland",
GM="Gambia",
GR="Greece",
GT="Guatelama",
GU="Guam",
GW="Guinea",
GY="GUYANA",
HK="HONG KONG",
HN="HONDURAS",
HR="Croacia",
HT="Haiti",
HU="Hungary",
ID="Indonecia",
IE="Ireland",
IL="Isral",
IN="India",
IO="India Ocean",
IQ="Iraq",
IR="Iran",
IS="Iceland",
IT="Italia",
JM="Jamaica",
JO="Jorlan",
JP="Japon",
KE="Kenya",
KG="Kyrgyzstan",
KH="Cambodia",
KI="Kiribati",
KN="Saint Kitts And Nevis",
KR="Korea",
KW="Kuwait",
KY="Cayman Islands",
KZ="Kazakhstan",
LA="Democratic Republic",
LB="Lebaton",
LC="Santa Lucia",
LI="Liechtenstein",
LK="Sri Lanka",
LR="Liberia",
LS="Lesotho",
LT="LithuaniaI",
LU="Luxembourg",
LV="LATVIA",
LY="Libyan Arab",
MA="Morocco",
MC="Monaco",
MD="Moldoca Republic",
MG="MadagascarA",
MK="MK",
ML="Malia",
MM="Myanmar",
MN="Mongolia",
MO="MACAU",
MP="MP",
MR="Mauritania",
MT="Malta",
MU="Mauritius",
MV="Maldives",
MW="Malawi",
MX="Mexcio",
MY="Malaysia",
MZ="Mozambique",
NA="NAMIBIA",
NC="NEW CALEDONIA",
NE="Nigger",
NF="Norfolk Island",
NG="Nigeria",
NI="Nicaragua",
NL="Netherlands",
NO="Norway",
NP="Nepal",
NR="Nauru",
NU="Niuse",
NZ="New Zealand",
OM="Oman",
PA="Parama",
PE="Peru",
PF="French Polynesia",
PG="Papua New Guinea",
PH="Philippines",
PK="Pakistan",
PL="Polonia",
PR="Puerto Rico",
PS="Palestian",
PT="Portugal",
PW="Palau",
PY="Paraguay",
QA="Qatar",
RO="Romania",
RU="Russian",
RW="Rwanda",
SA="Saudi Arabian",
SB="Solomon Islands",
SC="Seychelles",
SD="Sudan",
SE="Sweden",
SG="Singapore",
SI="Slovenia",
SK="Slovak Republic",
SL="Sierra Leone",
SM="San Marino",
SN="Senegal",
SR="Suriname",
SV="El Salvador",
SY="Syrian Arab Republic",
SZ="Swaziland",
TG="Togo",
TH="Thailand",
TJ="Tajikistan",
TM="Turkmenistan",
TN="Tunisia",
TO="Tonga",
TR="Turkey",
TT="Trinidad Tobago",
TV="Tuvalu",
TW="Taiwan Province China",
TZ="Tanzania",
UA="Ukranie",
UG="Uganda",
US="United States",
UY="Uruguat",
UZ="Uzbekistan",
VA="Vatican City",
VE="Venezuela",
VG="Virgin Islands (British)",
VI="Virgin Islands (U.S.)",
VN="Vietnam",
VU="Vauanuatu",
WS="Samoa",
YE="Yemen",
YU="Formally Yugoslavia",
ZA="Sudrafica",
ZM="Zambia",
ZW="Zimbabwe",
ZZ="Reserved"
}
addEventHandler('onPlayerJoin',g_Root,
function ()
local ping = getPlayerPing(source)
local country = exports['admin']:getPlayerCountry(source)
setElementData(source,'Country',country)
outputChatBox('['..getPlayerCount()..'#FFFFFF / #7EC0EE'..getMaxPlayers()..'] '..getPlayerName(source)..' #FFFFFFentrou no Servidor - País [#7EC0EE'.. countryNames[tostring(country)] ..'#FFFFFF] / Ping [#7EC0EE'..ping..'#FFFFFF]', getRootElement(), 126, 192, 238, true)
end
)
addEventHandler('onPlayerChangeNick', g_Root,
function(oldNick, newNick)
outputChatBox('['..getPlayerCount()..'#FFFFFF / #7EC0EE'..getMaxPlayers()..'] '..oldNick..' #FFFFFFmudou o seu nick para: #7EC0EE'..newNick, getRootElement(), 126, 192, 238, true)
end
)
addEventHandler('onPlayerQuit', g_Root,
function(reason)
if (reason == "Quit") then
outputChatBox('['..getPlayerCount()..'#FFFFFF / #7EC0EE'..getMaxPlayers()..'] '..getPlayerName(source)..' #FFFFFFsaiu do Servidor - Motivo [#FF0000SAIU#FFFFFF]', getRootElement(), 126, 192, 238, true)
elseif (reason == "Timed out") then
outputChatBox('['..getPlayerCount()..'#FFFFFF / #7EC0EE'..getMaxPlayers()..'] '..getPlayerName(source)..' #FFFFFFsaiu do Servidor - Motivo [#FF0000NET CAIU#FFFFFF]', getRootElement(), 126, 192, 238, true)
elseif (reason == "Banned") then
outputChatBox('['..getPlayerCount()..'#FFFFFF / #7EC0EE'..getMaxPlayers()..'] '..getPlayerName(source)..' #FFFFFFsaiu do Servidor - Motivo [#FF0000BANIDO#FFFFFF]', getRootElement(), 126, 192, 238, true)
elseif (reason == "Kicked") then
outputChatBox('['..getPlayerCount()..'#FFFFFF / #7EC0EE'..getMaxPlayers()..'] '..getPlayerName(source)..' #FFFFFFsaiu do Servidor - Motivo [#FF0000KICKADO#FFFFFF]', getRootElement(), 126, 192, 238, true)
end
end
)
Scoreboard\scripts\dxscoreboard_exports.lua
MAX_PRIRORITY_SLOT = 500 scoreboardColumns = { { ["name"] = "ID", ["width"] = 20, ["friendlyName"] = "ID", ["priority"] = 1 }, { ["name"] = "name", ["width"] = 200, ["friendlyName"] = "Name", ["priority"] = 2 }, { ["name"] = "fps", ["width"] = 30, ["friendlyName"] = "FPS", ["priority"] = 3 }, { ["name"] = "country", ["width"] = 140, ["friendlyName"] = "Country", ["priority"] = MAX_PRIRORITY_SLOT-1 }, { ["name"] = "ping", ["width"] = 40, ["friendlyName"] = "Ping", ["priority"] = MAX_PRIRORITY_SLOT } } resourceColumns = {} function toboolean( bool ) bool = tostring( bool ) if bool == "true" then return true elseif bool == "false" then return false else return nil end end forceShowTeams = toboolean( get( "forceShowTeams" ) ) or false forceHideTeams = toboolean( get( "forceHideTeams" ) ) or false allowColorcodedNames = toboolean( get( "allowColorcodedNames" ) ) or false scrollStep = tonumber( get( "scrollStep" ) ) or 1 local function iif( cond, arg1, arg2 ) if cond then return arg1 end return arg2 end function scoreboardAddColumn( name, forElement, width, friendlyName, priority ) if type( name ) == "string" then width = tonumber( width ) or 70 friendlyName = friendlyName or name priority = tonumber( priority ) or getNextFreePrioritySlot( scoreboardGetColumnPriority( "name" ) ) fixPrioritySlot( priority ) forElement = iif( type( forElement ) == "userdata" and isElement( forElement ), forElement, getRootElement() ) if forElement == getRootElement() then if not (priority > MAX_PRIRORITY_SLOT or priority < 1) then for key, value in ipairs( scoreboardColumns ) do if name == value.name then return false end end table.insert( scoreboardColumns, { ["name"] = name, ["width"] = width, ["friendlyName"] = friendlyName, ["priority"] = priority } ) table.sort( scoreboardColumns, function ( a, b ) return a.priority < b.priority end ) if sourceResource then if not resourceColumns[sourceResource] then resourceColumns[sourceResource] = {} end table.insert ( resourceColumns[sourceResource], name ) end return triggerClientEvent( getRootElement(), "doScoreboardAddColumn", getRootElement(), name, width, friendlyName, priority, sourceResource ) end else return triggerClientEvent( forElement, "doScoreboardAddColumn", getRootElement(), name, width, friendlyName, priority, sourceResource ) end end return false end function scoreboardRemoveColumn( name, forElement ) if type( name ) == "string" then forElement = iif( type( forElement ) == "userdata" and isElement( forElement ), forElement, getRootElement() ) if forElement == getRootElement() then for key, value in ipairs( scoreboardColumns ) do if name == value.name then table.remove( scoreboardColumns, key ) for resource, content in pairs( resourceColumns ) do table.removevalue( content, name ) end return triggerClientEvent( getRootElement(), "doScoreboardRemoveColumn", getRootElement(), name ) end end else return triggerClientEvent( forElement, "doScoreboardRemoveColumn", getRootElement(), name ) end end return false end function scoreboardClearColumns( forElement ) forElement = iif( type( forElement ) == "userdata" and isElement( forElement ), forElement, getRootElement() ) if forElement == getRootElement() then while ( scoreboardColumns[1] ) do table.remove( scoreboardColumns, 1 ) resourceColumns = {} end return triggerClientEvent( getRootElement(), "doScoreboardClearColumns", getRootElement() ) else return triggerClientEvent( forElement, "doScoreboardClearColumns", getRootElement() ) end end function scoreboardResetColumns( forElement ) forElement = iif( type( forElement ) == "userdata" and isElement( forElement ), forElement, getRootElement() ) if forElement == getRootElement() then while ( scoreboardColumns[1] ) do table.remove( scoreboardColumns, 1 ) resourceColumns = {} end local result = triggerClientEvent( getRootElement(), "doScoreboardResetColumns", getRootElement() ) if result then scoreboardAddColumn( "name", 200, "Name" ) scoreboardAddColumn( "ping", 40, "Ping" ) end return result else return triggerClientEvent( forElement, "doScoreboardResetColumns", getRootElement(), false ) end end function scoreboardSetForced( forced, forElement ) if type( forced ) == "boolean" then forElement = iif( type( forElement ) == "userdata" and isElement( forElement ), forElement, getRootElement() ) return triggerClientEvent( forElement, "doScoreboardSetForced", getRootElement(), forced ) else return false end end function scoreboardSetSortBy( name, desc, forElement ) if type( name ) == "string" or name == nil then if name == nil then forElement = iif( type( desc ) == "userdata" and isElement( desc ), desc, getRootElement() ) else forElement = iif( type( forElement ) == "userdata" and isElement( forElement ), forElement, getRootElement() ) end desc = iif( type( desc ) == "boolean", desc, true ) return triggerClientEvent( forElement, "doScoreboardSetSortBy", getRootElement(), name, desc ) else return false end end function scoreboardGetColumnPriority( name ) if type( name ) == "string" then for key, value in ipairs( scoreboardColumns ) do if name == value.name then return value.priority end end end return false end function scoreboardSetColumnPriority( name, priority, forElement ) if type( name ) == "string" and type( priority ) == "number" then if not (priority > MAX_PRIRORITY_SLOT or priority < 1) then forElement = iif( type( forElement ) == "userdata" and isElement( forElement ), forElement, getRootElement() ) if forElement == getRootElement() then local columnIndex = false for key, value in ipairs( scoreboardColumns ) do if name == value.name then columnIndex = key end end if columnIndex then scoreboardColumns[columnIndex].priority = -1 -- To empty out the current priority fixPrioritySlot( priority ) scoreboardColumns[columnIndex].priority = priority table.sort( scoreboardColumns, function ( a, b ) return a.priority < b.priority end ) return triggerClientEvent( forElement, "doScoreboardSetColumnPriority", getRootElement(), name, priority ) end else return triggerClientEvent( forElement, "doScoreboardSetColumnPriority", getRootElement(), name, priority ) end end end return false end function scoreboardForceTeamsVisible( enabled ) if type( enabled ) == "boolean" then forceShowTeams = enabled return true end return false end function scoreboardForceTeamsHidden( enabled ) if type( enabled ) == "boolean" then forceHideTeams = enabled return true end return false end function scoreboardGetColumnCount() return #scoreboardColumns end function onClientDXScoreboardResourceStart() for key, column in ipairs( scoreboardColumns ) do triggerClientEvent( client, "doScoreboardAddColumn", getRootElement(), column.name, column.width, column.friendlyName, column.priority ) end end addEvent( "onClientDXScoreboardResourceStart", true ) addEventHandler( "onClientDXScoreboardResourceStart", getResourceRootElement( getThisResource() ), onClientDXScoreboardResourceStart ) function requestServerInfoHandler() local mapmanager = getResourceFromName( "mapmanager" ) local output = {} output.forceshowteams = forceShowTeams output.forcehideteams = forceHideTeams output.allowcolorcodes = allowColorcodedNames output.scrollStep = scrollStep output.server = getServerName() output.players = getMaxPlayers() output.gamemode = false output.map = false if mapmanager and getResourceState( mapmanager ) == "running" then local gamemode = exports.mapmanager:getRunningGamemode() if gamemode then output.gamemode = getResourceInfo( gamemode, "name" ) or getResourceName( gamemode ) end local map = exports.mapmanager:getRunningGamemodeMap() if map then output.map = getResourceInfo( map, "name" ) or getResourceName( map ) end end triggerClientEvent( source, "sendServerInfo", getRootElement(), output ) end addEvent( "requestServerInfo", true ) addEventHandler( "requestServerInfo", getRootElement(), requestServerInfoHandler ) function removeResourceScoreboardColumns( resource ) if resourceColumns[resource] then while resourceColumns[resource][1] do local success = scoreboardRemoveColumn( resourceColumns[resource][1], getRootElement() ) if not success then break end end resourceColumns[resource] = nil end end addEventHandler( "onResourceStop", getRootElement(), removeResourceScoreboardColumns ) -- Compability addScoreboardColumn = function( name, forElement, position, size ) if type( size ) == "number" and size >= 0 and size <= 1.0 then size = size*700 end return scoreboardAddColumn( name, forElement, size, name, position ) end removeScoreboardColumn = scoreboardRemoveColumn resetScoreboardColumns = scoreboardResetColumns