-
Drachentöter
@bugmenot: Du hast beim Quickpatch jetzt irrtümlich den 2k-Offset bei der Höhe verwendet. Übrigens würd ich statt "04" (was hexadezimal wäre und daher Nichttechniker bei höheren Zahlen verwirren könnte) "%4" schreiben. (% ist 1 Byte, # sind 4 Bytes und zwar beides dezimal angegeben).
Ich würd das ja überhaupt so machen
AllowInfiniteMessageLines=4C760F,90E9,4AC773,9090,4AC7AB,9090
Mit 4AC91F,9090 wären auch Choices > 4 Lines erlaubt, da braucht man allerdings noch einigen Zusatzcode um die Cancel-Zeile sonderzubehandeln die der Maker als ID 5 einfügt.
Mit diesem Tool kann man diese überlangen Messages auch in den Maker eingeben und bearbeiten: http://share.cherrytree.at/showfile-...revmsgedit.exe
Mit der Position ist es etwas mehr tricky weil da nicht viel Platz im Code für Eigenkonstrukte ist.
4C72A0 << Position im Kampf
4C734D << Position auf der Map
Jeweils ecx = y, edx = x. Und zwar wird hier die Messageboxposition (0 = oben, 1 = mittig, 2 = unten) mit 80 multipliziert:
(auf Map)
mov ecx, [ebx+8c] << Position laden
shl ecx, 4 << mal 16
lea ecx, [ecx+ecx*4] << mal 5
xor edx, edx << X auf 0 setzen
Man kann die ecx-Berechnung mit einem Trick verändern
mov eax, [ebx+8c] << Position laden, diesmal in eax
mov cl, 50 << Zahl 80 in cl laden
mul cl << Multipliziert al mit cl und speichert das Ergebnis in ax
mov ecx, eax << Und wieder in ecx kopieren
Braucht genausoviel Bytes, aber man kann den Multiplikator direkt angeben!
MessageBoxYPosMultiplier=4C734E,83,4C7353,B1,4C7354,%80,4C7355,F6E18BC8
Mehr Erweiterungnen (wie z.B. X ungleich 0, Y-Offset zur Berechnung dazu) geht ohne Code Cave nicht gut in den Platz rein.
Aber man kann sie natürlich in der Größe ändern:
MessageBoxSize=4C733E,#320,4C7343,%80
Im Kampf haben wir aber mehr Platz, da die Berechnung (weil Position immer = 0) dort noch mehr vereinfacht werden kann. Man kann die ganze Berechnung in 4C72A9-4C72B2 mit
mov edx, 1234 << X-Position
mov ecx, 5678 << Y-Position
ersetzen, was genau gleich viel Bytes braucht. (Breite und Höhe für Kampf findet man ab 4C72A0)
BattleMessageBoxPos=4C72A9,BA,4C72AA,#0,4C72AE,B9,4C72AF,#0
BattleMessageBoxSize=4C72A1,#320,4C72A6,%80
Hier noch das was du auch gesucht hast: Maximale Textbreite in Pixeln bevor der Text abgeschnitten wird.
MaxMessageWidthWithFace=4C7FAE,#227
MaxMessageWidthWithoutFace=4C7FCA,#299
Dich könnte auch hier dieser ASM-Code des nicht fertiggestellten Revolution Patches interessieren: http://share.cherrytree.at/showfile-10139/patch.asm
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln