GS-Zone

Cargar Mapas IAO 1.2 Ir al Indice

Moderadores: Moderadores de Argentum, Especialistas de Argentum, Especialistas de Programación

11
Este tema se encuentra cerrado.

Nota » 17 Abr 2011 10:46

Bueno no sé, encontré algo que se ve lo había hecho hace tiempo, funcionar funciona, creo que ya lo había testeado, pero tengo solo la parte del servidor, van a tener que hacer el cliente, les dejo el procedimiento que carga los mapas .csm:
  1. Public Sub CargarMapa(ByVal map As Long, ByVal MAPFl As String)
  2. On Error GoTo errh
  3.  
  4. Dim fh As Integer
  5. Dim MH As tMapHeader
  6. Dim Blqs() As tDatosBloqueados
  7. Dim L1() As Long
  8. Dim L2() As tDatosGrh
  9. Dim L3() As tDatosGrh
  10. Dim L4() As tDatosGrh
  11. Dim Triggers() As tDatosTrigger
  12. Dim Luces() As tDatosLuces
  13. Dim Particulas() As tDatosParticulas
  14. Dim Objetos() As tDatosObjs
  15. Dim NPCs() As tDatosNPC
  16. Dim TEs() As tDatosTE
  17. Dim MapSize As tMapSize
  18. Dim MapDat As tMapDat
  19.  
  20. Dim i As Long
  21. Dim j As Long
  22.  
  23.     If Not FileExist(App.Path & "\Maps\Mapa" & map & ".csm", vbNormal) Then
  24.         MsgBox "El arhivo " & App.Path & "\Maps\Mapa" & map & ".csm" & " no existe."
  25.         Exit Sub
  26.     End If
  27.    
  28.     fh = FreeFile
  29.     Open App.Path & "\Maps\Mapa" & map & ".csm" For Binary Access Read As fh
  30.         Get #fh, , MH
  31.         Get #fh, , MapSize
  32.         Get #fh, , MapDat
  33.        
  34.         ReDim L1(MapSize.XMin To MapSize.XMax, MapSize.YMin To MapSize.YMax) As Long
  35.        
  36.         Get #fh, , L1
  37.        
  38.         With MH
  39.             If .NumeroBloqueados > 0 Then
  40.                 ReDim Blqs(1 To .NumeroBloqueados)
  41.                 Get #fh, , Blqs
  42.                 For i = 1 To .NumeroBloqueados
  43.                     MapData(map, Blqs(i).X, Blqs(i).Y).Blocked = 1
  44.                 Next i
  45.             End If
  46.            
  47.             If .NumeroLayers(2) > 0 Then
  48.                 ReDim L2(1 To .NumeroLayers(2))
  49.                 Get #fh, , L2
  50.                 For i = 1 To .NumeroLayers(2)
  51.                     MapData(map, L2(i).X, L2(i).Y).Graphic(2) = L2(i).GrhIndex
  52.                 Next i
  53.             End If
  54.            
  55.             If .NumeroLayers(3) > 0 Then
  56.                 ReDim L3(1 To .NumeroLayers(3))
  57.                 Get #fh, , L3
  58.                 For i = 1 To .NumeroLayers(3)
  59.                     MapData(map, L3(i).X, L3(i).Y).Graphic(3) = L3(i).GrhIndex
  60.                 Next i
  61.             End If
  62.            
  63.             If .NumeroLayers(4) > 0 Then
  64.                 ReDim L4(1 To .NumeroLayers(4))
  65.                 Get #fh, , L4
  66.                 For i = 1 To .NumeroLayers(4)
  67.                     MapData(map, L4(i).X, L4(i).Y).Graphic(4) = L4(i).GrhIndex
  68.                 Next i
  69.             End If
  70.            
  71.             If .NumeroTriggers > 0 Then
  72.                 ReDim Triggers(1 To .NumeroTriggers)
  73.                 Get #fh, , Triggers
  74.                 For i = 1 To .NumeroTriggers
  75.                     MapData(map, Triggers(i).X, Triggers(i).Y).Trigger = Triggers(i).Trigger
  76.                 Next i
  77.             End If
  78.            
  79.             If .NumeroParticulas > 0 Then
  80.                 ReDim Particulas(1 To .NumeroParticulas)
  81.                 Get #fh, , Particulas
  82.                 For i = 1 To .NumeroParticulas
  83.                     'MapData(Particulas(i).x, Particulas(i).y).particle_group_index = General_Particle_Create(Particulas(i).Particula, Particulas(i).x, Particulas(i).y)
  84.                 Next i
  85.             End If
  86.            
  87.             If .NumeroLuces > 0 Then
  88.                 ReDim Luces(1 To .NumeroLuces)
  89.                 Get #fh, , Luces
  90.                 For i = 1 To .NumeroLuces
  91.                     'Call frmMain.engine.Light_Create(Luces(i).x, Luces(i).y, Luces(i).color, Luces(i).Rango)
  92.                 Next i
  93.             End If
  94.            
  95.             If .NumeroOBJs > 0 Then
  96.                 ReDim Objetos(1 To .NumeroOBJs)
  97.                 Get #fh, , Objetos
  98.                 For i = 1 To .NumeroOBJs
  99.                     MapData(map, Objetos(i).X, Objetos(i).Y).ObjInfo.ObjIndex = Objetos(i).ObjIndex
  100.                     MapData(map, Objetos(i).X, Objetos(i).Y).ObjInfo.amount = Objetos(i).ObjAmmount
  101.                 Next i
  102.             End If
  103.                
  104.             If .NumeroNPCs > 0 Then
  105.                 ReDim NPCs(1 To .NumeroNPCs)
  106.                 Get #fh, , NPCs
  107.                 For i = 1 To .NumeroNPCs
  108.                     MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex = NPCs(i).NpcIndex
  109.                     If MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex > 0 Then
  110.                         Dim npcfile As String
  111.                        
  112.                         npcfile = DatPath & "NPCs.dat"
  113.        
  114.                         If val(GetVar(npcfile, "NPC" & MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex, "PosOrig")) = 1 Then
  115.                             MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex = OpenNPC(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex)
  116.                             Npclist(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex).Orig.map = map
  117.                             Npclist(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex).Orig.X = NPCs(i).X
  118.                             Npclist(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex).Orig.Y = NPCs(i).Y
  119.                         Else
  120.                             MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex = OpenNPC(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex)
  121.                         End If
  122.                         If Not MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex = 0 Then
  123.                             Npclist(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex).Pos.map = map
  124.                             Npclist(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex).Pos.X = NPCs(i).X
  125.                             Npclist(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex).Pos.Y = NPCs(i).Y
  126.                            
  127.                             Call MakeNPCChar(True, 0, MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex, map, NPCs(i).X, NPCs(i).Y)
  128.                         End If
  129.                     End If
  130.                 Next i
  131.             End If
  132.                
  133.             If .NumeroTE > 0 Then
  134.                 ReDim TEs(1 To .NumeroTE)
  135.                 Get #fh, , TEs
  136.                 For i = 1 To .NumeroTE
  137.                     MapData(map, TEs(i).X, TEs(i).Y).TileExit.map = TEs(i).DestM
  138.                     MapData(map, TEs(i).X, TEs(i).Y).TileExit.X = TEs(i).DestX
  139.                     MapData(map, TEs(i).X, TEs(i).Y).TileExit.Y = TEs(i).DestY
  140.                 Next i
  141.             End If
  142.            
  143.         End With
  144.    
  145.     Close fh
  146.    
  147.     For j = MapSize.YMin To MapSize.YMax
  148.         For i = MapSize.XMin To MapSize.XMax
  149.             If L1(i, j) > 0 Then
  150.                 MapData(map, i, j).Graphic(1) = L1(i, j)
  151.             End If
  152.         Next i
  153.     Next j
  154.    
  155.     MapDat.map_name = Trim$(MapDat.map_name)
  156.    
  157.     MapInfo(map).name = MapDat.map_name
  158.     MapInfo(map).Music = MapDat.music_number
  159.     MapInfo(map).StartPos.map = val(ReadField(1, GetVar(MAPFl & ".dat", "Mapa" & map, "StartPos"), Asc("-")))
  160.     MapInfo(map).StartPos.X = val(ReadField(2, GetVar(MAPFl & ".dat", "Mapa" & map, "StartPos"), Asc("-")))
  161.     MapInfo(map).StartPos.Y = val(ReadField(3, GetVar(MAPFl & ".dat", "Mapa" & map, "StartPos"), Asc("-")))
  162.     MapInfo(map).MagiaSinEfecto = val(GetVar(MAPFl & ".dat", "Mapa" & map, "MagiaSinEfecto"))
  163.     MapInfo(map).InviSinEfecto = val(GetVar(MAPFl & ".dat", "Mapa" & map, "InviSinEfecto"))
  164.     MapInfo(map).ResuSinEfecto = val(GetVar(MAPFl & ".dat", "Mapa" & map, "ResuSinEfecto"))
  165.     MapInfo(map).NoEncriptarMP = val(GetVar(MAPFl & ".dat", "Mapa" & map, "NoEncriptarMP"))
  166.     MapInfo(map).Seguro = MapDat.extra1
  167.    
  168.     If val(GetVar(MAPFl & ".dat", "Mapa" & map, "Pk")) = 0 Then
  169.         MapInfo(map).Pk = True
  170.     Else
  171.         MapInfo(map).Pk = False
  172.     End If
  173.    
  174.    
  175.     MapInfo(map).Terreno = MapDat.terrain
  176.     MapInfo(map).Zona = MapDat.zone
  177.     MapInfo(map).Restringir = MapDat.restrict_mode
  178.     MapInfo(map).BackUp = MapDat.backup_mode
  179. Exit Sub
  180.  
  181. errh:
  182.     Call LogError("Error cargando mapa: " & map & " ." & Err.description)
  183. End Sub
  184.  

