Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Pokémon Genesis Online! (PGO)
Qua 05 Jul 2017, 17:08 por Lexar

» Tileset Converter to MV
Sex 12 Maio 2017, 13:07 por Douggi

» [Dúvida] Como tirar a porcentagem de esquiva
Ter 09 Maio 2017, 22:15 por Neil Flame Runner

» Pack Resources, Sprites e etc
Qua 23 Dez 2015, 09:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Ter 22 Dez 2015, 08:14 por ::KimMax::

» Fantasy Art Online
Dom 18 Out 2015, 16:42 por daviih123

» Você vai ter medo do Nerve gear?
Sab 25 Jul 2015, 16:02 por Kirito-kun

» O Barato é louco
Sab 27 Jun 2015, 15:26 por Halt

» Download RPG Maker 2000 + RTP em português
Qui 21 Maio 2015, 19:28 por Wismael

» Divulgando meu grupo e página do Facebook
Ter 19 Maio 2015, 13:06 por Halt


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 MiniMap 1.2 em Qua 09 Jan 2013, 09:29

Halt

avatar
Administrador
Administrador
Ricardo escreveu:
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.


[Você precisa estar registrado e conectado para ver este link.]

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


__________________________________________

Ei Convidado, sim você mesmo! Ajude o fórum à crescer postando coisas úteis, dê sugestões para melhorar-mos e divulgue o fórum.

Step inside, see the devil in I.

Gifts-
Fantasy - Fantasy - Fantasy - ~Razor - Darkmel

Zerei a internet
Ver perfil do usuário http://arenarpgmaker.eclipserpg.com

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Tópicos similares

-

» [Extensao]Hyper MiniMap

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum