.如果真 (取年份 (取现行时间 ()) < 2007)
信息框 (“你的机器时间设置不正确!为了你的正常使用,请设置好机器时间”, 0, )
销毁 ()
结束 ()
.如果真结束
运行路径 = 取运行目录 () + “\”
置文件属性 (运行路径 + “config.ini”, 32)
置文件属性 (运行路径 + “本地列表.txt”, 32)
句柄 = 取模块句柄 (“krnln.fnr”)
.如果真 (句柄 = 0)
句柄 = 取模块句柄 (“krnln.fne”)
.如果真结束
E库路径 = 取空白文本 (256)
取模块完整路径 (句柄, E库路径, 255)
E库路径 = 取文本左边 (E库路径, 倒找文本 (E库路径, “\”, , 假))
临时文件 = 取临时文件名 ()
临时路径 = 取文本左边 (临时文件, 倒找文本 (临时文件, “\”, , 假))
写到文件 (临时路径 + “皮肤.skn”, #皮肤)
易皮肤_载入皮肤 (临时路径 + “皮肤.skn”, _启动窗口.取窗口句柄 ())
游戏路径 = 读配置项 (运行路径 + “本地列表.txt”, “客户端”, “游戏路径”, 运行路径)
读取本地列表 ()
关闭对象 (创建线程_ (0, 0, &读取远程列表, 0, 0, 0))
_启动窗口.标题 = _启动窗口.标题 + “ ver:” + #版本号
_启动窗口.可视 = 真
本地列表框.内容 = “请选择本地游戏列表”
创建快捷方式 (取特定目录 (#系统桌面) + “\征途私服通用登陆器”, 取运行目录 () + “\” + 取执行文件名 (), , , )
.如果真 (文件是否存在 (游戏路径 + “data\map.pak”) = 假)
载入 (查找目录, _启动窗口, 真)
.如果真结束
.子程序 刷新远程列表
.局部变量 配置文件, 文本型
.局部变量 项组, 文本型, , "0"
.局部变量 计次, 整数型
.局部变量 临时, 列表结构
.局部变量 公告计次, 整数型
配置文件 = 临时路径 + “list.ini”
清除数组 (远程列表)
项组 = 取配置节名 (配置文件)
.计次循环首 (取数组成员数 (项组), 计次)
.如果真 (项组 [计次] = “本地设置”)
本地配置.广告 = “是” = 读配置项 (配置文件, “本地设置”, “广告”, “是”)
本地配置.当前版本 = 读配置项 (配置文件, “本地设置”, “当前版本”, #版本号)
本地配置.更新地址 = 读配置项 (配置文件, “本地设置”, “更新地址”, “”)
本地配置.IE地址 = 读配置项 (配置文件, “本地设置”, “IE地址”, “”)
本地配置.IE标题 = 读配置项 (配置文件, “本地设置”, “IE标题”, “”)
本地配置.QQ = 读配置项 (配置文件, “本地设置”, “QQ”, “”)
.如果真 (本地配置.当前版本 ≠ #版本号)
.如果真 (#是钮 = 信息框 (“已有新版本的登陆器可以更新,是否现在更新?”, #是否钮, “登陆器版本更新”))
更新客户端 ()
.如果真结束
.如果真结束
到循环尾 ()
.如果真结束
临时.服务器名 = 项组 [计次]
临时.版本说明 = 读配置项 (配置文件, 项组 [计次], “说明”, “”)
临时.IP1 = 读配置项 (配置文件, 项组 [计次], “IP1”, “”)
临时.IP2 = 读配置项 (配置文件, 项组 [计次], “IP2”, “”)
临时.端口1 = 读配置项 (配置文件, 项组 [计次], “端口1”, “”)
临时.端口2 = 读配置项 (配置文件, 项组 [计次], “端口2”, “”)
临时.zone = 读配置项 (配置文件, 项组 [计次], “zone”, “”)
临时.版本 = 到整数 (读配置项 (配置文件, 项组 [计次], “版本”, “0”))
临时.网络 = 到整数 (读配置项 (配置文件, 项组 [计次], “网络”, “0”))
临时.帐号注册 = 读配置项 (配置文件, 项组 [计次], “注册”, “”)
临时.密码修改 = 读配置项 (配置文件, 项组 [计次], “修改”, “”)
临时.开服时间 = 读配置项 (配置文件, 项组 [计次], “时间”, “”)
临时.QQ = 读配置项 (配置文件, 项组 [计次], “QQ”, “”)
临时.官方网站 = 读配置项 (配置文件, 项组 [计次], “web”, “”)
加入成员 (远程列表, 临时)
.计次循环尾 ()
显示远程列表 ()
.子程序 显示远程列表
.参数 过滤, 整数型, 可空, -1=所有,0=其它线路,1=网通,2=电信 10=其它版本,11=变态,12=中等变态,13=仿官方
.局部变量 计次, 整数型
.局部变量 索引, 整数型
.局部变量 表项数, 整数型
.局部变量 i, 整数型
.局部变量 时间, 日期时间型
.局部变量 网络, 整数型
.如果真 (选择列表 = 2)
选择列表 = 0
.如果真结束
远程列表框.全部删除 ()
.如果真 (是否为空 (过滤))
过滤 = -1
.如果真结束
.计次循环首 (取数组成员数 (远程列表), 计次)
.判断开始 (过滤 = -1)
.判断 (过滤 = 0)
.如果真 (远程列表 [计次].网络 ≠ 0)
到循环尾 ()
.如果真结束
.判断 (过滤 = 1)
.如果真 (远程列表 [计次].网络 ≠ 1)
到循环尾 ()
.如果真结束
.判断 (过滤 = 2)
.如果真 (远程列表 [计次].网络 ≠ 2)
到循环尾 ()
.如果真结束
.判断 (过滤 = 10)
.如果真 (远程列表 [计次].版本 ≠ 0)
到循环尾 ()
.如果真结束
.判断 (过滤 = 11)
.如果真 (远程列表 [计次].版本 ≠ 1)
到循环尾 ()
.如果真结束
.判断 (过滤 = 12)
.如果真 (远程列表 [计次].版本 ≠ 2)
到循环尾 ()
.如果真结束
.判断 (过滤 = 13)
.如果真 (远程列表 [计次].版本 ≠ 3)
到循环尾 ()
.如果真结束
.默认
.判断结束
索引 = 远程列表框.插入表项 (, , , , , 计次)
远程列表框.置标题 (索引, 0, 远程列表 [计次].服务器名)
远程列表框.置标题 (索引, 1, 远程列表 [计次].版本说明)
远程列表框.置标题 (索引, 2, 到文本 (到时间 (远程列表 [计次].开服时间)))
远程列表框.置标题 (索引, 3, 到文本 (选择 (远程列表 [计次].网络 = 1, “网通”, “电信”)))
远程列表框.置标题 (索引, 4, 远程列表 [计次].QQ)
远程列表框.置标题 (索引, 5, 远程列表 [计次].官方网站)
.计次循环尾 ()
超级列表框排序 (远程列表框, 2, 2, , 假)
表项数 = 远程列表框.取表项数 ()
时间 = 取现行时间 ()
.计次循环首 (表项数, i)
.如果 (取时间间隔 (到时间 (远程列表框.取标题 (0, 2)), 时间, #秒) > 0)
索引 = 远程列表框.插入表项 (, , , , , 远程列表框.取表项数值 (0))
远程列表框.置标题 (索引, 0, 远程列表框.取标题 (0, 0))
远程列表框.置标题 (索引, 1, 远程列表框.取标题 (0, 1))
远程列表框.置标题 (索引, 2, 远程列表框.取标题 (0, 2))
远程列表框.置标题 (索引, 3, 远程列表框.取标题 (0, 3))
远程列表框.置标题 (索引, 4, 远程列表框.取标题 (0, 4))
远程列表框.置标题 (索引, 5, 远程列表框.取标题 (0, 5))
远程列表框.删除表项 (0)
.否则
跳出循环 ()
.如果结束
.计次循环尾 ()
.子程序 读取远程列表
.局部变量 句柄, 整数型
透明标签7.标题 = “正在获取远程服务器列表,请稍后...”
句柄 = 打开文件 (临时路径 + “list.ini”, #重写, )
.判断开始 (读HTTP文件 (#远程列表, , 句柄, ))
透明标签7.标题 = “远程服务器列表获取成功”
透明标签7.可视 = 假
透明标签3.可视 = 真
.判断 (读HTTP文件 (#备用远程列表, , 句柄, ))
透明标签7.标题 = “远程服务器列表获取成功”
透明标签7.可视 = 假
透明标签3.可视 = 真
.默认
透明标签7.标题 = “获取远程服务器列表失败”
.判断结束
移到文件首 (句柄)
关闭文件 (句柄)
刷新远程列表 ()
.子程序 读取本地列表
.局部变量 句柄, 整数型
.局部变量 行, 文本型
.局部变量 结构, 文本型, , "0"
.局部变量 计次, 整数型
.局部变量 临时, 列表结构
句柄 = 打开文件 (运行路径 + “本地列表.txt”, #读入, #禁止读写)
.如果真 (句柄 ≠ 0)
清除数组 (本地列表)
.判断循环首 (假 = 是否在文件尾 (句柄, ))
行 = 读入一行 (句柄)
结构 = 分割文本 (行, “|”, )
.如果真 (取数组成员数 (结构) = 10)
临时.服务器名 = 结构 [1]
临时.IP1 = 结构 [2]
临时.IP2 = 结构 [3]
临时.端口1 = 结构 [4]
临时.端口2 = 结构 [5]
临时.zone = 结构 [6]
临时.帐号注册 = 结构 [7]
临时.密码修改 = 结构 [8]
临时.QQ = 结构 [9]
临时.官方网站 = 结构 [10]
加入成员 (本地列表, 临时)
.如果真结束
.判断循环尾 ()
关闭文件 (句柄)
.如果真结束
刷新本地列表 ()
.子程序 刷新本地列表
.局部变量 计次, 整数型
.如果真 (选择列表 = 1)
选择列表 = 0
.如果真结束
本地列表框.清空 ()
.计次循环首 (取数组成员数 (本地列表), 计次)
本地列表框.插入项目 (0, 本地列表 [计次].服务器名, 计次)
.计次循环尾 ()
.子程序 写出本地列表
.局部变量 句柄, 整数型
.局部变量 行, 文本型
.局部变量 计次, 整数型
句柄 = 打开文件 (运行路径 + “本地列表.txt”, #重写, #禁止读写)
.计次循环首 (取数组成员数 (本地列表), 计次)
行 = 本地列表 [计次].服务器名 + “|” + 本地列表 [计次].IP1 + “|” + 本地列表 [计次].IP2 + “|” + 本地列表 [计次].端口1 + “|” + 本地列表 [计次].端口2 + “|” + 本地列表 [计次].zone + “|” + 本地列表 [计次].帐号注册 + “|” + 本地列表 [计次].密码修改 + “|” + 本地列表 [计次].QQ + “|” + 本地列表 [计次].官方网站
写文本行 (句柄, 行)
.计次循环尾 ()
写文本行 (句柄, “[客户端]”)
写文本行 (句柄, “游戏路径=” + 游戏路径)
关闭文件 (句柄)
.子程序 _清空本地_被选择
删除文件 (运行路径 + “本地列表.txt”)
清除数组 (本地列表)
刷新本地列表 ()
.子程序 _删除游戏_被选择
.如果真 (本地列表框.现行选中项 ≠ -1)
删除成员 (本地列表, 本地列表框.取项目数值 (本地列表框.现行选中项), 1)
刷新本地列表 ()
写出本地列表 ()
.如果真结束
.子程序 _本地列表框_鼠标右键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
弹出菜单 (本地菜单, , )
.子程序 _远程列表框_鼠标右键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
弹出菜单 (远程菜单, , )
.子程序 _本地列表框_列表项被选择
选择列表 = 1
选择列项 = 本地列表框.取项目数值 (本地列表框.现行选中项)
显示到编辑框 ()
远程列表框.现行选中项 = -1
.子程序 _远程列表框_当前表项被改变
选择列表 = 2
选择列项 = 远程列表框.取表项数值 (远程列表框.现行选中项)
显示到编辑框 ()
本地列表框.现行选中项 = -1
.子程序 显示到编辑框
.如果真 (选择列表 = 1) 本地
QQ编辑框.内容 = 本地列表 [选择列项].QQ
名称编辑框.内容 = 本地列表 [选择列项].服务器名
zone编辑框.内容 = 本地列表 [选择列项].zone
IP1编辑框.内容 = 本地列表 [选择列项].IP1
端口1编辑框.内容 = 本地列表 [选择列项].端口1
IP2编辑框.内容 = 本地列表 [选择列项].IP2
端口2编辑框.内容 = 本地列表 [选择列项].端口2
注册编辑框.内容 = 本地列表 [选择列项].帐号注册
修改编辑框.内容 = 本地列表 [选择列项].密码修改
测试IP (0)
返回 ()
.如果真结束
.如果真 (选择列表 = 2) 远程
QQ编辑框.内容 = 远程列表 [选择列项].QQ
名称编辑框.内容 = 远程列表 [选择列项].服务器名
zone编辑框.内容 = 远程列表 [选择列项].zone
IP1编辑框.内容 = 远程列表 [选择列项].IP1
端口1编辑框.内容 = 远程列表 [选择列项].端口1
IP2编辑框.内容 = 远程列表 [选择列项].IP2
端口2编辑框.内容 = 远程列表 [选择列项].端口2
注册编辑框.内容 = 远程列表 [选择列项].帐号注册
修改编辑框.内容 = 远程列表 [选择列项].密码修改
测试IP (0)
气球提示框.弹出提示框 (取鼠标水平位置 (), 取鼠标垂直位置 (), “服务器名:” + 名称编辑框.内容 + #换行符 + “服务器IP1/POST1:” + IP1编辑框.内容 + “:” + 端口1编辑框.内容 + #换行符 + “服务器IP2/POST2:” + IP2编辑框.内容 + “:” + 端口2编辑框.内容 + #换行符 + “ZONE:” + zone编辑框.内容 + #换行符 + “版本介绍:” + 远程列表 [选择列项].版本说明 + #换行符 + “开区时间:” + 远程列表 [选择列项].开服时间 + #换行符 + “网络线路:” + 选择 (远程列表 [选择列项].网络 = 1, “网通线路”, “电信线路”) + #换行符 + “官方主页:” + “<a href=” + 远程列表 [选择列项].官方网站 + “>” + 远程列表 [选择列项].官方网站 + “</a>” + #换行符 + “账号注册:” + “<a href=” + 注册编辑框.内容 + “>” + 注册编辑框.内容 + “</a>” + #换行符 + “客服QQ:” + “<a href=” + “tencent://Message/?Menu=yes&Uin=” + 远程列表 [选择列项].QQ + “&websiteName=XKZT.COM征途万能登陆器” + “>” + 远程列表 [选择列项].QQ + “</a>” + #换行符 + “添加游戏:” + “<a event=图形按钮>点击添加到本地列表</a>”, -1, 真)
返回 ()
.如果真结束
.子程序 测试IP
.参数 开关, 整数型
.如果真 (开关 = 0)
.如果真 (线程 ≠ 0)
中止线程_ (线程, 0)
关闭对象 (线程)
线程 = 0
.如果真结束
线程 = 创建线程_ (0, 0, &测试IP, 1, 0, 0)
返回 ()
.如果真结束
.如果真 (开关 = 1 且 IP1编辑框.内容 ≠ “” 且 IP1编辑框.内容 ≠ “”)
透明标签3.标题 = “[” + 名称编辑框.内容 + “]” + “连接中...”
.如果 (客户1.连接 (IP1编辑框.内容, 到整数 (端口1编辑框.内容)))
客户1.断开连接 ()
透明标签3.标题 = “[” + 名称编辑框.内容 + “]” + “连接正常”
.否则
透明标签3.标题 = “[” + 名称编辑框.内容 + “]” + “连接失败”
.如果结束
.如果真结束
.子程序 _刷新列表_被选择
显示远程列表 ()
.子程序 _添加游戏_被选择
_按钮4_被单击 ()
.子程序 _访问网站_被选择
_按钮7_被单击 ()
.子程序 _联系客服_被选择
_按钮4_被单击 ()
.子程序 _网通征途_被选择
显示远程列表 (1)
.子程序 _电信征途_被选择
显示远程列表 (2)
.子程序 _其它线路_被选择
显示远程列表 (0)
.子程序 _变态征途_被选择
显示远程列表 (1)
.子程序 _中等变态_被选择
显示远程列表 (2)
.子程序 _官方征途_被选择
显示远程列表 (3)
.子程序 _其它版本_被选择
显示远程列表 (0)
.子程序 _按钮3_被单击, , , 注册帐号
.如果真 (选择列表 = 1) 本地
超链接框.Internet地址 = 本地列表 [选择列项].帐号注册
超链接框.跳转 ()
返回 ()
.如果真结束
.如果真 (选择列表 = 2) 远程
超链接框.Internet地址 = 远程列表 [选择列项].帐号注册
超链接框.跳转 ()
返回 ()
.如果真结束
.如果真 (选择列表 = 0 且 注册编辑框.内容 ≠ “”)
超链接框.Internet地址 = 注册编辑框.内容
超链接框.跳转 ()
返回 ()
.如果真结束
.子程序 _按钮4_被单击, , , 添加到本地列表
.局部变量 临时, 列表结构
.局部变量 索引, 整数型
.如果真 (选择列表 = 2) 远程
临时.服务器名 = 远程列表 [选择列项].服务器名
临时.IP1 = 远程列表 [选择列项].IP1
临时.IP2 = 远程列表 [选择列项].IP2
临时.端口1 = 远程列表 [选择列项].端口1
临时.端口2 = 远程列表 [选择列项].端口2
临时.zone = 远程列表 [选择列项].zone
临时.帐号注册 = 远程列表 [选择列项].帐号注册
临时.密码修改 = 远程列表 [选择列项].密码修改
临时.QQ = 远程列表 [选择列项].QQ
临时.官方网站 = 远程列表 [选择列项].官方网站
加入成员 (本地列表, 临时)
刷新本地列表 ()
写出本地列表 ()
信息框 (“添加成功,祝你游戏愉快!”, 0, )
本地列表框.获取焦点 ()
本地列表框.现行选中项 = 0
返回 ()
.如果真结束
索引 = 本地列表框.取项目数值 (本地列表框.现行选中项)
.如果真 (索引 > 0 且 索引 ≤ 取数组成员数 (本地列表) 且 名称编辑框.内容 = 本地列表 [索引].服务器名)
返回 ()
.如果真结束
.判断开始 (名称编辑框.内容 = “”)
返回 ()
.判断 (IP1编辑框.内容 = “”)
返回 ()
.判断 (端口1编辑框.内容 = “”)
返回 ()
.判断 (IP2编辑框.内容 = “”)
返回 ()
.判断 (端口2编辑框.内容 = “”)
返回 ()
.判断 (zone编辑框.内容 = “”)
返回 ()
.默认
.判断结束
临时.服务器名 = 名称编辑框.内容
临时.IP1 = IP1编辑框.内容
临时.IP2 = IP2编辑框.内容
临时.端口1 = 端口1编辑框.内容
临时.端口2 = 端口2编辑框.内容
临时.zone = zone编辑框.内容
临时.帐号注册 = 注册编辑框.内容
临时.密码修改 = 修改编辑框.内容
临时.QQ = QQ编辑框.内容
临时.官方网站 = 注册编辑框.内容
加入成员 (本地列表, 临时)
刷新本地列表 ()
写出本地列表 ()
.子程序 _按钮5_被单击, , , 手动添加游戏
载入 (窗口1, , 真)
.子程序 _按钮7_被单击, , , 在线更新
.如果 (本地配置.当前版本 ≠ #版本号)
更新客户端 ()
.否则
信息框 (“目前没有需要更新的登陆器版本!”, 0, )
.如果结束
.子程序 _按钮2_被单击, , , 开始游戏
.局部变量 配置文件, 文本型
.判断开始 (名称编辑框.内容 = “”)
返回 ()
.判断 (IP1编辑框.内容 = “”)
返回 ()
.判断 (端口1编辑框.内容 = “”)
返回 ()
.判断 (IP2编辑框.内容 = “”)
返回 ()
.判断 (端口2编辑框.内容 = “”)
返回 ()
.判断 (zone编辑框.内容 = “”)
返回 ()
.默认
.判断结束
.如果真 (文件是否存在 (游戏路径 + “data\map.pak”) = 假)
载入 (查找目录, _启动窗口, 真)
返回 ()
.如果真结束
配置文件 = 游戏路径 + “config.ini”
.如果真 (文件是否存在 (配置文件) = 假)
写到文件 (配置文件, #默认配置)
.如果真结束
写配置项 (配置文件, “server”, “servername”, 名称编辑框.内容)
写配置项 (配置文件, “server”, “loginaddress”, IP1编辑框.内容 + “:” + IP2编辑框.内容)
写配置项 (配置文件, “server”, “loginport”, 端口1编辑框.内容 + “:” + 端口2编辑框.内容)
写配置项 (配置文件, “server”, “zone”, zone编辑框.内容)
删除文件 (“data\li16.fnt”)
删除文件 (“data\li16.fnt.tga”)
删除文件 (“data\li28.fnt”)
删除文件 (“data\li28.fnt.tga”)
删除文件 (“data\song12.fnt”)
删除文件 (“data\song12.fnt.tga”)
写到文件 (“zhengtu.exe”, #征途客户端)
写到文件 (游戏路径 + “fmodex.dll”, #fmodex)
写到文件 (游戏路径 + “weapon.dat”, #weapon)
写到文件 (游戏路径 + “data\zhengtu.dat”, #征途客户端)
写到文件 (游戏路径 + “data\weapon.dat”, #weapon)
写到文件 (游戏路径 + “data\gui.pak”, #gui)
写到文件 (游戏路径 + “data\alpha.pak”, #alpha)
改变目录 (游戏路径)
运行 (游戏路径 + “data\zhengtu.dat -runzt 0”, 假, #普通激活)
li16.fnt
li16.fnt.tga
li28.fnt
li28.fnt.tga
song12.fnt
song12.fnt.tga
.子程序 _帮助_被选择
.如果真 (本地配置.IE地址 ≠ “”)
超链接框.Internet地址 = 本地配置.IE地址
超链接框.跳转 ()
返回 ()
.如果真结束
.子程序 _在线更新_被选择
.如果 (本地配置.当前版本 ≠ #版本号)
更新客户端 ()
.否则
信息框 (“目前没有需要更新的登陆器版本!”, 0, )
.如果结束
.子程序 更新客户端
.局部变量 句柄, 整数型
.局部变量 MZ, 文本型
更新进度.可视 = 真
句柄 = 打开文件 (运行路径 + “updata.dat”, #重写, )
.如果真 (读HTTP文件 (本地配置.更新地址, 80, 句柄, &进度))
移到文件首 (句柄)
MZ = 读入文本 (句柄, 2)
关闭文件 (句柄)
.如果真 (MZ = “MZ”)
更新替换 ()
.如果真结束
.如果真结束
更新进度.可视 = 假
关闭文件 (句柄)
.子程序 进度, 整数型
.参数 原长度, 整数型
.参数 现长度, 整数型
更新进度.位置 = 取整 (现长度 ÷ 原长度 × 100)
返回 (1)
.子程序 更新替换
.局部变量 参数, 文本型
参数 = E库路径 + “替换.dat”
写到文件 (参数, #更新)
参数 = 参数 + “ -|” + 到文本 (取自进程ID ()) + “|” + 运行路径 + “updata.dat” + “|” + 运行路径 + 取执行文件名 ()
运行 (参数, 假, )
结束 ()
.子程序 __启动窗口_将被销毁
.如果真 (本地配置.广告)
超链接框.Internet地址 = 本地配置.IE地址
超链接框.跳转 ()
.如果真结束