Começando
Primeiro baixe o arquivo abaixo na sua pasta \data files\graphics com nome minimap e verifique se o arquivo está salvo em bmp.
http://www.mediafire.com/?fh6oh4t5gj1j023
Descrição
Esse é um Minimap beta que apenas mostra os bloqueios, os npcs e os players. Olhei em vários fóruns 3 tipos de minimaps e todos eles tinham que criar um tipo novo de tile chamado Blank ,que no português significa branco, para deixar um pedaço do minimap branco para saber que não havia nada em certo lugar, então resolvi criar um novo modo para que a opção não fosse usado e ficasse mais simples, fiz o código para criar em todo o minimap essa parte branca e após disso criar as outras camadas do minimap para que elas não se desenhem em baixo do blank.
Log
Imagem
Client~side
Procure por:
Abaixo adicione:
Procure por:
Abaixo adicione:
Procure por:
Abaixo adicione:
Procure por:
Abaixo adicione:
Procure por:
Abaixo adicione:
No final do modulo adicione:
Dentro da picOptions crie uma label com o seguinte caption:
Agora crie uma pictureBox com qualquer nome e dentro dela adicione 2 optionsBox com as seguintes configurações:
OptionBox1
OptionBox2
Dentro do optMiniMapOn adicione:
E dentro do optMiniMapOff adicione:
No final da Private Type OptionsRec, antes do End type, adicione:
Procure por:
Abaixo adicione:
Procure por:
Abaixo adicione:
Procure por:
Abaixo adicione:
Procure por:
Abaixo adicione:
Agora é só ir em \data files\ e deletar o arquivo config.ini
Créditos:
Ricardo
Primeiro baixe o arquivo abaixo na sua pasta \data files\graphics com nome minimap e verifique se o arquivo está salvo em bmp.
http://www.mediafire.com/?fh6oh4t5gj1j023
Descrição
Esse é um Minimap beta que apenas mostra os bloqueios, os npcs e os players. Olhei em vários fóruns 3 tipos de minimaps e todos eles tinham que criar um tipo novo de tile chamado Blank ,que no português significa branco, para deixar um pedaço do minimap branco para saber que não havia nada em certo lugar, então resolvi criar um novo modo para que a opção não fosse usado e ficasse mais simples, fiz o código para criar em todo o minimap essa parte branca e após disso criar as outras camadas do minimap para que elas não se desenhem em baixo do blank.
Log
[li]Ícone branco quando não houver nada no mapa.[/li]
[li]Ícone que mostra os jogadores que estão presentes no mapa.[/li]
[li]Ícone que mostra os npcs que estão no mapa.[/li]
[li]Ícone que mostra os bloqueios do mapa.[/li]
[li]Ícone diferente para jogadores killers.[/li]
[li]Ícone que mostra os teletransporte do mapa.[/li]
[li]Ícone que mostra os itens do mapa.[/li]
[li]Ícone que mostra as lojas do mapa sendo por atributo e sendo por npc.[/li]
[li]Ícone diferente para cada tipo de npc.[/li]
Imagem
Client~side
modDirectDraw7
Procure por:
- Código:
' Render the bars
BltBars
Abaixo adicione:
- Código:
' minimap
If Options.Minimap = 1 Then BltMiniMap
Procure por:
- Código:
Public DDS_Bars As DirectDrawSurface7
Abaixo adicione:
- Código:
Public DDS_MiniMap As DirectDrawSurface7
Procure por:
- Código:
Public DDSD_Bars As DDSURFACEDESC2
Abaixo adicione:
- Código:
Public DDSD_MiniMap As DDSURFACEDESC2
Procure por:
- Código:
If FileExist(App.Path & "\data files\graphics\bars.bmp", True) Then Call InitDDSurf("bars", DDSD_Bars, DDS_Bars)
Abaixo adicione:
- Código:
If FileExist(App.Path & "\data files\graphics\minimap.bmp", True) Then Call InitDDSurf("minimap", DDSD_MiniMap, DDS_MiniMap)
Procure por:
- Código:
Set DDS_Target = Nothing
ZeroMemory ByVal VarPtr(DDSD_Target), LenB(DDSD_Target)
Abaixo adicione:
- Código:
Set DDS_MiniMap = Nothing
ZeroMemory ByVal VarPtr(DDSD_MiniMap), LenB(DDSD_MiniMap)
No final do modulo adicione:
- Código:
Sub BltMiniMap()
Dim i As Long
Dim X As Integer, Y As Integer
Dim Direction As Byte
Dim CameraX As Long, CameraY As Long
Dim BlockRect As RECT, WarpRect As RECT, ItemRect As RECT, ShopRect As RECT, NpcOtherRect As RECT, PlayerRect As RECT, PlayerPkRect As RECT, NpcAttackerRect As RECT, NpcShopRect As RECT, NadaRect As RECT
Dim MapX As Long, MapY As Long
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
MapX = Map.MaxX
MapY = Map.MaxY
' ************
' *** Nada ***
' ************
With NadaRect
.top = 4
.Bottom = .top + 4
.Left = 0
.Right = .Left + 4
End With
' Defini-lo no minimap
For X = 0 To MapX
For Y = 0 To MapY
CameraX = Camera.Left + 25 + (X * 4)
CameraY = Camera.top + 25 + (Y * 4)
Engine_BltFast CameraX, CameraY, DDS_MiniMap, NadaRect, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY
Next Y
Next X
' *****************
' *** Atributos ***
' *****************
' Bloqueio
With BlockRect
.top = 4
.Bottom = .top + 4
.Left = 4
.Right = .Left + 4
End With
' Warp
With WarpRect
.top = 4
.Bottom = .top + 4
.Left = 8
.Right = .Left + 4
End With
' Item
With ItemRect
.top = 4
.Bottom = .top + 4
.Left = 12
.Right = .Left + 4
End With
' Shop
With ShopRect
.top = 4
.Bottom = .top + 4
.Left = 16
.Right = .Left + 4
End With
' Defini-los no minimap
For X = 0 To MapX
For Y = 0 To MapY
Select Case Map.Tile(X, Y).Type
Case TILE_TYPE_BLOCKED
CameraX = Camera.Left + 25 + (X * 4)
CameraY = Camera.top + 25 + (Y * 4)
Engine_BltFast CameraX, CameraY, DDS_MiniMap, BlockRect, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY
Case TILE_TYPE_WARP
CameraX = Camera.Left + 25 + (X * 4)
CameraY = Camera.top + 25 + (Y * 4)
Engine_BltFast CameraX, CameraY, DDS_MiniMap, WarpRect, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY
Case TILE_TYPE_ITEM
CameraX = Camera.Left + 25 + (X * 4)
CameraY = Camera.top + 25 + (Y * 4)
Engine_BltFast CameraX, CameraY, DDS_MiniMap, ItemRect, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY
Case TILE_TYPE_SHOP
CameraX = Camera.Left + 25 + (X * 4)
CameraY = Camera.top + 25 + (Y * 4)
Engine_BltFast CameraX, CameraY, DDS_MiniMap, ShopRect, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY
End Select
Next Y
Next X
' **************
' *** Player ***
' **************
' Normal
With PlayerRect
.top = 0
.Bottom = .top + 4
.Left = 4
.Right = .Left + 4
End With
' Pk
With PlayerPkRect
.top = 0
.Bottom = .top + 4
.Left = 8
.Right = .Left + 4
End With
' Defini-los no minimap
For i = 1 To Player_HighIndex
If IsPlaying(i) Then
Select Case Player(i).PK
Case 0
X = Player(i).X
Y = Player(i).Y
CameraX = Camera.Left + 25 + (X * 4)
CameraY = Camera.top + 25 + (Y * 4)
Call DDS_BackBuffer.BltFast(CameraX, CameraY, DDS_MiniMap, PlayerRect, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
Case 1
X = Player(i).X
Y = Player(i).Y
CameraX = Camera.Left + 25 + (X * 4)
CameraY = Camera.top + 25 + (Y * 4)
Call DDS_BackBuffer.BltFast(CameraX, CameraY, DDS_MiniMap, PlayerPkRect, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
End Select
End If
Next i
' ***********
' *** NPC ***
' ***********
' Atacar ao ser atacado e quando for atacado
With NpcAttackerRect
.top = 0
.Bottom = .top + 4
.Left = 12
.Right = .Left + 4
End With
' Vendendor
With NpcShopRect
.top = 0
.Bottom = .top + 4
.Left = 16
.Right = .Left + 4
End With
' Outros
With NpcOtherRect
.top = 0
.Bottom = .top + 4
.Left = 20
.Right = .Left + 4
End With
' Defini-lo no minimap
For i = 1 To Npc_HighIndex
If MapNpc(i).num > 0 Then
Select Case NPC(i).Behaviour
Case NPC_BEHAVIOUR_ATTACKONSIGHT Or NPC_BEHAVIOUR_ATTACKWHENATTACKED
X = MapNpc(i).X
Y = MapNpc(i).Y
CameraX = Camera.Left + 25 + (X * 4)
CameraY = Camera.top + 25 + (Y * 4)
Call DDS_BackBuffer.BltFast(CameraX, CameraY, DDS_MiniMap, NpcAttackerRect, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
Case NPC_BEHAVIOUR_SHOPKEEPER
X = MapNpc(i).X
Y = MapNpc(i).Y
CameraX = Camera.Left + 25 + (X * 4)
CameraY = Camera.top + 25 + (Y * 4)
Call DDS_BackBuffer.BltFast(CameraX, CameraY, DDS_MiniMap, NpcShopRect, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
Case Else
X = MapNpc(i).X
Y = MapNpc(i).Y
CameraX = Camera.Left + 25 + (X * 4)
CameraY = Camera.top + 25 + (Y * 4)
Call DDS_BackBuffer.BltFast(CameraX, CameraY, DDS_MiniMap, NpcOtherRect, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
End Select
End If
Next i
' Error handler
Exit Sub
errorhandler:
HandleError "BltMiniMap", "modDirectDraw7", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
frmMain
Dentro da picOptions crie uma label com o seguinte caption:
MiniMap
Agora crie uma pictureBox com qualquer nome e dentro dela adicione 2 optionsBox com as seguintes configurações:
OptionBox1
Name: optMiniMapOn
Caption: On
OptionBox2
Name: optMiniMapOff
Caption: Off
Dentro do optMiniMapOn adicione:
- Código:
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
Options.Minimap = 1
SaveOptions
' Error handler
Exit Sub
errorhandler:
HandleError "optMiniMapOn_Click", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
E dentro do optMiniMapOff adicione:
- Código:
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
Options.Minimap = 0
SaveOptions
' Error handler
Exit Sub
errorhandler:
HandleError "optMiniMapOff_Click", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
modTypes
No final da Private Type OptionsRec, antes do End type, adicione:
- Código:
Minimap As Byte
modDatabase
Procure por:
- Código:
Call PutVar(fileName, "Options", "Debug", Str(Options.Debug))
Abaixo adicione:
- Código:
Call PutVar(fileName, "Options", "MiniMap", Str(Options.Minimap))
Procure por:
- Código:
Options.Debug = 0
Abaixo adicione:
- Código:
Options.Minimap = 1
Procure por:
- Código:
Options.Debug = GetVar(fileName, "Options", "Debug")
Abaixo adicione:
- Código:
Options.Minimap = GetVar(fileName, "Options", "MiniMap")
Procure por:
- Código:
If Options.Sound = 0 Then
frmMain.optSOff.Value = True
Else
frmMain.optSOn.Value = True
End If
Abaixo adicione:
- Código:
If Options.Minimap = 0 Then
frmMain.optMiniMapOff.Value = True
Else
frmMain.optMiniMapOn.Value = True
End If
Agora é só ir em \data files\ e deletar o arquivo config.ini
Créditos:
Ricardo
Última edição por Ricardo em Ter Fev 14, 2012 8:46 am, editado 2 vez(es)