PDA

View Full Version : Stats Questions


wildwillie
11-16-2011, 02:25 AM
I've gotten a good part of the stats stuff done.

It now keeps tracks of Players and what they accomplish:

Shotdown of planes, Destroy ground Objects, damage other planes/ground Objects.

The questions I have is how should these be scored ?

In IL2 you got 100 pts/per engine for an aircraft shotdown.
30 pts for destroying a ground car, 60 pts for a tank, etc

And if you died you only got 10% of those points. If you bailed out you got 20 or 50% of those points.

I do not see Clod or Steam tracking points so the question is should we keep the same point scheme as IL2 ?


Question 2 -

How to tabulate who wins a mission ?

In FBDj/IL2 you had mission objectives either target based (x% of targets destroyed in a target circle), count based (xx number of tanks/cars/ships destroyed), pilot/planes counts or a combination of all of the above.

With Clod you can now add objectives within a mission and use triggers to see if the objective has been met. (I've not done this, but that is how I understand it)

for this new program should it be based on the mission triggers or the old way it was done in FBDj ?

RAF238thWildWillie

ATAG_Bliss
11-16-2011, 04:00 AM
Hi willie,

Thanks soo much for getting something like this for IL2COD.

As for the answers to your questions, I would keep it exactly like the old game 100 pts 1 engine / 400 pts 4 engine etc.,etc.,. and the same for the mission objectives. Granted while you can do anything you want within the scripting portion of the game, it would be much handier to have a program simplify what exact objects/objectives are set for a mission with a mouse click instead of having to program lines of code for a similar result.

Will this work similar to the current FBDj in regards to being able to use commands such as <gunstats ; <obj<red etc., with the IL2COD interface?

And finally, when will all of us be able to test this? :)

Thanks again for the hard work!

phoenix1963
11-16-2011, 07:14 AM
Willie - It's great to see you doing this!
May I suggest you keep a similar points system, but rather than target circles, if you can keep a list of the target objects for each objective then set a points threshold for each objective (low, because 20-30% kills on any unit is enough to destroy morale and set them into retreat) for success.

You'd also be able to keep track of moving or flying objectives that way.

56RAF_phoenix

I've gotten a good part of the stats stuff done.

It now keeps tracks of Players and what they accomplish:

Shotdown of planes, Destroy ground Objects, damage other planes/ground Objects.

The questions I have is how should these be scored ?

In IL2 you got 100 pts/per engine for an aircraft shotdown.
30 pts for destroying a ground car, 60 pts for a tank, etc

And if you died you only got 10% of those points. If you bailed out you got 20 or 50% of those points.

I do not see Clod or Steam tracking points so the question is should we keep the same point scheme as IL2 ?


Question 2 -

How to tabulate who wins a mission ?

In FBDj/IL2 you had mission objectives either target based (x% of targets destroyed in a target circle), count based (xx number of tanks/cars/ships destroyed), pilot/planes counts or a combination of all of the above.

