Patchování souborů pomocí WeiDU
Moderátor: Razfallow
Patchování souborů pomocí WeiDU
Zajímalo by mě, jak s pomocí WeiDU nastavit nebo vypnout u předmětu určitý flag (Unsellable, Two-handed, ...)?
Potřebuji u jednoho předmětu nastavit flag Magical a nechci ten předmět přepisovat.
Potřebuji u jednoho předmětu nastavit flag Magical a nechci ten předmět přepisovat.
Kód: Vybrat vše
IF
Detect([SPAMMER])
THEN
RESPONSE #100
ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END
Já právě netuším, jak se spočítá to číslo (0x00000040). V NI jsou pouze celá čísla. Třeba zrovna flag magical má 6.
Kód: Vybrat vše
IF
Detect([SPAMMER])
THEN
RESPONSE #100
ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END
Jak zapsat pomocí weidu na nějaký offset zápornou hodnotu?
Kód: Vybrat vše
IF
Detect([SPAMMER])
THEN
RESPONSE #100
ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END
Záleží, jak je tam nula. Osobně bych tipl, že přes dvojkový doplněk - tak se často zapisují záporná čísla, ale uvidíme. Máš např. -5. Decimálních 5 převedeš na binárních 5, tj. 101. Zneguješ (tj. dle "šířky" byte/word/dword to bude na začátku několik jedniček výsledkem nezapsaných znegovaných nul), pro byte: 11111010. A následně přičteš 1, takže 11111011. A to do hexadecimálního tvaru FB.
Ale weidu myslím podporuje i zápis decimálních a binárních hodnot, ne? To by se pak dalo zapsat rovnou...
Ale weidu myslím podporuje i zápis decimálních a binárních hodnot, ne? To by se pak dalo zapsat rovnou...
Zkoušel jsem to s -50, ale háže to chybu.
Kód: Vybrat vše
IF
Detect([SPAMMER])
THEN
RESPONSE #100
ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END
WRITE_BYTE 0x5a -50
Kód: Vybrat vše
IF
Detect([SPAMMER])
THEN
RESPONSE #100
ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END
Díky moc
Kód: Vybrat vše
IF
Detect([SPAMMER])
THEN
RESPONSE #100
ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END
Jo, jde to. Na to převádění stačí windowská kalkulačka, lze převést záporné decimální číslo přímo na hexadecimální.Vlasák píše:Ale pro jistotu si to v nějakém prohlížeči zkontroluj. Jde i o to, jak "široká" ta hodnota je, pokud word, tak tam musíš doplnit ještě dvě FF, atp.
Kód: Vybrat vše
IF
Detect([SPAMMER])
THEN
RESPONSE #100
ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END