Trying to make a "interest" mod, not sure why it isn't working. Am I not understanding the Receive function?
package.path = package.path .. ";data/scripts/lib/?.lua"
package.path = package.path .. ";data/scripts/server/?.lua"
include ("factions")
include ("stringutility")
local playerList = {}
local playerTotal = 0
local timeSet = 0
function onStartUp()
Server():registerCallback("onPlayerLogIn", "onPlayerLogIn")
Server():registerCallback("onPlayerLogOff", "onPlayerLogOff")
Galaxy():registerCallback("onPlayerCreated", "onPlayerCreated")
Galaxy():registerCallback("onFactionCreated", "onFactionCreated")
end
function onShutDown()
end
function getUpdateInterval()
return 60
end
function update(timeStep)
local server = Server()
--server:broadcastChatMessage("Server", ChatMessageType.ServerInfo, "playerList true")
local guardianRespawnTime = server:getValue("guardian_respawn_time")
if guardianRespawnTime then
guardianRespawnTime = guardianRespawnTime - timeStep;
if guardianRespawnTime < 0 then
guardianRespawnTime = nil
end
server:setValue("guardian_respawn_time", guardianRespawnTime)
end
timeSet = timeSet + timeStep
if timeSet > 10 then
timeSet = 0
local players = {server:getOnlinePlayers()}
local playerListLength = tablelength(players)
local i = 0
while i <= playerListLength do
local playert = players[i + 1]
server:broadcastChatMessage(playert)
local resourceCount = {playert:getResources()}
playert:receive(math.floor(playert.money * (2/((1+0.3)^(playert.money/1000000)))),
math.floor(resourceCount[1] * (2/((1+0.5)^(resourceCount[1]/30000))),
math.floor(resourceCount[2] * (2/((1+0.5)^(resourceCount[2]/30000))),
math.floor(resourceCount[3] * (2/((1+0.5)^(resourceCount[3]/30000))),
math.floor(resourceCount[4] * (2/((1+0.5)^(resourceCount[4]/30000))),
math.floor(resourceCount[5] * (2/((1+0.5)^(resourceCount[5]/30000))),
math.floor(resourceCount[6] * (2/((1+0.5)^(resourceCount[6]/30000))),
math.floor(resourceCount[7] * (2/((1+0.5)^(resourceCount[7]/30000))))
--playert:receive(99999999999999999, 999999999999)
i = i + 1
end
end
local serverRuntime = server:getValue("online_time") or 0
serverRuntime = serverRuntime + timeStep
server:setValue("online_time", serverRuntime)
end
function onPlayerCreated(index)
local player = Player(index)
Server():broadcastChatMessage("Server", ChatMessageType.ServerInfo, "Player %s created!"%_t, player.name)
end
function onFactionCreated(index)
end
function onPlayerLogIn(playerIndex)
local player = Player(playerIndex)
Server():broadcastChatMessage("Server", ChatMessageType.ServerInfo, "Player %s joined the galaxy"%_t, player.name)
matchResources(player)
playerList[playerTotal] = player
playerTotal = (playerTotal + 1)
end
function onPlayerLogOff(playerIndex)
local player = Player(playerIndex)
Server():broadcastChatMessage("Server", ChatMessageType.ServerInfo, "Player %s left the galaxy"%_t, player.name)
end
function tablelength(T)
local count = 0
for _ in pairs(T) do count = count + 1 end
return count
end
What am I doing wrong?
in Mods
Posted
Trying to make a "interest" mod, not sure why it isn't working. Am I not understanding the Receive function?
package.path = package.path .. ";data/scripts/lib/?.lua" package.path = package.path .. ";data/scripts/server/?.lua" include ("factions") include ("stringutility") local playerList = {} local playerTotal = 0 local timeSet = 0 function onStartUp() Server():registerCallback("onPlayerLogIn", "onPlayerLogIn") Server():registerCallback("onPlayerLogOff", "onPlayerLogOff") Galaxy():registerCallback("onPlayerCreated", "onPlayerCreated") Galaxy():registerCallback("onFactionCreated", "onFactionCreated") end function onShutDown() end function getUpdateInterval() return 60 end function update(timeStep) local server = Server() --server:broadcastChatMessage("Server", ChatMessageType.ServerInfo, "playerList true") local guardianRespawnTime = server:getValue("guardian_respawn_time") if guardianRespawnTime then guardianRespawnTime = guardianRespawnTime - timeStep; if guardianRespawnTime < 0 then guardianRespawnTime = nil end server:setValue("guardian_respawn_time", guardianRespawnTime) end timeSet = timeSet + timeStep if timeSet > 10 then timeSet = 0 local players = {server:getOnlinePlayers()} local playerListLength = tablelength(players) local i = 0 while i <= playerListLength do local playert = players[i + 1] server:broadcastChatMessage(playert) local resourceCount = {playert:getResources()} playert:receive(math.floor(playert.money * (2/((1+0.3)^(playert.money/1000000)))), math.floor(resourceCount[1] * (2/((1+0.5)^(resourceCount[1]/30000))), math.floor(resourceCount[2] * (2/((1+0.5)^(resourceCount[2]/30000))), math.floor(resourceCount[3] * (2/((1+0.5)^(resourceCount[3]/30000))), math.floor(resourceCount[4] * (2/((1+0.5)^(resourceCount[4]/30000))), math.floor(resourceCount[5] * (2/((1+0.5)^(resourceCount[5]/30000))), math.floor(resourceCount[6] * (2/((1+0.5)^(resourceCount[6]/30000))), math.floor(resourceCount[7] * (2/((1+0.5)^(resourceCount[7]/30000)))) --playert:receive(99999999999999999, 999999999999) i = i + 1 end end local serverRuntime = server:getValue("online_time") or 0 serverRuntime = serverRuntime + timeStep server:setValue("online_time", serverRuntime) end function onPlayerCreated(index) local player = Player(index) Server():broadcastChatMessage("Server", ChatMessageType.ServerInfo, "Player %s created!"%_t, player.name) end function onFactionCreated(index) end function onPlayerLogIn(playerIndex) local player = Player(playerIndex) Server():broadcastChatMessage("Server", ChatMessageType.ServerInfo, "Player %s joined the galaxy"%_t, player.name) matchResources(player) playerList[playerTotal] = player playerTotal = (playerTotal + 1) end function onPlayerLogOff(playerIndex) local player = Player(playerIndex) Server():broadcastChatMessage("Server", ChatMessageType.ServerInfo, "Player %s left the galaxy"%_t, player.name) end function tablelength(T) local count = 0 for _ in pairs(T) do count = count + 1 end return count end
Any help would be great.