Hey!
I have worked on a function that choose a random players. It works perfectly on client side but i need to put it on server side, but i keep getting the same errors. Can someone tell me whats wrong ?
Server.lua
stop = false
AddEventHandler('chatMessage', function(source, n, message)
local args = stringsplit(message, " ")
if (args[1] == "/pvsv") and (stop == false) then
CancelEvent()
getVoleur() <----------------------------------------------------------- The function
TriggerClientEvent('startGameMode', -1,voleur)
stop = true
elseif (args[1] == "/pvsv") and (stop == true) then
CancelEvent()
end
end)
function stringsplit(self, delimiter)
local a = self:Split(delimiter)
local t = {}
for i = 0, #a - 1 do
table.insert(t, a[i])
end
return t
end
function getVoleur()
local players = {}
for i = 0, 31 do
if NetworkIsPlayerActive(i) then
playername = GetPlayerName(i)
table.insert(players, playername)
end
end
resultat = math.random(0,#players)
voleur = players[resultat]
end
The error
2017-05-11 20:29:16.6831|ERROR|CitizenMP.Server|Error executing event handler for event chatMessage in resource pv_gamemode: Exception has been thrown by the target of an invocation.
2017-05-11 20:29:16.6831|ERROR|CitizenMP.Server| at [U] System.Reflection.MonoMethod.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object parameters,CultureInfo culture)
2017-05-11 20:29:16.6831|ERROR|CitizenMP.Server| at [U] System.Reflection.MethodBase.Invoke(Object obj,Object parameters)
2017-05-11 20:29:16.6831|ERROR|CitizenMP.Server| at [U] System.Delegate.DynamicInvokeImpl(Object args)
2017-05-11 20:29:16.6837|ERROR|CitizenMP.Server| at [U] System.MulticastDelegate.DynamicInvokeImpl(Object args)
2017-05-11 20:29:16.6837|ERROR|CitizenMP.Server| at [U] System.Delegate.DynamicInvoke(Object args)
2017-05-11 20:29:16.6837|ERROR|CitizenMP.Server| at [U] CitizenMP.Server.Resources.ScriptEnvironment.TriggerEvent(String eventName,String argsSerialized,Int32 source)
2017-05-11 20:29:16.6837|ERROR|CitizenMP.Server|Inner exception: Can not call nil value.