//说明.txt
服务端1支持1.7到13.0版本客户端,修正了创建人物等问题,服务端2支持18.0到21.0客户端
很多人不太知道下载的客户端是不是还要打什么补丁
私服主要是要破解客户端,yb_mem.dll要换,Client.exe主程序要破解
但是不需要安装官方的更新补丁,私服通常都是针对客户端的初代版本开发的
比如2.1服务端对应的客户端是2100, 而不是2101 2102 2103 ... 2125等等
3.0服务端对应的客户端是3000, 而不是3001 3002 3003 ... 3031等等
8.0服务端对应的客户端是8000, 而不是8001 8002 8003 ... 8028等等
现在官方提供的21.0客户端,直接下载安装21000, 研究私服就不要再安装更新补丁
私服的补丁都是YBI等数据文件,而不是客户端主程序
具体用法详见以下视频教程,一个多小时剪辑为10分钟,
很多特效,天气效果,表情测试等都被剪掉了.大家可以自行测试研究
https://www.ixigua.com/7182580232040219136
https://www.bilibili.com/video/BV17P4y1v7xU/
//服务端1.sec
小程序 窗体消息(整数 窗口,整数 消息,整数 参数,整数 数据)
判断(消息)为 窗口关闭{停止(0)}
为 单击左键{左键点击(参数)}
为 $400网络消息(参数,数据)
否则 处理窗口(窗口,消息,参数,数据)
结束
整数 文件,缓冲,网络;地址类 IP(协议=2,地址=$100007F,端口=6)文本 名字[16]="极语言编程",模板[10]="$020106FF01010101"
文本 线路[28]="$6480170009003132372E302E302E3100060800D6D0C841BDADBAFE"
小程序 窗体启动
缓冲=申零内存(64,64)
网络启动($202,缓冲)
监听端口
桌面.左=窗体
读取消息
结束
小程序 左键点击(整数 参数)
判断(参数)为 1
运行程序(窗体,"open","client.exe","127.0.0.1 1536","client",窗口显示)
为 3测试发包 为 5发送封包
结束
小程序 监听端口
网络=分配(网络型,数据流,流协议)
异步通知(网络,窗体, $400,接口请求)
如果(绑定(网络,IP,16)=0)监听(网络,5)
结束
小程序 网络消息(整数 网口,整数 事件)
如果(事件>65535)事件=接口关闭
判断(事件)为 接口请求 接受连接(网口)
为 接口读 读取数据(网口)
为 接口关闭 关闭(网口)
结束
小程序 接受连接(整数 网口)
网络=接受(网口,0,0)
异步通知(网络,窗体, $400, $21)
结束;
小程序 读取数据(整数 网口)
整数 长度=接收(网口, 缓冲,1024, 0)
如果(长度<4 或者 长度>126)返回;
判断(缓冲%)
为 $8000{.#0=$48001;.#4=0;发送(网口,缓冲,8,0)}
为 $8016 发送(网口,线路,27,0)
为 $55AA 游戏数据(网口,长度)
结束
小程序 游戏数据(整数 网口,整数 长度)
判断(缓冲(7)%)
为 1{.#4=0;.#8=1}为 $14{内存传送(名字,#@4,23).#4=1;}为 8{.(0)=101}
为 5{.(4)=1;.#15=$FF55AA;.#22=$F40064;.#26=1;填充内存(#@30,0,120).#98=101;
文字复制(#@34,名字)内存传送(#@76,模板,8);.(75)=#(76);.#274=$AA55;长度=283;}
为 $10{.#-5=$B2C;.#2=$B1D;填充内存(#@68,0,320)文字复制(#@5,名字).#45=1;
内存传送(#@49,模板,8);.(69)=101;.#2857=$AA55;长度=2866}
为 $38{.#-5+4;.#2+4;内存传送(#@8,#@4,25).#4=1;长度+4}为 $3C{.#8=1}
为 $1606{.#0=31;}
.(0)++;发送(网口,缓冲,长度,0)
结束
小程序 写二进制(整数 内容,整数 长度)
循环数组(长度>内容(长度)){
拆分式(内容,"%02X",@长度)
内容+2}
结束;
小程序 测试发包
缓冲(2)&=11;.#5=取控件数(窗体,2,0,0)
.(7)=4;.#9=取控件数(窗体,4,0,1).#13=$AA55;
发送(网络,缓冲,17,0)
结束;
小程序 发送封包
整数 长度=窗口字长(文档)+1
长度=取窗口字(文档,缓冲,长度)>>1
写二进制(缓冲,长度)
发送(网络,缓冲,长度,0)
结束;
//服务端2.sec
小程序 窗体消息(整数 窗口,整数 消息,整数 参数,整数 数据)
判断(消息)为 窗口关闭{停止(0)}
为 单击左键{左键点击(参数)}
为 $400网络消息(参数,数据)
否则 处理窗口(窗口,消息,参数,数据)
结束
整数 文件,缓冲,网络;地址类 IP(协议=2,地址=$100007F,端口=6)文本 名字[16]="极语言编程",模板[10]="$020106FF010101"
文本 线路[28]="$6480170009003132372E302E302E3100060800D6D0C841BDADBAFE"
小程序 窗体启动
缓冲=申零内存(64,64)
网络启动($202,缓冲)
监听端口
桌面.左=窗体
读取消息
结束
小程序 左键点击(整数 参数)
判断(参数)为 1
运行程序(窗体,"open","client.exe","127.0.0.1 1536","client",窗口显示)
为 3测试发包 为 5发送封包
结束
小程序 监听端口
网络=分配(网络型,数据流,流协议)
异步通知(网络,窗体, $400,接口请求)
如果(绑定(网络,IP,16)=0)监听(网络,5)
结束
小程序 网络消息(整数 网口,整数 事件)
如果(事件>65535)事件=接口关闭
判断(事件)为 接口请求 接受连接(网口)
为 接口读 读取数据(网口)
为 接口关闭 关闭(网口)
结束
小程序 接受连接(整数 网口)
网口=接受(网口,0,0)
异步通知(网口,窗体, $400, $21)
结束;
小程序 读取数据(整数 网口)
整数 长度=接收(网口, 缓冲,1024, 0)
如果(长度<4 或者 长度>120)返回;
判断(缓冲%)
为 $8000{.#0=$48001;.#4=0;发送(网口,缓冲,8,0)}
为 $8016 发送(网口,线路,27,0)
为 $55AA 游戏数据(网口,长度)
结束
小程序 游戏数据(整数 网口,整数 长度)
判断(缓冲(6)%)
为 1{.#4=0;.#8=1}为 $14{内存传送(名字,#@4,24).#4=1;}为 7{.(0)=100}为 8{.(0)=101}
为 5{.(4)=1;.#11=$1C255AA;.#17=$1BC0064;.#21=1;填充内存(#@45,0,120).#465=$AA55;
文字复制(#@29,名字)内存传送(#@69,模板,8);.#84=#(75);.#97=101;长度=473;}
为 $10{.#-4=$D9B;.#2=$D95;填充内存(#@68,0,120)文字复制(#@5,名字).#45=1;
内存传送(#@49,模板,8);.(64)=#(55);.(77)=101;.#3481=$AA55;长度=3489}
为 $38{.#-4+4;.#2+4;内存传送(#@8,#@4,18).#4=1;长度+4}为 $3C{.#8=1}
为 $1606{.#-4+2;.#0=$20168;.#4=$AA550004;长度+2}为 22,32,176,224返回;
.(0)++;发送(网口,缓冲,长度,0)
结束
小程序 写二进制(整数 内容,整数 长度)
循环数组(长度>内容(长度)){
拆分式(内容,"%02X",@长度)
内容+2}
结束;
小程序 测试发包
缓冲(2)&=10;.#4=取控件数(窗体,2,0,0)
.(6)=4;.#8=取控件数(窗体,4,0,1).#12=$AA55;
发送(网络,缓冲,16,0)
结束;
小程序 发送封包
整数 长度=窗口字长(文档)+1
长度=取窗口字(文档,缓冲,长度)>>1
写二进制(缓冲,长度)
发送(网络,缓冲,长度,0)
结束;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。