Quote:
Originally Posted by PizzaGuy
Skill times, effects, and stats are entirely server side.
|
You probably didn't get his intention right. There are 5 rows to show one's active buffs, which he would like to expand to 7 or 8 rows.
Quote:
Originally Posted by S.T.A.L.K.E.R~
Es gibt ja die Affinity Items, dann die Eigenbuffs, Buffs von anderen Charakter, Cash Items.. da kommt schon 'ne Menge zusammen.
|
Also als ich noch gespielt habe, bin ich damit immer gut ausgekommen, vielleicht hat sich das inzwischen verändert.
Mein Ansatz wäre:
Man scannt in CE mit dem Datentyp byte (könnten auch 2 oder 4 bytes sein, aber die findet man dann trotzdem mit dem Scan ;)) nach der Zahl der gerade aktiven Buffs, erhöht die Zahl durch weiter Items oder Buffs, bzw. wartet bis sie ablaufen und scannt dann nach der neuen Anzahl etc. bis man nur noch wenige oder am besten ein Ergebnis hat.
Dann nimmt man so viele Items und Buffs, dass alle Leisten voll sind und sucht mit Rechtsklick -> "Find out what accesses this address" nach Lesezugriffen auf diesen Wert, führt einen weiteren Buff aus, der nicht mehr angenommen werden kann, und stoppt dann die Suche.
Wenn im Clienten überprüft wird, ob noch weitere Buffs möglich sind, muss natürlich erstmal die aktuelle Anzahl an Buffs ausgelesen werden, so kommt man also an die entsprechende Stelle im Clienten.
Vermutlich gibt es da mehrere Ergebnisse, man schaut sich also alle mal an. Kurz nach dem Auslesen des Wertes, evtl. nach einem Return, muss dann irgendwo ein conditional jump stehen, der das weitere Verhalten entsprechend beeinflusst, je nachdem, ob die Buffleisten schon voll sind.
Diesen conditional jump erstetzt man dann je nach Zusammenhang durch jmp oder nop und sollte unbegrenzt Buffs verwenden können, sofern es nicht serverside überprüft wird.
Ohne ein wenig Grundwissen über CE und Asm werdet ihr mit der Erklärung aber wohl nicht allzu viel anfangen können, es ist ja so schon lang genug geworden, ohne auf alles detailliert einzugehen.