[Aportes indexados] CargarNPCBackUp Reparado

Estado
Cerrado para nuevas respuestas.

^[GS]^

GS-Zone Admin
Administrador
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:
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
 
 
Estado
Cerrado para nuevas respuestas.
Arriba