Ein neues Thema erstellen  Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Rationale Zahlen?
BeitragVerfasst: 27.07.2002, 19:54 

Registriert: 08.01.2002, 19:41
Beiträge: 74
Wohnort: Minos Korva (11 Lichtjahre vom McAlister C5 Nebel)
Wie kann ich in Plugins Rationale Zahlen verwenden und diese auf ein Format (z.B. 2 Stellen vor und eine Stelle nach dem Komma) formatieren?

Ich denke, ich benötige die include Datei fixed.inc, die ja auch vorhanden ist. Aber wie erstelle ich die Variablen?
Ich hab gelesen, dass ich, wenn ich Rationale Zahlen verwenden moechte, die Anweisung #pragma rational verwenden muss.
#pragma rational kennt der Compiler aber nicht.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 28.07.2002, 01:21 

Registriert: 12.06.2002, 16:13
Beiträge: 62
Gibt es in Small eigentlich nicht. Es soll angeblich eine Art Library für Small geben, die so eine Zahl dann ueber zwei Integer emuliert, aber von solchen Krücken hab ich bisher die Finger gelassen.


Wenn deine Zahlen nicht zu gross werden, kannst du ja mit normalen Integern arbeiten. So dass z.B. eine 1 mit 4 Stellen hinter dem Komma dann einfach als 10000 angenommen wird.


Ansonsten kannst du natuerlich auch mit zwei Integer-Zahlen arbeiten. Deklariert wird das einfach als 2 Variablen oder meinetwegen auch als Array mit 2 Elementen. Um mit solchen Zahlen dann arbeiten zu koennen, brauchst du natuerlich ein paar Funktionen, die das mit den Kommas berechnen.

z.B. folgendes waere eine Funktion, um 2 Kommazahlen zu addieren: (nur schematisch)
Code:
add_kommazahlen(azahl, akomma, bzahl, bkomma)
{
    int ezahl, ekomma;

    ezahl = azahl + bzahl;
    ekomma = akomma + bkomma;

    if(ekomma >= 1000000) // 6 Stellen hinterm Komma
    {
        ezahl++;
        ekomma -= 1000000;
    }

    // Ergebnis berechnet und muss nun irgendwie
    // zurueckgeliefert werden
}


Das einfachste ist natuerlich, einfach komplett auf den Komma-Krempel zu verzichten.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 29.07.2002, 11:46 

Registriert: 08.01.2002, 19:41
Beiträge: 74
Wohnort: Minos Korva (11 Lichtjahre vom McAlister C5 Nebel)
Das Prob ist das das Ergebnis einer Berechnung eine Kommazahl ergibt. Ob ich jetzt also 5 durch 3 teile oder 5000 durch 3000, da kommt immer das gleiche raus.
Ich frage einfach mal anders.
Hat jemand einen Vorschlag (Formel) wie man den Skill eines Spielers während einer Map am gerechtesten berechnen kann. (ohne Kommastellen)
Hab mir die wildesten Formeln ausgedacht aber ohne Komma wird das nichts.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 29.07.2002, 17:23 

Registriert: 17.12.2001, 01:00
Beiträge: 697
Eine Möglichkeit wäre durch simple Addition und Subtraktion.
Am Anfang ist der Skill=0. Wird ein Gegner verwundet: Skill++, wird einer vom eigenen Team verwundet Skill--. Missionsziel erfüllt: Skill+5.
Wer am Ende den höchsten Skillwert hat, wird als bester eingestuft. Easy.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 29.07.2002, 18:55 
HLDS Team
Benutzeravatar

