Zitat:
Dieser "Hack" funktioniert nur deshalb, weil unter Linux die CS-Multiplayerlib mit einem Linker gelinkt wurde, der defaultmäßig alle Symbole exportiert.
Nur globale.
Zitat:
Die ganze Sache funktioniert unter Linux nur so lange, wie diese Option nicht geändert wird.
Ehm, das ist wohl auch hoechst unwahrscheinlich.

Wahrscheinlicher ist, dass die Windowsversion von CS die benoetigten Symbole in Zukunft ebenfalls exportiert.
Zitat:
Soweit ich das gesehen habe, haben die CS-Coder eine neue Funktion CHalfLifeMultiplay::TimeRemaining(void) zusätzlich implementiert. Hat man damit schonmal probiert, die exakte Restzeit zu bestimmen?
Ich vermute mal, dass das nicht viel bringt.Ich muesste mich ueber ein paar Details der Funktion erst schlau machen, aber ich vermute mit hoher Sicherheit folgende zwei Dinge:
1) Diese Funktion ist ebensowenig exportiert. (Oder meintest Du unter Linux?)
2) Das ist keine static member function.
Beides verhindert ihren Einsatz von aussen.
Wenn Du wissen willst, wie CS die timeleft berechnet, dann kuck mal in admin_commands.cpp::timeleft().

Es gibt noch einen Unterschied im CS code, der eben bei sv_restartround die Zeit entsprechend umsetzt. Der Unterschied liegt also im setzen einer globalen Variable, nicht in der Berechnung der Restzeit aus derselbigen. Mehr kann (darf) ich Dir hier nicht darueber sagen.
Zitat:
Es könnte also sein, dass die zurückgelieferte Adresse NULL korrekt ist, weil sich das Symbol dort befindet. Im AM-Code wird nur auf NULL des Symbols getestet. Zugegeben, die Chancen dass dieser Fall mal eintritt sind zu gering, um hier von einem Bug zu sprechen...
Sicherlich eine NAchlaessigkeit, auch wenn das entsprechende Symbol mit Sicherheit nicht an Adresse 0 liegt.
Wenn Dein Linux Server trotzdem Unterschiede in der timeleft aufweist, waere ich an einer systematischen Untersuchung durchaus weiter interessiert.