I'm having trouble with the scoreboard when playing a doom level. i added the first bot and its makes the same name then i added the second bot and its worked but not the same user.
and heres my code:
Code: Select all
#library "TEMP"
#include "zcommon.acs"
#define DEATH_PENALTY 100
#define MAX_PLAYERS 32
int score[MAX_PLAYERS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int sorted[MAX_PLAYERS] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32};
script 4 ENTER
{
int addPoints = CheckInventory("ScoreItem2");
if (addPoints > 0)
{
score[PlayerNumber()] += addPoints;
TakeInventory("ScoreItem2", addPoints);
}
SetHudSize(1920, 1080, true);
int y = 595.2;
int best = GetBestPlayerNumber();
for (int i = PlayerCount() - 1; i >= 0; i--)
{
if (i == best)
{
HudMessage(i:(i+1), s:" ", n:i, s:": ", i:score[i]; HUDMSG_PLAIN, 103 + i, CR_GOLD, 9.1, y, 0);
}
else
{
HudMessage(i:(i+1), s:" ", n:i, s:": ", i:score[i]; HUDMSG_PLAIN, 103 + i, CR_GREEN, 9.1, y, 0);
}
y -= 16.0;
}
y -= 3.0;
HudMessage(s:"Points:"; HUDMSG_PLAIN, 102, CR_WHITE, 9.1, y, 0);
Delay(5);
Restart;
}
script 5 DEATH
{
score[PlayerNumber()] -= DEATH_PENALTY;
}
script 6 UNLOADING
{
for (int k = 0; k < PlayerCount(); k++)
{
sorted[k] = k;
}
// good old bubble sort
for (int i = 0; i < PlayerCount() - 1; i++)
{
bool change = false;
for (int j = 0; j < PlayerCount() - 1; j++)
{
if (score[sorted[j]] < score[sorted[j+1]])
{
int x = sorted[j];
sorted[j] = sorted[j+1];
sorted[j+1] = x;
change = true;
}
}
if (!change) break;
}
Print(s:"Final scores");
for (int l = 0; l < PlayerCount(); l++)
{
// at this point, players are no longer in the game, so we can't
// print their real names. So we just print "player" and a number
Print(i:(l+1), s:". player ", i:(sorted[l] + 1), s:": ", i:score[sorted[l]]);
}
}
function int GetBestPlayerNumber(void)
{
int best = 0;
int maxscore = score[0];
for (int i = 1; i < PlayerCount(); i++)
{
if (score[i] > maxscore)
{
best = i;
maxscore = score[i];
}
}
return best;
}
script 123 RESPAWN
{
GiveInventory("TemporaryProtectionGiver",1);
GiveInventory("MegaSphere",1);
}
Doomjoshuaboy