魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~21开始游戏-商店NPC

魔塔之拯救白娘子 完整工程下载地址:
《魔塔之拯救白娘子》流程分析6:-商店NPC
设计界面:
商店NPC
子窗口代码:

Option Explicit


Dim 商店对话选择编号 As Integer

Private Sub Command1_Click()
Unload Me
商店对话窗口显示标志 = False
End Sub


Private Sub Form_Load()
     

     '获得主窗口的坐标
     Me.Left = frmMain.Left + 1000
     Me.Top = frmMain.Top + 3000
    
    Dim rtn As Long
    rtn = GetWindowLong(hWnd, GWL_EXSTYLE)
    rtn = rtn Or WS_EX_LAYERED
    SetWindowLong hWnd, GWL_EXSTYLE, rtn
    SetLayeredWindowAttributes hWnd, 0, 150, LWA_ALPHA
    
'让窗口在顶层
rtn = SetWindowPos(Me.hWnd, -1, 0, 0, 0, 0, 3)
'取消窗口在顶层
'rtn = SetWindowPos(F_V.hwnd, -2, 0, 0, 0, 0, 3)
    商店对话选择编号 = 1
    商店对话内容初始化
   
End Sub

Sub 商店对话内容初始化()

Select Case 商店对话ID
    
       Case 0  '3层商店
            Label_商店选择(0) = "25个金币可以任意选择一项:"
            Label_商店选择(1) = "增加 800 点生命"
            Label_商店选择(2) = "增加 4 点攻击"
            Label_商店选择(3) = "增加 4 点防御"
            Image_显示商店NPC图标.Picture = LoadPicture(App.Path & "\ico\商店中.bmp")
            Label1 = "商店:增强各种属性!"
        Case 1  '5层老人
            Label_商店选择(0) = "通过经验值升级人物等级:"
            Label_商店选择(1) = "等级 +1(需要 100 点)"
            Label_商店选择(2) = "攻击 +5(需要 30 点)"
            Label_商店选择(3) = "防御 +5(需要 30 点)"
            Image_显示商店NPC图标.Picture = LoadPicture(App.Path & "\ico\老人.bmp")
            Label1 = "神秘老人:增强各种属性!"
        Case 2  '5层商人
            Label_商店选择(0) = "使用金币购买以下钥匙:"
            Label_商店选择(1) = "一把黄钥匙(10 金币)"
            Label_商店选择(2) = "一把蓝钥匙(50 金币)"
            Label_商店选择(3) = "一把红钥匙(100 金币)"
            Image_显示商店NPC图标.Picture = LoadPicture(App.Path & "\ico\商人.bmp")
            Label1 = "神秘商人:买卖各色钥匙!"
        Case 3  '11层商店j
            Label_商店选择(0) = "100个金币可以任意选择一项:"
            Label_商店选择(1) = "增加 4000 点生命"
            Label_商店选择(2) = "增加 20 点攻击"
            Label_商店选择(3) = "增加 20 点防御"
            Image_显示商店NPC图标.Picture = LoadPicture(App.Path & "\ico\商店中中.bmp")
            Label1 = "商店:增强各种属性!"
        Case 4  '12层老人2
            Label_商店选择(0) = "卖出钥匙换取金币:"
            Label_商店选择(1) = "卖出一把黄钥匙(7 金币)"
            Label_商店选择(2) = "卖出一把蓝钥匙(35 金币)"
            Label_商店选择(3) = "卖出一把红钥匙(70 金币)"
            Image_显示商店NPC图标.Picture = LoadPicture(App.Path & "\ico\老人头.bmp")
                Label1 = "神秘老人:买卖各色钥匙!"
        Case 5  '13层商人2
            Label_商店选择(0) = "通过经验值升级人物等级:"
            Label_商店选择(1) = "等级 +3 (需要 270 点)"
            Label_商店选择(2) = "攻击 +20(需要 100 点)"
            Label_商店选择(3) = "防御 +20(需要 100 点)"
            Image_显示商店NPC图标.Picture = LoadPicture(App.Path & "\ico\商人2.bmp")
             Label1 = "神秘商人:增强各种属性!"
       
       End Select

Label_商店选择(4) = ""


End Sub

Private Sub Label_商店选择_Click(Index As Integer)
Label_商店选择(4) = ""
Select Case Index
Case 1 '选择第1项
    
     Select Case 商店对话ID
          
     Case 0 '25个金币增加 800 点生命
     
     If 人物信息.角色持有的金币 > 24 Then
     人物信息.角色生命值 = 人物信息.角色生命值 + 800
     人物信息.角色持有的金币 = 人物信息.角色持有的金币 - 25
     Label_商店选择(4) = "生命值增加了800点!"
     Else
     Label_商店选择(4) = "金币不够!请先去赚钱!"
     End If
     
     Case 1 '等级 +1(需要 100 点经验值)
     
     If 人物信息.角色的经验值 > 99 Then
     人物信息.角色等级 = 人物信息.角色等级 + 1
     人物信息.角色攻击力 = 人物信息.角色攻击力 + 5
     人物信息.角色防御值 = 人物信息.角色防御值 + 5
     人物信息.角色生命值 = 人物信息.角色生命值 + 1000
     人物信息.角色的经验值 = 人物信息.角色的经验值 - 100
     Label_商店选择(4) = "等级增加了1级!"
     Else
     Label_商店选择(4) = "经验值不够!请先去杀怪!"
     End If
     
     Case 2 '金币购买钥匙 一把黄钥匙(10 金币)
     
     If 人物信息.角色持有的金币 > 9 Then
        勇者包裹.黄钥匙数量 = 勇者包裹.黄钥匙数量 + 1
     人物信息.角色持有的金币 = 人物信息.角色持有的金币 - 10
     Label_商店选择(4) = "黄钥匙增加了1把!"
     Else
     Label_商店选择(4) = "金币不够!请先去赚钱!"
     End If
          
     Case 3 '100个金币增加 4000 点生命
     
     If 人物信息.角色持有的金币 > 99 Then
     人物信息.角色生命值 = 人物信息.角色生命值 + 4000
     人物信息.角色持有的金币 = 人物信息.角色持有的金币 - 100
     Label_商店选择(4) = "生命值增加了4000点!"
     Else
     Label_商店选择(4) = "金币不够!请先去赚钱!"
     End If
     
     Case 4 '卖出一把黄钥匙(7 金币
     
     If 勇者包裹.黄钥匙数量 > 0 Then
        勇者包裹.黄钥匙数量 = 勇者包裹.黄钥匙数量 - 1
        人物信息.角色持有的金币 = 人物信息.角色持有的金币 + 7
        Label_商店选择(4) = "金币增加了7!"
     Else
        Label_商店选择(4) = "黄钥匙数量不够!请先去打怪!"
     End If
     
     Case 5 '等级 +3 (需要 270 点经验)
     
     If 人物信息.角色的经验值 > 269 Then
     人物信息.角色的经验值 = 人物信息.角色的经验值 - 270
     人物信息.角色等级 = 人物信息.角色等级 + 1
     人物信息.角色攻击力 = 人物信息.角色攻击力 + 15
     人物信息.角色防御值 = 人物信息.角色防御值 + 15
     人物信息.角色生命值 = 人物信息.角色生命值 + 3000
     Label_商店选择(4) = "等级增加了3级!"
     Else
     Label_商店选择(4) = "经验值不够!请先去杀怪!"
     End If
     
     
     End Select
     
       
Case 2 '选择第2项
Select Case 商店对话ID
          
     Case 0 '25个金币增加 增加 4 点攻击
     
     If 人物信息.角色持有的金币 > 24 Then
     人物信息.角色攻击力 = 人物信息.角色攻击力 + 4
     人物信息.角色持有的金币 = 人物信息.角色持有的金币 - 25
     Label_商店选择(4) = "攻击力增加了4点!"
     Else
     Label_商店选择(4) = "金币不够!请先去赚钱!"
     End If
     
     Case 1 '攻击 +5(需要 30点经验值)
     
     If 人物信息.角色的经验值 > 29 Then
     人物信息.角色攻击力 = 人物信息.角色攻击力 + 5
     人物信息.角色的经验值 = 人物信息.角色的经验值 - 30
     Label_商店选择(4) = "攻击力增加了5点!"
     Else
     Label_商店选择(4) = "经验值不够!请先去杀怪!"
     End If
     
     Case 2 '金币购买钥匙 一把蓝钥匙(50 金币
     
     If 人物信息.角色持有的金币 > 49 Then
        勇者包裹.蓝钥匙数量 = 勇者包裹.蓝钥匙数量 + 1
     人物信息.角色持有的金币 = 人物信息.角色持有的金币 - 50
     Label_商店选择(4) = "蓝钥匙增加了1把!"
     Else
     Label_商店选择(4) = "金币不够!请先去赚钱!"
     End If
          
     Case 3 '100个金币增加 增加 20 点攻击
     
     If 人物信息.角色持有的金币 > 99 Then
     人物信息.角色攻击力 = 人物信息.角色攻击力 + 20
     人物信息.角色持有的金币 = 人物信息.角色持有的金币 - 100
     Label_商店选择(4) = "攻击力增加了20点!"
     Else
     Label_商店选择(4) = "金币不够!请先去赚钱!"
     End If
     
     Case 4 '卖出一把蓝钥匙(35 金币)
     
     If 勇者包裹.蓝钥匙数量 > 0 Then
        勇者包裹.蓝钥匙数量 = 勇者包裹.蓝钥匙数量 - 1
        人物信息.角色持有的金币 = 人物信息.角色持有的金币 + 35
        Label_商店选择(4) = "金币增加了35!"
     Else
        Label_商店选择(4) = "蓝钥匙数量不够!请先去打怪!"
     End If
     
     Case 5 '攻击 +20(需要 100 点经验
     
     If 人物信息.角色的经验值 > 99 Then
     人物信息.角色攻击力 = 人物信息.角色攻击力 + 20
     人物信息.角色的经验值 = 人物信息.角色的经验值 - 100
     Label_商店选择(4) = "攻击力增加了20点!"
     Else
     Label_商店选择(4) = "经验值不够!请先去杀怪!"
     End If
     
     
     End Select

