Sistema de Auto Tile
5 participantes
Página 1 de 1
Sistema de Auto Tile
Alguem poderia me faser um tutorial de auto tile ja preocurei pra caramba e nao acho
math320- Membro Sênior
- Mensagens : 255
Re: Sistema de Auto Tile
auto tile deixa o game com leg e trava a vezes na hora de criar chars
Eduardo- Membro Veterano
- Mensagens : 1178
Re: Sistema de Auto Tile
é eu também tava precisando de um sistema de autotile,acostumado a mexer no RPG Maker XP,sem autotile mapear fica dificil .-.
Re: Sistema de Auto Tile
manis nao arruma mano o auto tile trava sua enginer pode dar ate bug nao aconselho
Eduardo- Membro Veterano
- Mensagens : 1178
Re: Sistema de Auto Tile
nossa cara eu tinha auto-tile para eeb e eo só que perdi na hora de formatar o pc e fiquei sem nada ;S só pedindo há alguem que tenha muita experiencia mesmo para fazer.
Att: Pablo
Att: Pablo
Pablo- Moderador Global
- Mensagens : 1371
Re: Sistema de Auto Tile
math320 escreveu:Alguem poderia me faser um tutorial de auto tile ja preocurei pra caramba e nao acho
Mesmo sendo não recomendável, tá aqui ele.
Obs: Não é recomendável por motivos de lag, ele abaixa consequentemente o FPS do teu jogo, até mesmo o PING.
Antes de fazer o tutorial, faça um backup, caso de erros, e não esqueça de deletar os mapas após colocar o mesmo.
Baixe o frmEditor_Map e substitua pelo teu, caso você queira modificar sem substituir, oque muda no novo frmEditor_map é a fraLayers, só alterar a do tutorial pela tua.
LINK: http://www.multiupload.nl/H6Z2GKVH06
Abra o modGameLogic
Procure por If tmr25 < Tick Then
Acima de "If tmr25 < Tick Then" coloque:
- Código:
If tmr250 < Tick Then
If autoAnim < 3 Then
autoAnim = autoAnim + 1
Else
autoAnim = 0
End If
tmr250 = GetTickCount + 250
End If
Abra o modGameEditors
E procure por If EditorTileWidth = 1 And EditorTileHeight = 1 Then
E substitua por:
- Código:
[/font]
[font=Verdana]If (EditorTileWidth = 1 And EditorTileHeight = 1) Or CurLayer = MapLayer.Autotile Then 'single tile
[/font][font=Verdana]
- Código:
[b]frmEditor_Map.shpSelected.height = PIC_Y[/b]
- Código:
If frmEditor_Map.optLayer(MapLayer.Autotile) Then
EditorTileX = (X \ 32)
EditorTileY = (Y \ 32)
EditorTileWidth = 3
EditorTileHeight = 4
frmEditor_Map.shpSelected.top = EditorTileY * PIC_Y
frmEditor_Map.shpSelected.Left = EditorTileX * PIC_X
frmEditor_Map.shpSelected.Sou lammer =D = 96
frmEditor_Map.shpSelected.height = 128
End If
Abra o modDirectDraw7
Procure por:
- Código:
[b]BltMapTile[/b]
- Código:
Public Sub BltMapTile(ByVal X As Long, ByVal Y As Long)
Dim rec As DxVBLib.RECT
Dim i As Long
With Map.Tile(X, Y)
For i = MapLayer.Ground To MapLayer.Mask2
' skip tile if tileset isn't set
If i = MapLayer.Autotile Then
BltAutotile X, Y
Else
If .Layer(i).Tileset > 0 And .Layer(i).Tileset <= NumTileSets Then
' sort out rec
rec.top = .Layer(i).Y * PIC_Y
rec.Bottom = rec.top + PIC_Y
rec.Left = .Layer(i).X * PIC_X
rec.Right = rec.Left + PIC_X
' render
Call Engine_BltFast(ConvertMapX(X * PIC_X), ConvertMapY(Y * PIC_Y), DDS_Tileset(.Layer(i).Tileset), rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
End If
End If
Next
End With
' Error handler
Exit Sub
errorhandler:
HandleError "BltMapTile", "modDirectDraw7", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
Agora vá até o final do modDirectDraw7 e coloque o códico:
- Código:
Public Function isAutotileMatch(ByVal x1 As Long, ByVal y1 As Long, ByVal x2 As Long, ByVal y2 As Long) As Boolean
isAutotileMatch = False
' end of the map, pretend there's a tile there :3
If x1 < 0 Or x1 > Map.MaxX Or x2 < 0 Or x2 > Map.MaxX Or y1 < 0 Or y1 > Map.MaxY Or y2 < 0 Or y2 > Map.MaxY Then
isAutotileMatch = True
Else
If Map.Tile(x1, y1).Layer(MapLayer.Autotile).X = Map.Tile(x2, y2).Layer(MapLayer.Autotile).X Then
If Map.Tile(x1, y1).Layer(MapLayer.Autotile).Y = Map.Tile(x2, y2).Layer(MapLayer.Autotile).Y Then
If Map.Tile(x1, y1).Layer(MapLayer.Autotile).Tileset = Map.Tile(x2, y2).Layer(MapLayer.Autotile).Tileset Then
isAutotileMatch = True
End If
End If
End If
End If
End Function
Public Sub BltAutotile(ByVal X As Long, ByVal Y As Long)
Dim rec As DxVBLib.RECT
Dim AutoSet As Long
Dim bTop As Long
Dim bLeft As Long
AutoSet = Map.Tile(X, Y).Layer(MapLayer.Autotile).Tileset
If AutoSet <= 0 Or AutoSet > NumTileSets Then Exit Sub
bTop = Map.Tile(X, Y).Layer(MapLayer.Autotile).Y * 32
bLeft = Map.Tile(X, Y).Layer(MapLayer.Autotile).X * 32
' animate
If DDSD_Tileset(AutoSet).lWidth = 384 Then bLeft = autoAnim * 96
' ########################
' ########################
' ### top left ###
' ########################
' ########################
With rec
.top = bTop + 32
.Bottom = .top + 16
.Left = bLeft + 0
.Right = .Left + 16
End With
' 1-dir horizontal join
If isAutotileMatch(X, Y, X - 1, Y) Then
With rec
.top = bTop + 32
.Bottom = .top + 16
.Left = bLeft + 64
.Right = .Left + 16
End With
' 2-dir horizontal join
If isAutotileMatch(X, Y, X + 1, Y) Then
With rec
.top = bTop + 32
.Bottom = .top + 16
.Left = bLeft + 32
.Right = .Left + 16
End With
End If
End If
' 1-dir vertical join
If isAutotileMatch(X, Y, X, Y - 1) Then
With rec
.top = bTop + 96
.Bottom = .top + 16
.Left = bLeft + 0
.Right = .Left + 16
End With
' 2-dir vertical join
If isAutotileMatch(X, Y, X, Y + 1) Then
With rec
.top = bTop + 64
.Bottom = .top + 16
.Left = bLeft + 0
.Right = .Left + 16
End With
End If
End If
' 1-dir corner join
If isAutotileMatch(X, Y, X - 1, Y) And isAutotileMatch(X, Y, X, Y - 1) Then
With rec
.top = bTop + 0
.Bottom = .top + 16
.Left = bLeft + 64
.Right = .Left + 16
End With
' 2-dir corner join
If isAutotileMatch(X, Y, X - 1, Y - 1) Then
With rec
.top = bTop + 96
.Bottom = .top + 16
.Left = bLeft + 64
.Right = .Left + 16
End With
End If
End If
' surrounded to the left or top
If (isAutotileMatch(X, Y, X - 1, Y) And isAutotileMatch(X, Y, X, Y - 1) And _
isAutotileMatch(X, Y, X, Y + 1) And isAutotileMatch(X, Y, X - 1, Y - 1) And _
isAutotileMatch(X, Y, X - 1, Y + 1)) Or (isAutotileMatch(X, Y, X - 1, Y) And _
isAutotileMatch(X, Y, X + 1, Y) And isAutotileMatch(X, Y, X, Y - 1) And _
isAutotileMatch(X, Y, X + 1, Y - 1) And isAutotileMatch(X, Y, X - 1, Y - 1)) Then
With rec
.top = bTop + 64
.Bottom = .top + 16
.Left = bLeft + 32
.Right = .Left + 16
End With
End If
Call Engine_BltFast(ConvertMapX((X * PIC_X)), ConvertMapY((Y * PIC_Y)), DDS_Tileset(AutoSet), rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
' ########################
' ########################
' ### top right ###
' ########################
' ########################
With rec
.top = bTop + 32
.Bottom = .top + 16
.Left = bLeft + 80
.Right = .Left + 16
End With
' 1-dir horizontal join
If isAutotileMatch(X, Y, X + 1, Y) Then
With rec
.top = bTop + 32
.Bottom = .top + 16
.Left = bLeft + 16
.Right = .Left + 16
End With
' 2-dir horizontal join
If isAutotileMatch(X, Y, X - 1, Y) Then
With rec
.top = bTop + 32
.Bottom = .top + 16
.Left = bLeft + 48
.Right = .Left + 16
End With
End If
End If
' 1-dir vertical join
If isAutotileMatch(X, Y, X, Y - 1) Then
With rec
.top = bTop + 96
.Bottom = .top + 16
.Left = bLeft + 80
.Right = .Left + 16
End With
' 2-dir vertical join
If isAutotileMatch(X, Y, X, Y + 1) Then
With rec
.top = bTop + 64
.Bottom = .top + 16
.Left = bLeft + 80
.Right = .Left + 16
End With
End If
End If
' 1-dir corner join
If isAutotileMatch(X, Y, X + 1, Y) And isAutotileMatch(X, Y, X, Y - 1) Then
With rec
.top = bTop + 0
.Bottom = .top + 16
.Left = bLeft + 80
.Right = .Left + 16
End With
' 2-dir corner join
If isAutotileMatch(X, Y, X + 1, Y - 1) Then
With rec
.top = bTop + 96
.Bottom = .top + 16
.Left = bLeft + 16
.Right = .Left + 16
End With
End If
End If
' surrounded to the right or top
If (isAutotileMatch(X, Y, X + 1, Y) And isAutotileMatch(X, Y, X, Y - 1) And _
isAutotileMatch(X, Y, X, Y + 1) And isAutotileMatch(X, Y, X + 1, Y - 1) And _
isAutotileMatch(X, Y, X + 1, Y + 1)) Or (isAutotileMatch(X, Y, X - 1, Y) And _
isAutotileMatch(X, Y, X + 1, Y) And isAutotileMatch(X, Y, X, Y - 1) And _
isAutotileMatch(X, Y, X + 1, Y - 1) And isAutotileMatch(X, Y, X - 1, Y - 1)) Then
With rec
.top = bTop + 64
.Bottom = .top + 16
.Left = bLeft + 48
.Right = .Left + 16
End With
End If
Call Engine_BltFast(ConvertMapX((X * PIC_X) + 16), ConvertMapY((Y * PIC_Y)), DDS_Tileset(AutoSet), rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
' ########################
' ########################
' ### bottom left ###
' ########################
' ########################
With rec
.top = bTop + 112
.Bottom = .top + 16
.Left = bLeft + 0
.Right = .Left + 16
End With
' 1-dir horizontal join
If isAutotileMatch(X, Y, X - 1, Y) Then
With rec
.top = bTop + 112
.Bottom = .top + 16
.Left = bLeft + 64
.Right = .Left + 16
End With
' 2-dir horizontal join
If isAutotileMatch(X, Y, X + 1, Y) Then
With rec
.top = bTop + 112
.Bottom = .top + 16
.Left = bLeft + 32
.Right = .Left + 16
End With
End If
End If
' 1-dir vertical join
If isAutotileMatch(X, Y, X, Y + 1) Then
With rec
.top = bTop + 48
.Bottom = .top + 16
.Left = bLeft + 0
.Right = .Left + 16
End With
' 2-dir vertical join
If isAutotileMatch(X, Y, X, Y - 1) Then
With rec
.top = bTop + 80
.Bottom = .top + 16
.Left = bLeft + 0
.Right = .Left + 16
End With
End If
End If
' 1-dir corner join
If isAutotileMatch(X, Y, X - 1, Y) And isAutotileMatch(X, Y, X, Y + 1) Then
With rec
.top = bTop + 16
.Bottom = .top + 16
.Left = bLeft + 64
.Right = .Left + 16
End With
' 2-dir corner join
If isAutotileMatch(X, Y, X - 1, Y + 1) Then
With rec
.top = bTop + 48
.Bottom = .top + 16
.Left = bLeft + 64
.Right = .Left + 16
End With
End If
End If
' surrounded to the left or top
If (isAutotileMatch(X, Y, X - 1, Y) And isAutotileMatch(X, Y, X, Y - 1) And _
isAutotileMatch(X, Y, X, Y + 1) And isAutotileMatch(X, Y, X - 1, Y - 1) And _
isAutotileMatch(X, Y, X - 1, Y + 1)) Or (isAutotileMatch(X, Y, X - 1, Y) And _
isAutotileMatch(X, Y, X + 1, Y) And isAutotileMatch(X, Y, X, Y + 1) And _
isAutotileMatch(X, Y, X + 1, Y + 1) And isAutotileMatch(X, Y, X - 1, Y + 1)) Then
With rec
.top = bTop + 80
.Bottom = .top + 16
.Left = bLeft + 64
.Right = .Left + 16
End With
End If
Call Engine_BltFast(ConvertMapX((X * PIC_X)), ConvertMapY((Y * PIC_Y) + 16), DDS_Tileset(AutoSet), rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
' ########################
' ########################
' ### bottom right ###
' ########################
' ########################
With rec
.top = bTop + 112
.Bottom = .top + 16
.Left = bLeft + 80
.Right = .Left + 16
End With
' 1-dir horizontal join
If isAutotileMatch(X, Y, X + 1, Y) Then
With rec
.top = bTop + 112
.Bottom = .top + 16
.Left = bLeft + 16
.Right = .Left + 16
End With
' 2-dir horizontal join
If isAutotileMatch(X, Y, X - 1, Y) Then
With rec
.top = bTop + 112
.Bottom = .top + 16
.Left = bLeft + 48
.Right = .Left + 16
End With
End If
End If
' 1-dir vertical join
If isAutotileMatch(X, Y, X, Y + 1) Then
With rec
.top = bTop + 48
.Bottom = .top + 16
.Left = bLeft + 80
.Right = .Left + 16
End With
' 2-dir vertical join
If isAutotileMatch(X, Y, X, Y - 1) Then
With rec
.top = bTop + 80
.Bottom = .top + 16
.Left = bLeft + 80
.Right = .Left + 16
End With
End If
End If
' 1-dir corner join
If isAutotileMatch(X, Y, X + 1, Y) And isAutotileMatch(X, Y, X, Y + 1) Then
With rec
.top = bTop + 16
.Bottom = .top + 16
.Left = bLeft + 80
.Right = .Left + 16
End With
' 2-dir corner join
If isAutotileMatch(X, Y, X + 1, Y + 1) Then
With rec
.top = bTop + 48
.Bottom = .top + 16
.Left = bLeft + 16
.Right = .Left + 16
End With
End If
End If
' surrounded to the left or top
If (isAutotileMatch(X, Y, X + 1, Y) And isAutotileMatch(X, Y, X, Y - 1) And _
isAutotileMatch(X, Y, X, Y + 1) And isAutotileMatch(X, Y, X + 1, Y - 1) And _
isAutotileMatch(X, Y, X + 1, Y + 1)) Or (isAutotileMatch(X, Y, X - 1, Y) And _
isAutotileMatch(X, Y, X + 1, Y) And isAutotileMatch(X, Y, X, Y + 1) And _
isAutotileMatch(X, Y, X + 1, Y + 1) And isAutotileMatch(X, Y, X - 1, Y + 1)) Then
With rec
.top = bTop + 80
.Bottom = .top + 16
.Left = bLeft + 48
.Right = .Left + 16
End With
End If
Call Engine_BltFast(ConvertMapX((X * PIC_X) + 16), ConvertMapY((Y * PIC_Y) + 16), DDS_Tileset(AutoSet), rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
End Sub
Abra o modEnumerations
E procure por
- Código:
[b]Public Enum MapLayer[/b]
- Código:
Public Enum MapLayer
Ground = 1
Autotile
Mask
Mask2
Fringe
Fringe2
' Make sure Layer_Count is below everything else
Layer_Count
End Enum
Sαkurαy- Membro Veterano
- Mensagens : 1386
Re: Sistema de Auto Tile
valeu
OBs deu erro aki
OBs deu erro aki
- Código:
If tmr250 < Tick Then
If autoAnim < 3 Then
autoAnim = autoAnim + 1
Else
autoAnim = 0
End If
tmr250 = GetTickCount + 250
End I
math320- Membro Sênior
- Mensagens : 255
Re: Sistema de Auto Tile
Então não sei..
Aqui funciona..
Nem recomendo por também este sistema, bugado, lagger, e bugará os mapas.
É uma dica.
Aqui funciona..
Nem recomendo por também este sistema, bugado, lagger, e bugará os mapas.
É uma dica.
Sαkurαy- Membro Veterano
- Mensagens : 1386
Re: Sistema de Auto Tile
o erro era que vc esqueceu o Dim Tmr250 As Long
math320- Membro Sênior
- Mensagens : 255
Re: Sistema de Auto Tile
GM HaLT X2 escreveu:Pablo: Mas não é para Elysium é para Eclipse Origins
Pablo Diz: tinha auto-tile para eeb e eo
Bom sobre o auto-tile eu não consegui arranjar um para você, e sobre oque você disse que tinha que por Tmr250 não era para por era só criar 1 timer e nomeia-lo de Tmr250
Pablo- Moderador Global
- Mensagens : 1371
Re: Sistema de Auto Tile
valeu mais o dim quase arrumo meu problema
math320- Membro Sênior
- Mensagens : 255
Tópicos semelhantes
» [Pedido]Sistema de Auto-Ataque/Auto-Correr
» Sistema de auto customização
» [EEB]Sistema de Auto-Mensagem
» SISTEMA DE AUTO ATAQUE POR CHECKBOX
» [EE][ES]Ativando Sistema De Auto-customisação
» Sistema de auto customização
» [EEB]Sistema de Auto-Mensagem
» SISTEMA DE AUTO ATAQUE POR CHECKBOX
» [EE][ES]Ativando Sistema De Auto-customisação
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
Dom 08 Abr 2018, 18:40 por JorgeZinhoo002
» Ojkjeeeee
Seg 10 Out 2016, 23:19 por Frozen
» Naruto Great Ninja Batle
Dom 09 Out 2016, 14:29 por GuiinhoLP
» Recrutamento de um Designer para jogo de CDZ.
Sex 23 Set 2016, 18:37 por newbie123
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:11 por Eduardo
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:11 por Eduardo
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:09 por Eduardo
» Projeto Dbz
Qua 31 Ago 2016, 23:46 por 157
» Avaliação - Sprites Naruto
Qua 31 Ago 2016, 17:09 por 157
» [Sprites] DBZ (Plix)
Qua 31 Ago 2016, 14:13 por 157
» Super Pack - Bleach V.2
Qua 31 Ago 2016, 13:02 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:04 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:03 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:02 por 157
» [Pedido] Contador de resets na FrmMain
Sáb 13 Ago 2016, 17:45 por killers97
» [Recrutamento]
Qua 10 Ago 2016, 23:09 por Monsters
» Ajuda erro no Cliente e Servidor do EEB 2.6!
Qua 20 Jul 2016, 19:53 por Binholx
» Como criar tilesets para Eclipse Origins 3.0 (POKÉMON)
Qua 29 Jun 2016, 19:46 por Sir Aaron
» Recursos Pokemons
Qua 29 Jun 2016, 19:34 por Sir Aaron
» erro frm flash
Qua 25 maio 2016, 13:51 por vava123
» Pedido - Pack de star wars
Qui 19 maio 2016, 05:06 por edsonpet
» [Ajuda] Sobre como por o servidor on por ip fixo
Ter 17 maio 2016, 16:14 por vava123
» Illusion Dimension - O Misterio do ID: BETA TESTE ONLINE
Sex 06 maio 2016, 20:02 por LksFlorencio
» [NSME] Naruto Shinobi Maker Engine
Qua 23 Mar 2016, 15:11 por luana1457
» Script /base,/casa Igual DBZ Forces
Dom 21 Fev 2016, 07:34 por JorgeZinhoo002
» [Pedido]Colar Tsunade item sprite eclipse origin
Qui 21 Jan 2016, 07:38 por lawllietbr
» [Pedido] Elysium
Sáb 19 Dez 2015, 11:31 por luana1457
» Naruto - Recruta
Ter 15 Dez 2015, 18:40 por Uchiha ~
» [Avaliação] - Kirito from Sword Art Online; Red and Pikachu from Pokemon.
Qua 25 Nov 2015, 13:43 por Thanakii
» [Avaliação] - Kenpachi Zaraki from Bleach; Libra Shiryu From Saint Seiya.
Qua 25 Nov 2015, 12:55 por Thanakii
» Demonstração de Sprites (Á VENDA!)
Qua 25 Nov 2015, 12:40 por Thanakii
» [Sistema de Reset]Para Eclipse .
Ter 24 Nov 2015, 16:51 por VithorUchi
» Cada Guild Nascer em Certo Mapa
Qui 12 Nov 2015, 06:13 por fabiofeijó_HIT
» Dragon Ball z Fusion A Grande Volta
Qui 29 Out 2015, 15:17 por fabiofeijó_HIT
» Ajuda com Ip fixo
Seg 26 Out 2015, 16:07 por GalaxyHells15
» Como Fazer um GUI no Eclipse Origins
Dom 18 Out 2015, 22:10 por Jeanleee
» Shisui Susanoo
Dom 18 Out 2015, 20:23 por Jeanleee
» Fantasy Art Online
Dom 18 Out 2015, 16:41 por daviih123
» Ajuda !!
Seg 05 Out 2015, 12:13 por andersonzika
» como passar o usuário e senha para o MainMenu?
Seg 28 Set 2015, 22:03 por Bëzerk
» Ru time ero 13 Type mismatch
Seg 28 Set 2015, 09:08 por andredarle
» Jarvis 1.3 Download
Qua 23 Set 2015, 18:42 por soares125
» [Avaliação/Disponibilização]Árvore 64x64
Qua 23 Set 2015, 15:15 por Over~
» Mlk's Zikas Signatures
Ter 22 Set 2015, 21:15 por Aikawa Reborn'
» Pedido de Sistemas
Dom 20 Set 2015, 18:05 por cleyton_05
» [AjudaEEB]Gerador de EXP
Qua 16 Set 2015, 14:04 por Over~
» [Avaliar] Base, Humano e Goblin.
Seg 14 Set 2015, 22:51 por .iBlaz3.
» Fabrica do Tio Cronos!
Dom 13 Set 2015, 21:31 por [ADM]Cronos
» [PixelArt] Minion - Meu malvado favorito
Dom 13 Set 2015, 12:51 por [ADM]Cronos
» [Avaliar] Goku Dragon Ball Z
Qua 05 Ago 2015, 21:36 por Setrux