These:
Code: Select all
ScriptWarning: Revenge DM-[BBST]-Thailand-Rmx.Revenge0 (Function Revenge.Revenge.listPlayers:0032) Accessed array out of bounds (32/32)
ScriptWarning: Revenge DM-[BBST]-Thailand-Rmx.Revenge0 (Function Revenge.Revenge.listPlayers:0032) Accessed array out of bounds (33/32)
ScriptWarning: Revenge DM-[BBST]-Thailand-Rmx.Revenge0 (Function Revenge.Revenge.listPlayers:0032) Accessed array out of bounds (34/32)
ScriptWarning: Revenge DM-[BBST]-Thailand-Rmx.Revenge0 (Function Revenge.Revenge.listPlayers:0032) Accessed array out of bounds (35/32)
ScriptWarning: Revenge DM-[BBST]-Thailand-Rmx.Revenge0 (Function Revenge.Revenge.listPlayers:0032) Accessed array out of bounds (36/32)
Mutators contains variables in fixed arrays
Code: Select all
var pawn killers[32], player[32];
var config int iRevengeBonus;
Code: Select all
function listPlayers() //assigns each pawn a unique ID
{
local Pawn P;
local int pnum;
pnum = 0;
for(P = Level.Pawnlist; P != None; P = P.Nextpawn)
{
player[pnum] = P; //.playerreplicationinfo.playername;
pnum++;
}
}
Hint from log:
Code: Select all
ScriptWarning: WSRabbit DM-[BBST]-Thailand-Rmx.WSRabbit0 (Function Animal_PACK1.WSRabbit.Evade.PickDestination:000D) Accessed None
Map has some "decoration" pawns - of course with codes copied from stock which are sh!tty if you look at internal state and function. By any matter, at these pawns we cannot speak about "//.playerreplicationinfo.playername;" and then we don't have anything but we can even move over a 32 elements array. Can we have revenge messages ? Maybe not, as long as we drop variables to nowhere... out of array, yeah... array, array.
What's the deal ?
#1 We can discard any crow, bird, rabbit, crappit, stupidizour, fartizant, pig, elephant and so on by not allowing non-players in stage and reducing design originality - server setup
#2 We can wrap code - even if we don't have a MonsterHunt, Coop here, we won't have a pain in butt guaranteed if we are using some checker
Code: Select all
function listPlayers() //assigns each pawn a unique ID
{
local Pawn P;
local int pnum;
pnum = 0;
for(P = Level.Pawnlist; P != None; P = P.Nextpawn)
{
if ( P.PlayerReplicationInfo != None && P.bIsPlayer && !P.IsA('Spectator') ) //or such
{
player[pnum] = P; //.playerreplicationinfo.playername;
pnum++;
}
}
}