Tenho aqui uma dúvida de como criar uma função que grava 4 bytes (no caso, seriam 4 endereços hexadecimais).
Eu já possuo as "formulas" que gravam 2 e 3 bytes, porém, um dos valores necessita salvar 4 bytes.
Public Sub Save2bytes(offset, value, Location)
' -----------------------------------------------------------------------------
' Function called to save 2 Bytes, i.e. HP/MP
' -----------------------------------------------------------------------------
Dim sval As Byte
Dim A, B, C
value = (value Mod &H10000)
A = Hex(value)
If Len(A) = 1 Then A = "000" & A
If Len(A) = 2 Then A = "00" & A
If Len(A) = 3 Then A = "0" & A
B = ConvertHex(Left(A, 2))
C = ConvertHex(Right(A, 2))
Put #1, offset, CByte(C)
Put #1, offset - -1, CByte(B)
End Sub
Public Sub Save3bytes(offset, value, Location)
' -----------------------------------------------------------------------------
' Function called to save 3 Bytes, i.e. Experience/Currency
' -----------------------------------------------------------------------------
Dim sval As Byte
Dim A, B, C, D
value = (value Mod &H1000000)
A = Hex(value)
If Len(A) = 1 Then A = "00000" & A
If Len(A) = 2 Then A = "0000" & A
If Len(A) = 3 Then A = "000" & A
If Len(A) = 4 Then A = "00" & A
If Len(A) = 5 Then A = "0" & A
B = ConvertHex(Left(A, 2))
C = ConvertHex(Right(A, 4)) \ 256
D = ConvertHex(Right(A, 2))
Put #1, offset, CByte(D)
Put #1, offset - -1, CByte(C)
Put #1, offset - -2, CByte(B)
End Sub
Preciso saber como, baseado nessas duas funções, criar uma para 4 bytes.
Pergunta
Grandirus
Olá, boa tarde.
Tenho aqui uma dúvida de como criar uma função que grava 4 bytes (no caso, seriam 4 endereços hexadecimais).
Eu já possuo as "formulas" que gravam 2 e 3 bytes, porém, um dos valores necessita salvar 4 bytes.
Public Sub Save2bytes(offset, value, Location) ' ----------------------------------------------------------------------------- ' Function called to save 2 Bytes, i.e. HP/MP ' ----------------------------------------------------------------------------- Dim sval As Byte Dim A, B, C value = (value Mod &H10000) A = Hex(value) If Len(A) = 1 Then A = "000" & A If Len(A) = 2 Then A = "00" & A If Len(A) = 3 Then A = "0" & A B = ConvertHex(Left(A, 2)) C = ConvertHex(Right(A, 2)) Put #1, offset, CByte(C) Put #1, offset - -1, CByte(B) End Sub
Public Sub Save3bytes(offset, value, Location) ' ----------------------------------------------------------------------------- ' Function called to save 3 Bytes, i.e. Experience/Currency ' ----------------------------------------------------------------------------- Dim sval As Byte Dim A, B, C, D value = (value Mod &H1000000) A = Hex(value) If Len(A) = 1 Then A = "00000" & A If Len(A) = 2 Then A = "0000" & A If Len(A) = 3 Then A = "000" & A If Len(A) = 4 Then A = "00" & A If Len(A) = 5 Then A = "0" & A B = ConvertHex(Left(A, 2)) C = ConvertHex(Right(A, 4)) \ 256 D = ConvertHex(Right(A, 2)) Put #1, offset, CByte(D) Put #1, offset - -1, CByte(C) Put #1, offset - -2, CByte(B) End Sub
Preciso saber como, baseado nessas duas funções, criar uma para 4 bytes.
Desde já agradeço.
Editado por GrandirusLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.