Ok, yes I can do this on a new mirage source even mirage source 2 and it works fine but i have a problem the problem is how would I do it for something like this.
Code:
Sub LoadPlayer(ByVal index As Long, _
ByVal Name As String)
Dim FileName As String
Dim i As Long
Dim N As Long
Call ClearPlayer(index)
FileName = App.Path & "\accounts\" & Trim$(Name) & ".ini"
Player(index).Login = GetVar(FileName, "GENERAL", "Login")
Player(index).Password = GetVar(FileName, "GENERAL", "Password")
Player(index).Pet.Alive = NO
For i = 1 To MAX_CHARS
' General
Player(index).Char(i).Name = GetVar(FileName, "CHAR" & i, "Name")
Player(index).Char(i).Sex = Val(GetVar(FileName, "CHAR" & i, "Sex"))
Player(index).Char(i).Class = Val(GetVar(FileName, "CHAR" & i, "Class"))
If Player(index).Char(i).Class = 0 Then Player(index).Char(i).Class = 1
Player(index).Char(i).Sprite = Val(GetVar(FileName, "CHAR" & i, "Sprite"))
Player(index).Char(i).Level = Val(GetVar(FileName, "CHAR" & i, "Level"))
Player(index).Char(i).Exp = Val(GetVar(FileName, "CHAR" & i, "Exp"))
Player(index).Char(i).Access = Val(GetVar(FileName, "CHAR" & i, "Access"))
Player(index).Char(i).PK = Val(GetVar(FileName, "CHAR" & i, "PK"))
Player(index).Char(i).Guild = GetVar(FileName, "CHAR" & i, "Guild")
Player(index).Char(i).Guildaccess = Val(GetVar(FileName, "CHAR" & i, "Guildaccess"))
' Vitals
Player(index).Char(i).HP = Val(GetVar(FileName, "CHAR" & i, "HP"))
Player(index).Char(i).MP = Val(GetVar(FileName, "CHAR" & i, "MP"))
Player(index).Char(i).SP = Val(GetVar(FileName, "CHAR" & i, "SP"))
' Stats
Player(index).Char(i).STR = Val(GetVar(FileName, "CHAR" & i, "str"))
Player(index).Char(i).DEF = Val(GetVar(FileName, "CHAR" & i, "DEF"))
Player(index).Char(i).Speed = Val(GetVar(FileName, "CHAR" & i, "SPEED"))
Player(index).Char(i).Magi = Val(GetVar(FileName, "CHAR" & i, "MAGI"))
Player(index).Char(i).POINTS = Val(GetVar(FileName, "CHAR" & i, "POINTS"))
' Worn equipment
Player(index).Char(i).ArmorSlot = Val(GetVar(FileName, "CHAR" & i, "ArmorSlot"))
Player(index).Char(i).WeaponSlot = Val(GetVar(FileName, "CHAR" & i, "WeaponSlot"))
Player(index).Char(i).HelmetSlot = Val(GetVar(FileName, "CHAR" & i, "HelmetSlot"))
Player(index).Char(i).ShieldSlot = Val(GetVar(FileName, "CHAR" & i, "ShieldSlot"))
' Position
Player(index).Char(i).Map = Val(GetVar(FileName, "CHAR" & i, "Map"))
Player(index).Char(i).x = Val(GetVar(FileName, "CHAR" & i, "X"))
Player(index).Char(i).y = Val(GetVar(FileName, "CHAR" & i, "Y"))
Player(index).Char(i).Dir = Val(GetVar(FileName, "CHAR" & i, "Dir"))
' Check to make sure that they aren't on map 0, if so reset'm
If Player(index).Char(i).Map = 0 Then
Player(index).Char(i).Map = START_MAP
Player(index).Char(i).x = START_X
Player(index).Char(i).y = START_Y
End If
' Inventory
For N = 1 To MAX_INV
Player(index).Char(i).Inv(N).num = Val(GetVar(FileName, "CHAR" & i, "InvItemNum" & N))
Player(index).Char(i).Inv(N).Value = Val(GetVar(FileName, "CHAR" & i, "InvItemVal" & N))
Player(index).Char(i).Inv(N).Dur = Val(GetVar(FileName, "CHAR" & i, "InvItemDur" & N))
Next
' Spells
For N = 1 To MAX_PLAYER_SPELLS
Player(index).Char(i).Spell(N) = Val(GetVar(FileName, "CHAR" & i, "Spell" & N))
Next
If Val(GetVar(FileName, "CHAR" & i, "HasPet")) = 1 Then
Player(index).Pet.Sprite = Val(GetVar(FileName, "CHAR" & i, "Pet"))
Player(index).Pet.Alive = YES
Player(index).Pet.Dir = DIR_UP
Player(index).Pet.Map = Player(index).Char(i).Map
Player(index).Pet.x = Player(index).Char(i).x + Int((Rnd * 3) - 1)
If Player(index).Pet.x < 0 Or Player(index).Pet.x > MAX_MAPX Then Player(index).Pet.x = GetPlayerX(index)
Player(index).Pet.y = Player(index).Char(i).y + Int((Rnd * 3) - 1)
If Player(index).Pet.y < 0 Or Player(index).Pet.y > MAX_MAPY Then Player(index).Pet.y = GetPlayerY(index)
Player(index).Pet.MapToGo = 0
Player(index).Pet.XToGo = -1
Player(index).Pet.YToGo = -1
Player(index).Pet.Level = Val(GetVar(FileName, "CHAR" & i, "PetLevel"))
Player(index).Pet.HP = Player(index).Pet.Level * 5 '???
End If
For N = 1 To MAX_FRIENDS
Player(index).Char(i).Friends(N) = GetVar(FileName, "CHAR" & i, "Friend" & N)
Next
FileName = App.Path & "\banks\" & Trim(Name) & ".ini"
' Bank
For N = 1 To MAX_BANK
Player(index).Char(i).Bank(N).num = Val(GetVar(FileName, "CHAR" & i, "BankItemNum" & N))
Player(index).Char(i).Bank(N).Value = Val(GetVar(FileName, "CHAR" & i, "BankItemVal" & N))
Player(index).Char(i).Bank(N).Dur = Val(GetVar(FileName, "CHAR" & i, "BankItemDur" & N))
Next N
Next
End Sub
and
Code:
Sub SavePlayer(ByVal index As Long)
Dim FileName As String
Dim i As Long
Dim N As Long
FileName = App.Path & "\accounts\" & Trim$(Player(index).Login) & ".ini"
Call PutVar(FileName, "GENERAL", "Login", Trim$(Player(index).Login))
Call PutVar(FileName, "GENERAL", "Password", Trim$(Player(index).Password))
For i = 1 To MAX_CHARS
' General
Call PutVar(FileName, "CHAR" & i, "Name", Trim$(Player(index).Char(i).Name))
Call PutVar(FileName, "CHAR" & i, "Class", STR(Player(index).Char(i).Class))
Call PutVar(FileName, "CHAR" & i, "Sex", STR(Player(index).Char(i).Sex))
Call PutVar(FileName, "CHAR" & i, "Sprite", STR(Player(index).Char(i).Sprite))
Call PutVar(FileName, "CHAR" & i, "Level", STR(Player(index).Char(i).Level))
Call PutVar(FileName, "CHAR" & i, "Exp", STR(Player(index).Char(i).Exp))
Call PutVar(FileName, "CHAR" & i, "Access", STR(Player(index).Char(i).Access))
Call PutVar(FileName, "CHAR" & i, "PK", STR(Player(index).Char(i).PK))
Call PutVar(FileName, "CHAR" & i, "Guild", Trim$(Player(index).Char(i).Guild))
Call PutVar(FileName, "CHAR" & i, "Guildaccess", STR(Player(index).Char(i).Guildaccess))
' Vitals
Call PutVar(FileName, "CHAR" & i, "HP", STR(Player(index).Char(i).HP))
Call PutVar(FileName, "CHAR" & i, "MP", STR(Player(index).Char(i).MP))
Call PutVar(FileName, "CHAR" & i, "SP", STR(Player(index).Char(i).SP))
' Stats
Call PutVar(FileName, "CHAR" & i, "str", STR(Player(index).Char(i).STR))
Call PutVar(FileName, "CHAR" & i, "DEF", STR(Player(index).Char(i).DEF))
Call PutVar(FileName, "CHAR" & i, "SPEED", STR(Player(index).Char(i).Speed))
Call PutVar(FileName, "CHAR" & i, "MAGI", STR(Player(index).Char(i).Magi))
Call PutVar(FileName, "CHAR" & i, "POINTS", STR(Player(index).Char(i).POINTS))
' Worn equipment
Call PutVar(FileName, "CHAR" & i, "ArmorSlot", STR(Player(index).Char(i).ArmorSlot))
Call PutVar(FileName, "CHAR" & i, "WeaponSlot", STR(Player(index).Char(i).WeaponSlot))
Call PutVar(FileName, "CHAR" & i, "HelmetSlot", STR(Player(index).Char(i).HelmetSlot))
Call PutVar(FileName, "CHAR" & i, "ShieldSlot", STR(Player(index).Char(i).ShieldSlot))
' Check to make sure that they aren't on map 0, if so reset'm
If Player(index).Char(i).Map = 0 Then
Player(index).Char(i).Map = START_MAP
Player(index).Char(i).x = START_X
Player(index).Char(i).y = START_Y
End If
' Position
Call PutVar(FileName, "CHAR" & i, "Map", STR(Player(index).Char(i).Map))
Call PutVar(FileName, "CHAR" & i, "X", STR(Player(index).Char(i).x))
Call PutVar(FileName, "CHAR" & i, "Y", STR(Player(index).Char(i).y))
Call PutVar(FileName, "CHAR" & i, "Dir", STR(Player(index).Char(i).Dir))
' Inventory
For N = 1 To MAX_INV
Call PutVar(FileName, "CHAR" & i, "InvItemNum" & N, STR(Player(index).Char(i).Inv(N).num))
Call PutVar(FileName, "CHAR" & i, "InvItemVal" & N, STR(Player(index).Char(i).Inv(N).Value))
Call PutVar(FileName, "CHAR" & i, "InvItemDur" & N, STR(Player(index).Char(i).Inv(N).Dur))
Next
' Spells
For N = 1 To MAX_PLAYER_SPELLS
Call PutVar(FileName, "CHAR" & i, "Spell" & N, STR(Player(index).Char(i).Spell(N)))
Next
' Pet
If i = Player(index).CharNum Then
If Player(index).Pet.Alive = YES Then
Call PutVar(FileName, "CHAR" & i, "HasPet", 1)
Call PutVar(FileName, "CHAR" & i, "Pet", STR(Player(index).Pet.Sprite))
Call PutVar(FileName, "CHAR" & i, "PetLevel", STR(Player(index).Pet.Level))
Else
Call PutVar(FileName, "CHAR" & i, "HasPet", 0)
Call DelVar(FileName, "CHAR" & i, "Pet") ' Saving space
Call DelVar(FileName, "CHAR" & i, "PetLevel")
End If
Else
Call PutVar(FileName, "CHAR" & i, "HasPet", 0)
Call DelVar(FileName, "CHAR" & i, "Pet") ' Saving space
Call DelVar(FileName, "CHAR" & i, "PetLevel")
End If
' Friend list
For N = 1 To MAX_FRIENDS
Call PutVar(FileName, "CHAR" & i, "Friend" & N, Player(index).Char(i).Friends(N))
Next
FileName = App.Path & "\banks\" & Trim(Player(index).Login) & ".ini"
' Bank
For N = 1 To MAX_BANK
Call PutVar(FileName, "CHAR" & i, "BankItemNum" & N, STR(Player(index).Char(i).Bank(N).num))
Call PutVar(FileName, "CHAR" & i, "BankItemVal" & N, STR(Player(index).Char(i).Bank(N).Value))
Call PutVar(FileName, "CHAR" & i, "BankItemDur" & N, STR(Player(index).Char(i).Bank(N).Dur))
Next N
Next
End Sub
It confused me since I have banks and pets it makes me wounder if its possible while keeping the banks and pets in ini. unless if you change them to .bin I could still use them..... haven't the clue.