FrmMain.frm
上传用户:pcw2004
上传日期:2022-02-02
资源大小:743k
文件大小:76k
源码类别:

DirextX编程

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
  3. Begin VB.Form FrmMain 
  4.    BackColor       =   &H80000001&
  5.    BorderStyle     =   1  'Fixed Single
  6.    Caption         =   "仿传奇"
  7.    ClientHeight    =   9000
  8.    ClientLeft      =   45
  9.    ClientTop       =   435
  10.    ClientWidth     =   12000
  11.    Icon            =   "FrmMain.frx":0000
  12.    LinkTopic       =   "Form1"
  13.    ScaleHeight     =   600
  14.    ScaleMode       =   3  'Pixel
  15.    ScaleWidth      =   800
  16.    StartUpPosition =   2  '屏幕中心
  17.    Begin VB.Timer Timer2 
  18.       Enabled         =   0   'False
  19.       Interval        =   500
  20.       Left            =   1200
  21.       Top             =   600
  22.    End
  23.    Begin VB.TextBox RegHeroText 
  24.       BackColor       =   &H80000006&
  25.       BorderStyle     =   0  'None
  26.       BeginProperty Font 
  27.          Name            =   "宋体"
  28.          Size            =   12
  29.          Charset         =   134
  30.          Weight          =   400
  31.          Underline       =   0   'False
  32.          Italic          =   0   'False
  33.          Strikethrough   =   0   'False
  34.       EndProperty
  35.       ForeColor       =   &H80000004&
  36.       Height          =   270
  37.       Left            =   7320
  38.       TabIndex        =   5
  39.       Top             =   1590
  40.       Visible         =   0   'False
  41.       Width           =   2175
  42.    End
  43.    Begin VB.TextBox RegIDText 
  44.       BackColor       =   &H80000006&
  45.       BorderStyle     =   0  'None
  46.       BeginProperty Font 
  47.          Name            =   "宋体"
  48.          Size            =   12
  49.          Charset         =   134
  50.          Weight          =   400
  51.          Underline       =   0   'False
  52.          Italic          =   0   'False
  53.          Strikethrough   =   0   'False
  54.       EndProperty
  55.       ForeColor       =   &H80000004&
  56.       Height          =   240
  57.       Left            =   3720
  58.       TabIndex        =   4
  59.       Top             =   2475
  60.       Visible         =   0   'False
  61.       Width           =   1695
  62.    End
  63.    Begin VB.TextBox IDText 
  64.       BackColor       =   &H80000006&
  65.       BorderStyle     =   0  'None
  66.       BeginProperty Font 
  67.          Name            =   "宋体"
  68.          Size            =   12
  69.          Charset         =   134
  70.          Weight          =   400
  71.          Underline       =   0   'False
  72.          Italic          =   0   'False
  73.          Strikethrough   =   0   'False
  74.       EndProperty
  75.       ForeColor       =   &H80000004&
  76.       Height          =   270
  77.       Left            =   5400
  78.       TabIndex        =   3
  79.       Top             =   3960
  80.       Visible         =   0   'False
  81.       Width           =   2055
  82.    End
  83.    Begin MSWinsockLib.Winsock LoginClient 
  84.       Left            =   480
  85.       Top             =   600
  86.       _ExtentX        =   741
  87.       _ExtentY        =   741
  88.       _Version        =   393216
  89.    End
  90.    Begin VB.TextBox Text1 
  91.       Appearance      =   0  'Flat
  92.       BorderStyle     =   0  'None
  93.       Height          =   240
  94.       Left            =   3120
  95.       TabIndex        =   1
  96.       Top             =   8715
  97.       Visible         =   0   'False
  98.       Width           =   5775
  99.    End
  100.    Begin VB.Timer Timer1 
  101.       Interval        =   1
  102.       Left            =   840
  103.       Top             =   600
  104.    End
  105.    Begin MSWinsockLib.Winsock Client 
  106.       Left            =   120
  107.       Top             =   600
  108.       _ExtentX        =   741
  109.       _ExtentY        =   741
  110.       _Version        =   393216
  111.    End
  112.    Begin VB.Label Label2 
  113.       AutoSize        =   -1  'True
  114.       Caption         =   "Label2"
  115.       Height          =   180
  116.       Left            =   1320
  117.       TabIndex        =   2
  118.       Top             =   360
  119.       Visible         =   0   'False
  120.       Width           =   540
  121.    End
  122.    Begin VB.Label Label1 
  123.       AutoSize        =   -1  'True
  124.       BackStyle       =   0  'Transparent
  125.       Caption         =   "正在连接服务器......"
  126.       BeginProperty Font 
  127.          Name            =   "宋体"
  128.          Size            =   15
  129.          Charset         =   134
  130.          Weight          =   400
  131.          Underline       =   0   'False
  132.          Italic          =   0   'False
  133.          Strikethrough   =   0   'False
  134.       EndProperty
  135.       ForeColor       =   &H80000005&
  136.       Height          =   300
  137.       Left            =   4560
  138.       TabIndex        =   0
  139.       Top             =   4200
  140.       Width           =   3000
  141.    End
  142. End
  143. Attribute VB_Name = "FrmMain"
  144. Attribute VB_GlobalNameSpace = False
  145. Attribute VB_Creatable = False
  146. Attribute VB_PredeclaredId = True
  147. Attribute VB_Exposed = False
  148. Private Sub Client_Close()
  149.     If JiaoYi.State = True Then
  150.         JiaoYiOKCancel False
  151.         JiaoYi.State = False
  152.         Client.SendData PLAYERJIAOYIEND & KONGDATA & MainHeroNum & KONGDATA & JiaoYi.JiaoYiPlayerNum & NETKONGDATA
  153.         SendDataOK = False
  154.     End If
  155.     mSleep 100
  156.     Client.Close
  157. End Sub
  158. '////////  Server发送数据
  159. Private Sub ClientSendData(Str As String)
  160.     If Client.State = sckConnected Then
  161.         Client.SendData Str & NETKONGDATA
  162.     End If
  163. End Sub
  164. '////////  LoginServer发送数据
  165. Private Sub LoginClientSendData(Str As String)
  166.     If LoginClient.State = sckConnected Then
  167.         LoginClient.SendData Str & NETKONGDATA
  168.     End If
  169. End Sub
  170. Private Sub Client_Connect()
  171.     LoginClient.Close
  172. '    If LoginGameMusic.GetStatus = 1 Then LoginGameMusic.Stop
  173.     Set LoginGameMusic = Nothing
  174.     
  175.     Client.SendData LOGINNAME & KONGDATA & mHero(mSelHeroNum).mName & KONGDATA & mHero(mSelHeroNum).Job & KONGDATA & mHero(mSelHeroNum).Sex & NETKONGDATA
  176.     
  177. End Sub
  178. Private Sub Client_DataArrival(ByVal bytesTotal As Long)
  179.     Dim mData As String
  180.     Client.GetData mData, vbString
  181.     
  182.     NETDATACOUNT = NETDATACOUNT + 1
  183.     If NETDATACOUNT > 100 Then NETDATACOUNT = 0
  184.     ReDim Preserve NETDATA(NETDATACOUNT)
  185.     NETDATA(NETDATACOUNT) = mData
  186.     
  187. End Sub
  188. Public Sub PlayNetData()
  189.     Dim N As Integer, M As Integer
  190.     Dim AA As Integer, BB As String, CC As String, EE As Long, DD As Long
  191.     Dim MM(5) As String
  192.     On Error GoTo mErr
  193.     If NETDATACOUNT > 0 And NowNETData = "" Then
  194.         NowNETData = NETDATA(1)
  195.         If NETDATACOUNT > 1 Then
  196.             For M = 1 To NETDATACOUNT
  197.                 If M < NETDATACOUNT Then NETDATA(M) = NETDATA(M + 1)
  198.                 DoEvents
  199.             Next
  200.         End If
  201.         NETDATACOUNT = NETDATACOUNT - 1
  202.         ReDim Preserve NETDATA(NETDATACOUNT)
  203.         Dim mData As Variant, mWord As Variant, i As Integer, j As Integer, l As Integer
  204.         Dim mS As String
  205.         
  206.         mWord = Split(NowNETData, NETKONGDATA)
  207.         For i = 0 To UBound(mWord)
  208.             If Len(mWord(i)) > 4 Then
  209.                 mData = Split(mWord(i), KONGDATA)
  210.                 Select Case mData(0)
  211.                     Case PLAYERBAGITEMDATA      '玩家包裹物品
  212.                         For j = 0 To 39
  213.                             If Bag(j).State = False Then
  214.                                 Bag(j).State = True
  215.                                 Bag(j).ID = mData(1)
  216.                                 MM(0) = mData(2)
  217.                                 Bag(j).Item = GetItem(MM(0))
  218.                                 Exit For
  219.                             End If
  220.                         Next
  221.                     Case PLAYEREXPDATA      '玩家经验值
  222.                         Player(MainHeroNum).Exp_经验值 = mData(1)
  223.                         Player(MainHeroNum).MaxExp_所需经验 = mData(2)
  224.                     Case PLAYERGETEXP
  225.                         Player(MainHeroNum).Exp_经验值 = Player(MainHeroNum).Exp_经验值 + mData(1)
  226.                         AddTalkStr "获得" & mData(1) & "经验", D3DColorRGBA(255, 0, 0, 255)
  227.                     Case HEREMAPITEMCOUNT           '附近地图上物品数量
  228.                         MapItemCount = mData(1)
  229.                         ReDim MapItem(MapItemCount)
  230.                     Case HEREMAPITEMINFO            '附近地图上物品属性
  231.                         MapItem(mData(1)).ID = mData(2)
  232.                         MapItem(mData(1)).mItem.Name = mData(3)
  233.                         MapItem(mData(1)).mItem.Looks = mData(4)
  234.                         MapItem(mData(1)).X = mData(5)
  235.                         MapItem(mData(1)).Y = mData(6)
  236.                         
  237.                     Case MONFACE            '怪  方向
  238.                         For j = 1 To MonCount
  239.                             If Mon(j).ID = mData(1) Then
  240.                                 Mon(j).Face = mData(2)
  241.                                 Exit For
  242.                             End If
  243.                         Next
  244.                     Case MONHP          '怪HP
  245.                         For j = 1 To MonCount
  246.                             If Mon(j).ID = mData(1) Then
  247.                                 Mon(j).HP = mData(2)
  248.                                 Mon(j).MaxHP = mData(3)
  249.                                 Exit For
  250.                             End If
  251.                         Next
  252.                     Case MONACTDATA         '怪动作
  253.                         For j = 1 To MonCount
  254.                             If Mon(j).ID = mData(1) Then
  255.                                 Mon(j).Act = mData(2)
  256.                                 Mon(j).Face = mData(3)
  257.                                 Mon(j).Pic = 0
  258.                                 Mon(j).PicSpeed = 0
  259.                                 Exit For
  260.                             End If
  261.                         Next
  262.                     Case MONMOVE        '怪移动
  263.                         For j = 1 To MonCount
  264.                             If Mon(j).ID = mData(1) Then
  265.                                 Mon(j).X = mData(2)
  266.                                 Mon(j).Y = mData(3)
  267.                                 Mon(j).Act = Move_怪移动
  268.                                 Mon(j).Pic = 0
  269.                                 Mon(j).PicSpeed = 0
  270.                                 Mon(j).XOFFECT = 48
  271.                                 Mon(u).YOFFECT = 32
  272.                                 Exit For
  273.                             End If
  274.                         Next
  275.                     Case HEREMONCOUNT           '附近怪数量
  276.                         SaveMonCount = MonCount
  277.                         ReDim SaveMon(SaveMonCount)
  278.                         For j = 1 To SaveMonCount
  279.                             SaveMon(j) = Mon(j)
  280.                         Next
  281.                         MonCount = mData(1)
  282.                         ReDim Mon(MonCount)
  283.                     Case HEREMONINFO        '附近怪属性
  284. '                        MsgBox mData(1)
  285.                         Mon(mData(1)).ID = mData(2)
  286.                         For j = 1 To SaveMonCount
  287.                             If Mon(mData(1)).ID = SaveMon(j).ID Then
  288.                                 Mon(mData(1)) = SaveMon(j)
  289.                                 Exit For
  290.                             End If
  291.                         Next
  292.                         Mon(mData(1)).DBInfo.Race_种族 = mData(3)
  293.                         Mon(mData(1)).DBInfo.RaceImage_种族图像 = mData(4)
  294.                         Mon(mData(1)).DBInfo.Appr_形象代码 = mData(5)
  295.                         Mon(mData(1)).DBInfo.Name_名称 = mData(6)
  296.                         Mon(mData(1)).Face = mData(7)
  297.                         Mon(mData(1)).X = mData(8)
  298.                         Mon(mData(1)).Y = mData(9)
  299. '                        If Mon(mData(1)).Act <> mData(10) Then
  300. '                            Mon(mData(1)).Act = mData(10)
  301. '                            Mon(mData(1)).Pic = mData(11)
  302. '                        End If
  303.                         If mData(1) = MonCount Then MonPaiXu
  304.                     Case TISHIDATA          '提示信息
  305.                         MsgBox mData(1)
  306.                         
  307.                     Case REGIDSTATE
  308.                         If mData(1) = 0 Then
  309.                             MsgBox mData(2)
  310.                         ElseIf mData(1) = 1 Then
  311.                             MsgBox "注册成功!"
  312.                         End If
  313.                     Case LOGINSTATE     '登陆游戏状态
  314.                         If mData(1) = 0 Then
  315.                             MsgBox "登陆失败,账号错误!,请重新输入账号!", , "登陆失败"
  316.                         ElseIf mData(1) = 1 Then
  317.                             FrmMain.IDText.Visible = False
  318.                             IDLoginOK = True
  319.                         End If
  320.                     Case SAVEHERODATA       '角色信息
  321. '                        MsgBox "dkj"
  322.                         mHero(mData(1)).State = True
  323.                         mHero(mData(1)).mName = mData(2)
  324.                         mHero(mData(1)).Level = mData(3)
  325.                         mHero(mData(1)).Job = mData(4)
  326.                         mHero(mData(1)).Sex = mData(5)
  327.                     Case SELHERONUM     '选择角色
  328.                         If HeroID = mData(1) Then mSelHeroNum = mData(2)
  329.                         mHero(mSelHeroNum).mSel = 3
  330.                         mHero(mSelHeroNum).Pic = 0
  331.                         mHero(3 - mSelHeroNum).mSel = 2
  332.                         mHero(3 - mSelHeroNum).Pic = 12
  333.                         SelHeroMagic = True
  334.                         SelHeroMagicPic = 0
  335.                         SelHeroMagicPicSpeed = 0
  336.                     Case PLAYERSEX      '玩家性别
  337.                         If Player(mData(1)).Name_名字 = mData(2) Then
  338.                             Player(mData(1)).Sex_性别 = mData(3)
  339.                         End If
  340.                     Case PLAYERGOLD             '玩家金币
  341.                         If Player(mData(1)).Name_名字 = mData(2) Then
  342.                             Player(mData(1)).Gold_金币 = mData(3)
  343.                         End If
  344.                     Case GIVEITEMDATA           '得到物品
  345.                         Dim mCount As Integer
  346.                         If Player(mData(1)).Name_名字 = mData(2) Then
  347.                             
  348.                             MM(0) = mData(3)
  349.                             If UBound(mData) >= 4 Then
  350.                                 mCount = mData(4)
  351.                             Else
  352.                                 mCount = 1
  353.                             End If
  354.                             GetItems GetItem(MM(0)), mCount
  355.                             AddTalkStr "获得〖" & GetItem(MM(0)).Name & "〗", D3DColorRGBA(255, 0, 0, 255)
  356.                         End If
  357.                     Case PLAYERLEVEL            '玩家等级
  358.                         Player(mData(1)).Level = mData(3)
  359.                         AddTalkStr "恭喜你升到" & Player(mData(1)).Level & "级", D3DColorRGBA(255, 0, 0, 255)
  360.                     Case PLAYERPK               '玩家PK值
  361.                         Player(mData(1)).PK值 = mData(2)
  362.                     Case SCRIPTDATAINFO     '脚本信息
  363.                         SelNpcNum = mData(1)
  364.                         MM(0) = mData(2)
  365.                         GetText MM(0)
  366.                         NpcFrm.State = True
  367.                     Case MAPNPCCOUNTINFO        '地图上NPC数量
  368.                         NpcCount = mData(1)
  369.                         ReDim NPCInfo(NpcCount)
  370.                     Case MAPNPCINFO             '地图上NPC信息
  371.                         NPCInfo(mData(1)).X = mData(2)
  372.                         NPCInfo(mData(1)).Y = mData(3)
  373.                         NPCInfo(mData(1)).Name_名称 = mData(4)
  374.                         NPCInfo(mData(1)).Image = mData(5)
  375.                         Map.Map5(NPCInfo(mData(1)).X, NPCInfo(mData(1)).Y) = 1
  376.                     Case TALKINFO           '聊天信息
  377.                         Select Case mData(5)
  378.                             Case 0
  379.                                 MM(0) = mData(2)
  380.                                 MM(1) = mData(3)
  381.                                 DD = mData(4)
  382.                                 AddTalkStr MM(1), DD, MM(0)
  383.                                 If Player(mData(1)).Name_名字 = MM(0) Then
  384.                                     Player(mData(1)).LiaoTianInfo = InfoHuangHang(MM(1))
  385.                                     Player(mData(1)).LiaoTianLTime = GetTickCount
  386.                                 End If
  387.                             Case 1
  388.                                 MM(0) = mData(2)
  389.                                 MM(1) = mData(3)
  390.                                 DD = mData(4)
  391.                                 AddTalkStr MM(1), DD, MM(0)
  392.                         End Select
  393.                     Case PLAYERFUHUO
  394.                         Player(mData(1)).Dead = False
  395.                         Player(mData(1)).HP = Player(mData(1)).MaxHP
  396.                         Player(mData(1)).Act = Stand_站立
  397.                         Player(mData(1)).ActState = Stand_站立
  398.                         Player(mData(1)).Pic = 0
  399.                         
  400.                     Case PLAYERJIAOYIEND    '交易取消
  401.                         JiaoYiOKCancel False
  402.                     Case PLAYERJIAOYIOK     '交易确认
  403.                         If JiaoYi.JiaoYiOK = False Then
  404.                             JiaoYi.JiaoYiOK = True
  405.                         Else
  406.                             JiaoYiOKCancel True
  407.                         End If
  408.                     Case PLAYERJIAOYI       '交易
  409.                         JiaoYi.State = True
  410.                         JiaoYi.JiaoYiOK = False
  411.                         JiaoYi.JiaoYiPlayerNum = mData(1)
  412.                         JiaoYi.JiaoYiPlayerName = Player(mData(1)).Name_名字
  413.                         BagFrm.State = True: BagFrm.X = 0: BagFrm.Y = 30
  414.                         
  415.                     Case PLAYERJIAOYIITEM
  416.                         For N = 0 To 9
  417.                             If JiaoYi.BeiJiaoYiItems(N).State = False Then
  418.                                 JiaoYi.BeiJiaoYiItems(N).State = True
  419.                                 mS = mData(2)
  420.                                 JiaoYi.BeiJiaoYiItems(N).Item = GetItem(mS)
  421.                                 Exit For
  422.                             End If
  423.                         Next
  424.                     
  425.                     Case MONACTDATA
  426.                         For j = 1 To MonCount
  427.                             If Mon(j).ID = mData(1) Then
  428.                                 Mon(j).Act = mData(2)
  429.                                 Mon(j).Pic = 0
  430.                                 Mon(j).PicSpeed = 0
  431.                             End If
  432.                         Next
  433.                     Case PLAYERACTDATA
  434.                         If Player(mData(1)).Act <> Dead_死亡 And Player(mData(1)).Act <> mData(2) Then
  435.                             Player(mData(1)).Act = mData(2)
  436.                             Player(mData(1)).ActState = mData(2)
  437.                             Player(mData(1)).Pic = mData(3)
  438.                             Player(mData(1)).PicSpeed = 0
  439.                         End If
  440.                     Case PLAYERHP       '玩家HP
  441.                         Player(mData(1)).HP = mData(2)
  442.                         Player(mData(1)).MaxHP = mData(3)
  443.                     Case PLAYEREND      '玩家下线
  444.                         If mData(1) <> MainHeroNum Then
  445.                             AddTalkStr "玩家【" & Player(mData(1)).Name_名字 & "】已下线", D3DColorRGBA(255, 0, 0, 255)
  446.                         End If
  447.                         Player(mData(1)).Conneted = False
  448.                         Map.Map3(Player(mData(1)).X, Player(mData(1)).Y) = 0
  449.                     Case PLAYERMAGICDATA    '玩家魔法
  450.                         If mData(1) = MainHeroNum Then
  451.                             If mData(3) = HeroActType.AttAck_攻击 Then
  452.                                 NetAttackData = False
  453.                             ElseIf mData(3) = HeroActType.Magic_魔法 Then
  454.                                 NetMagicData = False
  455.                             End If
  456.                         Else
  457.                             Player(mData(1)).Act = mData(3)
  458.                             Player(mData(1)).Pic = 0
  459.                             Player(mData(1)).PicSpeed = 0
  460.                             Player(mData(1)).CanAct = False
  461.                         End If
  462.                         
  463.                         AA = mData(1)
  464.                         BB = mData(2)
  465.                         CC = mData(4)
  466.                         DD = mData(5)
  467.                         EE = mData(6)
  468.                         UserPlayerMagic AA, BB, CC, DD, EE
  469.                     Case NOWPLAYERCOUNT     '玩家总数
  470.                         PlayerCount = mData(1)
  471.                         ReDim Preserve Player(PlayerCount)
  472.                         ReDim Preserve PaiXuPlayerNum(PlayerCount)
  473.                     Case PlayerName     '玩家名字
  474.                         Player(mData(1)).Name_名字 = mData(2)
  475.                         If mData(1) <> MainHeroNum Then
  476.                             AddTalkStr "玩家【" & mData(2) & "】已上线", D3DColorRGBA(255, 0, 0, 255)
  477.                         End If
  478.                         Running = 2
  479.                     Case PLAYERXY       '玩家坐标
  480.                         Map.Map3(Player(mData(1)).X, Player(mData(1)).Y) = 0
  481.                         Player(mData(1)).X = mData(2)
  482.                         Player(mData(1)).Y = mData(3)
  483.                         Player(mData(1)).Act = Stand_站立
  484.                         Player(mData(1)).ActState = Stand_站立
  485.                         Map.Map3(Player(mData(1)).X, Player(mData(1)).Y) = mData(1)
  486.                         Player(mData(1)).Conneted = True
  487.                         PaiXuPlayer
  488.                     Case PLAYERATTACKDATA
  489.                         If mData(1) = MainHeroNum Then
  490.                             NetAttackData = False
  491.                         Else
  492.                             Player(mData(1)).Act = AttAck_攻击
  493.                             Player(mData(1)).ActState = AttAck_攻击
  494.                             Player(mData(1)).Pic = 0
  495.                             Player(mData(1)).PicSpeed = 0
  496.                         End If
  497.                     Case WALKDATA       '玩家走
  498.                         If mData(1) = MainHeroNum Then
  499.                             NetWalkData = False
  500.                         Else
  501.                             Map.Map3(Player(mData(1)).X, Player(mData(1)).Y) = 0
  502.                             Player(mData(1)).Act = walk_走
  503.                             Player(mData(1)).Pic = 0
  504.                             Player(mData(1)).PicSpeed = 0
  505.                             Player(mData(1)).X = mData(2)
  506.                             Player(mData(1)).Y = mData(3)
  507.                             Player(mData(1)).XOFFECT = 48
  508.                             Player(mData(1)).YOFFECT = 32
  509.                             Player(mData(1)).Face = mData(4)
  510.                             Player(mData(1)).CanAct = False
  511.                             Map.Map3(Player(mData(1)).X, Player(mData(1)).Y) = mData(1)
  512.                             Player(mData(1)).Conneted = True
  513.                             PaiXuPlayer
  514.                         End If
  515.                     Case RUNDATA        '玩家跑
  516.                         If mData(1) = MainHeroNum Then
  517.                             NetRunData = False
  518.                         Else
  519.                             Map.Map3(Player(mData(1)).X, Player(mData(1)).Y) = 0
  520.                             Player(mData(1)).Act = Run_跑
  521.                             Player(mData(1)).Pic = 0
  522.                             Player(mData(1)).PicSpeed = 0
  523.                             Player(mData(1)).X = mData(2)
  524.                             Player(mData(1)).Y = mData(3)
  525.                             Player(mData(1)).XOFFECT = 96
  526.                             Player(mData(1)).YOFFECT = 64
  527.                             Player(mData(1)).Face = mData(4)
  528.                             Player(mData(1)).CanAct = False
  529.                             Map.Map3(Player(mData(1)).X, Player(mData(1)).Y) = mData(1)
  530.                             Player(mData(1)).Conneted = True
  531.                             PaiXuPlayer
  532.                         End If
  533.                     Case PLAYERFACEDATA     '玩家方向
  534.                         Player(mData(1)).Face = mData(2)
  535.                     Case PlayerNum          '玩家编号
  536.                         MainHeroNum = mData(1)
  537.                         Dim k As Integer
  538.                         For k = 0 To 39
  539.                             Bag(k).State = False
  540.                         Next
  541.                         TalkCount = 0
  542.                         ReDim Preserve TalkStr(TalkCount)
  543. '                        Player(MainHeroNum) = SaveHero
  544.                         Client.SendData LOGINNAME & KONGDATA & mLoginName & NETKONGDATA
  545.                         GetHeroInfo
  546.                         Player(MainHeroNum).Act = Stand_站立
  547.                         Map.Map3(Player(MainHeroNum).X, Player(MainHeroNum).Y) = MainHeroNum
  548.                         DoEvents
  549.                         Label1.Visible = False
  550.                         AddTalkStr "欢迎进入仿传奇,您可以在游戏中随意PK,如果有人的话~", D3DColorRGBA(20, 180, 100, 255)
  551.                         AddTalkStr "祝您在游戏中玩的开心、愉快~~~~!!,感谢您对我的支持!!!", D3DColorRGBA(20, 180, 100, 255)
  552.                         Player(MainHeroNum).Gold_金币 = 1000000
  553.                         MainLoop
  554.                     Case CLOTHINGDATA       '衣服
  555.                         Player(mData(1)).Clothing.State = mData(2)
  556.                         mS = mData(3)
  557.                         If Player(mData(1)).Clothing.State = True Then Player(mData(1)).Clothing.Item = GetItem(mS)
  558.                         If mData(1) = MainHeroNum Then GetHeroInfo
  559.                     Case WEAPONDATA         '武器
  560.                         Player(mData(1)).Weapon.State = mData(2)
  561.                         mS = mData(3)
  562.                         If mData(2) <> 0 Then Player(mData(1)).Weapon.Item = GetItem(mS)
  563.                         If mData(1) = MainHeroNum Then GetHeroInfo
  564.                     Case HEADPIECEDATA         '头盔
  565.                         Player(mData(1)).HeadPiece.State = mData(2)
  566.                         mS = mData(3)
  567.                         If mData(2) <> 0 Then Player(mData(1)).HeadPiece.Item = GetItem(mS)
  568.                         If mData(1) = MainHeroNum Then GetHeroInfo
  569.                     Case NECKLACEDATA         '项链
  570.                         Player(mData(1)).Necklace.State = mData(2)
  571.                         mS = mData(3)
  572.                         If mData(2) <> 0 Then Player(mData(1)).Necklace.Item = GetItem(mS)
  573.                         If mData(1) = MainHeroNum Then GetHeroInfo
  574.                     Case BRACELETLEFTDATA         '左手镯
  575.                         Player(mData(1)).BraceletLeft.State = mData(2)
  576.                         mS = mData(3)
  577.                         If mData(2) <> 0 Then Player(mData(1)).BraceletLeft.Item = GetItem(mS)
  578.                         If mData(1) = MainHeroNum Then GetHeroInfo
  579.                     Case BRACELETRIGHTDATA         '右手镯
  580.                         Player(mData(1)).BraceletRight.State = mData(2)
  581.                         mS = mData(3)
  582.                         If mData(2) <> 0 Then Player(mData(1)).BraceletRight.Item = GetItem(mS)
  583.                         If mData(1) = MainHeroNum Then GetHeroInfo
  584.                     Case FINGERRINGLEFTDATA         '左戒指
  585.                         Player(mData(1)).FingerringLeft.State = mData(2)
  586.                         mS = mData(3)
  587.                         If mData(2) <> 0 Then Player(mData(1)).FingerringLeft.Item = GetItem(mS)
  588.                         If mData(1) = MainHeroNum Then GetHeroInfo
  589.                     Case FINGERRINGRIGHTDATA         '右戒指
  590.                         Player(mData(1)).FingerringRight.State = mData(2)
  591.                         mS = mData(3)
  592.                         If mData(2) <> 0 Then Player(mData(1)).FingerringRight.Item = GetItem(mS)
  593.                         If mData(1) = MainHeroNum Then GetHeroInfo
  594.                 End Select
  595.                 
  596.                 
  597.             End If
  598.             DoEvents
  599. mErr:
  600.         Next
  601.         
  602.     End If
  603.     NowNETData = ""
  604.     
  605.     Exit Sub
  606. End Sub
  607. '/////////  点击人物装备窗口
  608. Private Sub ClickHeroInfoFrm(X As Single, Y As Single)
  609.     Dim nItem As ItemType
  610.     '///////////////////////////////////////  放置手镯左   /////////////////////////////////////////
  611.     If X > HeroInfoFrm.X + 43 And X < HeroInfoFrm.X + 77 And _
  612.             Y > HeroInfoFrm.Y + 175 And Y < HeroInfoFrm.Y + 207 And HeroInfoFrm.Type = 0 Then
  613.             If Player(MainHeroNum).BraceletLeft.State = True Then
  614.                 nItem = Player(MainHeroNum).BraceletLeft.Item
  615.                 If Mouse.Item.State = True Then
  616.                     If Mouse.Item.Item.StdMode = 24 Or Mouse.Item.Item.StdMode = 26 Then
  617.                         Player(MainHeroNum).BraceletLeft.Item = Mouse.Item.Item
  618.                         Client.SendData BRACELETLEFTDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).BraceletLeft.Item) & NETKONGDATA
  619.                         Mouse.Item.Item = nItem
  620.                     End If
  621.                 Else
  622.                     
  623.                     Player(MainHeroNum).BraceletLeft.State = False
  624.                     Client.SendData BRACELETLEFTDATA & KONGDATA & MainHeroNum & KONGDATA & 0 & KONGDATA & ItemStr(Player(MainHeroNum).BraceletLeft.Item) & NETKONGDATA
  625.                     Mouse.Item.State = True
  626.                     Mouse.Item.Item = Player(MainHeroNum).BraceletLeft.Item
  627.                 End If
  628.                 GetHeroInfo
  629.                 Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  630.                 
  631.             Else
  632.                 If Mouse.Item.State = True Then
  633.                     If Mouse.Item.Item.StdMode = 24 Or Mouse.Item.Item.StdMode = 26 Then
  634.                         Player(MainHeroNum).BraceletLeft.State = True
  635.                         Player(MainHeroNum).BraceletLeft.Item = Mouse.Item.Item
  636.                         Client.SendData BRACELETLEFTDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).BraceletLeft.Item) & NETKONGDATA
  637.                         Mouse.Item.State = False
  638.                     GetHeroInfo
  639.                     Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  640.                     End If
  641.                 End If
  642.             End If
  643. '///////////////////////////////////////  放置手镯右   /////////////////////////////////////////
  644.         ElseIf X > HeroInfoFrm.X + 168 And X < HeroInfoFrm.X + 200 And _
  645.             Y > HeroInfoFrm.Y + 175 And Y < HeroInfoFrm.Y + 207 And HeroInfoFrm.Type = 0 Then
  646.             If Player(MainHeroNum).BraceletRight.State = True Then
  647.                 nItem = Player(MainHeroNum).BraceletRight.Item
  648.                 If Mouse.Item.State = True Then
  649.                     If Mouse.Item.Item.StdMode = 24 Or Mouse.Item.Item.StdMode = 26 Then
  650.                         Player(MainHeroNum).BraceletRight.Item = Mouse.Item.Item
  651.                         Client.SendData BRACELETRIGHTDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).BraceletRight.Item) & NETKONGDATA
  652.                         Mouse.Item.Item = nItem
  653.                         
  654.                     End If
  655.                 Else
  656.                     Client.SendData BRACELETRIGHTDATA & KONGDATA & MainHeroNum & KONGDATA & 0 & KONGDATA & ItemStr(Player(MainHeroNum).BraceletRight.Item) & NETKONGDATA
  657.                     Mouse.Item.Item = Player(MainHeroNum).BraceletRight.Item
  658.                     Player(MainHeroNum).BraceletRight.State = False
  659.                     Mouse.Item.State = True
  660.                     
  661.                     
  662.                 End If
  663.                 GetHeroInfo
  664.                 Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  665.             Else
  666.                 If Mouse.Item.State = True Then
  667.                     If Mouse.Item.Item.StdMode = 24 Or Mouse.Item.Item.StdMode = 26 Then
  668.                         
  669.                         Player(MainHeroNum).BraceletRight.State = True
  670.                         Player(MainHeroNum).BraceletRight.Item = Mouse.Item.Item
  671.                         Client.SendData BRACELETRIGHTDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).BraceletRight.Item) & NETKONGDATA
  672.                         Mouse.Item.State = False
  673.                     GetHeroInfo
  674.                     Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  675.                     End If
  676.                 End If
  677.             End If
  678. '////////////////////////////////////       放置武器        ///////////////////////////
  679.         ElseIf X > HeroInfoFrm.X + 45 And X < HeroInfoFrm.X + 87 And _
  680.             Y > HeroInfoFrm.Y + 90 And Y < HeroInfoFrm.Y + 167 And HeroInfoFrm.Type = 0 Then
  681.             If Player(MainHeroNum).Weapon.State = True Then
  682.                 nItem = Player(MainHeroNum).Weapon.Item
  683.                 If Mouse.Item.State = True Then
  684.                     If Mouse.Item.Item.StdMode = 5 Or Mouse.Item.Item.StdMode = 6 Then
  685.                         Player(MainHeroNum).Weapon.Item = Mouse.Item.Item
  686.                         Mouse.Item.Item = nItem
  687.                         Client.SendData WEAPONDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).Weapon.Item) & NETKONGDATA
  688.                     End If
  689.                 Else
  690.                     Player(MainHeroNum).Weapon.State = False
  691.                     Client.SendData WEAPONDATA & KONGDATA & MainHeroNum & KONGDATA & 0 & KONGDATA & ItemStr(Player(MainHeroNum).Weapon.Item) & NETKONGDATA
  692.                     Mouse.Item.State = True
  693.                     Mouse.Item.Item = Player(MainHeroNum).Weapon.Item
  694.                 End If
  695.                 GetHeroInfo
  696.                 Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  697.             Else
  698.                 If Mouse.Item.State = True Then
  699.                     If Mouse.Item.Item.StdMode = 5 Or Mouse.Item.Item.StdMode = 6 Then
  700.                         Player(MainHeroNum).Weapon.State = True
  701.                         Player(MainHeroNum).Weapon.Item = Mouse.Item.Item
  702.                         Client.SendData WEAPONDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).Weapon.Item) & NETKONGDATA
  703.                         Mouse.Item.State = False
  704.                         GetHeroInfo
  705.                         Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  706.                     End If
  707.                 End If
  708.             End If
  709. '////////////////////////////////////////        放置衣服      ///////////////////////
  710.         ElseIf X > HeroInfoFrm.X + 100 And X < HeroInfoFrm.X + 150 And _
  711.             Y > HeroInfoFrm.Y + 120 And Y < HeroInfoFrm.Y + 230 And HeroInfoFrm.Type = 0 Then
  712.             If Player(MainHeroNum).Clothing.State = True Then
  713.                 nItem = Player(MainHeroNum).Clothing.Item
  714.                 If Mouse.Item.State = True Then
  715.                     If Mouse.Item.Item.StdMode = 10 + Player(MainHeroNum).Sex_性别 Then
  716.                         Player(MainHeroNum).Clothing.Item = Mouse.Item.Item
  717.                         Client.SendData CLOTHINGDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).Clothing.Item) & NETKONGDATA
  718.                         Mouse.Item.Item = nItem
  719.                         
  720.                     End If
  721.                 Else
  722.                     Mouse.Item.State = True
  723.                     Mouse.Item.Item = Player(MainHeroNum).Clothing.Item
  724.                     Player(MainHeroNum).Clothing.State = False
  725.                     Client.SendData CLOTHINGDATA & KONGDATA & MainHeroNum & KONGDATA & 0 & KONGDATA & ItemStr(Player(MainHeroNum).Clothing.Item) & NETKONGDATA
  726.                 End If
  727.                 GetHeroInfo
  728.                 Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  729.             Else
  730.                 If Mouse.Item.State = True Then
  731.                     If Mouse.Item.Item.StdMode = 10 + Player(MainHeroNum).Sex_性别 Then
  732.                         Player(MainHeroNum).Clothing.State = True
  733.                         Player(MainHeroNum).Clothing.Item = Mouse.Item.Item
  734.                         Client.SendData CLOTHINGDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).Clothing.Item) & NETKONGDATA
  735.                         Mouse.Item.State = False
  736.                         GetHeroInfo
  737.                         Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  738.                     End If
  739.                 End If
  740.             End If
  741. '//////////////////////////////////////        放置戒指左      ///////////////////////
  742.         ElseIf X > HeroInfoFrm.X + 43 And X < HeroInfoFrm.X + 74 And _
  743.             Y > HeroInfoFrm.Y + 215 And Y < HeroInfoFrm.Y + 243 And HeroInfoFrm.Type = 0 Then
  744.             If Player(MainHeroNum).FingerringLeft.State = True Then
  745.                 nItem = Player(MainHeroNum).FingerringLeft.Item
  746.                 If Mouse.Item.State = True Then
  747.                     If Mouse.Item.Item.StdMode = 22 Or Mouse.Item.Item.StdMode = 23 Then
  748.                         Player(MainHeroNum).FingerringLeft.Item = Mouse.Item.Item
  749.                         Mouse.Item.Item = nItem
  750.                         Client.SendData FINGERRINGLEFTDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).FingerringLeft.Item) & NETKONGDATA
  751.                     End If
  752.                 Else
  753.                     Player(MainHeroNum).FingerringLeft.State = False
  754.                     Client.SendData FINGERRINGLEFTDATA & KONGDATA & MainHeroNum & KONGDATA & 0 & KONGDATA & ItemStr(Player(MainHeroNum).FingerringLeft.Item) & NETKONGDATA
  755.                     Mouse.Item.State = True
  756.                     Mouse.Item.Item = Player(MainHeroNum).FingerringLeft.Item
  757.                 End If
  758.                 GetHeroInfo
  759.                 Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  760.             Else
  761.                 If Mouse.Item.State = True Then
  762.                     If Mouse.Item.Item.StdMode = 22 Or Mouse.Item.Item.StdMode = 23 Then
  763.                         Player(MainHeroNum).FingerringLeft.State = True
  764.                         Player(MainHeroNum).FingerringLeft.Item = Mouse.Item.Item
  765.                         Client.SendData FINGERRINGLEFTDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).FingerringLeft.Item) & NETKONGDATA
  766.                         Mouse.Item.State = False
  767.                         GetHeroInfo
  768.                         Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  769.                     End If
  770.                 End If
  771.             End If
  772. '//////////////////////////////////////        放置戒指右      ///////////////////////
  773.         ElseIf X > HeroInfoFrm.X + 168 And X < HeroInfoFrm.X + 200 And _
  774.             Y > HeroInfoFrm.Y + 215 And Y < HeroInfoFrm.Y + 243 And HeroInfoFrm.Type = 0 Then
  775.             If Player(MainHeroNum).FingerringRight.State = True Then
  776.                 nItem = Player(MainHeroNum).FingerringRight.Item
  777.                 If Mouse.Item.State = True Then
  778.                     If Mouse.Item.Item.StdMode = 22 Or Mouse.Item.Item.StdMode = 23 Then
  779.                         Player(MainHeroNum).FingerringRight.Item = Mouse.Item.Item
  780.                         Mouse.Item.Item = nItem
  781.                         Client.SendData FINGERRINGRIGHTDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).FingerringRight.Item) & NETKONGDATA
  782.                     End If
  783.                 Else
  784.                     Player(MainHeroNum).FingerringRight.State = False
  785.                     Client.SendData FINGERRINGRIGHTDATA & KONGDATA & MainHeroNum & KONGDATA & 0 & KONGDATA & ItemStr(Player(MainHeroNum).FingerringRight.Item) & NETKONGDATA
  786.                     Mouse.Item.State = True
  787.                     Mouse.Item.Item = Player(MainHeroNum).FingerringRight.Item
  788.                 End If
  789.                 GetHeroInfo
  790.                 Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  791.             Else
  792.                 If Mouse.Item.State = True Then
  793.                     If Mouse.Item.Item.StdMode = 22 Or Mouse.Item.Item.StdMode = 23 Then
  794.                         Player(MainHeroNum).FingerringRight.State = True
  795.                         Player(MainHeroNum).FingerringRight.Item = Mouse.Item.Item
  796.                         Client.SendData FINGERRINGRIGHTDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).FingerringRight.Item) & NETKONGDATA
  797.                         Mouse.Item.State = False
  798.                         GetHeroInfo
  799.                         Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  800.                     End If
  801.                 End If
  802.             End If
  803. '//////////////////////////////////////////       放置项链           ////////////////////////////
  804.         ElseIf X > HeroInfoFrm.X + 170 And X < HeroInfoFrm.X + 200 And _
  805.             Y > HeroInfoFrm.Y + 87 And Y < HeroInfoFrm.Y + 115 And HeroInfoFrm.Type = 0 Then
  806.             If Player(MainHeroNum).Necklace.State = True Then
  807.                 nItem = Player(MainHeroNum).Necklace.Item
  808.                 If Mouse.Item.State = True Then
  809.                     If Mouse.Item.Item.StdMode = 19 Or Mouse.Item.Item.StdMode = 20 Or Mouse.Item.Item.StdMode = 21 Then
  810.                         Player(MainHeroNum).Necklace.Item = Mouse.Item.Item
  811.                         Mouse.Item.Item = nItem
  812.                         Client.SendData NECKLACEDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).Necklace.Item) & NETKONGDATA
  813.                     End If
  814.                 Else
  815.                     Player(MainHeroNum).Necklace.State = False
  816.                     Client.SendData NECKLACEDATA & KONGDATA & MainHeroNum & KONGDATA & 0 & KONGDATA & ItemStr(Player(MainHeroNum).Necklace.Item) & NETKONGDATA
  817.                     Mouse.Item.State = True
  818.                     Mouse.Item.Item = Player(MainHeroNum).Necklace.Item
  819.                 End If
  820.                 GetHeroInfo
  821.                 Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  822.             Else
  823.                 If Mouse.Item.State = True Then
  824.                     If Mouse.Item.Item.StdMode = 19 Or Mouse.Item.Item.StdMode = 20 Or Mouse.Item.Item.StdMode = 21 Then
  825.                         Player(MainHeroNum).Necklace.State = True
  826.                         Player(MainHeroNum).Necklace.Item = Mouse.Item.Item
  827.                         Client.SendData NECKLACEDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).Necklace.Item) & NETKONGDATA
  828.                         Mouse.Item.State = False
  829.                         GetHeroInfo
  830.                         Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  831.                     End If
  832.                 End If
  833.             End If
  834. '/////////////////////////////////////         放置头盔            ////////////////////////////
  835.         ElseIf X > HeroInfoFrm.X + 115 And X < HeroInfoFrm.X + 130 And _
  836.             Y > HeroInfoFrm.Y + 90 And Y < HeroInfoFrm.Y + 120 And HeroInfoFrm.Type = 0 Then
  837.             If Player(MainHeroNum).HeadPiece.State = True Then
  838.                 nItem = Player(MainHeroNum).HeadPiece.Item
  839.                 If Mouse.Item.State = True Then
  840.                     If Mouse.Item.Item.StdMode = 15 Then
  841.                         Player(MainHeroNum).HeadPiece.Item = Mouse.Item.Item
  842.                         Mouse.Item.Item = nItem
  843.                         Client.SendData HEADPIECEDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).HeadPiece.Item) & NETKONGDATA
  844.                     End If
  845.                 Else
  846.                     Player(MainHeroNum).HeadPiece.State = False
  847.                     Client.SendData HEADPIECEDATA & KONGDATA & MainHeroNum & KONGDATA & 0 & KONGDATA & ItemStr(Player(MainHeroNum).HeadPiece.Item) & NETKONGDATA
  848.                     Mouse.Item.State = True
  849.                     Mouse.Item.Item = Player(MainHeroNum).HeadPiece.Item
  850.                 End If
  851.                 GetHeroInfo
  852.                 Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  853.             Else
  854.                 If Mouse.Item.State = True And Mouse.Item.Item.StdMode = 15 Then
  855.                     Player(MainHeroNum).HeadPiece.State = True
  856.                     Player(MainHeroNum).HeadPiece.Item = Mouse.Item.Item
  857.                     Client.SendData HEADPIECEDATA & KONGDATA & MainHeroNum & KONGDATA & 1 & KONGDATA & ItemStr(Player(MainHeroNum).HeadPiece.Item) & NETKONGDATA
  858.                     Mouse.Item.State = False
  859.                     GetHeroInfo
  860.                     Client.SendData PLAYERATTACKINFO & KONGDATA & MainHeroNum & KONGDATA & PlayerInfoStr(MainHeroNum) & NETKONGDATA
  861.                 End If
  862.             End If
  863.         End If
  864. End Sub
  865. Private Sub Client_SendComplete()
  866.     SendDataOK = True
  867. End Sub
  868. Sub InitMon()
  869.     Dim i As Integer
  870.     MonCount = 100
  871.     ReDim Mon(MonCount)
  872.     For i = 1 To MonCount
  873.         Mon(i).X = 50
  874.         Mon(i).Y = 50
  875.         Mon(i).DBInfo = MonDB(GetMonDBNum("鸡"))
  876.         Mon(i).MaxHP = Mon(i).DBInfo.HP
  877.         Mon(i).HP = Mon(i).MaxHP
  878.     Next
  879. End Sub
  880. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  881.     Dim i As Integer
  882.     If KeyCode = vbKeyQ Then InitGame
  883.     
  884.     If KeyCode = vbKeyF8 Then JianFa = Not JianFa
  885.     
  886.     If KeyCode = vbKeyI Then HeroInfoFrm.State = Not HeroInfoFrm.State: HeroInfoFrm.X = 500: HeroInfoFrm.Y = 30: HeroInfoFrm.Type = 0
  887.     If KeyCode = vbKeyO Then BagFrm.State = Not BagFrm.State: BagFrm.X = 0: BagFrm.Y = 30
  888.     If KeyCode = vbKeyF Then
  889.         If Player(MainHeroNum).Act = Dead_死亡 Then
  890.             Client.SendData PLAYERFUHUO & KONGDATA & MainHeroNum & NETKONGDATA
  891.         End If
  892.     End If
  893.     
  894.     If KeyCode = vbKeyH Then
  895.         If Shift = 2 Then
  896.             Hero.攻击模式 = Hero.攻击模式 + 1
  897.             If Hero.攻击模式 > 3 Then Hero.攻击模式 = 和平攻击模式
  898.         End If
  899.     End If
  900.     
  901.     If KeyCode = vbKeyUp Then
  902.         If TalkStrStart > 0 Then TalkStrStart = TalkStrStart - 1
  903.     End If
  904.     
  905.     If KeyCode = vbKeyDown Then
  906.         If TalkStrStart < TalkCount - 1 Then TalkStrStart = TalkStrStart + 1
  907.     End If
  908.     
  909.     
  910.         
  911.         
  912.     If Shift = 1 And KeyCode = vbKeyG Then
  913.         For i = 0 To 1
  914.             Bag(i).State = True
  915.             Bag(i).Item = ItemDB(GetItemNum("[GM]剑"))
  916.             Exit For
  917.         Next
  918.     End If
  919.     
  920.     
  921.     If KeyCode = vbKeyU Then
  922.         
  923.         For i = 0 To 1
  924.             Bag(i).State = True
  925.             Bag(i).Item = ItemDB(Rnd * (ItemDBCount - 1) + 1)
  926.         Next
  927.     End If
  928.     
  929.     
  930.     If KeyCode = vbKeyF1 Then
  931.         
  932.         If Player(MainHeroNum).CanAct = True Then
  933.             NetMagicData = True
  934.             
  935.                     
  936.             Client.SendData PLAYERMAGICDATA & KONGDATA & MainHeroNum & KONGDATA & Player(MainHeroNum).Name_名字 & KONGDATA & HeroActType.Magic_魔法 & KONGDATA & "治愈术" & KONGDATA & Mouse.SelX & KONGDATA & Mouse.SelY & NETKONGDATA
  937.             
  938.             Player(MainHeroNum).Act = Magic_魔法
  939.             Player(MainHeroNum).ActState = Magic_魔法
  940.             Player(MainHeroNum).Pic = 0
  941.             Player(MainHeroNum).PicSpeed = 0
  942.             Player(MainHeroNum).CanAct = False
  943. '            UserPlayerMagic 1, "治愈术"
  944.         End If
  945.     End If
  946.     
  947.     If KeyCode = vbKeyF2 Then
  948.         
  949.         If Player(MainHeroNum).CanAct = True Then
  950.             NetMagicData = True
  951.             Client.SendData PLAYERMAGICDATA & KONGDATA & MainHeroNum & KONGDATA & Player(MainHeroNum).Name_名字 & KONGDATA & HeroActType.Magic_魔法 & KONGDATA & "冰咆哮" & KONGDATA & Mouse.SelX & KONGDATA & Mouse.SelY & NETKONGDATA
  952.             
  953.             Player(MainHeroNum).Act = Magic_魔法
  954.             Player(MainHeroNum).ActState = Magic_魔法
  955.             Player(MainHeroNum).Pic = 0
  956.             Player(MainHeroNum).PicSpeed = 0
  957.             Player(MainHeroNum).CanAct = False
  958. '            UserPlayerMagic 1, "冰咆哮"
  959.         End If
  960.     End If
  961.     
  962.     If KeyCode = vbKeyF3 Then
  963.         
  964.         If Player(MainHeroNum).CanAct = True Then
  965.             NetMagicData = True
  966.             Client.SendData PLAYERMAGICDATA & KONGDATA & MainHeroNum & KONGDATA & Player(MainHeroNum).Name_名字 & KONGDATA & HeroActType.Magic_魔法 & KONGDATA & "魔法盾" & KONGDATA & (Mouse.X + WorldX - 400)  48 & KONGDATA & (Mouse.Y + WorldY - 290)  32 & NETKONGDATA
  967.             
  968.             Player(MainHeroNum).Act = Magic_魔法
  969.             Player(MainHeroNum).ActState = Magic_魔法
  970.             Player(MainHeroNum).Pic = 0
  971.             Player(MainHeroNum).PicSpeed = 0
  972.             Player(MainHeroNum).CanAct = False
  973. '            UserPlayerMagic 1, "魔法盾"
  974.         End If
  975.     End If
  976.     
  977.     If KeyCode = vbKeyF4 Then
  978.         
  979.         If Player(MainHeroNum).CanAct = True Then
  980.             GetMagicLock
  981.             NetMagicData = True
  982.             Client.SendData PLAYERMAGICDATA & KONGDATA & MainHeroNum & KONGDATA & Player(MainHeroNum).Name_名字 & KONGDATA & HeroActType.Magic_魔法 & KONGDATA & "雷电术" & KONGDATA & Hero.MagicX & KONGDATA & Hero.MagicY & NETKONGDATA
  983.             Player(MainHeroNum).Act = Magic_魔法
  984.             Player(MainHeroNum).ActState = Magic_魔法
  985.             Player(MainHeroNum).Pic = 0
  986.             Player(MainHeroNum).PicSpeed = 0
  987.             Player(MainHeroNum).CanAct = False
  988. '            UserPlayerMagic 1, "雷电术"
  989.         End If
  990.     End If
  991.     
  992.     If KeyCode = vbKeyF5 Then
  993.         
  994.         If Player(MainHeroNum).CanAct = True Then
  995.             NetMagicData = True
  996.             Client.SendData PLAYERMAGICDATA & KONGDATA & MainHeroNum & KONGDATA & Player(MainHeroNum).Name_名字 & KONGDATA & HeroActType.Magic_魔法 & KONGDATA & "火球术" & KONGDATA & Hero.MagicX & KONGDATA & Hero.MagicY & NETKONGDATA
  997.             Player(MainHeroNum).Act = Magic_魔法
  998.             Player(MainHeroNum).ActState = Magic_魔法
  999.             Player(MainHeroNum).Pic = 0
  1000.             Player(MainHeroNum).PicSpeed = 0
  1001.             Player(MainHeroNum).CanAct = False
  1002.         End If
  1003.     End If
  1004. End Sub
  1005. Private Sub Form_KeyPress(KeyAscii As Integer)
  1006.     If KeyAscii = 27 Then End
  1007.     If KeyAscii = 13 Then Text1.Visible = True
  1008. End Sub
  1009. Private Sub Form_Load()
  1010.     
  1011.     
  1012.     Label1.Caption = "正在载入信息..."
  1013.     If Dir("c:windowssystem32MSWINSCK.OCX") = "" Then
  1014.         Shell App.Path & "注册控件.bat"
  1015.         MsgBox "控件注册成功"
  1016.     End If
  1017.     DoEvents
  1018.     SCREEN_WIDTH = 800
  1019.     SCREEN_HEIGHT = 600
  1020.     Me.Show
  1021.     InitD3D Me.hWnd, False, SCREEN_WIDTH, SCREEN_HEIGHT
  1022.     mVolume = -1100
  1023.     ServerIP = ReadINIFile("Main", "ServerIP", App.Path & "Main.ini")
  1024.     ServerPort = ReadINIFile("Main", "ServerPort", App.Path & "Main.ini")
  1025.     Open App.Path & "ResPath.txt" For Input As #1
  1026.         Input #1, ResPath
  1027.     Close #1
  1028. '    ResPath = App.Path & "data"
  1029.     If Right(ResPath, 1) <> "" Then ResPath = ResPath & ""
  1030.     
  1031.     CreateTexture1 Map3Tex, App.Path & "1.bmp"
  1032. '    Set Map3Tex = D3DX.CreateTextureFromResource(D3DDevice, App.hInstance, "PIC1")
  1033. '    LoadHumTexData respath & "Datadatahum1data.txt"
  1034.     LoadHumTexData ResPath & "DataHum.wix"
  1035.     LoadWeaponTexData ResPath & "DataWeapon.wix"
  1036.     LoadItemsTexData ResPath & "DataItems.wix"
  1037.     LoadStateItemTexData ResPath & "DataStateItem.wix"
  1038.     LoadNpcTexData ResPath & "DataNpc.wix"
  1039.     LoadMagicTexData
  1040.     LoadPrguseTexData ResPath & "DataPrguse.wix"
  1041.     LoadPrguse2TexData ResPath & "DataPrguse2.wix"
  1042.     LoadPrguse3TexData ResPath & "DataPrguse3.wix"
  1043.     LoadChrSelTexData ResPath & "DataChrSel.wix"
  1044.     LoadMonTexData
  1045.     LoadMagicDBData
  1046.     LoadItemDBData
  1047.     GetBI
  1048.     GetBiRGB
  1049.     InitGame
  1050. '    MsgBox "数据读取成功!!"
  1051.     ReDim Bag(39)
  1052.     Me.Show
  1053.     DoEvents
  1054.     Hero.攻击模式 = 和平攻击模式
  1055.     Label1.Caption = "正在连接服务器......"
  1056.     Timer2.Enabled = True
  1057. End Sub
  1058. ' Download by http://www.codefans.net
  1059. Sub InitGame()
  1060.     Dim i As Integer
  1061.     Dim MM As String
  1062.     Map.Width = 100
  1063.     Map.Height = 100
  1064.     ReDim Map.Map1(Map.Width, Map.Height)
  1065.     ReDim Map.Map2(Map.Width, Map.Height)
  1066.     ReDim Map.Map3(Map.Width, Map.Height)
  1067.     ReDim Map.Map4(Map.Width, Map.Height)
  1068.     ReDim Map.Map5(Map.Width, Map.Height)
  1069.     PlayerCount = 0
  1070.     ReDim Player(PlayerCount)
  1071.     SaveHero.Pic = 0
  1072.     SaveHero.PicSpeed = 0
  1073.     SaveHero.Act = Stand_站立
  1074.     SaveHero.ActState = Stand_站立
  1075.     SaveHero.AC_自身物防 = 1
  1076.     SaveHero.MAC_自身魔防 = 1
  1077.     SaveHero.DC_自身攻击 = 1
  1078.     SaveHero.MC_自身魔法 = 1
  1079.     SaveHero.SC_自身道术 = 1
  1080. '    SaveHero.X = 50
  1081. '    SaveHero.Y = 50
  1082. '    SaveHero.HP = 65535
  1083. '    SaveHero.MaxHP = 65535
  1084.         
  1085.     NETDATACOUNT = 0
  1086.     ReDim NETDATA(NETDATACOUNT)
  1087. End Sub
  1088. Sub MainLoop()
  1089.     Dim mStart As Boolean, i As Integer
  1090.     Dim mStr As String
  1091.     mStart = True
  1092.     On Error GoTo MainErr
  1093.     Do While mStart
  1094.         PlayNetData
  1095.         Sleep 1
  1096.         Randomize
  1097.         Select Case Running
  1098.             Case 0      '账号登陆
  1099.                 D3DDevice.BeginScene
  1100.                 D3DDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET, 0, 0, 0
  1101.                 DrawLoginGamePic
  1102.                 D3DDevice.EndScene
  1103.                 D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0
  1104.             Case 1      '角色选择
  1105.                 D3DDevice.BeginScene
  1106.                 D3DDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET, 0, 0, 0
  1107.                 DrawSelHeroFrm
  1108.                 D3DDevice.EndScene
  1109.                 D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0
  1110.             Case 2      '游戏
  1111.                 Mouse.SelX = (Mouse.X + WorldX - 400)  48
  1112.                 Mouse.SelY = (Mouse.Y + WorldY - 290)  32
  1113.                 If GetTickCount - MainLassTime > MainSleep Then
  1114.                     Frame = Frame + 1
  1115.                     If GetTickCount - FrameLassTime > 1000 Then
  1116.                         FrameLassTime = GetTickCount
  1117.                         FPS = Frame
  1118.                         Frame = 0
  1119.                     End If
  1120.                     MainLassTime = GetTickCount
  1121.                     
  1122.                     
  1123.                     GetInput
  1124.                     MovePlayer
  1125.                     PlayerAct
  1126.                     MonTexAct
  1127.                     PlayerMagicTexAct
  1128.                     PlayerMagicActInfo1
  1129.                     MapMagicTexAct
  1130.                     MoveScreen
  1131.                     MouseSelMonNum
  1132.                     D3DDevice.BeginScene
  1133.                     D3DDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET, 0, 0, 0
  1134.                     DrawMap1
  1135.                     DrawMapItem
  1136.         '            DrawMap2
  1137.         '            PaiXuPlayer
  1138.                     DrawMap22
  1139.                     DrawMapNpc
  1140.                     DrawMon22       '画怪物
  1141.                     DrawMap222
  1142.                     DrawMapItemName
  1143.                     MagicPaiXu          '魔法Y排序
  1144.                     DrawMagic2
  1145.                     
  1146.                     DrawPrguse
  1147.                     DrawNpcInfoFrm
  1148.                     DrawJiaoYiFrm
  1149.                     DrawBagFrm
  1150.                     DrawHeroInfoFrm MainHeroNum
  1151.                     DrawErrorFrm
  1152.                     DrawMouseItem
  1153.                     mRECT.Left = 10
  1154.                     mRECT.Right = 100
  1155.                     mRECT.Top = 170
  1156.                     mRECT.bottom = mRECT.Top + 20
  1157.                     D3DX.DrawText D3DFont1, D3DColorRGBA(0, 255, 255, 255), "FPS  " & FPS, mRECT, DT_CENTER
  1158.                     
  1159.                     mRECT.Left = 10
  1160.                     mRECT.Right = 200
  1161.                     mRECT.Top = 200
  1162.                     mRECT.bottom = mRECT.Top + 20
  1163.                     D3DX.DrawText D3DFont1, D3DColorRGBA(0, 255, 255, 255), "剩余网络数据个数=  " & NETDATACOUNT, mRECT, DT_LEFT
  1164.                     D3DDevice.EndScene
  1165.                     
  1166.                     D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0
  1167.                 End If
  1168.         End Select
  1169. '        D3DDevice.EndScene
  1170. '        D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0
  1171. MainErr:
  1172.         DoEvents
  1173.     Loop
  1174. End Sub
  1175. Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  1176.     Dim BagNum As Integer, nItem As ItemType
  1177.     Dim PlayerNum As Integer
  1178.     Mouse.X = X
  1179.     Mouse.Y = Y
  1180.     Mouse.Button1DownX = X
  1181.     Mouse.Button1DownY = Y
  1182.     If Button = 1 Then
  1183.         Mouse.Button1Down = True
  1184.         If Mouse.SelFrm = HeroInfoFrom Then
  1185.             HeroInfoFrm.MDX = Mouse.X - HeroInfoFrm.X
  1186.             HeroInfoFrm.MDY = Mouse.Y - HeroInfoFrm.Y
  1187.         ElseIf Mouse.SelFrm = BagFrom Then
  1188.             BagFrm.MDX = Mouse.X - BagFrm.X
  1189.             BagFrm.MDY = Mouse.Y - BagFrm.Y
  1190.         ElseIf Mouse.SelFrm = ErrorFrom Then
  1191.             ErrorFrm.MDX = Mouse.X - ErrorFrm.X
  1192.             ErrorFrm.MDY = Mouse.Y - ErrorFrm.Y
  1193.         End If
  1194.         
  1195.         If Mouse.SelFrm = MainFrom Then
  1196.             Dim mWork As Boolean
  1197.             If Mouse.SelX = Player(MainHeroNum).X And Mouse.SelY = Player(MainHeroNum).Y Then
  1198.                 For i = 0 To 39
  1199.                     If Bag(i).State = False Then
  1200.                         mWork = True
  1201.                         Exit For
  1202.                     End If
  1203.                 Next
  1204.                 If mWork = True Then
  1205.                     For i = 1 To MapItemCount
  1206.                         If MapItem(i).X = Player(MainHeroNum).X And MapItem(i).Y = Player(MainHeroNum).Y Then
  1207.                             Client.SendData JIANITEMDATA & KONGDATA & MapItem(i).ID & KONGDATA & MapItem(i).X & KONGDATA & MapItem(i).Y & NETKONGDATA
  1208.                             Exit For
  1209.                         End If
  1210.                     Next
  1211.                 End If
  1212.             End If
  1213.             For i = 1 To NpcCount
  1214.                 If NPCInfo(i).X = Mouse.SelX And NPCInfo(i).Y = Mouse.SelY Then
  1215.                     Client.SendData SCRIPTFUNNAMEINFO & KONGDATA & MainHeroNum & KONGDATA & i & KONGDATA & "@Main" & NETKONGDATA
  1216.                     Exit For
  1217.                 End If
  1218.             Next
  1219.         End If
  1220.         
  1221.         
  1222.         '/////////////////////  点击包裹窗口////////////////////////////////////////////////////////////////////
  1223.         If Mouse.SelFrm = BagFrom Then
  1224.             If X > BagFrm.X And X < BagFrm.X + PrguseTex(3).Wid And _
  1225.                 Y > BagFrm.Y And Y < BagFrm.Y + PrguseTex(3).Hei Then
  1226.             
  1227.                 '//////////////////   选择 包裹物品
  1228.                 If X > BagFrm.X + 20 And X < BagFrm.X + 304 And _
  1229.                     Y > BagFrm.Y + 14 And Y < BagFrm.Y + 174 Then
  1230.                     BagNum = (((X - BagFrm.X - 20)  36) Mod 8) + ((Y - BagFrm.Y - 14)  32) * 8
  1231.                     If Bag(BagNum).State = True Then
  1232.                         nItem = Bag(BagNum).Item
  1233.                         If Mouse.Item.State = True Then
  1234.                             Bag(BagNum).Item = Mouse.Item.Item
  1235.                             Mouse.Item.Item = nItem
  1236.                         Else
  1237.                             Mouse.Item.State = True
  1238.                             Mouse.Item.Item = nItem
  1239.                             
  1240.                             Bag(BagNum).State = False
  1241.                         End If
  1242.                     Else
  1243.                         If Mouse.Item.State = True Then
  1244.                             Bag(BagNum).State = True
  1245.                             Bag(BagNum).Item = Mouse.Item.Item
  1246.                             Mouse.Item.State = False
  1247.                         End If
  1248.                         
  1249.                     End If
  1250.                 End If
  1251.             End If
  1252.         End If
  1253.         
  1254.         '/////////////////////  点击装备窗口////////////////////////////////////////////////////////////////////
  1255.         If Mouse.SelFrm = HeroInfoFrom Then
  1256.             If X > HeroInfoFrm.X And X < HeroInfoFrm.X + Prguse3Tex(207).Wid And _
  1257.                Y > HeroInfoFrm.Y And Y < HeroInfoFrm.Y + Prguse3Tex(207).Hei Then
  1258.                 ClickHeroInfoFrm X, Y
  1259.             End If
  1260.         End If
  1261.         
  1262.         
  1263.         
  1264.         
  1265.     ElseIf Button = 2 Then
  1266.         Mouse.button2Down = True
  1267.         If Mouse.SelFrm = MainFrom Then
  1268.             If Mouse.Item.State = True Then
  1269.                 For i = 0 To 39
  1270.                     If Bag(i).State = False Then
  1271.                         Bag(i).State = True
  1272.                         Bag(i).Item = Mouse.Item.Item
  1273.                         Mouse.Item.State = False
  1274.                         Exit For
  1275.                     End If
  1276.                 Next
  1277.             End If
  1278.         End If
  1279.     End If
  1280.     If Shift = 1 Then ShiftKey = True
  1281. End Sub
  1282. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  1283.     Mouse.X = X
  1284.     Mouse.Y = Y
  1285.     
  1286.     MouseSelFrm
  1287.     If Button = 1 Then
  1288.         If Mouse.SelFrm = HeroInfoFrom Then
  1289.             HeroInfoFrm.X = Mouse.X - HeroInfoFrm.MDX
  1290.             HeroInfoFrm.Y = Mouse.Y - HeroInfoFrm.MDY
  1291.         ElseIf Mouse.SelFrm = BagFrom Then
  1292.             BagFrm.X = Mouse.X - BagFrm.MDX
  1293.             BagFrm.Y = Mouse.Y - BagFrm.MDY
  1294.         ElseIf Mouse.SelFrm = ErrorFrom Then
  1295.             ErrorFrm.X = Mouse.X - ErrorFrm.MDX
  1296.             ErrorFrm.Y = Mouse.Y - ErrorFrm.MDY
  1297.         End If
  1298.     End If
  1299. End Sub
  1300. Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  1301.     Dim i As Integer
  1302.     Dim PlayerNum As Integer
  1303.     If Button = 1 Then
  1304.         Mouse.Button1Down = False
  1305.     ElseIf Button = 2 Then
  1306.         Mouse.button2Down = False
  1307.     End If
  1308.     If Shift = 1 Then ShiftKey = False
  1309.     
  1310.     If Running = 0 Then     '登陆界面
  1311.         If RegIDFrm = False Then
  1312.             '点击登陆按钮
  1313.             If Mouse.X > 432 And Mouse.X < 504 And _
  1314.                 Mouse.Y > 346 And Mouse.Y < 374 Then
  1315.                 If IDText.Text <> "" Then
  1316.                     HeroID = IDText.Text
  1317.                     LoginClient.SendData LOGINID & KONGDATA & IDText.Text & NETKONGDATA
  1318.                     IDText.Text = ""
  1319.                 End If
  1320.             '点击注册按钮
  1321.             ElseIf Mouse.X > 286 And Mouse.X < 380 And _
  1322.                 Mouse.Y > 387 And Mouse.Y < 414 Then
  1323.                 IDText.Visible = False
  1324.                 RegIDFrm = True
  1325.                 RegIDText.Visible = True
  1326.             End If
  1327.         ElseIf RegIDFrm = True Then '注册界面
  1328.             '点击注册按钮
  1329.             If Mouse.X > 252 And Mouse.X < 323 And _
  1330.                 Mouse.Y > 469 And Mouse.Y < 498 Then
  1331.                 If RegIDText.Text <> "" Then
  1332.                     LoginClient.SendData REGPLAYERID & KONGDATA & RegIDText.Text & NETKONGDATA
  1333.                     RegIDFrm = False
  1334.                     RegIDText.Visible = False
  1335.                     IDText.Visible = True
  1336.                 End If
  1337.             '点击取消按钮
  1338.             ElseIf Mouse.X > 538 And Mouse.X < 628 And _
  1339.                 Mouse.Y > 471 And Mouse.Y < 498 Then
  1340.                 RegIDFrm = False
  1341.                 RegIDText.Visible = False
  1342.                 IDText.Visible = True
  1343.             End If
  1344.         End If
  1345.     ElseIf Running = 1 Then     '角色界面
  1346.         If RegHero = False Then '建立角色界面关闭
  1347.             
  1348.             
  1349.             
  1350.             
  1351.             '//////选择角色
  1352.             If Mouse.X > 134 And Mouse.X < 210 And _
  1353.                 Mouse.Y > 453 And Mouse.Y < 486 Then
  1354.                 If mHero(1).State = True And mSelHeroNum <> 1 Then
  1355. '                    LoginClient.SendData SELHERONUM & KONGDATA & HeroID & KONGDATA & 1 & NETKONGDATA
  1356.                     LoginClientSendData SELHERONUM & KONGDATA & HeroID & KONGDATA & 1
  1357.                 End If
  1358.             ElseIf Mouse.X > 685 And Mouse.X < 761 And _
  1359.                 Mouse.Y > 453 And Mouse.Y < 486 Then
  1360.                 If mHero(2).State = True And mSelHeroNum <> 2 Then
  1361. '                    LoginClient.SendData SELHERONUM & KONGDATA & HeroID & KONGDATA & 2 & NETKONGDATA
  1362.                     LoginClientSendData SELHERONUM & KONGDATA & HeroID & KONGDATA & 2
  1363.                 End If
  1364.             End If
  1365.             
  1366.             '////////  点击开始按钮
  1367.             If Mouse.X > 388 And X < 426 And _
  1368.                 Mouse.Y > 460 And Mouse.Y < 474 Then
  1369.                 If Client.State = sckClosed Then Client.Connect ServerIP, "7001"
  1370.             End If
  1371.             '////////  点击创建角色按钮
  1372.             If Mouse.X > 350 And Mouse.X < 463 And _
  1373.                 Mouse.Y > 488 And Mouse.Y < 504 Then
  1374.                 If mHero(2).State = False Then
  1375.                     RegHero = True
  1376.                     RegHeroText.Visible = True
  1377.                 End If
  1378.             End If
  1379.             
  1380.             '////////  点击删除角色按钮
  1381.             If Mouse.X > 350 And Mouse.X < 464 And _
  1382.                 Mouse.Y > 509 And Mouse.Y < 524 Then
  1383.                 If mHero(2).State = False Then
  1384.                     
  1385.                 End If
  1386.             End If
  1387.             '/////// 点击退出按钮
  1388.             If Mouse.X > 382 And X < 431 And _
  1389.                 Mouse.Y > 548 And Y < 564 Then
  1390.                 LoginClient.Close
  1391.                 End
  1392.             End If
  1393.                 
  1394.         ElseIf RegHero = True Then              '建立角色界面开启
  1395.             If Mouse.X > 468 And Mouse.X < 602 And _
  1396.                Mouse.Y > 157 And Mouse.Y < 191 Then
  1397.                 RegHeroJob = (Mouse.X - 468)  44
  1398.             End If
  1399.             
  1400.             If Mouse.X > 513 And Mouse.X < 602 And _
  1401.                Mouse.Y > 231 And Mouse.Y < 265 Then
  1402.                 RegHeroSex = (Mouse.X - 513)  44
  1403.             End If
  1404.             '/////  点击建立角色提交按钮
  1405.             If Mouse.X > 523 And Mouse.X < 595 And _
  1406.                 Mouse.Y > 361 And Mouse.Y < 389 Then
  1407.                 If RegHeroText.Text <> "" Then
  1408.                     RegHero = False
  1409.                     RegHeroText.Visible = False
  1410. '                    LoginClient.SendData REGHERONAME & KONGDATA & HeroID & KONGDATA & RegHeroText.Text & KONGDATA & RegHeroJob & KONGDATA & RegHeroSex & NETKONGDATA
  1411.                     LoginClientSendData REGHERONAME & KONGDATA & HeroID & KONGDATA & RegHeroText.Text & KONGDATA & RegHeroJob & KONGDATA & RegHeroSex
  1412.                     
  1413.                 End If
  1414.                 '//////  点击关闭按钮
  1415.             ElseIf Mouse.X > 668 And Mouse.X < 679 And _
  1416.                 Mouse.Y > 32 And Mouse.Y < 50 Then
  1417.                 RegHero = False
  1418.                 RegHeroText.Visible = False
  1419.             End If
  1420.             
  1421.         End If
  1422.     End If
  1423.     
  1424. '/////////////  点击交易窗口
  1425.     If Mouse.SelFrm = JiaoYiFrom Then
  1426.         If X > 372 And X < 550 And _
  1427.            Y > 236 And Y < 300 Then
  1428.             If Mouse.Item.State = True Then
  1429.                 For i = 0 To 9
  1430.                     If JiaoYi.JiaoYiItems(i).State = False Then
  1431.                         Client.SendData PLAYERJIAOYIITEM & KONGDATA & JiaoYi.JiaoYiPlayerNum & KONGDATA & ItemStr(Mouse.Item.Item) & NETKONGDATA
  1432.                         JiaoYi.JiaoYiItems(i).State = True
  1433.                         JiaoYi.JiaoYiItems(i).Item = Mouse.Item.Item
  1434.                         Mouse.Item.State = False
  1435.                         Exit For
  1436.                     End If
  1437.                 Next
  1438.             End If
  1439.         End If
  1440.         
  1441.     End If
  1442.     
  1443.     If Mouse.SelFrm = InfoFrom Then
  1444.         '///////////  点击交易按扭
  1445.         If Mouse.Button1DownX > 237 And Mouse.Button1DownX < 265 And _
  1446.            Mouse.Button1DownY > 453 And Mouse.Button1DownY < 466 Then
  1447.             PlayerNum = GetMapXYPlayerNum(Player(MainHeroNum).X, Player(MainHeroNum).Y, Player(MainHeroNum).Face, 1)
  1448.             If PlayerNum > 0 And Abs(Player(PlayerNum).Face - Player(MainHeroNum).Face) = 4 Then
  1449.                 Client.SendData PLAYERJIAOYI & KONGDATA & MainHeroNum & KONGDATA & PlayerNum & NETKONGDATA
  1450.             Else
  1451.                 ErrorFrm.State = True
  1452.                 ErrorStr = "请和你交易的人面对面~!"
  1453.                 ErrorFrm.X = 300
  1454.                 ErrorFrm.Y = 250
  1455.             End If
  1456.         End If
  1457.         
  1458.         '///////////////  点击包袱按钮
  1459.         If Mouse.X > 681 And Mouse.X < 704 And _
  1460.             Mouse.Y > 389 And Mouse.Y < 412 Then
  1461.             BagFrm.State = Not BagFrm.State
  1462.             BagFrm.X = 0
  1463.             BagFrm.Y = 30
  1464.         End If
  1465.         
  1466.         '///////// 点击装备按钮
  1467.         If Mouse.X > 642 And Mouse.X < 685 And _
  1468.             Mouse.Y > 412 And Mouse.Y < 434 Then
  1469.             HeroInfoFrm.State = Not HeroInfoFrm.State
  1470.             HeroInfoFrm.X = 500
  1471.             HeroInfoFrm.Y = 30
  1472.             HeroInfoFrm.Type = 0
  1473.         End If
  1474.         
  1475.         '///////////////  点击技能按钮
  1476.         If Mouse.X > 722 And Mouse.X < 744 And _
  1477.             Mouse.Y > 369 And Mouse.Y < 392 Then
  1478.             HeroInfoFrm.State = Not HeroInfoFrm.State
  1479.             HeroInfoFrm.X = 500
  1480.             HeroInfoFrm.Y = 30
  1481.             HeroInfoFrm.Type = 2
  1482.         End If
  1483.         
  1484.         '///////  点击OUT按钮
  1485.         If X > 542 And X < 570 And _
  1486.            Y > 453 And Y < 466 Then
  1487.             If MsgBox("确定要退出吗?", vbOKCancel Or vbDefaultButton2) = vbOK Then
  1488.                 PlayerCount = 0
  1489.                 ReDim Player(PlayerCount)
  1490.                 Client_Close
  1491.                 LoginClient.Connect ServerIP, ServerPort
  1492.                 
  1493.             End If
  1494.         End If
  1495.         '/////////  点击X按钮
  1496.         If X > 570 And X < 598 And _
  1497.            Y > 453 And Y < 466 Then
  1498.             If MsgBox("确定要退出游戏吗?", vbOKCancel Or vbDefaultButton2) = vbOK Then
  1499.                 End
  1500.             End If
  1501.         End If
  1502.     End If
  1503.     If Mouse.SelFrm = ErrorFrom Then
  1504.         If Mouse.X > ErrorFrm.X + 330 And Mouse.X < ErrorFrm.X + 330 + PrguseTex(361).Wid And _
  1505.             Mouse.Y > ErrorFrm.Y + 130 And Mouse.Y < ErrorFrm.Y + 130 + PrguseTex(361).Hei Then
  1506.             ErrorFrm.State = False
  1507.         End If
  1508.     End If
  1509.     
  1510.     If Mouse.SelFrm = BagFrom Then
  1511.         If Mouse.X > BagFrm.X + 312 And X < BagFrm.X + 322 And _
  1512.            Mouse.Y > BagFrm.Y + 206 And Y < BagFrm.Y + 221 Then
  1513.             BagFrm.State = False
  1514.         End If
  1515.     End If
  1516.     If Mouse.SelFrm = MainFrom Then
  1517.         '////////  丢物品
  1518.         If Mouse.Item.State = True Then
  1519.             Mouse.Item.State = False
  1520.             Client.SendData PLAYERDUIITEM & KONGDATA & Mouse.Item.ID & NETKONGDATA
  1521.         End If
  1522.     End If
  1523.     '////////  点击NPC信息窗口
  1524.     If NpcFrm.State = True Then
  1525.         If Mouse.SelFrm = NpcFrom Then
  1526.             For i = 0 To StrCount
  1527.                 If Mouse.X > StrInfo(i).tRECT.Left And Mouse.X < StrInfo(i).tRECT.Right And _
  1528.                     Mouse.Y > StrInfo(i).tRECT.Top And Mouse.Y < StrInfo(i).tRECT.bottom Then
  1529.                     If StrInfo(i).Type = 1 Then
  1530.                         If StrInfo(i).FunctionName <> "" Then
  1531.                             If UCase(StrInfo(i).FunctionName) = UCase("@exit") Then
  1532.                                 NpcFrm.State = False
  1533.                             Else
  1534.                                 Client.SendData SCRIPTFUNNAMEINFO & KONGDATA & MainHeroNum & KONGDATA & SelNpcNum & KONGDATA & StrInfo(i).FunctionName & NETKONGDATA
  1535.                             End If
  1536.                         End If
  1537.                     End If
  1538.                 End If
  1539.             Next
  1540.             
  1541.             If Mouse.X > 402 And Mouse.X < 411 And _
  1542.                 Mouse.Y > 4 And Mouse.Y < 19 Then
  1543.                 NpcFrm.State = False
  1544.             End If
  1545.         End If
  1546.     End If
  1547.     
  1548.     If Mouse.SelFrm = HeroInfoFrom Then
  1549.         If X > HeroInfoFrm.X + 10 And X < HeroInfoFrm.X + 27 And _
  1550.            Y > HeroInfoFrm.Y + 131 And Y < HeroInfoFrm.Y + 146 Then
  1551.            HeroInfoFrm.Type = HeroInfoFrm.Type - 1
  1552.            If HeroInfoFrm.Type < 0 Then HeroInfoFrm.Type = 3
  1553.         ElseIf X > HeroInfoFrm.X + 10 And X < HeroInfoFrm.X + 27 And _
  1554.            Y > HeroInfoFrm.Y + 190 And Y < HeroInfoFrm.Y + 205 Then
  1555.            HeroInfoFrm.Type = HeroInfoFrm.Type + 1
  1556.            If HeroInfoFrm.Type > 3 Then HeroInfoFrm.Type = 0
  1557.         ElseIf X > HeroInfoFrm.X + 11 And X < HeroInfoFrm.X + 20 And _
  1558.                Y > HeroInfoFrm.Y + 42 And Y < HeroInfoFrm.Y + 57 Then
  1559.                HeroInfoFrm.State = False
  1560.                '///////////  主角信息窗口关闭
  1561.         End If
  1562.     End If
  1563.     
  1564.     If Mouse.SelFrm = JiaoYiFrom Then
  1565.         If X > 571 And X < 583 And _
  1566.            Y > 223 And Y < 240 Then
  1567.             Client.SendData PLAYERJIAOYIEND & KONGDATA & MainHeroNum & KONGDATA & JiaoYi.JiaoYiPlayerNum & NETKONGDATA
  1568.             JiaoYiOKCancel False
  1569.             JiaoYi.State = False
  1570.         End If
  1571.         
  1572.         If X > 505 And X < 546 And _
  1573.             Y > 307 And Y < 322 Then
  1574.             If JiaoYi.JiaoYiOK = False Then
  1575.                 Client.SendData PLAYERJIAOYIOK & KONGDATA & MainHeroNum & KONGDATA & JiaoYi.JiaoYiPlayerNum & NETKONGDATA
  1576.                 JiaoYi.JiaoYiOK = True
  1577.             Else
  1578.                 Client.SendData PLAYERJIAOYIOK & KONGDATA & MainHeroNum & KONGDATA & JiaoYi.JiaoYiPlayerNum & NETKONGDATA
  1579.                 JiaoYiOKCancel True
  1580.             End If
  1581.             
  1582.         End If
  1583.     End If
  1584.            
  1585.            
  1586.     
  1587. End Sub
  1588. Private Sub Form_Resize()
  1589.     If Me.WindowState <> 1 Then
  1590.         Me.Scale (0, 0)-(SCREEN_WIDTH, SCREEN_HEIGHT)
  1591.     End If
  1592. End Sub
  1593. Private Sub Form_Unload(Cancel As Integer)
  1594.     LoginClient.Close
  1595.     Client_Close
  1596.     ClearDx
  1597.     Set LoginGameMusic = Nothing
  1598.     End
  1599. End Sub
  1600. Private Sub IDText_KeyPress(KeyAscii As Integer)
  1601.     If KeyAscii = 13 Then
  1602.         KeyAscii = 0
  1603.         If IDText.Text <> "" Then
  1604.             HeroID = IDText.Text
  1605.             LoginClient.SendData LOGINID & KONGDATA & IDText.Text & NETKONGDATA
  1606.             IDText.Text = ""
  1607.         End If
  1608.     End If
  1609. End Sub
  1610. Private Sub LoginClient_Connect()
  1611. '    LoginPic.Visible = True
  1612.     Running = 0
  1613.     IDLoginOK = False
  1614.     IDText.Visible = True
  1615.     If HeroID <> "" Then LoginClient.SendData LOGINID & KONGDATA & HeroID & NETKONGDATA
  1616.     If LoginGameMusic Is Nothing Then
  1617.         Set LoginGameMusic = DS.CreateSoundBufferFromFile(ResPath & "Wavmain_theme.wav", DSBDESC)
  1618.         
  1619.     End If
  1620.     LoginGameMusic.SetVolume mVolume
  1621.     LoginGameMusic.Play DSBPLAY_LOOPING
  1622.     MainLoop
  1623. End Sub
  1624. Private Sub LoginClient_DataArrival(ByVal bytesTotal As Long)
  1625.     Dim mData As String
  1626.     LoginClient.GetData mData, vbString
  1627.     NETDATACOUNT = NETDATACOUNT + 1
  1628.     ReDim Preserve NETDATA(NETDATACOUNT)
  1629.     NETDATA(NETDATACOUNT) = mData
  1630. End Sub
  1631. Private Sub Text1_Change()
  1632.     Text1.SelStart = Len(Text1.Text)
  1633. End Sub
  1634. Private Sub Text1_KeyPress(KeyAscii As Integer)
  1635.     Dim nData As Variant, SS As String
  1636.     Dim i As Integer
  1637.     If KeyAscii = 13 Then
  1638.         KeyAscii = 0
  1639.         If Left(Text1.Text, 1) = "/" Then
  1640.             nData = Split(Text1.Text, " ")
  1641.             SS = Right(nData(0), Len(nData(0)) - 1)
  1642.             For i = 1 To PlayerCount
  1643.                 If Player(i).Name_名字 = SS Then
  1644.                     If UBound(nData) > 0 Then
  1645.                         Client.SendData SILIAOINFO & KONGDATA & MainHeroNum & KONGDATA & Player(MainHeroNum).Name_名字 & KONGDATA & i & KONGDATA & Player(i).Name_名字 & KONGDATA & Right(Text1.Text, Len(Text1.Text) - Len(nData(0))) & NETKONGDATA
  1646.                     Else
  1647.                         Client.SendData SILIAOINFO & KONGDATA & MainHeroNum & KONGDATA & Player(MainHeroNum).Name_名字 & KONGDATA & i & KONGDATA & Player(i).Name_名字 & KONGDATA & " " & NETKONGDATA
  1648.                     End If
  1649.                     Exit For
  1650.                 End If
  1651.             Next
  1652.         ElseIf Left(Text1.Text, 1) = "!" Then
  1653.             Client.SendData TALKINFO & KONGDATA & MainHeroNum & KONGDATA & Player(MainHeroNum).Name_名字 & KONGDATA & "(!)" & Player(MainHeroNum).Name_名字 & ":" & Right(Text1.Text, Len(Text1.Text) - 1) & KONGDATA & D3DColorRGBA(255, 0, 255, 255) & KONGDATA & 1 & NETKONGDATA
  1654.         ElseIf Left(Text1.Text, 1) = "@" Then
  1655.             Client.SendData CMDDATA & KONGDATA & Text1.Text & NETKONGDATA
  1656.         Else
  1657.             Client.SendData TALKINFO & KONGDATA & MainHeroNum & KONGDATA & Player(MainHeroNum).Name_名字 & KONGDATA & Player(MainHeroNum).Name_名字 & ":" & Text1.Text & KONGDATA & D3DColorRGBA(0, 0, 0, 255) & KONGDATA & 0 & NETKONGDATA
  1658.         End If
  1659.         Text1.Text = ""
  1660.         Text1.Visible = False
  1661.     End If
  1662. End Sub
  1663. Private Sub Timer1_Timer()
  1664.     PlayNetData
  1665. End Sub
  1666. Private Sub Timer2_Timer()
  1667.     If LoginClient.State <> 7 Then LoginClient.Close: LoginClient.Connect ServerIP, ServerPort
  1668.     If LoginClient.State = 7 Then Timer2.Enabled = False
  1669. End Sub