CargarNPCBackUp Reparado
Aqui les dejo la version, funcional de CargarNPCBackUp, ya que con el actual, que utiliza el viejo metodo de lectura se estaban cometiendo errores en el cargado, y por ejemplo, el NPC de Propiedades volvia a vender las llaves.
En ES (FileIO.bas) del Servidor...
Remplazar Toda la funcion CargarNpcBackUp por la siguiente:
Aqui les dejo la version, funcional de CargarNPCBackUp, ya que con el actual, que utiliza el viejo metodo de lectura se estaban cometiendo errores en el cargado, y por ejemplo, el NPC de Propiedades volvia a vender las llaves.
En ES (FileIO.bas) del Servidor...
Remplazar Toda la funcion CargarNpcBackUp por la siguiente:
Código:
Sub CargarNpcBackUp(NpcIndex As Integer, ByVal NpcNumber As Integer)
'Status
If frmMain.Visible Then frmMain.txStatus.Caption = "Cargando backup Npc"
Dim Leer As clsLeerInis
If NpcNumber > 499 Then
Call Leer.Abrir(DatPath & "bkNPCs-HOSTILES.dat")
Else
Call Leer.Abrir(DatPath & "bkNPCs.dat")
End If
Npclist(NpcIndex).Numero = NpcNumber
Npclist(NpcIndex).Name = Leer.DarValor("NPC" & NpcNumber, "Name")
Npclist(NpcIndex).Desc = Leer.DarValor("NPC" & NpcNumber, "Desc")
Npclist(NpcIndex).Movement = val(Leer.DarValor("NPC" & NpcNumber, "Movement"))
Npclist(NpcIndex).NPCtype = val(Leer.DarValor("NPC" & NpcNumber, "NpcType"))
Npclist(NpcIndex).Char.Body = val(Leer.DarValor("NPC" & NpcNumber, "Body"))
Npclist(NpcIndex).Char.Head = val(Leer.DarValor("NPC" & NpcNumber, "Head"))
Npclist(NpcIndex).Char.Heading = val(Leer.DarValor("NPC" & NpcNumber, "Heading"))
Npclist(NpcIndex).Attackable = val(Leer.DarValor("NPC" & NpcNumber, "Attackable"))
Npclist(NpcIndex).Comercia = val(Leer.DarValor("NPC" & NpcNumber, "Comercia"))
Npclist(NpcIndex).Hostile = val(Leer.DarValor("NPC" & NpcNumber, "Hostile"))
Npclist(NpcIndex).GiveEXP = val(Leer.DarValor("NPC" & NpcNumber, "GiveEXP"))
Npclist(NpcIndex).GiveGLD = val(Leer.DarValor("NPC" & NpcNumber, "GiveGLD"))
Npclist(NpcIndex).InvReSpawn = val(Leer.DarValor("NPC" & NpcNumber, "InvReSpawn"))
Npclist(NpcIndex).Stats.MaxHP = val(Leer.DarValor("NPC" & NpcNumber, "MaxHP"))
Npclist(NpcIndex).Stats.MinHP = val(Leer.DarValor("NPC" & NpcNumber, "MinHP"))
Npclist(NpcIndex).Stats.MaxHIT = val(Leer.DarValor("NPC" & NpcNumber, "MaxHIT"))
Npclist(NpcIndex).Stats.MinHIT = val(Leer.DarValor("NPC" & NpcNumber, "MinHIT"))
Npclist(NpcIndex).Stats.Def = val(Leer.DarValor("NPC" & NpcNumber, "DEF"))
Npclist(NpcIndex).Stats.Alineacion = val(Leer.DarValor("NPC" & NpcNumber, "Alineacion"))
Npclist(NpcIndex).Stats.ImpactRate = val(Leer.DarValor("NPC" & NpcNumber, "ImpactRate"))
' Items
Dim LoopC As Integer
Dim ln As String
Npclist(NpcIndex).Invent.NroItems = val(Leer.DarValor("NPC" & NpcNumber, "NROITEMS"))
If Npclist(NpcIndex).Invent.NroItems > 0 Then
For LoopC = 1 To MAX_INVENTORY_SLOTS
ln = Leer.DarValor("NPC" & NpcNumber, "Obj" & LoopC)
Npclist(NpcIndex).Invent.Object(LoopC).ObjIndex = val(ReadField(1, ln, 45))
Npclist(NpcIndex).Invent.Object(LoopC).Amount = val(ReadField(2, ln, 45))
Next LoopC
Else
For LoopC = 1 To MAX_INVENTORY_SLOTS
Npclist(NpcIndex).Invent.Object(LoopC).ObjIndex = 0
Npclist(NpcIndex).Invent.Object(LoopC).Amount = 0
Next LoopC
End If
Npclist(NpcIndex).Inflacion = val(Leer.DarValor("NPC" & NpcNumber, "Inflacion"))
Npclist(NpcIndex).flags.NPCActive = True
Npclist(NpcIndex).flags.UseAINow = False
Npclist(NpcIndex).flags.Respawn = val(Leer.DarValor("NPC" & NpcNumber, "ReSpawn"))
Npclist(NpcIndex).flags.BackUp = val(Leer.DarValor("NPC" & NpcNumber, "BackUp"))
Npclist(NpcIndex).flags.Domable = val(Leer.DarValor("NPC" & NpcNumber, "Domable"))
Npclist(NpcIndex).flags.RespawnOrigPos = val(Leer.DarValor("NPC" & NpcNumber, "OrigPos"))
'Tipo de items con los que comercia
Npclist(NpcIndex).TipoItems = val(Leer.DarValor("NPC" & NpcNumber, "TipoItems"))
End Sub