|
|
|
|
teams ausgleichen bei 2 man mehr (standard 1) hatte ich eingestellt, weil es durchaus mal vorkommt, dass ein team auch in unterzahl klar besser ist und diese teamangleichung dann ziemlich blöd ist. an manchen tagen sind halt sauviele nabs unterweges. da rasseln plötzlich die billigsten achievements reihenweise im chat runter und man denkt: "ah, das erklärt einiges /o\".
scramble teams + restart hat ja gestern auf hydro super funktioniert. plötzlich war die runde nicht nach paar sekunden vorbei sondern ging bis SD. ach ja, demo only war blöd. muss ich noch fixen.
übrigens ist cp_conjunction schon ne weil druff und noch kein einziges mal gezockt worden
castle und warpath sind beide gut. mach4 ist nicht im cycle, sondern startet, wenn der server leer ist, weil die auch zu 4 noch spielbar ist.
matheprofis können sich gedanken um eine tf2 skillcalculation machen, da das mit der neuen ps3 version machbar ist.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von langzeitstudent am 10.02.2008 11:53]
|
|
|
|
|
|
| Zitat von langzeitstudent
skillcalculation
| | Wenn ich dann nicht erster bin stimmt etwas nicht.
|
|
|
|
|
|
|
Dann sag doch mal, was man zur Verfügung hat um das zu berechnen. Werden nur Kills gezählt oder auch Assists und Captures usw.
|
|
|
|
|
|
|
Die AFKler gehen auch hart auf den Sack. Können die Teams zahlenmässig noch so ausgeglichen sein wenn 3 Leute im Spawn stehen und nix machen.
|
|
|
|
|
|
|
Diesbezüglich, wer ist denn mittlerweise Admin auf dem Kantholz?
|
|
|
|
|
|
|
Ich sollte TF2 mal wieder installen.
Wird hier oft zusammen gezockt?
|
|
|
|
|
|
|
| Zitat von Force Commander
Diesbezüglich, wer ist denn mittlerweise Admin auf dem Kantholz?
| |
im chat @menu eingeben und jeder kann ban oder kickvote eingeben, wenn kein admin (ich+sinister) auf dem server ist.
@sinister
du hast über @menu paar befehle mehr. ist eigentlich einfach zu verstehen
|
|
|
|
|
|
|
| Zitat von Redh3ad
Dann sag doch mal, was man zur Verfügung hat um das zu berechnen. Werden nur Kills gezählt oder auch Assists und Captures usw.
| |
puh, ich habs mir mal angeguckt. perlkenntnisse sind da auch pflicht. ps3 ist wohl noch ziemlch weit weg von vernünftigen tf2 stats. hlstatsx wär eine feine sache. wenn man das von märz bis dezember buchen würde, wären das 50¤ geteilt durch?
|
|
|
|
|
|
|
Ach was, wir werden doch bestimmt jemanden hier haben, der sich mit Perl auskennt. Poste as Zeug doch einfach mal, dann sehen wir weiter.
Das man jetzt sieht ob man auf oder abgestiegen ist finde ich auch praktisch, bin zwar abgestiegen, aber Skillpunkte sind mehr geworden.
Und Auf meine 5 Awards für die meisten Selbstmorde bin ich besonders stolz
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Redh3ad am 10.02.2008 13:58]
|
|
|
|
|
|
das standard script, was auf ELO http://de.wikipedia.org/wiki/Elo-Zahl basiert
- baseskill ist 50
- bonus gibts zb für captureblocked und ist von den punkten her änderbar.
- weight ist ein wert, den man waffen vergeben kann
Standard
|
Code: |
sub calcskill_kill_default {
my ($self,$k,$v,$w) = @_;
my $kskill = $k->skill || $self->{baseskill};
my $vskill = $v->skill || $self->{baseskill};
my $diff = $kskill - $vskill; # difference in skill
my $prob = 1 / ( 1 + 10 ** ($diff / $self->{baseskill}) ); # find probability of kill
my $kadj = $self->{_adj}->[-1] || 100;
my $vadj = $self->{_adj}->[-1] || 100;
my $kmins = int $k->totaltime / 60;
my $vmins = int $v->totaltime / 60;
my $idx = 0;
foreach my $level (@{$self->{_adj_onlinetime}}) {
if ($kmins >= $level) {
$kadj = $self->{_adj}->[$idx];
# print "level: " . ("\t" x $idx+1) . "$level\n";
last;
}
$idx++;
}
$idx = 0;
foreach my $level (@{$self->{_adj_onlinetime}}) {
if ($vmins >= $level) {
$vadj = $self->{_adj}->[$idx];
# print "level: " . ("\t" x $idx+1) . "$level\n";
last;
}
$idx++;
}
my $kbonus = $kadj * $prob;
my $vbonus = $vadj * $prob;
my $weight = $w->weight;
if (defined $weight and $weight != 0.0 and $weight != 1.0) {
$kbonus *= $weight;
$vbonus *= $weight;
}
$kskill += $kbonus;
$vskill -= $vbonus;
$k->skill($kskill);
$v->skill($vskill);
}
sub calcskill_kill_default_init {
my ($self) = @_;
# initialize the adjustment levels for the ELO calculations
$self->{_adj_onlinetime} = [];
$self->{_adj} = [];
foreach my $key (sort grep { /^kill_onlinetime_\d+$/ } keys %{$self->{skillcalc}}) {
my $num = ($key =~ /(\d+)$/)[0];
my $adjkey = "kill_adj_$num";
next unless exists $self->{skillcalc}{$adjkey}; # only allow matching adjustments
push(@{$self->{_adj}}, $self->{skillcalc}{$adjkey});
push(@{$self->{_adj_onlinetime}}, $self->{skillcalc}{$key});
}
}
|
|
Alternative
|
Code: |
sub calcskill_kill_alternative {
my ($self,$k,$v,$w) = @_;
my ($kbonus, $vbonus);
my $kskill = $k->skill || $self->{baseskill};
my $vskill = $v->skill || $self->{baseskill};
# don't allow player skill to go negative ...
$kskill = 1 if $kskill < 1;
$vskill = 1 if $vskill < 1;
if ($kskill > $vskill) {
# killer is better than the victim
$kbonus = ($kskill + $vskill)**2 / $kskill**2;
$vbonus = $kbonus * $vskill / ($vskill + $kskill);
} else {
# the victim is better than the killer
$kbonus = ($vskill + $kskill)**2 / $vskill**2 * $vskill / $kskill;
$vbonus = $kbonus * ($vskill + $self->{baseskill}) / ($vskill + $kskill);
}
# do not allow the victim to lose more than X points
$vbonus = 10 if $vbonus > 10;
$vbonus = $vskill if $vbonus > $vskill;
$kbonus = $kskill if $kbonus > $kskill;
# apply weapon weight to skill bonuses
my $weight = $w->weight;
if ($weight) {
$kbonus *= $weight;
$vbonus *= $weight;
}
$kskill += $kbonus;
$vskill -= $vbonus;
$k->skill($kskill);
$v->skill($vskill);
}
|
|
Beispiel mit Kommentaren
|
Code: |
# This is an example of how to create a skill calculation formula.
# Follow the comments below for details.
#
# NOTE:
# calcskill_kill_NAME function is called for EVERY KILL EVENT.
# calcskill_kill_NAME_init function is called once before any logs are processed.
# The name of the subroutine below should be the same as the filename w/o the ".pl" extension.
# The filename must always have the format of "calcskill_kill_BASENAME" where BASENAME is
# the unique name of the calculation, which is what is used as the configuration option.
sub calcskill_kill_example {
# $self is a reference to the current PS::Game object.
# $killer and $victim are references to PS::Player objects.
# $weapon is a reference to a PS::Weapon object that was used to kill the victim.
my ($self,$killer,$victim,$weapon) = @_;
# always make sure the skill values default to the base value
# if they have no skill to begin with.
my $kskill = $killer->skill || $self->{baseskill};
my $vskill = $victim->skill || $self->{baseskill};
# do some calculations and determine the new values of skill
# this example assigns 0 bonus to each player.
my $vbonus = 0;
my $kbonus = 0;
# add the bonus to the killer
$kskill += $kbonus;
# subtract the bonus from the victim
$vskill -= $vbonus;
# apply the new absolute skill values to the players
$killer->skill($kskill);
$victim->skill($vskill);
# that's it!, all done. Do not return anything from this function.
}
# optional INIT function. You do not need to include an init function
# if you do not need to initialize any variables before logs are processed.
# The name of the init function is calcskill_kill_BASENAME_init
# where BASENAME is the same as the function above.
sub calcskill_kill_example_init {
# $self is a reference to the current PS::Game object.
my ($self) = @_;
}
# Any other code in this file is run from within the PS::Game context
# (eg: $self will reference the PS::Game object). However, it's not
# recommended to include any code outside of the init function. Any extra
# functions defined here are automatically a PS::Game method.
|
|
|
|
|
|
|
|
|
ELO ist ja schonmal gut, was anderes würde auch nicht soviel Sinn machen.
Ich schau mir das heute abend mal an und versuch daraus schlau zu werden. Im Moment hock ich am eee und da ist die Auflösung so gering, dass das gar nicht aufs Display passt
|
|
|
|
|
|
|
Die Funktion ist schon mal interessant... hab zwar hauptsächlich Erfahrungen in PHP aber Perl bin ich grad dabei zu lernen...
Wird denn die calcskill_kill_*-Funktion auch bei Assists aufgerufen? Wenn nicht, dann würde ich das zuerst mal ändern, um auch als Medic Skillpunkte zu bekommen...
Und wie werden Gebäudekills berechnet? Die haben ja schließlich keinen Skill
e: OK, Gebäude werden wohl mit dem Basisskill 50 gewertet, aber ob das so sinnvoll ist? Ein Sentrykill ist ja wohl mehr wert als nen Kill von nem Lowskill-Player
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von BrakerGandalf am 10.02.2008 15:52]
|
|
|
|
|
|
*blitzdings*
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von langzeitstudent am 10.02.2008 16:07]
|
|
|
|
|
|
PS analysiert doch die Logs?! Werden Assists überhaupt mitgeloggt?
|
|
|
|
|
|
|
Von PS gibt es doch auch ein Serverplugin für die Schüsse, Hits etc., ist das nicht installiert? Zumindest steht in den Stats nix davon, oder ist das noch inkompatibel mit TF2?
Ok, doch nicht, das war HLStats. Mich würde dann mal ein Auszug aus den Logs interessieren.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von BrakerGandalf am 10.02.2008 16:49]
|
|
|
|
|
|
| Zitat von Redh3ad
PS analysiert doch die Logs?! Werden Assists überhaupt mitgeloggt?
| |
es wird fast alles mitgelogt. hlstatsx bewertet ja bauen/zappen/assists/block/capture/ubercharge usw. afaik wirklich alles außer heilen.
|
|
|
|
|
|
|
| Zitat von cisco³
Ich sollte TF2 mal wieder installen.
Wird hier oft zusammen gezockt?
| |
Selber Schuld!
|
|
|
|
|
|
|
so, das erste mal tf2 mit dem neuen pc und somit eher richtung höchste als niedrigste einstellungen
preparing to be flashed
|
|
|
|
|
|
|
jetzt bin ich auch wuschig auf einen 16:9, dabei ist mein tft grad mal 1 jahr alt.
|
|
|
|
|
|
|
| Zitat von langzeitstudent
jetzt bin ich auch wuschig auf einen 16:9, dabei ist mein tft grad mal 1 jahr alt.
| |
Nimm' 'nen 16:10er
|
|
|
|
|
|
|
Hab hier 2x22" Samsung Syncmaster 225BW und bin top zufrieden.
|
|
|
|
|
|
|
| Zitat von scrimpy
Auch lustig sind solche leute die nicht kapieren dass man bei 'ner Heavy/Soldier/Pyro/Demo-Medic Combo immer den Medic zuerst ausschalten muss.
| |
Wie oft hab ich das schon gesagt...
Da kommt ein Heavy mit Medic und alle holzen auf dem Heavy drauf. Der Medic freut sich dass der UBER schnell geladen ist und haut den dann rein. Tolle Sache. Und statt zu fliehen schiessen alle weiter auf den Heavy.
Das einzige was dagegen hilft ist den Medic mit Sticky vom Heavy wegzusprengen, so dass das Band reisst.
|
|
|
|
|
|
Thema: Team-Fortress 2 - Thread: the 2nd ( Here I come! ) |