Ahí te ves.

Imagen

Imagen

Imagen

Imagen
Software Developer
197
Legendario Inmortal [1]
Registrado: 5 Años de membresía!
Ubicación: Caseros
Mensajes: 5071
Aportes: 30

Nota » 17 Abr 2011 12:33

:| Flasheastes pero mal, ImperiumAO 1.2 no uso .csm, usa .map, y aparte yo uso los mapas de ImperiumAO 1.2 y lo unico que hice fue pasarlo por el conversor para hacerlo andar, quiza te confundistes con la version 1.4.5

Saludos ^^

Imagen
Imagen
Staff Zeiked-Games
641
Dragon Ancestral [3]
Registrado: Años de membresíaAños de membresía
Ubicación: Castelar
Mensajes: 3414
Aportes: 66
Premios: 3
Usuario omnipresente (1) Embajador (2)

Nota » 17 Abr 2011 12:46

Apartir de la 1.3 tiene csm.

Creo que esto es mas parte del cliente:

'MapData(Particulas(i).x, Particulas(i).y).particle_group_index = General_Particle_Create(Particulas(i).Particula, Particulas(i).x, Particulas(i).y)

Eso tan solo esta en el cliente.
Aguante River Plate ! ! !
902
Moderador
Registrado: Años de membresíaAños de membresíaAños de membresía
Ubicación: Villa adelina, Vicente Lopez.
Mensajes: 14427
Aportes: 305
Premios: 10
Señor Moderador (3) Señor Reglamento (1) Aportes (2) Embajador (3) Detector de Bugs (1)

