Universo Games
Ola , Convidado



Você ainda não e cadastrado então cadastre-se e veja todas as atualizações no mundo rpg!!!
Universo Games

Suporte e Desenvolvimento só no Universo Games

Ola Convidado, Seja Bem vindo a equipe lhe deseja boa sorte no seu projeto!

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

Elysium MiniMap

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

1OffTopic Elysium MiniMap em Seg 19 Set 2011, 14:48

jadiel848


Membro
Membro
Antes de Tudo ponha isso no seu GFX
se o nome tiver outro coloque minimap. Link: http://imageshack.us/photo/my-images/846/minimapr.jpg/



vamos começar
Agora abra a source do cliente pelo VB, em seguida abra o modulo ModDirectX e adicione essas duas linhas abaixo do Option Explicit


Código: [Selecionar]
Public DDSD_MiniMap As DDSURFACEDESC2Public DD_MiniMap As DirectDrawSurface7
Presione CTRL+F e pesquise por Sub InitSurfaces repare que abaixo da explicação ' Check for files existing, tem uma linha semelhante a linha abaixo.


Código: [Selecionar]
If FileExist("\GFX\sprites.bmp") = False Or FileExist("\GFX\Itens.bmp") = False Or FileExist("\GFX\bigsprites.bmp") = False Or FileExist("\GFX\emoticons.bmp") = False Or FileExist("\GFX\Flechas.bmp")= False Then Call MsgBox("Alguns arquivos gráficos estão faltando!", vbOKOnly, GAME_NAME) Call GameDestroy End If
Substitua para:


Código: [Selecionar]
If FileExist("\GFX\sprites.bmp") = False Or FileExist("\GFX\Itens.bmp") = False Or FileExist("\GFX\bigsprites.bmp") = False Or FileExist("\GFX\emoticons.bmp") = False Or FileExist("\GFX\Flechas.bmp") = False Or FileExists("\GFX\minimap.bmp") = False Then Call MsgBox("Alguns arquivos gráficos estão faltando!", vbOKOnly, GAME_NAME) Call GameDestroy End If
Agora em cima da linha que você acabou de substituir, logo abaixo de Sub InitSurfaces adicione o seguinte bloco de códigos.


Código: [Selecionar]
DDSD_MiniMap.lFlags = DDSD_CAPS DDSD_MiniMap.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN Or DDSCAPS_SYSTEMMEMORY Set DD_MiniMap = DD.CreateSurfaceFromFile(App.Path & "\GFX\minimap.bmp", DDSD_MiniMap) SetMaskColorFromPixel DD_MiniMap, 0, 0
Ainda nesse modulo procure pela Sub DestroyDirectX depois da declaração Dim i As Long adicione o código abaixo.


Código: [Selecionar]
Set DD_MiniMap = Nothing
Agora va em cima de Sub DestroyDirectX e adicione essa Sub.


