GS-Zone

Optimización del MiniMapa Lectura de Pixeles (DX8) (3 Capas) Ir al Indice

Moderadores: Moderadores de Argentum, Especialistas de Argentum, Especialistas de Programación

7

Nota » 20 Jul 2011 19:13

Bueno, estaba haciendo un par de cosas para perder el tiempo, y me di cuenta que la Optimización de MaTeO podría ser más simple y también usar 3 Capas...

Necesitaremos:
Crear un Shape dentro del Minimap (PictureBox) con las siguientes Propiedades/Características:
Name: UserShp
Height: 4
Width: 4


Ahora al Código.
_____________
Borrar los Sub:
  1. Public Sub ActualizarMiniMapa(ByVal tHeading As E_Heading)




Ahora al final del Modulo General agregan:
  1. Public Sub ActualizarMiniMapa(ByVal tHeading As E_Heading)
  2.         frmMain.UseShp.Left = UserPos.X
  3.         frmMain.UserShp.Top = UserPos.Y
  4.         frmMain.Minimap.Refresh
  5. End Sub
  6. Public Sub DibujarMiniMapa()
  7.     Dim map_x As Long, map_y As Long, i As Byte
  8.     For map_y = 1 To 100
  9.         For map_x = 1 To 100
  10.             For i = 1 To 3
  11.                 If MapData(map_x, map_y).Graphic(i).grhindex > 0 Then
  12.                     SetPixel frmMain.Minimap.hdc, map_x, map_y, GrhData(MapData(map_x, map_y).Graphic(i).grhindex).MiniMap_color
  13.                 End If
  14.             Next i
  15.         Next map_x
  16.     Next map_y
  17.    
  18.     frmMain.Minimap.Refresh
  19.     Call ActualizarMiniMapa(0)
  20. End Sub
  21.  

_____________

Espero que os sirva.

Imagen:
Imagen


Adiós.
Este mensaje ha obtenido 8 Monedas de Oro.


Director del Proyecto IndeX - AO
Mannakia escribió:Closed moderhipocradores , tema ya solucionado, jesus me ilumino en un sueño, y programamos junto, la verdad un genio, sabe lenguaje V** (V Multiply Multiply) que es sobre como programaron las primeras microcelulas.

Dunkan escribió:Chiters?, Pero esto no tenía la "Samke Security" ?

Imagen
Imagen
Programador
356
Dragon Ancestral [6]
Registrado: Años de membresíaAños de membresíaAños de membresíaAños de membresía
Mensajes: 4551
Aportes: 46
Premios: 2
Usuario superado (2)

Nota » 20 Jul 2011 19:23

Muy buen aporte fers, lo lograstes.

Saludos ^^

Imagen
Imagen
Staff Zeiked-Games
646
Dragon Ancestral [3]
Registrado: Años de membresíaAños de membresía
Ubicación: Castelar
Mensajes: 3416
Aportes: 66
Premios: 3
Usuario omnipresente (1) Embajador (2)

Nota » 20 Jul 2011 19:45

Samke escribió:Muy buen aporte fers, lo lograstes.

Saludos ^^

Lograr que? xD... Si no me tomó más de 5 minutos XD...

Igualmente yo hago el bucle para que me cree las imágenes del Minimap y hacer el sistema de mini mapas con lectura de imágenes más fácil.


Adiós.

Director del Proyecto IndeX - AO
Mannakia escribió:Closed moderhipocradores , tema ya solucionado, jesus me ilumino en un sueño, y programamos junto, la verdad un genio, sabe lenguaje V** (V Multiply Multiply) que es sobre como programaron las primeras microcelulas.

Dunkan escribió:Chiters?, Pero esto no tenía la "Samke Security" ?

Imagen
Imagen
Programador
356
Dragon Ancestral [6]
Registrado: Años de membresíaAños de membresíaAños de membresíaAños de membresía
Mensajes: 4551
Aportes: 46
Premios: 2
Usuario superado (2)

Nota » 20 Jul 2011 20:00

Buen aporte, gracias.

Saludos.
Usuario Registrado
Newbie [3]
Registrado: Años de membresía
Mensajes: 87

Nota » 20 Jul 2011 20:57

Si quieren que también cargue los techos, en el Sub DibujarMinimapa, en este code:
  1. For i = 1 To 3
  2.                 If MapData(map_x, map_y).Graphic(i).grhindex > 0 Then
  3.                     SetPixel frmMain.Minimap.hdc, map_x, map_y, GrhData(MapData(map_x, map_y).Graphic(i).grhindex).MiniMap_color
  4.                 End If


Cambien en el For i = 1 to 3 por For i = 1 to 4.

Código:

Reemplazar todo el Public Sub DibujarMiniMapa() por:
  1. Rem Minimapa de Ore 1.0a Optimizado por Lord Fers...
  2. Public Sub DibujarMiniMapa()
  3.     Dim map_x As Long, map_y As Long, i As Byte
  4.     For map_y = 1 To 100
  5.         For map_x = 1 To 100
  6.             For i = 1 To 4 'Capa 1, 2, 3, 4 (Depende cual elijas)
  7.                 If MapData(map_x, map_y).Graphic(i).grhindex > 0 Then
  8.                     SetPixel frmMain.Minimap.hdc, map_x, map_y, GrhData(MapData(map_x, map_y).Graphic(i).grhindex).MiniMap_color
  9.                 End If
  10.             Next i
  11.         Next map_x
  12.     Next map_y
  13.    
  14.     frmMain.Minimap.Refresh
  15.     Call ActualizarMiniMapa(0)
  16. End Sub

Director del Proyecto IndeX - AO
Mannakia escribió:Closed moderhipocradores , tema ya solucionado, jesus me ilumino en un sueño, y programamos junto, la verdad un genio, sabe lenguaje V** (V Multiply Multiply) que es sobre como programaron las primeras microcelulas.

Dunkan escribió:Chiters?, Pero esto no tenía la "Samke Security" ?

Imagen
Imagen
Programador
356
Dragon Ancestral [6]
Registrado: Años de membresíaAños de membresíaAños de membresíaAños de membresía
Mensajes: 4551
Aportes: 46
Premios: 2
Usuario superado (2)

Nota » 02 Ago 2011 23:32

Che y esto:

ByVal tHeading As E_Heading

Onda nunca lo usas.
Aguante River Plate ! ! !
909
Moderador
Registrado: Años de membresíaAños de membresíaAños de membresía
Ubicación: Villa adelina, Vicente Lopez.
Mensajes: 14428
Aportes: 305
Premios: 10
Señor Moderador (3) Señor Reglamento (1) Aportes (2) Embajador (3) Detector de Bugs (1)

Nota » 03 Ago 2011 01:00

Buen aporte.

Holis
ADM 2013
561
Dragon Ancestral [3]
Registrado: Años de membresíaAños de membresía
Ubicación: Argentina
Mensajes: 3112
Aportes: 9


Volver a AO 0.12.x

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados