载入数据库.bas
上传用户:pcw2004
上传日期:2022-02-02
资源大小:743k
文件大小:11k
源码类别:

DirextX编程

开发平台:

Visual Basic

  1. Attribute VB_Name = "载入数据库"
  2. Option Explicit
  3. '/////载入刷怪数据
  4. Public Sub LoadMonGen()
  5.     Dim i As Integer, SS As String
  6.     Dim AA() As String
  7.     Open App.Path & "DataMonGen.txt" For Input As #1
  8.         Do While Not EOF(1)
  9.             Line Input #1, SS
  10.             For i = 9 To 2 Step -1
  11.                 SS = Replace(SS, String(i, " "), " ")
  12.             Next i
  13.             If Left(SS, 1) <> ";" Then
  14.                 AA = Split(SS, " ")
  15.                 If UBound(AA) >= 5 Then
  16.                     If GetMonDBNum(AA(0)) > 0 Then
  17.                         MonGenCount = MonGenCount + 1
  18.                         ReDim Preserve MonGen(MonGenCount)
  19.                         MonGen(MonGenCount).MonName = AA(0)
  20.                         MonGen(MonGenCount).X = AA(1)
  21.                         MonGen(MonGenCount).Y = AA(2)
  22.                         MonGen(MonGenCount).mCount = AA(3)
  23.                         MonGen(MonGenCount).Pos = AA(4)
  24.                         MonGen(MonGenCount).mTime = AA(5)
  25.                     End If
  26.                 End If
  27.             End If
  28.             DoEvents
  29.         Loop
  30.     Close #1
  31.     
  32. End Sub
  33. '////////// 载入等级HP数据
  34. Public Sub LoadLevelHP()
  35.     Dim i As Integer
  36.     For i = 1 To 255
  37.         LevelHP(i) = ReadINIFile("HP", Str(i), App.Path & "DataHP.txt")
  38.     Next
  39.         
  40. End Sub
  41. '/////////  载入注册玩家信息
  42. Public Sub loadRegPlayerInfo()
  43.     Dim i As Integer, j As Integer
  44.     Open App.Path & "SavePlayerPlayerlist.txt" For Input As #1
  45.         Input #1, RegPlayerCount
  46.         ReDim RegPlayer(RegPlayerCount)
  47.         If RegPlayerCount > 0 Then
  48.             
  49.             For i = 1 To RegPlayerCount
  50.                 Input #1, RegPlayer(i).Id
  51.                 Input #1, RegPlayer(i).SelNum
  52.                 Input #1, RegPlayer(i).SavePlayerCount
  53.                 ReDim RegPlayer(i).mPlayer(RegPlayer(i).SavePlayerCount)
  54.                 If RegPlayer(i).SavePlayerCount > 0 Then
  55.                     For j = 1 To RegPlayer(i).SavePlayerCount
  56.                         Input #1, RegPlayer(i).mPlayer(RegPlayer(i).SavePlayerCount).PlayerName
  57.                         Input #1, RegPlayer(i).mPlayer(RegPlayer(i).SavePlayerCount).Level
  58.                         Input #1, RegPlayer(i).mPlayer(RegPlayer(i).SavePlayerCount).Job
  59.                         Input #1, RegPlayer(i).mPlayer(RegPlayer(i).SavePlayerCount).Sex
  60.                     Next
  61.                 End If
  62.             Next
  63.         End If
  64.     Close #1
  65.     
  66. End Sub
  67. '////////  载入注册玩家信息
  68. Public Sub LoadPlayer(PlayerNum As Integer, PlayerName As String)
  69.     Dim i As Integer, SS As String
  70.     Open App.Path & "SavePlayerSave" & PlayerName & ".DB" For Input As #1
  71.         Input #1, Player(PlayerNum).Name_名字
  72.         Input #1, Player(PlayerNum).Level
  73.         Input #1, Player(PlayerNum).Exp_经验值
  74.         Input #1, Player(PlayerNum).Job_职业
  75.         Input #1, Player(PlayerNum).Sex_性别
  76.         Input #1, SaveHero.Gold_金币
  77.         Input #1, Player(PlayerNum).Face
  78.         Input #1, Player(PlayerNum).X
  79.         Input #1, Player(PlayerNum).Y
  80.         Input #1, Player(PlayerNum).HP
  81.         Input #1, Player(PlayerNum).MaxHP
  82.         Input #1, Player(PlayerNum).MP
  83.         Input #1, Player(PlayerNum).MaxMP
  84.         Input #1, Player(PlayerNum).Clothing.State
  85.         Input #1, SS
  86.         Player(PlayerNum).Clothing.Item = GetItem(SS)
  87.         Input #1, Player(PlayerNum).Weapon.State
  88.         Input #1, SS
  89.         Player(PlayerNum).Weapon.Item = GetItem(SS)
  90.         Input #1, Player(PlayerNum).HeadPiece.State
  91.         Input #1, SS
  92.         Player(PlayerNum).HeadPiece.Item = GetItem(SS)
  93.         Input #1, Player(PlayerNum).Necklace.State
  94.         Input #1, SS
  95.         Player(PlayerNum).Necklace.Item = GetItem(SS)
  96.         Input #1, Player(PlayerNum).BraceletLeft.State
  97.         Input #1, SS
  98.         Player(PlayerNum).BraceletLeft.Item = GetItem(SS)
  99.         Input #1, Player(PlayerNum).BraceletRight.State
  100.         Input #1, SS
  101.         Player(PlayerNum).BraceletRight.Item = GetItem(SS)
  102.         Input #1, Player(PlayerNum).FingerRingLeft.State
  103.         Input #1, SS
  104.         Player(PlayerNum).FingerRingLeft.Item = GetItem(SS)
  105.         Input #1, Player(PlayerNum).FingerRingRight.State
  106.         Input #1, SS
  107.         Player(PlayerNum).FingerRingRight.Item = GetItem(SS)
  108.         
  109.         '////////  载入玩家包裹信息
  110.         For i = 0 To 39
  111.             Input #1, Player(PlayerNum).Bag(i).State
  112.             Input #1, SS
  113.             Player(PlayerNum).Bag(i).Item = GetItem(SS)
  114.         Next
  115.     Close #1
  116. End Sub
  117. '////////  保存玩家信息
  118. Public Sub SavePlayerInfo()
  119.     
  120.     Dim i As Integer
  121.     Open App.Path & "SavePlayerSave" & SaveHero.Name_名字 & ".DB" For Output As #1
  122.         Write #1, SaveHero.Name_名字
  123.         Write #1, SaveHero.Level
  124.         Write #1, SaveHero.Exp_经验值
  125.         Write #1, SaveHero.Job_职业
  126.         Write #1, SaveHero.Sex_性别
  127.         Write #1, SaveHero.Gold_金币
  128.         Write #1, SaveHero.Face
  129.         Write #1, SaveHero.X
  130.         Write #1, SaveHero.Y
  131.         Write #1, SaveHero.HP
  132.         Write #1, SaveHero.MaxHP
  133.         Write #1, SaveHero.MP
  134.         Write #1, SaveHero.MaxMP
  135.         
  136.         Write #1, SaveHero.Clothing.State
  137.         Write #1, ItemStr(SaveHero.Clothing.Item)
  138.         Write #1, SaveHero.Weapon.State
  139.         Write #1, ItemStr(SaveHero.Weapon.Item)
  140.         Write #1, SaveHero.HeadPiece.State
  141.         Write #1, ItemStr(SaveHero.HeadPiece.Item)
  142.         Write #1, SaveHero.Necklace.State
  143.         Write #1, ItemStr(SaveHero.Necklace.Item)
  144.         Write #1, SaveHero.BraceletLeft.State
  145.         Write #1, ItemStr(SaveHero.BraceletLeft.Item)
  146.         Write #1, SaveHero.BraceletRight.State
  147.         Write #1, ItemStr(SaveHero.BraceletRight.Item)
  148.         Write #1, SaveHero.FingerRingLeft.State
  149.         Write #1, ItemStr(SaveHero.FingerRingLeft.Item)
  150.         Write #1, SaveHero.FingerRingRight.State
  151.         Write #1, ItemStr(SaveHero.FingerRingRight.Item)
  152.         '//////////  保存包裹信息
  153.         For i = 0 To 39
  154.             Write #1, SaveHero.Bag(i).State
  155.             Write #1, ItemStr(SaveHero.Bag(i).Item)
  156.         Next
  157.     Close #1
  158. End Sub
  159. '/////////// 载入各等级所需经验
  160. Public Sub LoadLevelExpData()
  161.     Dim i As Integer
  162.     For i = 1 To 255
  163.         LevelExp(i) = ReadINIFile("Exp", Str(i), App.Path & "DataExp.txt")
  164.     Next
  165.     
  166. End Sub
  167. '///////////  载入NPC脚本
  168. Public Sub LoadNPCInfo()
  169.     Dim SS As Variant, Num As Integer
  170.     Dim nn As String, mStr As String
  171.     Dim i As Integer, j As Integer
  172.     Open App.Path & "DataNpcs.txt" For Input As #1
  173.         Line Input #1, nn
  174.         NpcCount = nn
  175.         
  176.         ReDim NPCInfo(NpcCount)
  177.         For i = 1 To nn
  178.             Line Input #1, mStr
  179.             For j = 9 To 2 Step -1
  180.                 mStr = Replace(mStr, String(j, " "), " ")
  181.             Next j
  182.             SS = Split(mStr, " ")
  183.             NPCInfo(i).Name_名称 = SS(0)
  184.             NPCInfo(i).X = SS(1)
  185.             NPCInfo(i).Y = SS(2)
  186.             NPCInfo(i).Pic = 17
  187.             NPCInfo(i).Image = SS(3)
  188.             NPCInfo(i).ScriptFileName = SS(4)
  189.             Map.Map5(NPCInfo(i).X, NPCInfo(i).Y) = Map.Map5(NPCInfo(i).X, NPCInfo(i).Y) + 1
  190.         Next
  191.     Close #1
  192.     For i = 1 To nn
  193.         LoadScriptFile i, App.Path & "NpcScript" & NPCInfo(i).ScriptFileName & ".txt"
  194.     Next
  195.                 
  196. End Sub
  197. Public Sub LoadMonDBData()
  198.     Dim i As Integer
  199.     Open App.Path & "DBMon.DB" For Input As #1
  200.         Input #1, MonDBCount
  201.         ReDim MonDB(MonDBCount)
  202.         For i = 1 To MonDBCount
  203.             Input #1, MonDB(i).Name_名称
  204.             Input #1, MonDB(i).Race_种族
  205.             Input #1, MonDB(i).RaceImage_种族图像
  206.             Input #1, MonDB(i).Appr_形象代码
  207.             Input #1, MonDB(i).Level_等级
  208.             Input #1, MonDB(i).UnDead_不死系
  209.             Input #1, MonDB(i).CoolEye_视觉范围
  210.             Input #1, MonDB(i).Exp_经验值
  211.             Input #1, MonDB(i).HP
  212.             Input #1, MonDB(i).MP
  213.             Input #1, MonDB(i).AC
  214.             Input #1, MonDB(i).MAC
  215.             Input #1, MonDB(i).DC_攻击力
  216.             Input #1, MonDB(i).DCMax_最大攻击力
  217.             Input #1, MonDB(i).MC_魔法力
  218.             Input #1, MonDB(i).SC_道术力
  219.             Input #1, MonDB(i).Speed_速度
  220.             Input #1, MonDB(i).Hit_命中率
  221.             Input #1, MonDB(i).WalkSpeed_行走速度
  222.             Input #1, MonDB(i).WalkStep_行走步伐
  223.             Input #1, MonDB(i).WalkWait_行走等待
  224.             Input #1, MonDB(i).AttactSpeed_攻击速度
  225.         Next
  226.     Close #1
  227.     
  228. End Sub
  229. '///////  载入魔法数据
  230. Public Sub LoadMagicDBData()
  231.     Dim i As Integer
  232.     Open App.Path & "DBMagic.DB" For Input As #1
  233.         Input #1, MagicDBCount
  234.         ReDim MagicDB(MagicDBCount)
  235.         If MagicDBCount > 0 Then
  236.             For i = 1 To MagicDBCount
  237.                 Input #1, MagicDB(i).MagID_序号
  238.                 Input #1, MagicDB(i).MagName_名称
  239.                 Input #1, MagicDB(i).EffectType_动作效果
  240.                 Input #1, MagicDB(i).Effect_魔法效果
  241.                 Input #1, MagicDB(i).Spell_魔法消耗
  242.                 Input #1, MagicDB(i).Power_基本威力
  243.                 Input #1, MagicDB(i).MaxPower_最大威力
  244.                 Input #1, MagicDB(i).DefSpell_升级魔法
  245.                 Input #1, MagicDB(i).DefPower_升级威力
  246.                 Input #1, MagicDB(i).DefMaxPower_升最大威力
  247.                 Input #1, MagicDB(i).Job_职业
  248.                 Input #1, MagicDB(i).NeedL1_1级等级
  249.                 Input #1, MagicDB(i).L1Train_1级经验
  250.                 Input #1, MagicDB(i).NeedL2_2级等级
  251.                 Input #1, MagicDB(i).L2Train_2级经验
  252.                 Input #1, MagicDB(i).NeedL3_3级等级
  253.                 Input #1, MagicDB(i).L3Train_3级经验
  254.                 Input #1, MagicDB(i).Delay_技能延时
  255.             Next
  256.         End If
  257.     Close #1
  258.             
  259. End Sub
  260. '///////  载入物品数据
  261. Public Sub LoadItemDBData()
  262.     Dim i As Integer
  263.     Open App.Path & "DBStdItem.DB" For Input As #1
  264.         Input #1, ItemDBCount
  265.         ReDim ItemDB(ItemDBCount)
  266.         If ItemDBCount > 0 Then
  267.             For i = 1 To ItemDBCount
  268.                 Input #1, ItemDB(i).Idx
  269.                 Input #1, ItemDB(i).Name
  270.                 Input #1, ItemDB(i).StdMode
  271.                 Input #1, ItemDB(i).Shape
  272.                 Input #1, ItemDB(i).Weight
  273.                 Input #1, ItemDB(i).Anicount
  274.                 Input #1, ItemDB(i).Source
  275.                 Input #1, ItemDB(i).Reserved
  276.                 Input #1, ItemDB(i).Looks
  277.                 Input #1, ItemDB(i).DuraMax
  278.                 Input #1, ItemDB(i).AC
  279.                 Input #1, ItemDB(i).Ac2
  280.                 Input #1, ItemDB(i).MAC
  281.                 Input #1, ItemDB(i).Mac2
  282.                 Input #1, ItemDB(i).DC
  283.                 Input #1, ItemDB(i).Dc2
  284.                 Input #1, ItemDB(i).MC
  285.                 Input #1, ItemDB(i).Mc2
  286.                 Input #1, ItemDB(i).SC
  287.                 Input #1, ItemDB(i).Sc2
  288.                 Input #1, ItemDB(i).Need
  289.                 Input #1, ItemDB(i).NeedLevel
  290.                 Input #1, ItemDB(i).Price
  291.             Next
  292.         End If
  293.     Close #1
  294.         
  295. End Sub
  296. Public Function GetMonDBNum(MonName As String) As Integer
  297.     Dim i As Integer
  298.     For i = 1 To MonDBCount
  299.         If MonName = MonDB(i).Name_名称 Then
  300.             GetMonDBNum = i
  301.             Exit For
  302.         End If
  303.     Next
  304. End Function