|
AlliedModders Donor
Join Date: Jan 2021
Location: dcord:Jeremy333#7632
|
03-14-2021
, 15:03
Re: [L4D2]How to calcuate average player data
|
#2
|
Hi,
I use this in vscript
// Obtenga el número real de personas con Client_Count//获取实际人数
local clientcount =0;
local survivorcount=0;
nowPlayersIntensity=0;
nowPlayersTimeAveragedIntensity=0;
foreach( survivor in ::VSLib.EasyLogic.Players.Survivors() )
{
survivorcount++
nowPlayersIntensity=nowPlayersIntensity+survi vor.GetIntensity()
nowPlayersTimeAveragedIntensity=nowPlayersTim eAveragedIntensity+survivor.GetTimeAveragedIn tensity()
if(survivor.IsBot())
continue;
KillNum.insert(clientcount++,survivor.GetInde x());
if(!PlayerKillCout.rawin(survivor.GetIndex()) )
{
PlayerKillCout[survivor.GetIndex()] <- 0;
PlayerRandCout[survivor.GetIndex()] <- RandomInt(0,9);
}
}
This would be in sourcepawn
int currentAverage = 0;
int max_index = 0;
int survivorCount=0;
for (int i = 1; i < MaxClients+1; i++)
{
if(IsClientInGame(i))
{
if (GetClientTeam(i) == TEAM_SURVIVORS && IsPlayerAlive(i))//IsFakeClient=bot//solo contamos intensidad de vivos y bots
{
PlayerIntensity[max_index] = GetEntProp(i, Prop_Send, "m_clientIntensity" );
PlayerTotalIntensity[max_index] += PlayerIntensity[max_index];
currentAverage += PlayerIntensity[max_index];
PlayerTick[max_index]++;
PrintToServer("\x04[balance] \x01player %N %d intensity: current %d",i,max_index,PlayerIntensity[max_index]);
PrintToServer("\x04[balance] \x01player %N %d intensity/tick %d,total intensity/ticks %d",i,max_index,PlayerIntensity[max_index] / PlayerTick[max_index],PlayerTotalIntensity[max_index] / PlayerTick[max_index]);
}
else
{
PlayerTick[max_index]++;
}
}
else PlayerIntensity[max_index] = 0;//0 until enter a team
max_index++;
}
|
|
|
|