Case 3 '选择第3项
Select Case 商店对话ID
          
     Case 0 '25个金币增加 增加 4 点防御
     
     If 人物信息.角色持有的金币 > 24 Then
     人物信息.角色防御值 = 人物信息.角色防御值 + 4
     人物信息.角色持有的金币 = 人物信息.角色持有的金币 - 25
     Label_商店选择(4) = "防御力增加了4点!"
     Else
     Label_商店选择(4) = "金币不够!请先去赚钱!"
     End If
     
     Case 1 '防御 +5(需要 30 点经验值)
     
     If 人物信息.角色的经验值 > 29 Then
     人物信息.角色防御值 = 人物信息.角色防御值 + 5
     人物信息.角色的经验值 = 人物信息.角色的经验值 - 30
     Label_商店选择(4) = "防御力增加了5点!"
     Else
     Label_商店选择(4) = "经验值不够!请先去杀怪!"
     End If
     
     Case 2 '金币购买钥匙 一把红钥匙(100 金币
     
     If 人物信息.角色持有的金币 > 99 Then
        勇者包裹.红钥匙数量 = 勇者包裹.红钥匙数量 + 1
     人物信息.角色持有的金币 = 人物信息.角色持有的金币 - 100
     Label_商店选择(4) = "红钥匙增加了1把!"
     Else
     Label_商店选择(4) = "金币不够!请先去赚钱!"
     End If
          
     Case 3 '100个金币增加 增加 20 点防御
     
     If 人物信息.角色持有的金币 > 99 Then
     人物信息.角色防御值 = 人物信息.角色防御值 + 20
     人物信息.角色持有的金币 = 人物信息.角色持有的金币 - 100
     Label_商店选择(4) = "防御力增加了20点!"
     Else
     Label_商店选择(4) = "金币不够!请先去赚钱!"
     End If
     
     Case 4 '卖出一把红钥匙(70 金币
     
     If 勇者包裹.红钥匙数量 > 0 Then
        勇者包裹.红钥匙数量 = 勇者包裹.红钥匙数量 - 1
        人物信息.角色持有的金币 = 人物信息.角色持有的金币 + 70
        Label_商店选择(4) = "金币增加了70!"
     Else
        Label_商店选择(4) = "红钥匙数量不够!请先去打怪!"
     End If
     
     Case 5 '防御 +20(需要 100点经验
     
     If 人物信息.角色的经验值 > 99 Then
     人物信息.角色防御值 = 人物信息.角色防御值 + 20
     人物信息.角色的经验值 = 人物信息.角色的经验值 - 100
     Label_商店选择(4) = "防御力增加了20点!"
     Else
     Label_商店选择(4) = "经验值不够!请先去杀怪!"
     End If
     
     
     End Select



'Case 4 '退出
'Me.Hide
'商店对话窗口显示标志 = False
End Select


End Sub

Private Sub Timer1_Timer()
If frmMain.WindowState = 1 Then
Me.Hide
Else
Me.Show
End If
If Me.Left - 1000 <> frmMain.Left Then Me.Left = frmMain.Left + 1000
     If Me.Top - 3000 <> frmMain.Top Then Me.Top = frmMain.Top + 3000
End Sub

猜你喜欢

转载自blog.csdn.net/gosub60/article/details/112863209