GA好望角|魔力宝贝私服|魔力私服|魔力私服|GA反外挂

 找回密码
 立即注册
凤凰(QQ:715837)
售前咨询
GA白皮书(客户端)
GA白皮书(服务端)
cgdev.me开发者论坛
放映地(炫斗魔力公益PK服)
新服发布站
欢迎来到GA好望角~
价格公示表
回首页
查看: 16210|回复: 51

GA framework 3.0 新特征与迁移

[复制链接]

130

主题

136

帖子

136

积分

管理员

Rank: 9Rank: 9Rank: 9

金钱
2090
号角币
466
发表于 2019-11-1 07:29:50 | 显示全部楼层 |阅读模式
====================GA framework 3.0====================
GA框架3.0版本完全兼容老脚本,使你的代码更加优美易维护
##迁移方法##
1,将您的旧Module文件夹下所有文件复制到本框架的Module中
2,将您的Config.lua文件复制到本文件夹中并覆盖
3,将您的System/BaseModule/luac.lua文件复制到本文件夹同目录中并覆盖(今后可以单独注册 见新特征②)
4,启动GA的gmsv尝试看看有无错误

无论何时请记得备份您的所有脚本

##新特征##
3.0框架新特征请见 Module\ac.lua 中的演示脚本

##注意##
存在未知BUG等潜在风险,在经过测试前,请勿用于正式环境

##性能提升##

3.0框架中减少了对动态脚本加载的依赖,性能提升约10%

下载回复可见:
游客,如果您要查看本帖隐藏内容请回复



=========================================================
新特征 ①
支持以 Event.RegFunction.Name 的方式进行注册事件

1 以传统框架 Delegate 的方式注册事件
请注意,由于众多接口新不支持 Delegate 注册事件,所以仅以兼容老脚本的方式存在
新脚本不建议使用 Delegate 注册事件 演示代码如下

      
Delegate.RegDelLoginEvent("AC_LoginEvent");
function AC_LoginEvent(player,msg,color,range,size)
        NLG.SystemMessage(player, "我登录了1。")
end


2 以传统 NL 的方式注册事件
在GA3.0框架中,NL库不再只能注册唯一一个事件,可以在各脚本中多次注册互不影响
支持的注册事件可以请看GA白皮书 http://lua.cgdev.me
新脚本中建议使用 演示代码如下

      
NL.RegLoginEvent(nil, "AC_LoginEvent2")
function AC_LoginEvent2(player,msg,color,range,size)
        NLG.SystemMessage(player, "我登录了2。")
end


3 Event 自注册
在GA3.0框架中,Event.RegFunction.Name 是最建议使用注册事件的方式
其中Name为自定义,可以是任意字符(请不要以数字开头)
可以使用的自注册事件的可见 init.lua 中的TBL_AllOCEV
新脚本中建议使用 演示代码如下

      
function Event.RegLoginEvent.AC(player,msg,color,range,size)
        NLG.SystemMessage(player, "我登录了3。")
end


新特征 ②
luac.lua 支持以 Event.RegFunction.Name 的方式进行注册了

请注意:您的luac.lua脚本中有内容的话,并不影响其注册,2个函数会同时被执行
3.0框架是100%兼容旧框架的,只是建议以后使用 Event.ScriptCall.Name 的方式进行注册
      
function Event.ScriptCall.AC(npc, player, s)
        if(string.find(s,"likeme"))then                
                Char.SetData(player,%对象_形象%,Char.GetData(npc, %对象_形象%));
                Char.SetData(player,%对象_原形%,Char.GetData(npc, %对象_原形%));
                Char.SetData(player,%对象_原始图档%,Char.GetData(npc, %对象_原始图档%));
                NLG.UpChar(player);
                return 1;
        end        
end



新特征 ③
以内置的方式支持了try/catch异常捕获函数
如果你要查看所有堆栈调用关系,可以把try换成sracetry,在errors中就会提示更多有用信息

      
function Event.RegLoginEvent.ACTest(player)
         try {
             -- try 代码块
             function ()
                  xxx()
                  NLG.SystemMessage(player,"执行过来了(因为上面的xxx()是错误,实际上这里不会被显示。)")
             end
        }

        catch {
             -- 发生异常后,被执行
             function (errors)
                  NLG.SystemMessage(player,"[错误]"..os.date().." "..errors)
             end
        }
end


新特征 ④
Protocol.OnRecv注册封包事件函数,再只能注册唯一一个事件,可以在各脚本中多次注册互不影响
      
Protocol.OnRecv(Dofile, FuncName, PacketID)




























回复

使用道具 举报

5

主题

18

帖子

18

积分

新手上路

Rank: 1

金钱
806
号角币
22
QQ
发表于 2019-11-1 11:50:48 | 显示全部楼层
吃饱了没事干 ,东西不错 就不知道有几个会用 或者能使用的
回复 支持 反对

使用道具 举报

130

主题

136

帖子

136

积分

管理员

Rank: 9Rank: 9Rank: 9

金钱
2090
号角币
466
 楼主| 发表于 2019-11-1 17:27:55 | 显示全部楼层
无语 发表于 2019-11-1 11:50
吃饱了没事干 ,东西不错 就不知道有几个会用 或者能使用的

= = 这是gmsv的引擎呀 又不是客户端 很多人会用
回复 支持 反对

使用道具 举报

0

主题

7

帖子

7

积分

新手上路

Rank: 1

金钱
65
号角币
0
发表于 2019-11-1 17:36:20 | 显示全部楼层
赞一个,最近更新好快
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

新手上路

Rank: 1

金钱
4
号角币
0
发表于 2019-11-1 18:05:13 | 显示全部楼层
GA framework 3.0
回复 支持 反对

使用道具 举报

130

主题

136

帖子

136

积分

管理员

Rank: 9Rank: 9Rank: 9

金钱
2090
号角币
466
 楼主| 发表于 2019-11-1 18:07:31 | 显示全部楼层
2019.11.1 18:07分再次更新特征4  请大家重新下载
回复 支持 反对

使用道具 举报

0

主题

3

帖子

3

积分

新手上路

Rank: 1

金钱
19
号角币
0
发表于 2019-11-1 19:11:52 | 显示全部楼层
赞一个,最近更新好快
回复 支持 反对

使用道具 举报

1

主题

14

帖子

14

积分

新手上路

Rank: 1

金钱
180
号角币
5
发表于 2019-11-4 09:23:02 | 显示全部楼层
赞赞赞~  更新太给力了~
回复 支持 反对

使用道具 举报

0

主题

3

帖子

3

积分

新手上路

Rank: 1

金钱
39
号角币
0
发表于 2019-11-4 13:10:00 | 显示全部楼层
竟然还回复可见..
回复 支持 反对

使用道具 举报

3

主题

22

帖子

22

积分

新手上路

Rank: 1

金钱
319
号角币
10
发表于 2019-11-8 15:36:02 | 显示全部楼层
感謝大佬..拿下來看看..
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|GA好望角

GMT+8, 2024-4-17 01:08 , Processed in 0.075227 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表