- 精华
- 阅读权限
- 70
- 好友
- 相册
- 分享
- 听众
- 收听
- 注册时间
- 2010-12-3
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
本帖最后由 zhitianjiao 于 2012-1-24 00:45 编辑
在网上可以搜得到美丽世界服务端 ,
美丽世界架设有点麻烦,我现在就在玩美丽世界。
架设:
第1步:必须win2000或win2003才能架设,我是用虚拟机装win2000的。(xp能运行服务端,但客户端连接不上,测试多次)
不能用精简版的操作系统,否则sql2000安装不了, 我下载的是300多m的win2000操作系统。
非精简版的操作系统,可以用绿色版的Gsql ,但同样要求操作系统必须完整,否则Gsql同样无法运行。(我用精简版的win2000系统测试过多次, sql2000或Gsql均无法正常运行)
第2步,修改服务端内所有txt , ini 的ip地址。
第3,运行sql ,手动或者写脚本,创建当日的表名称;
第4步,将服务端压缩包之内的 客户端补丁及登陆器,覆盖到客户端安装目录。
第5步,用Uedit 打开客户端目录下的 登陆器 Me-NAge.exe , 以正则表达式的方法搜索ip地址 ,表达式是 \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} ,找到后替换为服务器ip ,然后保存。
做完5步后,还要进数据库建立游戏角色(我是自己写脚本完成的),然后就可以运行游戏了。由于客户端版本高于服务端,所以读取地图偶尔会出错。
具体参考服务端内的帮助文档,尽管里面诸多错误。
以下代码保存为xxx.vbs文件可以简化一些操作:
-------------------------------------------------
- ' /*************************
- ' by 橘 : zhitian@studio
- ' *************************/
- Option Explicit
- Dim sqlname , sqlpass
- Dim conn , statu , action , i , server_ip , sqlinfo
- ' 填写: sqlser账号 密码
- sqlname = "sa" ' // 这里修改mssql的账号密码
- sqlpass = "123456"
-
-
- ' 功能选择
- action = InputBox("请选择执行的功能:( 多个用空格分开 ) " & Chr(13) & Chr(10) & "数字1 【修改服务器ip】 " & Chr(13) & Chr(10) & "数字2 【替换文件ip】" & Chr(13) & Chr(10) & "数字3 【添加游戏账号】" & Chr(13) & Chr(10) & "数字4 【创建当天新表(数据库内类似Loginlog_200522的表名)】", "执行功能" , "1 2 3 4" )
-
- If action = "" Then
- MsgBox "没有执行任何动作."
- else
- action = Split( action , " " )
- set conn = CreateObject("ADODB.Connection")
- For Each i In action
- Select Case Trim( i )
- Case 1
- ' 执行更改服务器ip
- server_ip = changeserver( sqlname , sqlpass , conn )
- Case 2
-
- ' 修改本地文件内的ip
- replace_ip "./" , server_ip
- ' 提示
- msgbox "文件内的ip地址修改完毕" , 64 , "提示"
-
- Case 3
- ' 执行添加角色函数
- addmember sqlname , sqlpass , conn
- Case 4
- createtable( conn )
-
- Case 5
- testodbc( conn )
- Case 6
- getComputerName
- Case 7
- createodbc
- End select
- next
- Set conn = Nothing
- End If
- ' /**************** 函数区域 *****************/
- ' ###### 更改服务器ip函数
- Function changeserver( sqlname , sqlpass , conn )
- Dim serverip , regEx , tmp , statu ' 状态
- serverip = InputBox( "请输入你的游戏服务器ip:", "您现在执行的是 修改数据库servinfo的ip字段" , "192.168.1.100" )
- statu = checkip( serverip )
- If statu = 0 Then
- Exit Function
- End if
- ' 建立sql连接 .数据库驱动连接方法
- ' 打开Nage数据库
- conn.Open "Database=Nage;uid=" & sqlname & ";pwd=" & sqlpass & ";Driver={SQL Server};server=localhost"
- If conn.State = 0 Then
- statu = 0
- MsgBox "连接数据库失败," & Chr(13) & Chr(10) & "请检查sqlser.exe是否运行," & Chr(13) & Chr(10) & "以及数据库账号和密码是否正确." , 53 , "连接数据库提示"
- Else
- ' 更新ip
- conn.Execute "update ServInfo set servIP='" & serverip & "'"
- statu = serverip
-
- ' 提示
- msgbox "数据库内的服务器ip修改完成" , 64 , "提示"
- End If
- ' 关闭数据库连接
- conn.Close
- ' 函数返回值
- changeserver = statu
- End function
- ' ###### 查找替换ip程序
- Sub replace_ip( op_path , server_ip )
- Dim fso , current , folder , file , fp
- Dim regEx , suffix , tempstr , statu
-
- ' 如果没有server_ip则提示输入 , 否则使用server_ip的值
- If server_ip = "" Then
- server_ip = InputBox("请输入服务器ip地址:", "修改文件内的所有ip" , "192.168.1.100" )
- Else
- End If
- ' 检查输入的ip地址的合法性
- statu = checkip( server_ip )
- If statu = 0 Then
- Exit sub
- End if
- ' ip地址 正则表达式
- Set regEx = New RegExp
- regEx.Pattern = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
- regEx.Global = True
-
- ' fso对象
- Set fso = CreateObject("Scripting.FileSystemObject")
- set current = fso.GetFolder( op_path )
-
- ' 处理第一层目录
- For Each file In current.Files
-
- ' 只处理txt和ini文件
- suffix = Lcase( mid( file , instrrev( file , "." ) + 1 ) )
- If (suffix = "txt") Or (suffix = "ini") Then
- ' 打开文件
- set fp = fso.OpenTextFile( file, 1, True )
- On Error Resume next
- ' 读取文件 , 正则替换 , 写入文件
- tempstr = fp.Readall
- If regEx.test( tempstr ) Then
- MsgBox file
- tempstr = regEx.Replace( tempstr , server_ip )
- set fp=fso.OpenTextFile( file, 2 , False , -2 )
- fp.Write tempstr
- End If
- fp.close
- End if
- Next
- ' 递归处理 子目录
- for each folder in current.subfolders
- Call replace_ip( folder.path , server_ip )
- next
- set fso=nothing
- End Sub
-
- ' ###### 添加角色函数
- Function addmember( sqlname , sqlpass , conn )
-
- Dim is_exist , u_input , uname , upass , statu
- Dim rand_ppid
- u_input = InputBox( "您现在执行的是建立角色功能" & Chr(13) & Chr(10) & "请输入 游戏账号和密码 " & Chr(13) & Chr(10) & " (限字母和数字) 用空格分开:", "建立游戏账号" )
- u_input = Split( u_input , " " )
- ' 返回下标最大值,判断长度
- If UBound( u_input ) < 1 Then
- MsgBox "您只填写了1项,至少要填写2项内容,用空格分开."
- Exit Function
- End if
- uname = u_input(0)
- upass = u_input(1)
- ' 打开NageMember表
- conn.Open "Database=NageMember;uid=" & sqlname & ";pwd=" & sqlpass & ";Driver={SQL Server};server=localhost"
- If conn.State = 0 Then
- statu = 0
- MsgBox "连接数据库失败," & Chr(13) & Chr(10) & "请检查sqlser.exe是否运行," & Chr(13) & Chr(10) & "以及数据库账号和密码是否正确." , 53 , "连接数据库提示"
- Else
- ' 查询账号是否存在
- Set is_exist = conn.Execute( "SELECT count( id_loginid ) FROM chr_log_info WHERE id_loginid='" & uname & "'" )
- If is_exist.recordcount > 0 then
- MsgBox "游戏账号: " & uname & " 已经存在.", 53 , "账号提示"
- statu = 0
- Else
- rand_ppid = myrand()
- ' 建立 游戏账户 此3项不能重复(随机数id,账号,密码)
- conn.Execute "insert into chr_log_info( propid , id_loginid , id_passwd , sta_num , type_num , id_real , bill ) values( " & rand_ppid & " , '" & uname & "' , '" & upass & "' , 1 , 1 , 0 , 151 )"
- statu = 1
- End If
-
- End If
- ' 关闭数据库连接
- conn.Close
-
- ' 提示
- If statu = 0 Then
- msgbox "角色添加失败!" , 64 , "提示"
- Else
- MsgBox "角色添加成功!" , 64 , "提示"
- End if
- ' 返回值
- addmember = statu
- End Function
-
- Function createtable( conn )
- Dim newtable , is_exist
- ' 打开NageMember表
- conn.Open "Database=NageMember;uid=" & sqlname & ";pwd=" & sqlpass & ";Driver={SQL Server};server=localhost"
- If conn.State = 0 Then
- statu = 0
- MsgBox "连接数据库失败," & Chr(13) & Chr(10) & "请检查sqlser.exe是否运行," & Chr(13) & Chr(10) & "以及数据库账号和密码是否正确." , 53 , "连接数据库提示"
- Else
- ' 新表名 (当天时间)
- newtable = "Loginlog_" & Year(Date()) & Month(Date()) & Day(Date())
-
- ' 查询 新表 是否存在
- Set is_exist = conn.Execute( "select count(*) from sysobjects where [name]='" & newtable & "' and xtype='U'" )
- If is_exist.Fields(0).Value <> 1 then
- ' 复制的方式 建立新表
- conn.execute "select * into " & newtable & " from Loginlog_200552 where 1=2"
- End If
-
- End If
- ' 关闭数据库连接
- conn.Close
- MsgBox "更新数据库表名完成" , 64 , "ok"
- End Function
-
- ' ###### 随机数
- Function myrand( )
- Dim i
- Randomize
- i = Int((99999 - 10000 + 1) * Rnd() + 10000)
-
- myrand = i
- End Function
- ' ###### 检查ip地址合法性
- Function checkip( serverip )
- Dim regEx , statu
- statu = 1
- If serverip = "" Then
- MsgBox "服务器ip地址不能为空." , 53 , "ip地址不合法!"
- checkip = 0
- Exit function
- End if
- Set regEx = NEW RegExp
- regEx.Pattern = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
- If Not( regEx.test( serverip ) ) Then
- MsgBox "您输入的服务器ip不正确." , 53 , "ip地址不合法!"
- statu = 0
- End If
- checkip = statu
- End function
-
- Function testodbc( conn )
- ' 打开NageMember表
- conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=(local)\test"
- If conn.State = 0 Then
- MsgBox "连接数据库失败," & Chr(13) & Chr(10) & "请检查sqlser.exe是否运行," & Chr(13) & Chr(10) & "以及数据库账号和密码是否正确." , 53 , "连接数据库提示"
- Else
- MsgBox "ok!!!!!!!!"&Chr(13) & Chr(10)&"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=(local)\test"
-
- End If
- ' 关闭数据库连接
- conn.Close
- End Function
-
- ' 从注册表获取计算机名称
- Function getComputerName()
- MsgBox "此功能已被作者移除"
- End Function
- ' 创建odbc
- Function createodbc()
- Dim compname , wsobj
- compname = getComputerName
- Set wsobj = WScript.CreateObject("WScript.Shell")
-
- ' 在根键HKEY_CLASSES_ROOT之下新建主键.xxf,并置其默认值xxffile
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\LocalServer" , "SQL Server"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\NageBoard" , "SQL Server"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\NageBoard10" , "SQL Server"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\NageLocal" , "SQL Server"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\NageLocal10" , "SQL Server"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\NageLogin" , "SQL Server"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\NageManager" , "SQL Server"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\NageSystem" , "SQL Server"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Description" , "LocalServer"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Server" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Database" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Trusted_Connection" , "1"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Description" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Server" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Database" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Trusted_Connection" , "1"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Description" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Server" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Database" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Trusted_Connection" , "1"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Description" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Server" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Database" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Trusted_Connection" , "1"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Description" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Server" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Database" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Trusted_Connection" , "1"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Description" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Server" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Database" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Trusted_Connection" , "1"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Description" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Server" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Database" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Trusted_Connection" , "1"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Description" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Server" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Database" , "test2"
- wsobj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\LocalServer\Trusted_Connection" , "1"
- End Function
- Function config( str )
-
- End function
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
评分
-
查看全部评分
|