- Public Sub CargarMapa(ByVal map As Long, ByVal MAPFl As String)
- On Error GoTo errh
- Dim fh As Integer
- Dim MH As tMapHeader
- Dim Blqs() As tDatosBloqueados
- Dim L1() As Long
- Dim L2() As tDatosGrh
- Dim L3() As tDatosGrh
- Dim L4() As tDatosGrh
- Dim Triggers() As tDatosTrigger
- Dim Luces() As tDatosLuces
- Dim Particulas() As tDatosParticulas
- Dim Objetos() As tDatosObjs
- Dim NPCs() As tDatosNPC
- Dim TEs() As tDatosTE
- Dim MapSize As tMapSize
- Dim MapDat As tMapDat
- Dim i As Long
- Dim j As Long
- If Not FileExist(App.Path & "\Maps\Mapa" & map & ".csm", vbNormal) Then
- MsgBox "El arhivo " & App.Path & "\Maps\Mapa" & map & ".csm" & " no existe."
- Exit Sub
- End If
- fh = FreeFile
- Open App.Path & "\Maps\Mapa" & map & ".csm" For Binary Access Read As fh
- Get #fh, , MH
- Get #fh, , MapSize
- Get #fh, , MapDat
- ReDim L1(MapSize.XMin To MapSize.XMax, MapSize.YMin To MapSize.YMax) As Long
- Get #fh, , L1
- With MH
- If .NumeroBloqueados > 0 Then
- ReDim Blqs(1 To .NumeroBloqueados)
- Get #fh, , Blqs
- For i = 1 To .NumeroBloqueados
- MapData(map, Blqs(i).X, Blqs(i).Y).Blocked = 1
- Next i
- End If
- If .NumeroLayers(2) > 0 Then
- ReDim L2(1 To .NumeroLayers(2))
- Get #fh, , L2
- For i = 1 To .NumeroLayers(2)
- MapData(map, L2(i).X, L2(i).Y).Graphic(2) = L2(i).GrhIndex
- Next i
- End If
- If .NumeroLayers(3) > 0 Then
- ReDim L3(1 To .NumeroLayers(3))
- Get #fh, , L3
- For i = 1 To .NumeroLayers(3)
- MapData(map, L3(i).X, L3(i).Y).Graphic(3) = L3(i).GrhIndex
- Next i
- End If
- If .NumeroLayers(4) > 0 Then
- ReDim L4(1 To .NumeroLayers(4))
- Get #fh, , L4
- For i = 1 To .NumeroLayers(4)
- MapData(map, L4(i).X, L4(i).Y).Graphic(4) = L4(i).GrhIndex
- Next i
- End If
- If .NumeroTriggers > 0 Then
- ReDim Triggers(1 To .NumeroTriggers)
- Get #fh, , Triggers
- For i = 1 To .NumeroTriggers
- MapData(map, Triggers(i).X, Triggers(i).Y).Trigger = Triggers(i).Trigger
- Next i
- End If
- If .NumeroParticulas > 0 Then
- ReDim Particulas(1 To .NumeroParticulas)
- Get #fh, , Particulas
- For i = 1 To .NumeroParticulas
- 'MapData(Particulas(i).x, Particulas(i).y).particle_group_index = General_Particle_Create(Particulas(i).Particula, Particulas(i).x, Particulas(i).y)
- Next i
- End If
- If .NumeroLuces > 0 Then
- ReDim Luces(1 To .NumeroLuces)
- Get #fh, , Luces
- For i = 1 To .NumeroLuces
- 'Call frmMain.engine.Light_Create(Luces(i).x, Luces(i).y, Luces(i).color, Luces(i).Rango)
- Next i
- End If
- If .NumeroOBJs > 0 Then
- ReDim Objetos(1 To .NumeroOBJs)
- Get #fh, , Objetos
- For i = 1 To .NumeroOBJs
- MapData(map, Objetos(i).X, Objetos(i).Y).ObjInfo.ObjIndex = Objetos(i).ObjIndex
- MapData(map, Objetos(i).X, Objetos(i).Y).ObjInfo.amount = Objetos(i).ObjAmmount
- Next i
- End If
- If .NumeroNPCs > 0 Then
- ReDim NPCs(1 To .NumeroNPCs)
- Get #fh, , NPCs
- For i = 1 To .NumeroNPCs
- MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex = NPCs(i).NpcIndex
- If MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex > 0 Then
- Dim npcfile As String
- npcfile = DatPath & "NPCs.dat"
- If val(GetVar(npcfile, "NPC" & MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex, "PosOrig")) = 1 Then
- MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex = OpenNPC(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex)
- Npclist(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex).Orig.map = map
- Npclist(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex).Orig.X = NPCs(i).X
- Npclist(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex).Orig.Y = NPCs(i).Y
- Else
- MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex = OpenNPC(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex)
- End If
- If Not MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex = 0 Then
- Npclist(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex).Pos.map = map
- Npclist(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex).Pos.X = NPCs(i).X
- Npclist(MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex).Pos.Y = NPCs(i).Y
- Call MakeNPCChar(True, 0, MapData(map, NPCs(i).X, NPCs(i).Y).NpcIndex, map, NPCs(i).X, NPCs(i).Y)
- End If
- End If
- Next i
- End If
- If .NumeroTE > 0 Then
- ReDim TEs(1 To .NumeroTE)
- Get #fh, , TEs
- For i = 1 To .NumeroTE
- MapData(map, TEs(i).X, TEs(i).Y).TileExit.map = TEs(i).DestM
- MapData(map, TEs(i).X, TEs(i).Y).TileExit.X = TEs(i).DestX
- MapData(map, TEs(i).X, TEs(i).Y).TileExit.Y = TEs(i).DestY
- Next i
- End If
- End With
- Close fh
- For j = MapSize.YMin To MapSize.YMax
- For i = MapSize.XMin To MapSize.XMax
- If L1(i, j) > 0 Then
- MapData(map, i, j).Graphic(1) = L1(i, j)
- End If
- Next i
- Next j
- MapDat.map_name = Trim$(MapDat.map_name)
- MapInfo(map).name = MapDat.map_name
- MapInfo(map).Music = MapDat.music_number
- MapInfo(map).StartPos.map = val(ReadField(1, GetVar(MAPFl & ".dat", "Mapa" & map, "StartPos"), Asc("-")))
- MapInfo(map).StartPos.X = val(ReadField(2, GetVar(MAPFl & ".dat", "Mapa" & map, "StartPos"), Asc("-")))
- MapInfo(map).StartPos.Y = val(ReadField(3, GetVar(MAPFl & ".dat", "Mapa" & map, "StartPos"), Asc("-")))
- MapInfo(map).MagiaSinEfecto = val(GetVar(MAPFl & ".dat", "Mapa" & map, "MagiaSinEfecto"))
- MapInfo(map).InviSinEfecto = val(GetVar(MAPFl & ".dat", "Mapa" & map, "InviSinEfecto"))
- MapInfo(map).ResuSinEfecto = val(GetVar(MAPFl & ".dat", "Mapa" & map, "ResuSinEfecto"))
- MapInfo(map).NoEncriptarMP = val(GetVar(MAPFl & ".dat", "Mapa" & map, "NoEncriptarMP"))
- MapInfo(map).Seguro = MapDat.extra1
- If val(GetVar(MAPFl & ".dat", "Mapa" & map, "Pk")) = 0 Then
- MapInfo(map).Pk = True
- Else
- MapInfo(map).Pk = False
- End If
- MapInfo(map).Terreno = MapDat.terrain
- MapInfo(map).Zona = MapDat.zone
- MapInfo(map).Restringir = MapDat.restrict_mode
- MapInfo(map).BackUp = MapDat.backup_mode
- Exit Sub
- errh:
- Call LogError("Error cargando mapa: " & map & " ." & Err.description)
- End Sub





197![Legendario Inmortal [1] Legendario Inmortal [1]](./images/ranks/Rango36.gif)



![Dragon Ancestral [3] Dragon Ancestral [3]](./images/ranks/Rango32.gif)


![Dragon Ancestral [2] Dragon Ancestral [2]](./images/ranks/Rango31.gif)