With Clod you can now add objectives within a mission and use triggers to see if the objective has been met. (I've not done this, but that is how I understand it)

for this new program should it be based on the mission triggers or the old way it was done in FBDj ?

RAF238thWildWillie

SNAFU
11-16-2011, 08:34 AM
Hi WildWillie,

I would be great if it would be possible to modify the points for the playerscore depending on the type of target, so have access to the variables, so you can fine-tune the scoring system depending on the scenario and we do not know what is to come in the next 10 years. For the mission objective, we already have the triggers needed, they only need to work correctly, so I would recomment to define certain trigger-names that would need to be set in the mission design (FMB) and would also be recognized by your system, f.e. I used to define triggers "ScoreRedXY" and "ScoreBlueZ" in which YX and Z are integers, which add to the total teams score with the trigger being activated. If ScoreRed >= A the Red Team has won if ScoreBlue >= B the Blue team has won.

Anyhow, you might face some problems with the trigger based on "GROUND UNITS DESTROYED", because static units are not easily to count with the script (AFAIK) and ships are not regarded as ground units in the FMB. Furthermoe the trigger "TPASS" with actor "PLAYER" does not work in the dedicated enviroment and many more anomalie between singleplayer and dedicated server enviroment.

Ataros
11-16-2011, 09:36 AM
Thank you for what you do!

Old Il-2 had an issue of kill stealing when the last who shot at an aircraft was credited a kill. The new CloD stat system is better because it allocates score proportionally to damage made which solves the stealing issue.

However as far as I understand there is an issue on the servers running AI removal scripts. When a script removes a slightly damaged plane hit by 1 bullet and safely landed at a friendly airfield it is considered as destroyed by the scoring system and a kill is allocated to the damager.

Pilot kill should have more weight in damage score imho as it is now. 40 to 50% of a kill should be added to attacker who made PK even if the plane was 60-80% damaged by other players. E.g. while unskilled pilots are wasting ammo on a He-111 a skilled pilot can make one pass and kill pilot that stops the bomber from hitting target.

wildwillie
11-16-2011, 01:15 PM
This will be an ongoing process and will take more than just my simple testing to work out all the details.

Right now I am using the OnActorDead method to determine kills. I'm hoping the damageScore.score will provide the appropriate allocation for the kill to each damage initiator. Since it has been just me doing all the killing during testing it will probably need some adjusting.

Also the OnAircraftCrashLanded method never seems to trigger. A few times when I have belly landed or wrecked my plane on landing it only triggers the OnAircraftLanded method.


The .mis file holds all the static objects which are easily tracked during a mission.

I will need some help with the Trigger stuff too.


As far as testing goes, I plan to have something ready the 1st week of December. I'm off for a week of hunting after Thanksgiving so nothing will get done then.

RAF238thWildWillie

SNAFU
11-16-2011, 02:09 PM
Did you manage to recognize static units with OnActorDead, that would be interesting. So far we only accounted for AI units with OnActorDead.

I also had problems with OnCrashLanded-Events but maybe you try landing in water, this is the only way I could reproduce a crash landing.

This is our scoring system (Kodiaks design and my interpretation ;) ) so far, maybe you find it usefull, but is uncommented


Dictionary<string, int> LWAvailableAirplanes = new Dictionary<string, int>()
{
//Internaltypename, Startcount
{"bob:Aircraft.Bf-109E-3",60},
{"bob:Aircraft.Bf-109E-3B",24},
{"bob:Aircraft.Bf-109E-1",40},
{"bob:Aircraft.Bf-109E-4",50},
{"bob:Aircraft.Bf-109E-4B",24},
{"bob:Aircraft.Bf-110C-4",24},
{"bob:Aircraft.Bf-110C-7",24},
{"bob:Aircraft.Ju-87B-2",60},
{"bob:Aircraft.Ju-88A-1",40},
{"bob:Aircraft.He-111H-2",60},
{"bob:Aircraft.He-111P-2",20},
};
Dictionary<string, int> RAFAvailableAirplanes = new Dictionary<string, int>()
{
//Internaltypename, Startcount
{"bob:Aircraft.SpitfireMkIa",30},
{"bob:Aircraft.SpitfireMkI",60},
{"bob:Aircraft.HurricaneMkI",50},
{"bob:Aircraft.HurricaneMkI_dH5-20",50},
{"bob:Aircraft.BlenheimMkIV",40},
{"bob:Aircraft.SpitfireMkIIa",0},
};


Dictionary<AiGroundActorType,int> PointsforGroundTargets = new Dictionary<AiGroundActorType,int>()
{
{AiGroundActorType.AAGun, 2},
{AiGroundActorType.AmmoComposition, 2},
{AiGroundActorType.Amphibian, 2},
{AiGroundActorType.ArmoredCar, 2},
{AiGroundActorType.Artillery, 2},
{AiGroundActorType.Balloon, 2},
{AiGroundActorType.Bridge, 2},
{AiGroundActorType.Bus, 2},
{AiGroundActorType.Car, 2},
{AiGroundActorType.ContainerLong, 2},
{AiGroundActorType.ContainerShort, 2},
{AiGroundActorType.EngineWagon, 2},
{AiGroundActorType.FreightWagon, 2},
{AiGroundActorType.Generator, 2},
{AiGroundActorType.House, 2},
{AiGroundActorType.LightTruck, 2},
{AiGroundActorType.Listener, 2},
{AiGroundActorType.Medic, 2},
{AiGroundActorType.Motorcycle, 2},
{AiGroundActorType.PassengerWagon, 2},
{AiGroundActorType.Plane, 2},
{AiGroundActorType.Predictor, 2},
{AiGroundActorType.Radar, 2},
{AiGroundActorType.RadioBeacon, 2},
{AiGroundActorType.RadioBeamProjector, 2},
{AiGroundActorType.SPG, 2},
{AiGroundActorType.Tank, 2},
{AiGroundActorType.Tractor, 2},
{AiGroundActorType.Trailer, 2},
{AiGroundActorType.Truck, 2},
//Schiffe
//{AiGroundActorType.ShipBattleship, 1},
//{AiGroundActorType.ShipCarrier, 1},
//{AiGroundActorType.ShipCruiser, 1},
//{AiGroundActorType.ShipSubmarine, 1},
{AiGroundActorType.ShipTransport, 25},
{AiGroundActorType.ShipMisc,2},

{AiGroundActorType.ShipDestroyer,50},
{AiGroundActorType.ShipSmallWarship, 50},

{AiGroundActorType.Unknown, 2}

};

Dictionary<string, int> PointsforAirTargets = new Dictionary<string, int>()
{
{"DiveBomber", 3},
{"Bomber", 3},
{"Bomber, DiveBomber",3},
{"AmphibiousPlane", 3},
{"TorpedoBomber", 3},
{"Transport", 3},
{"BNZFighter",1},
{"Fighter",1},
{"Glider",1},
{"HeavyFighter",2},
{"JaBo",1},
{"SailPlane",1},
{"Scout",1},
{"Sturmovik",1},
{"TNBFighter",1},
{"UNKNOWN",1}
};

public override void OnActorDead(int missionNumber, string shortName, AiActor actor, List<DamagerScore> damages)
{
base.OnActorDead(missionNumber, shortName, actor, damages);


if ((actor as AiGroundActor) != null && damages[0].initiator.Player != null)
GamePlay.gpLogServer(null, "{0} was destroyed by {1}", new object[] { (actor as AiCart).InternalTypeName().Substring(4), (damages[0].initiator.Player.Name()) });

foreach (DamagerScore ds in damages)
{
int Addpoints = 0;
int value;
bool willReportDead = false;
string TargetName = "";

if (ds.initiator != null)
{
if (ds.initiator.Actor != null)
{
if (actor.Army() != ds.initiator.Actor.Army())
{
if (actor is AiPerson) break; // At moment Pilotkills are not counted ;)

if (actor is AiAircraft)
{

if (PointsforAirTargets.TryGetValue((actor as AiAircraft).Type().ToString(), out value)) // Erstetzt wegen Stukaproblem
Addpoints = PointsforAirTargets[(actor as AiAircraft).Type().ToString()];

TargetName = SplitName((actor as AiAircraft).InternalTypeName());

value = 0;
if (actor.Army() == ArmyRed)
{
BlueAirKills++;
if (RAFAvailableAirplanes.TryGetValue((actor as AiAircraft).InternalTypeName(), out value))
{
RAFAvailableAirplanes[(actor as AiAircraft).InternalTypeName()] = value - 1;
TargetName += " (" + RAFAvailableAirplanes[(actor as AiAircraft).InternalTypeName()].ToString() + " available)"; // Shows Counter for Planetype
}
}

else if (actor.Army() == ArmyBlue)
{
RedAirKills++;
if (LWAvailableAirplanes.TryGetValue((actor as AiAircraft).InternalTypeName(), out value))
{
LWAvailableAirplanes[(actor as AiAircraft).InternalTypeName()] = value - 1;
TargetName += " (" + LWAvailableAirplanes[(actor as AiAircraft).InternalTypeName()].ToString() + " available)"; // Shows Counter for Planetype
}

}
}

if (actor is AiGroundActor)
{
if (PointsforGroundTargets.TryGetValue((actor as AiGroundActor).Type(), out value))
Addpoints = PointsforGroundTargets[(actor as AiGroundActor).Type()];

TargetName = SplitName((actor as AiGroundActor).InternalTypeName());
}


willReportDead = true;

if (ds.initiator.Actor.Army() == ArmyBlue)
{
BlueGrdKills++;
ScoreBlue += Addpoints;
if (Addpoints <=0)
{ScoreBlue += 3;}
GamePlay.gpLogServer(null, "Britisch {0} destroyed - Team scores now: RAF {1}- LW {2}", new object[] { TargetName, ScoreRed, ScoreBlue });
break;
}
else if (ds.initiator.Actor.Army() == ArmyRed)
{
RedGrdKills++;
ScoreRed += Addpoints;
if (Addpoints <=0)
{ScoreRed += 3;}
GamePlay.gpLogServer(null, "German {0} destroyed - Team scores now: RAF {1}- LW {2}", new object[] { TargetName, ScoreRed, ScoreBlue });
break;
}
}
}
}
}
}

SNAFU
11-16-2011, 02:15 PM
This was our solution for scores for triggered events. If the blue team should receive for example 50 points for a mission goal, I named the trigger "ScoreBlue50" and the following On Trigger Method added 50 points to the int ScoreBlue:



public override void OnTrigger(int missionNumber, string shortName, bool active)
{
base.OnTrigger(missionNumber, shortName, active);

if (shortName.StartsWith("ScoreRed"))
{
StringBuilder b = new StringBuilder(shortName);
string Number = b.Replace("ScoreRed", "").ToString();
int Redresult = 0;

if (int.TryParse(Number, out Redresult))
ScoreRed += Redresult;

GamePlay.gpLogServer(null, "The RAF succesfully accomplished one objective: \nTeam scores - RAF {0}: LW {1}", new object[] {ScoreRed, ScoreBlue });
}
if (shortName.StartsWith("ScoreBlue"))
{
StringBuilder b = new StringBuilder(shortName);
string Number = b.Replace("ScoreBlue", "").ToString();
int Blueresult = 0;

if (int.TryParse(Number, out Blueresult))
ScoreBlue += Blueresult;

GamePlay.gpLogServer(null, "The LW succesfully accomplished one objective: \nTeam scores - RAF {0}: LW {1}", new object[] {ScoreRed, ScoreBlue });
}
}

wildwillie
11-16-2011, 02:23 PM
Yes the OnActorDead method picks up Static objects. Here is the line I pass from Clod to my program which identifies the Dead Ground Actor:

( 11/15/2011 4:01:27 PM ) New (STATS): DeadGA::1321390887075::0:Static24::1::bob:Artiller y.3_inch_20_CWT_QF_Mk_I::AAGun::0:Static34::2::272 406.84/200908.39

The "::" divides the data parts so it passes:
Event Type (DeadGA)
TimeStamp (In unix format)
Object Destroyed Name (0:Static24)
Object Destroyed Army (1)
Object Destroyed Model (The InternalTypedName )
Object Destroyed Type (AAGUN)
Destroyer (Who killed the object 0:Static34)
Destroyer Army (2)
Location of destroyed object (x/y)

The same goes for Chiefs and Planes. It still needs to be updated with the damage score value.

Thanks for the input. I think I will populate the objects in a database with their total available score there. That way it would be easier for Server Managers to adjust scoring without having to adjust code.

I've only crash landed on land. If I kill myself while doing this then the OnActorDead method gets called after about a million OnAircraftDamaged methods !


WildWillie

SNAFU
11-16-2011, 02:30 PM
Ok, interesting. :cool:

With static I meant "enviroment" types like static cars, tanks, planes in listed "Enviroment". Artillery-types are recognized, that`s why I had to rebuilt in all my missions the ground units to artillery types and that`s why I asked. Looking forward for your tool! ;)

wildwillie
11-16-2011, 03:37 PM
SNAFU -

What do you mean by Environment types ?

Unfortunatly I'm not that versed in the FMB stuff. I thought any static planes, trucks, tanks, etc added to a mission were listed under the [Stationary] section of the .mis file.

AI objects are listed under the [Chief] sections.

Other building objects are under [Buildings] which would be great if we had a way to identify those being destroyed. That was always a problem with IL2 is you can create a factory complex, but had to place cars/static objects inside to register when they were destroyed.

Can you post an example of a .mis file with the environment types ?

Wildwillie

SNAFU
11-16-2011, 05:05 PM
With "Enviromental" Types I mean all objects listed in FMB under "Enviroment" (?not sure if thats is the right designation in the english installation, I have the german one installed). For excample this object:

Static274 Stationary.Bf-109E-1 de 280631.88 212409.64 3665.00
or this
Static278 Stationary.Renault_UE_Track_CargoSet2 gb 245508.16 233959.69 -120.00

Is not recognized with OnActorDestroyed of course, because it is no actor. Artillery-Objects in FMB as:

Static258 Artillery.Bofors_StandAlone gb 88914.33 195537.75 75.00 /timeout 0/radius_hide 0

are Actors and are therefore recognized - that was what I tried to say. ;)

wildwillie
11-16-2011, 06:29 PM
They must be another form of Actor that we have not identified yet.

Right now I know of 2 types of Actors

Actor as AiAircraft
Actor as AiGroundActor

There must be others or else I would not be receiving the "Not Destroyed" errors after loading a new mission.

I think another one is something like AiHuman, but not positive. (Saw some errors in the console that leads me to believe that. Unfortunatly the file was deleted before I could process it)

NOT Destroyed actor: e40nRumWubHfA3gPCiI.h7LahLmVcZuiZk94t4i

WildWillie

ATAG_Bliss
11-16-2011, 09:40 PM
They must be another form of Actor that we have not identified yet.

Right now I know of 2 types of Actors

Actor as AiAircraft
Actor as AiGroundActor

There must be others or else I would not be receiving the "Not Destroyed" errors after loading a new mission.

I think another one is something like AiHuman, but not positive. (Saw some errors in the console that leads me to believe that. Unfortunatly the file was deleted before I could process it)

NOT Destroyed actor: e40nRumWubHfA3gPCiI.h7LahLmVcZuiZk94t4i

WildWillie

Ataros will have to chime in here, but I thought someone on the Russian forums had admitted that some of the destroy components (or components to get rid of all types of objects) simply haven't been added yet - as if it's missing.

Ataros
11-17-2011, 10:53 AM
I think NOT Destroyed actor is some sort of a bug. I do not know what kind of objects are causing it.

It is not possible to track any Static objects besides artillery yet. (It was not possible for artillery several months ago either.) Probably this is made to reduce hardware load but will be changed in the future. Till then we have to use objects other then Statics if we want remove them or track by stats. Statics can be used for decoration only which is their initial purpose in the game I think.

salmo
11-18-2011, 06:02 AM
The questions I have is how should these be scored ? In IL2 you got 100 pts/per engine for an aircraft shotdown. 30 pts for destroying a ground car, 60 pts for a tank, etc And if you died you only got 10% of those points. If you bailed out you got 20 or 50% of those points. I do not see Clod or Steam tracking points so the question is should we keep the same point scheme as IL2 ?

G'day Willie, I'd go with a custom points file (perhaps csv or txt). This would allow easier expansion into the future as more COD objects are developed. I'm happy to start with an IL2-like points system. Point scoring will no doubt be a feature that develops over time.

How to tabulate who wins a mission ?
This is a tough one, as not al the features of COD are yet turned on or mature enough to be error-free. Triggers might be the way to go initially, but hey, what would I know.

