|
更新时间:2021年3月9日
软件更新方法:重新下载客户端
旧工程更新方法:
1.若您是V1.5.27.0605版本之后建的工程/已升级过的工程,点击脚本编辑器左下角的“恢复为默认脚本”即可(账号状态如果为未订阅,脚本暂时无法更新,需要重建工程才能更新到最新版)
2.若您是V1.5.27.0605版本之前建的工程并且未升级工程,不能通过更新脚本达到最新版本,只能先将工程升级才能更新脚本。(旧工程升级后无法回退版本,若您的工程改动较大建议提前备份!!!)
【V1.6.38.0309】 更新日志
工具侧
暂无
>>>>>>>>>>>>>>>>>>>>
游戏侧(*旧工程游戏侧BUG需要工具内恢复默认脚本才可修复,具体教程 -> 点我去看)
暂无
>>>>>>>>>>>>>>>>>>>>
脚本更新列表:
暂无
>>>>>>>>>>>>>>>>>>>>
if2d底层:详情见文档→点我去看
1、新增ISocket 对象(仅适用于Windows端)
>>>>>>>>>>>>>>>>>>>>ISocket 通讯(仅Window端可用) <<<<<<<<<<<<<<<<<<<<<<<
属性 | 说明 | 备注 | buffSize(Number) | 缓存区大小默认8kb | 无 | isServer(Bool) | 是否是服务端 | 只读 | status(Number) | 当前状态
0 未开启
1 正在通讯 | 只读 |
函数 | 说明 | 备注 | startServerSocket(ip,port) | 将Socket以服务端状态启动 ip(string): ip地址 IPV4格式 port(Number): 端口 0~65535 | 无 | startClientSocket(ip,port) | 将Socket以客户端端状态启动 ip(string): ip地址 IPV4格式 port(Number): 端口 0~65535 | 无 | closeSocket() | | 若关闭服务端,且客户端仍有连接,会造成服务端程序闪退 | disconnect(key) | 关闭以连接至服务端的socket(仅服务端使用) key(string):要关闭的客户端key值 | 无 | sendToServer(type,tokey,args,msg) | 发送消息(仅客户端) type(Number):消息类型 0 广播消息 1私有消息 tokey(string):要发送的指定key args(string):参数 msg(string):内容 | tokey在 type为0时无效 | sendToClient(tokey,type,fkey,args,msg) | 发送消息给指定客户端(仅服务端) tokey(string):要发送客户端的key值 type(Number):消息类型 0系统消息 1 客户端转发消息 fkey(string):消息来源客户端key值 args(string):参数 msg(string):内容 | 无 | sendToAllClient(type,fkey,args,msg) | 广播消息给全部客户端(仅服务端) type(Number):消息类型 0系统消息 1客户端转发 fkey(string):消息来源客户端key值 args(string):参数 msg(string):内容 | 无 | getClientsKeys() | 获得连接至服务端的所有客户端key值(仅服务端) 返回值 args[string] | 无 | setCallMessage(func) | 设置消息回调,每次接收到客户端(服务端)消息自动执行对应函数 func(string):回调函数名 如果函数为 getMessage( type, fkey, args1, args2) 那么参数填写"getMessage" (字符串) 即可 | 函数规范: function 函数名( type, fkey, args1, args2) |
静态函数 | 说明 | 备注 | ISocket.GetLocalIpAddress() | | 推荐使用数组最后一个值作为本机ip
| ISocket.EnumComputers(port,func) | 搜索局域网内开放指定端口的全部计算机
port(Number):端口号 func(string):回调函数 如果函数为 getIP(ip,port) 那么参数填写"getIP"(字符串)即可 | 函数规范
function 函数名(ip,port)
| ISocket.AddRuleForInbound(name,msg,filename,ip,port) | 为计算机增加一条进站规则(需要管理员权限)
name(string):进站规则名称 msg(string):进站规则内容 filename(string):要通过的exe文件名(相对于游戏工程地址) ip(string):容许进站的ip地址 port(strng):容许进站的端口 | ip如果需要全部容许,填写""即可 |
范例代码:
- function SText(){
- var socket = new ISocket();
- socket.setCallMessage("IVal.scene.getMessage")
- var sp1 = new ISprite(150,30,IColor.Red());
- sp1.drawTextQ("成为服务端",10,10,IColor.Blue(),18);
- var sp2 = new ISprite(150,30,IColor.Red());
- sp2.drawTextQ("成为客户端",10,10,IColor.Blue(),18);
- sp2.y = 40;
- var sp3 = new ISprite(150,30,IColor.Red());
- sp3.drawTextQ("发送消息",10,10,IColor.Blue(),18);
- sp3.y = 80;
- this.update = function(){
- if(sp1.isSelected() && IInput.up){
- IInput.up = false;
- gameInput("创建服务端","请输入IP","127.0.0.1",function(text){
- socket.startServerSocket(text,31882);
- });
- }
- if(sp2.isSelected() && IInput.up){
- IInput.up = false;
- gameInput("连接服务端","请输入IP","127.0.0.1",function(text){
- socket.startClientSocket(text,31882);
- });
- }
- if(sp3.isSelected() && IInput.up){
- IInput.up = false;
- gameInput("发送消息","发送内容","",function(text){
- socket.sendToServer(0,"","测试",text);
- });
- }
- }
- this.getMessage = function( type, fkey, args1, args2){
- if(type == 0){//系统消息
- if(args1 == "S_NC"){//有新用户连接至socket,系统保留
- log("client key:" + args2)
- }else if(args1 == "S_K"){ //当前客户端已连接至服务端,系统保留
- log("self key:" + args2);
- }else if(args1 == "S_DC"){//房间内有人掉线了,系统保留
- }
- }
- log(type + "," + fkey + "," + args1 + "," + args2);
- }
- }
复制代码
|
|