Nota » 17 Abr 2011 14:01

Franeg95 escribió:Apartir de la 1.3 tiene csm.

Creo que esto es mas parte del cliente:

'MapData(Particulas(i).x, Particulas(i).y).particle_group_index = General_Particle_Create(Particulas(i).Particula, Particulas(i).x, Particulas(i).y)

Eso tan solo esta en el cliente.


Bueno loco, ayer dije en la reunión que no tengo idea de como funciona la carga de mapas xD jajaja
Yo les aporto esta que la hice vaya a saber cuando y vaya a saber para que versión.

La parte de las partículas está comentada porque era para el cliente esa parte.


 ! Nota del moderador Franeg95 :
Jaja, sabia eso! por eso explique, sino te regañaba (?)

Ahí te ves.

Imagen

Imagen

Imagen

Imagen
Software Developer
197
Legendario Inmortal [1]
Registrado: 5 Años de membresía!
Ubicación: Caseros
Mensajes: 5071
Aportes: 30

Nota » 22 Abr 2011 19:23

Jajajaja aparte de que dice que lo iso el, lo saco del ImperiumAO Clon.

Saludos ^^

Imagen
Imagen
Staff Zeiked-Games
641
Dragon Ancestral [3]
Registrado: Años de membresíaAños de membresía
Ubicación: Castelar
Mensajes: 3414
Aportes: 66
Premios: 3
Usuario omnipresente (1) Embajador (2)

Nota » 22 Abr 2011 19:59

Damian dijo:
"encontré algo que se ve lo había hecho hace tiempo,"
No dijo exactamente que lo hizo el.
On: Que cambia esto en la carga de mapas normal de alkon?

Imagen
Zaphir AO Staff - dylanalan
745
Dragon Ancestral [2]
Registrado: Años de membresíaAños de membresía
Ubicación: Pehuajó
Mensajes: 2789
Aportes: 27

#NotaEste post ha sido eliminado por Franeg95 en 24 Abr 2011 03:22.
Razón: La respuesta era un Offtopic, sin relación con la tematica.

Nota » 23 Abr 2011 17:47

No creo que damian halla echo eso...
No le pega el contador ;)

PointMe. ¿Serás el más votado?
Imagen


Publica tu ao en Ranking AO!
Imagen

© PointMe y Ranking AO by Dex Systems

Seguinos en Facebook: https://www.facebook.com/RankingAo

Cliente y servidor Dx7/Dx8 Optimizados
Programming my world
665
Moderador
Registrado: Años de membresíaAños de membresíaAños de membresía
Ubicación: Buenos Aires > Lanus Oeste
Mensajes: 3357
Aportes: 48
Premios: 2
Embajador (2)

Nota » 23 Abr 2011 18:22

xD Digan lo que quieran, no necesito demostrarle nada a nadie eh, yo mis códigos los programo solo y si necesito ayuda recurro a las personas que realmente saben.
Esa carga de mapas está así en el IAO Clon?? NO sabía.

Ahí te ves.

Imagen

Imagen

Imagen

Imagen
Software Developer
197
Legendario Inmortal [1]
Registrado: 5 Años de membresía!
Ubicación: Caseros
Mensajes: 5071
Aportes: 30

#NotaEste post ha sido eliminado por Cyrus en 26 Abr 2011 18:27.

#NotaEste post ha sido eliminado por ArzenaTh en 26 Abr 2011 18:25.
Razón: 2ble

Este tema se encuentra cerrado.

Volver a Otras versiones

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados