cgmsv引擎论坛

 找回密码
 注册/Sign up
搜索
查看: 7258|回复: 3

[LUA] 自用的Lua框架(ModuleClass框架 + cgmsv增强 + 普通lua兼容)

[复制链接]
发表于 2021-9-26 10:57:28 | 显示全部楼层 |阅读模式
详情参考代码
项目地址 https://github.com/Muscipular/cgmsv-lua
下载地址 https://github.com/Muscipular/cgmsv-lua/releases
获取最新代码 https://github.com/Muscipular/cgmsv-lua/archive/refs/heads/master.zip

有Bug直接私信或在github发起issue,带上对应报错或重现方法

以下是简介

## 模块加载
具体模块加载在ModuleConfig.lua
### loadModule
加载`Modules`下的Module,Module的作用域相互独立,除非手动指定全局变量,否则不会影响其他Module,如需访问其他Module可通过getModule获取
```
loadModule('admin') --加载admin模块
```
### useModule
加载`Module`目录下的普通lua, 所有普通lua都会在一个公共的作用域下执行。除非手动指定为全局变量,否则只会影响普通lua,module不能访问相关变量/方法
```
useModule('Welcome') --加载Welcome
```
### getModule
获取对应的Module

### unloadModule
卸载Module

### reloadModule
重新加载Module

### 目前能用的模块
1. admin 内挂相关、模块动态管理等
2. shop 东门商店NPC配置
3. warp 村落传送
4. warp2 练级点传送
5. welcome 示例模块
6. itemPowerUp.lua 装备强化
7. manaPool 血魔池
8. bag 背包切换
9. autoRegister 自动注册
10. petExt/charExt/itemExt 公共扩展模块
11. petLottery 宠物抽奖
12. petRebirth 宠物转生
   
### 开发中的模块
- AI扩展

## GMSV 扩展模块
1. BattleEx.lua 战斗相关扩展
2. Char.lua  人物相关扩展
3. DamageHook.lua 伤害修改补丁
4. Data.lua Data相关
5. Item.lua 物品相关
6. LowCpuUsage.lua 减低cpu使用补丁
7. Protocol.lua 封包拦截相关
8. Recipe.lua 配方相关
9. DummyChar.lua 假人相关
10. NL.lua 扩展事件相关
11. NLG_ShowWindowTalked_Patch.lua NLG.ShowWindowTalked 长度补丁
12. Addresses.lua 基础地址
13. Field.lua Field相关

## 扩展事件/接口
- `NL.RegEnemyCommandEvent` 怪物行动事件
- `NL.RegCharaDeletedEvent` 角色删除事件
- `NL.RegResetCharaBattleStateEvent` 角色战斗结束事件
- `NL.RegBattleDamageEvent` 原来的RegDamageCalculateEvent
- `NL.RegDamageCalculateEvent` 补丁后的战斗伤害事件
- `NL.RegBattleHealCalculateEvent` 战斗治疗事件
- `NL.RegDeleteDummyEvent` 假人删除事件
- `Char.GetCharPointer` 获取角色Ptr
- `Char.GetWeapon` 获取武器
- `Char.GiveItem` 添加物品,支持静默模式
- `Char.DelItem` 删除物品,支持静默模式
- `Char.DelItemBySlot` 删除指定位置的物品
- `Char.UnsetWalkPostEvent` 移除事件
- `Char.UnsetWalkPreEvent` 移除事件
- `Char.UnsetPostOverEvent` 移除事件
- `Char.UnsetLoopEvent` 移除事件
- `Char.UnsetTalkedEvent` 移除事件
- `Char.UnsetWindowTalkedEvent` 移除事件
- `Char.UnsetItemPutEvent` 移除事件
- `Char.UnsetWatchEvent` 移除事件
- `Char.MoveArray` 角色连续移动
- `Char.JoinParty` 加入队伍
- `Char.LeaveParty` 离开队伍
- `Char.MoveItem` 移动物品
- `Char.IsValidCharPtr`
- `Char.IsValidCharIndex`
- `Char.GetDataByPtr` 根据Ptr获取数据
- `Char.IsDummy` 是否是假人
- `Char.CreateDummy` 创建假人
- `Char.DelDummy` 删除假人
- `Battle.UnsetWinEvent` 移除事件
- `Battle.UnsetPVPWinEvent` 移除事件
- `Battle.GetNextBattle` 获取下一场连战Id
- `Battle.SetNextBattle` 设置下一场连战Id
- `Battle.GetTurn` 获取当前回合
- `Data.ItemsetGetIndex` 获取ItemsetIndex
- `Data.ItemsetGetData` 获取Itemset数据
- `Data.GetEncountData` 获取Encount数据
- `Data.SetMessage` 获取Msg
- `Data.GetMessage` 修改/新增Msg,动态创建物品时大概会有用
- `Item.GetSlot` 获取ItemIndex对应位置
- `Protocol.makeEscapeString` 编码字符串
- `Protocol.makeStringFromEscaped` 解码字符串
- `Protocol.nrprotoEscapeString` 封包编码字符串
- `Protocol.nrprotoUnescapeString` 封包解码字符串
- `Protocol.Send` 发送自定义封包
- `Protocol.GetCharIndexFromFd` 通过fd获取charIndex
- `Protocol.OnRecv` 拦截封包
- `Recipe.GiveRecipe` 添加配方
- `Recipe.RemoveRecipe` 删除配方
- `regGlobalEvent` 注册全局事件,代替Delegate,Delegate也是包装这个方法
- `removeGlobalEvent` 移除注册事件


补充内容 (2021-10-19 16:11):
v0.1.4
[+] NL.RegItemExpansionEvent 用于物品说明处理
[+] Char.CalcConsumeFp 用于获取技能所需要的fp

补充内容 (2021-10-19 16:11):
v0.1.5
[+] Data.EnemyGetDataIndex 获取EnemyDataIndex
[+] Data.EnemyGetData 获取Enemy数据
[+] Data.EnemyBaseGetDataIndex 获取EnemyBaseDataIndex
[+] Data.EnemyBaseGetData 获取EnemyBase数据

补充内容 (2021-10-19 16:12):
v0.1.6
[+] Battle.ActionSelect 选择战斗指令
[+] Battle.IsWaitingCommand 判断是否等待指令
[+] Char.SetPetDepartureState 设置宠物战斗状态

补充内容 (2021-10-19 16:13):
v0.1.6
[+] Char.SetPetDepartureStateAll 设置宠物战斗状态
[+] Char.TradeItem 直接交易物品
[+] Char.TradePet 直接交易宠物
[+] Char.GetEmptyItemSlot 获取空物品栏

补充内容 (2021-10-19 16:13):
v0.1.6
[+] Char.GetEmptyPetSlot 获取空宠物栏

补充内容 (2021-10-22 12:52):
v0.1.7
[+] NLG.FindUser 查找在线用户
[+] Map.GetDungeonExpireTime 获取迷宫剩余时间
[+] Map.GetDungeonExpireAt 获取迷宫过期时间
[+] regGlobalEvent 支持ProtocolOnRecv事件

补充内容 (2021-10-22 12:52):
v0.1.7
[+] Delegate.RegProtocolOnRecv
[+] Delegate.RegDelProtocolOnRecv
[+] autoUnlock模块自动解锁崩端导致的卡号

补充内容 (2021-10-26 16:58):
v0.1.8
[+] NL.RegScriptCallEvent npc脚本luac命令回调事件

评分

参与人数 1金币 +10 收起 理由
Zack + 10 原创资源贴

查看全部评分

Rank: 4

发表于 2021-9-26 13:39:15 | 显示全部楼层
很好用,有些还在摸索怎么用

Rank: 1

发表于 2021-9-26 23:23:10 | 显示全部楼层
感謝大老無私奉獻分享

Rank: 1

发表于 2021-9-27 17:09:52 | 显示全部楼层
感谢大佬分享
您需要登录后才可以回帖 登录 | 注册/Sign up

本版积分规则

手机版|cgmsv引擎论坛

GMT+8, 2024-4-27 07:12 , Processed in 0.148018 second(s), 9 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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