1
1
-- Game hook mod injector
2
+ function arrayToString (arrayOfStrings )
3
+ res = " "
4
+ for i = 1 , table.maxn (arrayOfStrings ) do
5
+ res = res .. ' "' .. arrayOfStrings [i ] .. ' ",'
6
+ end
7
+ return ' [' .. res :sub (1 , - 2 ) .. ' ]'
8
+ end
9
+
2
10
function listener ()
3
11
local playerTurns = " "
4
12
for i ,a in pairs (Players ) do
5
13
if a :IsEverAlive () and a :IsHuman () then
14
+ local allies = {}
15
+ local enemies = {}
16
+ for j ,b in pairs (Players ) do
17
+ if (a :IsAllies (b )) then
18
+ table.insert (allies , b :GetNickName ())
19
+ end
20
+ if (Teams [a :GetTeam ()]:IsAtWar (b :GetTeam ())) then
21
+ table.insert (enemies , tostring (b :GetID ()))
22
+ end
23
+ end
6
24
playerTurns = playerTurns .. " {" ..
7
- ' "id" : ' .. tostring (a :GetID ()) .. " ," ..
8
- ' "nickName" : ' .. ' "' .. a :GetNickName () .. ' "' .. " ," ..
9
- ' "civilization" : ' .. ' "' .. a :GetCivilizationShortDescription () .. ' "' .. " ," ..
10
- ' "isTurnComplete" : ' .. tostring (a :HasReceivedNetTurnComplete ()) .. " ," ..
11
- ' "isOnline" : ' .. tostring (Network .IsPlayerConnected (a :GetID ())) .. " ," ..
12
- ' "isAlive" : ' .. tostring (a :IsAlive ()) ..
13
- " },"
25
+ ' "id" : ' .. tostring (a :GetID ()) .. " ," ..
26
+ ' "nickName" : ' .. ' "' .. a :GetNickName () .. ' "' .. " ," ..
27
+ ' "civilization" : ' .. ' "' .. a :GetCivilizationShortDescription () .. ' "' .. " ," ..
28
+ ' "isTurnComplete" : ' .. tostring (a :HasReceivedNetTurnComplete ()) .. " ," ..
29
+ ' "isOnline" : ' .. tostring (Network .IsPlayerConnected (a :GetID ())) .. " ," ..
30
+ ' "isAlive" : ' .. tostring (a :IsAlive ()) .. " ," ..
31
+ ' "currentEra" : ' .. a :GetCurrentEra () .. " ," ..
32
+ ' "numWonders" : ' .. a :GetNumWorldWonders () .. " ," ..
33
+ ' "enemies" : ' .. arrayToString (enemies ) .. " ," ..
34
+ ' "allies" : ' .. arrayToString (allies ) ..
35
+ " },"
14
36
end
15
37
end
16
-
17
- print (" ----JSON----{" ..
18
- ' "gameTurn" : ' .. tostring (Game .GetGameTurn ()) .. " ," ..
19
- ' "players" : [' .. playerTurns :sub (1 , - 2 ) .. " ]" ..
20
- " }----JSON----" )
38
+ local gameState = " "
39
+ gameState = gameState .. " {" .. ' "isUnitedNationActive" : ' .. tostring (Game .IsUnitedNationsActive ()) .. " }"
40
+
41
+ print (" ----JSON----{" .. ' "gameTurn" : ' .. tostring (Game .GetGameTurn ()) .. " ," .. ' "players" : [' .. playerTurns :sub (1 , - 2 ) .. " ]," .. ' "game": ' .. gameState .. " }----JSON----" )
21
42
end
22
43
23
44
print (" ----GameHook: GameHook listener initialized." )
@@ -29,3 +50,6 @@ Events.ActivePlayerTurnEnd.Add(listener)
29
50
Events .MultiplayerGamePlayerDisconnected .Add (listener )
30
51
Events .MultiplayerGamePlayerUpdated .Add (listener )
31
52
Events .MultiplayerHotJoinCompleted .Add (listener )
53
+ Events .WarStateChanged .Add (listener );
54
+ Events .SerialEventEraChanged .Add (listener );
55
+ Events .WonderStateChanged .Add (listener );
0 commit comments