CaptainDoggles
11-18-2011, 07:11 AM
I think NOT Destroyed actor is some sort of a bug. I do not know what kind of objects are causing it.

It is not possible to track any Static objects besides artillery yet. (It was not possible for artillery several months ago either.) Probably this is made to reduce hardware load but will be changed in the future. Till then we have to use objects other then Statics if we want remove them or track by stats. Statics can be used for decoration only which is their initial purpose in the game I think.

We should be able to do it similar to 1946 where we put trucks inside factories, so the bomber pilot gets points for the trucks when the factory explodes.

Ataros
11-18-2011, 01:52 PM
We should be able to do it similar to 1946 where we put trucks inside factories, so the bomber pilot gets points for the trucks when the factory explodes.

I think it can be done with AT guns now.

ps. Anyway it is possible to place them outside at corners of the buildings.

wildwillie
11-18-2011, 11:48 PM
OK I've done some more testing and you guys are correct.

Most of the objects cannot be tracked in stats yet because they do not trigger the OnActorDead/OnActorDamaged methods. That really puts a damper on objective based missions unless it is shipping based.

Also only adding Artillery to buildings will you get anything about them being destroyed.

Do we know with what patch the other ground objects will be fully functional.

I would like to have all Stationary objects be able to report as dead when destoryed by another objects.

Next is clearing up the Not Actor Destroyed errors when loading a new mission.

RAF238thWildWillie

Ataros
11-19-2011, 07:20 AM
There are ground objects other than artillery that can be tracked like tanks, cars and other non-static objects. The purpose of static objects is to reduce processor load. That is why no complex code is associated with them I think.

If performance is not an issue and we want to track the objects we can use non-static objects instead in our missions. It is a mission-maker preference I think.

The devs are aware that we need to track statics in stat somehow.

wildwillie
11-19-2011, 10:02 AM
I'll take a look at switching a quick map between cheesehawk. I would think after a while it would tax the memory if those object stay around. I've tried saving a list of objects created then make sure they are destroyed at battle stop but it does not help.


Ataros - As you mentioned, Statics use less load on the system then Cheifs. But tracking when they are destroyed is critical for objective based missions. On those style of missions when you create a storage depot, or a factory complex that are bombing targets it is the only way to know if those targets are destoryed.

Also it does not look good when you setup a static Aircraft at a airport , shoot it up and it never looks damaged.

WildWillie

Ataros
11-19-2011, 02:14 PM
Also it does not look good when you setup a static Aircraft at a airport , shoot it up and it never looks damaged.



It is possible to use non-static aircraft put on idle if performance is not an issue.

I do hope statics have a bit more functionality in the future though. Had a lot of talks about it at sukhoi.ru starting from March-April.

wildwillie
11-21-2011, 09:22 PM
Another quick question.

Does anyone know what the damagescore value equates too when the OnActorDead method is called.

You loop through the DamageScores which gives you a list of AI/Players who damaged the Actor and a score.

I was shotdown while flying a ju88 yesterday and the values I had were:

( 11/20/2011 5:10:11 PM ) EventController.deadAC - Victim (3:BoB_LW_KuFlGr_706.000) Shotdown by (RAF238thWildWillie) Score (0.7)
( 11/20/2011 5:10:11 PM ) EventController.deadAC - Victim (3:BoB_LW_KuFlGr_706.000) Shotdown by (56RAF_klem) Score (28.1999999999999)
( 11/20/2011 5:10:11 PM ) EventController.deadAC - Victim (3:BoB_LW_KuFlGr_706.000) Shotdown by (56RAF_Dutch) Score (16.7)
( 11/20/2011 5:10:11 PM ) EventController.deadAC - Victim (3:BoB_LW_KuFlGr_706.000) Shotdown by (56RAF_Witch) Score (68.6000000000004)
( 11/20/2011 5:10:11 PM ) EventController.deadAC - Victim (3:BoB_LW_KuFlGr_706.000) Shotdown by (56RAF_Rumba) Score (34.9)
( 11/20/2011 5:10:11 PM ) EventController.deadAC - Victim (3:BoB_LW_KuFlGr_706.000) Shotdown by (56RAF_Talisman) Score (7.9)
As you can see, several people including myself inflicted damage upon the Airplane causing it to be shotdown.

I am assuming that each player (not including me) would equally share the kill, but points would be assigned based on their damage score value (The higher the score value, the more points you get)

So in the above example, the total score points for all players not including me would be 154.3. With the Ju88 having a total of 200 points available, the points would be given as:

Klem (26.2 / 154.3) = .17 * 200 = 34pts
Dutch (16.7 / 154.3) = .11 * 200 = 22pts
Witch (68.6 / 154.3) = .44 * 200 = 88pts
Rumba (34.9 / 154.3) = .23 * 200 = 46pts
Talisman (7.9 / 154.3) = .05 * 200 = 10pts

Does this sound about right ?

RAF238thWildWillie

Ataros
11-21-2011, 11:28 PM
Please do not give all the points to one person. This will cause kill stilling, e.g. attacking bombers which are slightly damaged but will fall down anyway. If initial damager did some small damage he/she must get some points in proportion to damage (maybe he killed the tail gunner but was also killed).

FG28_Kodiak
11-22-2011, 04:00 AM
In my stats i divide the kill. But not more than 4 players (wich do the most damage).
4 Players every gets 1/4.
3 Players 1/3.
2 Players 1/2.
And in the stats i have two sections.
kills
and
shared Kills:
1/2:
1/3:
1/4:

salmo
11-22-2011, 05:27 AM
Points: I'd be happy with allocating the points for for a kill based on the damage percentage.

Kills: I think Kodiak's idea is a good one. Allocate a kill to no more than 4 players (or AI), so the maximum a player can get in 1 kil; and the minumum is 1/4 of a kill.

wildwillie
11-22-2011, 10:27 AM
I like Kodiak's idea for allocating the Kill. No more than 4 players share in the kill. If more than 4 damaged the Actor then only the top 4 will get the allocation of kill (from .25 - 1.0)

The points will be allocated based on the damage score and allocated between the top 4 as well. This will not be an even distributiion, but weighted based on the damage score.

Thanks for the input everyone,



WildWillie

Ataros
11-22-2011, 12:00 PM
Sorry I still think it is better to allocate kill percentage in proportion to damage percentage. For instance I down a plane but while it is going down a 2nd player would accidentally put 1 bullet into it. Why should I loose 50% of the kill? Again this would motivate kill stealing.

If damage percentage is known it is easy and fair to distribute score only proportionally to it.

wildwillie
11-22-2011, 02:04 PM
Good pont Ataros. I will consider this some more. Your second post helped clearify your thought.
WildWillie

Ataros
11-23-2011, 09:28 AM
Another idea which was good in original IL-2 is awarding full score only if a damager landed safely. One of the most difficult tasks on realistic servers is to encourage realistically safe flying. It is only possible if pilots value their virtual life more than their score.

I suggest to include a server side option to count kills only if damager landed safely at a friendly airfield. Maybe add only 10% of score if ditched safely at a friendly territory and 5-7% if bailed out over friendly territory.

Ataros
11-23-2011, 09:31 AM
It's amazing what kill stealers the AA gunners are!

Maybe it is worth to exclude all AI from the list of damagers which get score percentage?

FG28_Kodiak
11-24-2011, 04:19 AM
Easy solution a player gets only credits if he damaged >20% (or higher) of the plane.

Ataros
11-24-2011, 06:11 AM
That would result in inflated damage results to players, say you really damaged a plane 5%, and AA shot him in the face, causing 95%, would you give the player full credit?

I do not think it is a very bad thing. Players compete with players, not the AI. Can be a server side setting too if possible.

Easy solution a player gets only credits if he damaged >20% (or higher) of the plane.

If I damage 10 bombers with 10% damage done to each to make them drop bombs before target I deserve 10*10% = 1 kill imho. Or in case 5 of them go down on the way back and I am the only damager, 5*100% + (10-5)*10% = 5.5 kills.