Código: [Selecionar]
'Modified to work with EE by BraitonSub BltMiniMap()Dim I As LongDim x As IntegerDim y As IntegerDim MMx As LongDim MMy As Integer ' Tiles Layer ' Select MM Tile to Use for Tiles Layer rec.Top = 8 rec.Bottom = 16 rec.Left = 0 rec.Right = 8 For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If Map(Player(MyIndex).Map).Tile(x, y).Type = TILE_TYPE_BLOCKED Then MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next x Next y ' Player Layer ' Select MM Tile to Use for Players Layer rec.Top = 16 rec.Bottom = 24 rec.Left = 0 rec.Right = 8 For I = 1 To MAX_PLAYERS If Player(I).Map = Player(MyIndex).Map Then x = Player(I).x y = Player(I).y MMx = 400 + (x * Cool MMy = 32 + (y * Cool If Not I = MyIndex Then Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If End If Next I ' MyPlayer Layer rec.Top = 32 rec.Bottom = 40 rec.Left = 0 rec.Right = 8 x = Player(MyIndex).x y = Player(MyIndex).y MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) ' NPC Layer ' Select the MM Tile to use for the NPC Layer rec.Top = 24 rec.Bottom = 32 rec.Left = 0 rec.Right = 8 For I = 1 To MAX_MAP_NPCS If MapNpc(I).Num > 0 Then x = MapNpc(I).x y = MapNpc(I).y MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next I 'Shops (Thanks to NexSteve) rec.Top = 40 rec.Bottom = 48 rec.Left = 0 rec.Right = 8 For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If Map(Player(MyIndex).Map).Tile(x, y).Type = TILE_TYPE_SHOP Then MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next x Next y 'Walkable tiles (Thanks to Me) rec.Top = 48 rec.Bottom = 56 rec.Left = 0 rec.Right = 8 For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If Map(Player(MyIndex).Map).Tile(x, y).Type = TILE_TYPE_WALKABLE Then MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next x Next y 'Warps (Thanks to Me) rec.Top = 56 rec.Bottom = 64 rec.Left = 0 rec.Right = 8 For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If Map(Player(MyIndex).Map).Tile(x, y).Type = TILE_TYPE_WARP Then MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next x Next y'Dropped item (Thanks to Aranshada) rec.Top = 64 rec.Bottom = 72 rec.Left = 0 rec.Right = 8 For I = 1 To MAX_MAP_ITEMS If MapItem(I).Num > 0 Then x = MapItem(I).x y = MapItem(I).y MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next I ' PKers(Thanks to me) rec.Top = 104 rec.Bottom = 112 rec.Left = 0 rec.Right = 8 For I = 1 To MAX_PLAYERS If Player(I).Map = Player(MyIndex).Map Then If Player(I).PK = YES Then x = Player(I).x y = Player(I).y MMx = 400 + (x * Cool MMy = 32 + (y * Cool If Not I = MyIndex Then Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If End If End If Next I 'Signs (Thanks to Braiton) rec.Top = 112 rec.Bottom = 120 rec.Left = 0 rec.Right = 8 For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If Map(Player(MyIndex).Map).Tile(x, y).Type = TILE_TYPE_SIGN Then MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next x Next y 'Key Doors (Thanks to Braiton) rec.Top = 120 rec.Bottom = 128 rec.Left = 0 rec.Right = 8 For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If Map(Player(MyIndex).Map).Tile(x, y).Type = TILE_TYPE_KEY Then MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next x Next y 'Doors (Thanks to Braiton) rec.Top = 128 rec.Bottom = 136 rec.Left = 0 rec.Right = 8 For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If Map(Player(MyIndex).Map).Tile(x, y).Type = TILE_TYPE_DOOR Then MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next x Next y 'Scripted Tile (Thanks to Braiton) rec.Top = 136 rec.Bottom = 144 rec.Left = 0 rec.Right = 8 For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If Map(Player(MyIndex).Map).Tile(x, y).Type = TILE_TYPE_SCRIPTED Then MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next x Next y 'Heal (Thanks to Braiton) rec.Top = 152 rec.Bottom = 160 rec.Left = 0 rec.Right = 8 For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If Map(Player(MyIndex).Map).Tile(x, y).Type = TILE_TYPE_HEAL Then MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next x Next y 'Notice (Thanks to Braiton) rec.Top = 160 rec.Bottom = 168 rec.Left = 0 rec.Right = 8 For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If Map(Player(MyIndex).Map).Tile(x, y).Type = TILE_TYPE_NOTICE Then MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next x Next y 'Arena (Thanks to Braiton) rec.Top = 168 rec.Bottom = 176 rec.Left = 0 rec.Right = 8 For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If Map(Player(MyIndex).Map).Tile(x, y).Type = TILE_TYPE_ARENA Then MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next x Next y 'Player House (Thanks to Braiton) rec.Top = 176 rec.Bottom = 184 rec.Left = 0 rec.Right = 8 For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If Map(Player(MyIndex).Map).Tile(x, y).Type = TILE_TYPE_SPRITE_CHANGE Then MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next x Next y 'Grapple (Thanks to Braiton) rec.Top = 184 rec.Bottom = 192 rec.Left = 0 rec.Right = 8 For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If Map(Player(MyIndex).Map).Tile(x, y).Type = TILE_TYPE_CBLOCK Then MMx = 400 + (x * Cool MMy = 32 + (y * Cool Call DD_BackBuffer.BltFast(MMx, MMy, DD_MiniMap, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY) End If Next x Next y End Sub
Agora feche o modDirectx e abra o modGameLogic e procure por



Código: [Selecionar]
Public ii As Long, iii As LongPublic sx As Long
abaixo adicione


Código: [Selecionar]
Public Minimap As Boolean

Em em Sub Main() presione CTRL+F e pesquise por


Código: [Selecionar]
' Não estamos em jogo!
abaixo de:


Código: [Selecionar]
InArrowEditor = False InSpawnEditor = False
Adicione


Código: [Selecionar]
Minimap = False
Agora abra o módulo ModGameLogic, e pesquise por Sub GameLoop(), procure pelo codigo abaixo.


Código: [Selecionar]
' Release DC Call DD_BackBuffer.ReleaseDC(TexthDC)
Logo abaixo adicione o seguinte código


Código: [Selecionar]
' Blit out MiniMap If Minimap = True Then Call BltMiniMap End If
Agora procure pela linha ' // Commands //, logo abaixo adicione o seguinte código.


Código: [Selecionar]
'Escolha a ver ou não ver minimap If LCase(Mid(MyText, 1, Cool) = "/minimap" Then If Minimap = True Then Minimap = False Else Minimap = True End If Exit Sub End If
No final do modulo adicione a seguinte sub.


Código: [Selecionar]
Sub MiniMapOff(Index)Minimap = FalseIf Minimap = True Then Call BltMiniMap Else End IfEnd SubSub MiniMapOn(Index)Minimap = TrueIf Minimap = True Then Call BltMiniMap End IfEnd Sub
Pronto, agora para ativar o mini-mapa digite /minimap, para desativa-lo também é /minimap

Aki uma foto da perfect engine ja com esse sistema



Testado e Aprovado



Créditos:Karlos


Só...What a Face

2OffTopic Re: Elysium MiniMap em Seg 19 Set 2011, 19:05

Luucas Robeerto


Fundador
Fundador
'-' ...

Topico movido para lixeira


_______________________________________________________________________________________________________


Spoiler:




lol!
http://universogamesmmo.forumeiros.com

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

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