Registriert: 26.11.2001, 01:00
Beiträge: 676
Zitat:
Das Prob ist das das Ergebnis einer Berechnung eine Kommazahl ergibt. Ob ich jetzt also 5 durch 3 teile oder 5000 durch 3000, da kommt immer das gleiche raus.
Ich frage einfach mal anders.
Hat jemand einen Vorschlag (Formel) wie man den Skill eines Spielers während einer Map am gerechtesten berechnen kann. (ohne Kommastellen)
Hab mir die wildesten Formeln ausgedacht aber ohne Komma wird das nichts.
Es kommt aber auch drauf an wie man es sieht?!?!
Ist einer besser der 4kills und 2death hat, als einer mit 2kills und 1death? Rechnerisch (K/D rate) nicht, aber wenn man es so sieht hat er mehr kills und zweitens sieht man an den deaths das er sich auch (evtl) mehr eingesetzt hat. Theoretisch kann man also einfach kills minus death nehmen, (oder glaubt ihr wirklich das jemand mit 4:1 besser ist als jemand mit 64:16?)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.07.2002, 11:41 

Registriert: 08.01.2002, 19:41
Beiträge: 74
Wohnort: Minos Korva (11 Lichtjahre vom McAlister C5 Nebel)
@ Warhead:
Hmmm Anzahl der Treffer ist aber auch nicht gerade aussagekräftig. Wenn ich jemanden mit 8 Treffern im Linken Zeh töte würde ich 8 Punkte bekommen und mit einem Headshot nur 1nen Punkt. Man müsste das dann abhängig vom verursachten Schaden machen.

@MrClone:
Das K/D Ratio ist auf jeden Fall anfangs wenig aussagekräftig. Im Moment habe ich es so gemacht, dass ich das K/D Ratio nehme aber erst ab wenigstens 10 Kills anfange es Auszuwerten. Zusätzlich muss der Spieler das eingestellte K/D Ratio wenigstens 3 Runden hintereinander überschreiten. Es funktioniert so und es erfüllt auch schon seinen Zweck aber ich hätte es gerne noch genauer.

Das mit dem Auswerten von Treffern in Kombination mit dem verursachten Schaden hört sich aber gut an finde ich. Das werde ich mal antesten.

BTW: Small ist aber wirklich sehr small wenn es keine rationale Zahlen kann :)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.07.2002, 11:58 

Registriert: 17.12.2001, 01:00
Beiträge: 697
Ja sicher, bei jeder Statistikzählung gibt es Unstimmigkeiten. Dein Beispiel ist auch nicht astrein. Die AWP macht bei einem Headshot über 300 HP Schaden. Wenn jetzt einer diesen Headshot mit der AWP schafft und sofort stirbt hat er über 300 Punkte. Jetzt gibts einen 2. Spieler der mit der Colt rumrennt und 2 Leute mit jeweils 2 Treffern tötet und danach stirbt. Er hat dadurch ca. 250 Punkte. Wer von beiden ist nun besser?

Mein Beispiel sollte nur aufzeigen wie es ohne Division geht, was man daraus macht ist jedem selbst überlassen. Du kannst Dir ja auch mal den Algorithmus von hlstats anschauen.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.07.2002, 12:37 

Registriert: 12.06.2002, 16:13
Beiträge: 62
Ich nehm an, dein K/D Ratio Problem ist nun die miserable Rundung?

Mach einfach ein 10000*K/D Ratio daraus. Dadurch hast du dann praktisch ne Kommazahl, eben um ein paar Stellen nach links verschoben.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.07.2002, 13:40 
HLDS Team
Benutzeravatar

Registriert: 26.11.2001, 01:00
Beiträge: 676
@Warhead
Ist ja klar das derjenige mit den 2 kills und 250 punkten besser ist als der mit 1kill und 300 punkten, wieso nehmt ihr nicht die punkte mal die kills?
250*2=500
300*1=300
schon wäre das problem gelöst, und der mit mehr kills hat auch mehr punkte.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30.07.2002, 15:00 

Registriert: 08.01.2002, 19:41
Beiträge: 74
Wohnort: Minos Korva (11 Lichtjahre vom McAlister C5 Nebel)
Ok Ok, ich hab jetzt Ideen und Vorschläge genug. Ihr könnt jetzt aufhöhren :)
Daraus lässt sich bestimmt was machen.

THX @ ALL


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 10 Beiträge ] 


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de
Original Design von "[ Half-Life Admin Mod © Alfred Reynolds 2000-2003 ] - [ site design by Jägermeister ]"