Si alguna ves jugaron Warcraft III y The Forzen Throne.
Se darán cuenta que el minimapa se va haciendo visible (Depende las opciones del juego), según por donde vayas caminando.
Les traigo un código similar para tenerlo.
[Solamente usando mi sistema Optimizado del Minimapa]Empecemos. (Solo Cliente)
Reemplazar el Sub:
- Public Sub DibujarMiniMapa()
Por este:
- Public Sub DibujarMiniMapa()
- Dim map_x As Long, map_y As Long, i As Byte
- For map_y = UserPos.Y - 6 To UserPos.Y + 8
- For map_x = UserPos.X - 7 To UserPos.X + 9
- For i = 1 To 3
- If MapData(map_x, map_y).Graphic(i).grhindex > 0 Then
- SetPixel frmMain.Minimap.hdc, map_x, map_y, GrhData(MapData(map_x, map_y).Graphic(i).grhindex).MiniMap_color
- End If
- Next i
- Next map_x
- Next map_y
-
- frmMain.Minimap.Refresh
- Call ActualizarMiniMapa(0)
- End Sub
Ahora en el sub:
- Sub SwitchMap(ByVal map as Integer
Busquen:
Y reemplazarlo por:
Ahora buscar en el Sub MoveTo:
- Call ActualizarMiniMapa(Direccion)
Y abajo agregar:
Y listo, ya tendrían el Minimapa style Warcraft III and (The Frozen Throne)
Adiós.
EDIT:
Imagen de Muestra:
http://img703.imageshack.us/img703/3972 ... rcraft.pngEDIT2:
+PlusAl caminar solo se vea el rango de visión en el que caminás. Cambiar el Sub DibujarMiniMapa por este:
- Public Sub DibujarMiniMapa()
- frmMain.Minimap.Cls
- Dim map_x As Long, map_y As Long, i As Byte
- For map_y = UserPos.Y - 6 To UserPos.Y + 8
- For map_x = UserPos.X - 7 To UserPos.X + 9
- For i = 1 To 3
- If MapData(map_x, map_y).Graphic(i).grhindex > 0 Then
- SetPixel frmMain.Minimap.hdc, map_x, map_y, GrhData(MapData(map_x, map_y).Graphic(i).grhindex).MiniMap_color
- End If
- Next i
- Next map_x
- Next map_y
-
- frmMain.Minimap.Refresh
- Call ActualizarMiniMapa(0)
- End Sub
Adiós.
EDIT3:
+PlusMinimapa Redondo Agregar un modulo llamado Mod_Minimap y dentro del Modulo agregar:
- Option Explicit
- Private Declare Function CreateRoundRectRgn Lib "gdi32" ( _
- ByVal X1 As Long, _
- ByVal Y1 As Long, _
- ByVal X2 As Long, _
- ByVal Y2 As Long, _
- ByVal X3 As Long, _
- ByVal Y3 As Long) As Long
-
- Private Declare Function SetWindowRgn Lib "user32" ( _
- ByVal hWnd As Long, _
- ByVal hRgn As Long, _
- ByVal bRedraw As Boolean) As Long
-
- Public Sub Round_Picture(El_Form As PictureBox, Radio As Long)
- Dim Region As Long
- Dim Ret As Long
- Dim Ancho As Long
- Dim Alto As Long
- Dim old_Scale As Integer
-
- old_Scale = El_Form.ScaleMode
- El_Form.ScaleMode = vbPixels
- Ancho = El_Form.ScaleWidth
- Alto = El_Form.ScaleHeight
- Region = CreateRoundRectRgn(0, 0, Ancho, Alto, Radio, Radio)
- Ret = SetWindowRgn(El_Form.hWnd, Region, True)
- El_Form.ScaleMode = old_Scale
- End Sub
Ahora en el frmMain buscar Form_Load y agregar:
- Call Round_Picture(MiniMap, 100)
Minimapa redondo implementado!
Adiós.