This commit is contained in:
2025-03-23 10:51:55 +00:00
commit f11a45c8f9
94 changed files with 5026 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
# AccountCargo 类函数文档
**类说明**
`AccountCargo`类用于表示游戏中的账号金库的各种属性和操作方法。
---
## 二、GetEmptySlot 函数
### 函数签名
- `function GetEmptySlot()`
### 返回值
- 整数,表示空格子的槽位。
### 说明
获取获取空格子。
---
## 三、InsertItem 函数
### 函数签名
- `function InsertItem()`
### 说明
存储物品。
---
## 四、SendItemList 函数
### 函数签名
- `function SendItemList()`
### 返回值
- 整数Flag。
### 说明
刷新列表。

109
Object/AdMsg/AdMsg.md Normal file
View File

@@ -0,0 +1,109 @@
# AdMsg 类函数文档
**类说明**
`AdMsg`类为高级信息类可以便捷的构造出高级信息的Pack包。
---
### 函数签名
**构造函数**
- `AdMsg()`
---
### 函数签名
**私有函数**
- `function PutType(Type)`
### 功能
- `设定消息包的类型`
### 参数
- `Type`:消息类型
---
### 函数签名
**私有函数**
- `function PutString(String)`
### 功能
- `将字符串放入消息中`
### 参数
- `String`:字符串
---
### 函数签名
**私有函数**
- `function PutColorString(String,ColorArr)`
### 功能
- `将带有颜色信息的字符串放入消息中`
### 参数
- `String`:字符串消息
- `ColorArr`:颜色信息数组
---
### 函数签名
**私有函数**
- `function PutImoticon(Index)`
### 功能
- `将表情信息放入消息中`
### 参数
- `Index`pvf中标签的编号
---
### 函数签名
**私有函数**
- `function PutEquipment(...)`
### 功能
- `将装备信息放入消息中(该函数为重载函数)`
### 参数
- `EquObj`:装备对象
### 参数
- `Name`:自己提供的装备名字
- `EquObj`:装备对象
- `ColorArr`:自己提供的名字颜色数组
---
### 函数签名
**私有函数**
- `function Finalize()`
### 功能
- `完成高级信息的构造`
---
### 函数签名
**私有函数**
- `function MakePack()`
### 功能
- `创建Pack包`
---
### 函数签名
**私有函数**
- `function Delete()`
### 功能
- `销毁Pack包`
**下面给出一个例子**
---
```
local SUser = World.GetUserByUid(1);
local InvenObj = SUser.GetInven();
local EquObj = InvenObj.GetSlot(Inven.INVENTORY_TYPE_ITEM, 56);
local AdMsgObj = AdMsg();
AdMsgObj.PutType(14);
AdMsgObj.PutString("测试文字");
AdMsgObj.PutColorString("测试文字", [255, 85, 0]);
AdMsgObj.PutImoticon(2);
AdMsgObj.PutEquipment("主动提供名字", EquObj, [255, 85, 0]);
AdMsgObj.PutEquipment(EquObj);
AdMsgObj.Finalize();
SUser.Send(AdMsgObj.MakePack());
AdMsgObj.Delete();
```

34
Object/Dungeon/Dungeon.md Normal file
View File

@@ -0,0 +1,34 @@
# Dungeon 类函数文档
**类说明**
`Dungeon`类用于表示游戏中的副本对象,包含副本的各种属性和操作方法。
---
## 二、GetId 函数
### 函数签名
- `function GetId()`
### 返回值
- 整数,表示副本的 ID。
### 说明
获取副本的 ID。
---
## 三、GetName 函数
### 函数签名
- `function GetName()`
### 返回值
- 字符串,表示副本的名称。
### 说明
获取副本的名称。
---
## 四、GetMinLevel 函数
### 函数签名
- `function GetMinLevel()`
### 返回值
- 整数,表示副本的最低等级要求。
### 说明
获取副本的最低等级要求。

View File

@@ -0,0 +1,86 @@
# GameManager 类函数文档
**类说明**
`GameManager`类用于表示游戏中管理对象的各种属性和操作方法。
---
## 一、设置服务器最大等级
### 函数签名
- `function SetGameMaxLevel(MaxLevel)`
### 参数
- `MaxLevel`:整数,最大等级
---
## 二、设置装备解锁需要时间
### 函数签名
- `function SetItemLockTime(time)`
### 参数
- `MaxLevel`:整数,时间(秒) DNF内置角色轮询有时间差 所以即使设定为0他也等到本次轮询才会解锁 这个过程不会超过30秒
---
## 三、开启创建鼠标妹
### 函数签名
- `function OpenCreateJob_CreatorMage()`
---
## 四、开启获得魔法封印时自动解除魔法封印
### 函数签名
- `function OpenRandomAutomaticUnblocking()`
---
## 五、开启自动热重载
### 函数签名
- `function OpenHotFix(Path = "/dp_s/MyProject")`
### 参数
- `Path`:不写默认/dp_s/MyProject 写可以自定义重载目录
---
## 六、开启装备与时装镶嵌
### 函数签名
- `function FixEquipUseJewel()`
---
## 七、修复下线卡城镇
### 函数签名
- `function FixSaveTown()`
---
## 八、修复绝望之塔金币异常
### 函数签名
- `function FixDespairGold()`
---
## 九、修复绝望之塔通关后可以用门票继续进入
### 函数签名
- `function FixDespairDungeon()`
---
## 十、修改交易金币上限
### 函数签名
- `function FixGlodTradeDaily(Count)`
---
## 十一、+13免刷新
### 函数签名
- `function Fix_13Upgrade()`
---
## 十二、修复14技能
### 函数签名
- `function Fix14Skill()`
---

44
Object/Http/Http.md Normal file
View File

@@ -0,0 +1,44 @@
# Http 类函数文档
**类说明**
`Http`类为Http请求相关操作(注意将会阻塞线程)。
**懒得写文档 直接放出使用说明**
---
```
//公有方法 获取本机IP
local MyIp = Http.GetMyIp();
print(MyIp);
//私有方法 发送Get请求
local SO = Http("www.baidu.com");
local BaiduBody = SO.Get("/");
print(BaiduBody);
//私有方法 发送带参数的Post请求
local SO = Http("192.168.200.189","1311");
local Res = SO.Post("/",{username = "lenheart", password = "123456"});
//创建一个Http Server
local HS = HttpServer("0.0.0.0","41817");
HS.Listen(function (SocketObject,Msg)
{
print("收到请求内容: " + Msg);
//回复字符串
//SocketObject.Write("hello world");
//回复Json 直接Write Table就是Json
SocketObject.Write({
user = "lenheart",
msg = "hello world"
});
});
```
---

21
Object/IO/IO.md Normal file
View File

@@ -0,0 +1,21 @@
# IO 类函数文档
**类说明**
`IO`类为文件流泪。
**注意事项**
进阶操作,不提供说明,请确保自身有足够的能力编写,与群内其他开发者或群主沟通使用
---
- `constructor(FileName, Modes)`
- `function ReadLine()`
- `function Read() `
- `function ReadBuffer(size)`
- `function Write(Str)`
- `function Close()`
---

97
Object/Inven/Inven.md Normal file
View File

@@ -0,0 +1,97 @@
# Inven 类函数文档
**类说明**
`Inven`类用于表示游戏中的背包对象,提供了各种与背包操作相关的方法。
## 一、静态变量
### INVENTORY_TYPE_BODY
- 值为 0表示身上穿的装备0 - 26
### INVENTORY_TYPE_ITEM
- 值为 1表示物品栏0 - 311
### INVENTORY_TYPE_AVARTAR
- 值为 2表示时装栏0 - 104
### INVENTORY_TYPE_CREATURE
- 值为 3表示宠物装备0 - 241
---
## 三、GetSlot 函数
### 函数签名
- `function GetSlot(Type, Slot)`
### 参数
- `Type`:整数,表示背包类型。
- `Slot`:整数,表示背包槽位。
### 返回值
- `Item`对象或`null`,表示对应槽位的道具对象,如果槽位为空则返回`null`
### 说明
根据指定的背包类型和槽位获取背包中的道具对象。
---
## 四、GetSlotById 函数
### 函数签名
- `function GetSlotById(Idx)`
### 参数
- `Idx`:整数,表示道具的 ID。
### 返回值
- 整数,表示对应道具在背包中的槽位,如果未找到则返回 -1。
### 说明
通过道具的 ID 获取其在背包中的槽位。
---
## 五、GetMoney 函数
### 函数签名
- `function GetMoney()`
### 返回值
- 整数,表示背包中的金币数量。
### 说明
获取背包中的金币数量。
---
## 六、CheckItemCount 函数
### 函数签名
- `function CheckItemCount(ItemId, ItemCount)`
### 参数
- `ItemId`:整数,表示道具的 ID。
- `ItemCount`:整数,表示要检查的道具数量。
### 返回值
- 布尔值,如果背包中拥有指定数量的指定道具则返回`true`,否则返回`false`
### 说明
检查背包中是否拥有指定数量的指定道具,包括点券、代币券和金币的特殊处理。
---
## 七、CheckArrItemCount 函数
### 函数签名
- `function CheckArrItemCount(T)`
### 参数
- `T`:包含道具 ID 和数量的对象数组。
### 返回值
- 布尔值,如果背包中拥有指定表中的所有道具及数量则返回`true`,否则返回`false`
### 说明
检查背包中是否拥有指定表中的所有道具及对应的数量。
---
## 八、DeleteArrItemCount 函数
### 函数签名
- `function DeleteArrItemCount(T)`
### 参数
- `T`:包含道具 ID 和数量的对象数组。
### 说明
销毁背包中指定表中的所有道具及对应的数量,并更新背包信息。
---
## 九、DeleteItemCount 函数
### 函数签名
- `function DeleteItemCount(Id, Count)`
### 参数
- `Id`:整数,表示道具的 ID。
- `Count`:整数,表示要销毁的道具数量。
### 返回值
- 布尔值,如果成功销毁指定数量的道具则返回`true`,否则返回`false`
### 说明
销毁背包中指定数量的指定道具,并更新背包信息,包括对点券、代币券和金币的特殊处理。

201
Object/Item/Item.md Normal file
View File

@@ -0,0 +1,201 @@
# Item 类函数文档
**类说明**
`Item`类用于表示游戏中的道具对象,包含各种属性和操作方法。
---
## 二、Output 函数
### 函数签名
- `function Output()`
### 说明
将道具的属性数据转换为字符串并输出。遍历`Attribute`中的每个值,将其转换为十六进制格式并拼接成字符串,最后打印输出。
---
## 三、GetType 函数
### 函数签名
- `function GetType()`
### 返回值
- 字符串,表示道具的类型。
### 说明
根据道具属性中的类型值返回对应的道具类型描述,包括“装备”“消耗品”“材料”“任务材料”“副职业材料”等。
---
## 四、GetIndex 函数
### 函数签名
- `function GetIndex()`
### 返回值
- 整数,表示道具的编号。
### 说明
从道具属性数据中读取道具的编号。
---
## 五、SetIndex 函数
### 函数签名
- `function SetIndex(Index)`
### 参数
- `Index`:整数,表示要设置的道具编号。
### 说明
在道具属性数据中设置道具的编号。
---
## 六、GetUpgrade 函数
### 函数签名
- `function GetUpgrade()`
### 返回值
- 整数,表示道具的强化等级。
### 说明
从道具属性数据中读取道具的强化等级。
---
## 七、SetUpgrade 函数
### 函数签名
- `function SetUpgrade(Level)`
### 参数
- `Level`:整数,表示要设置的强化等级。
### 说明
在道具属性数据中设置道具的强化等级。
---
## 八、GetAdd_Info 函数
### 函数签名
- `function GetAdd_Info()`
### 返回值
- 整数,表示道具的品级或数量。
### 说明
如果是装备,则返回品级;如果是其他类型道具,则返回数量。
---
## 九、SetAdd_Info 函数
### 函数签名
- `function SetAdd_Info(Value)`
### 参数
- `Value`:整数,表示要设置的品级或数量。
### 说明
如果是装备,则设置品级;如果是其他类型道具,则设置数量。
---
## 十、GetDurable 函数
### 函数签名
- `function GetDurable()`
### 返回值
- 整数,表示道具的耐久度。
### 说明
从道具属性数据中读取道具的耐久度。
---
## 十一、SetDurable 函数
### 函数签名
- `function SetDurable(Value)`
### 参数
- `Value`:整数,表示要设置的耐久度。
### 说明
在道具属性数据中设置道具的耐久度。
---
## 十二、GetAmplification 函数
### 函数签名
- `function GetAmplification()`
### 返回值
- 整数,表示道具的增幅属性。
### 说明
从道具属性数据中读取道具的增幅属性。
---
## 十三、SetAmplification 函数
### 函数签名
- `function SetAmplification(Value)`
### 参数
- `Value`:整数,表示要设置的增幅属性。
### 说明
在道具属性数据中设置道具的增幅属性。
---
## 十四、GetForging 函数
### 函数签名
- `function GetForging()`
### 返回值
- 整数,表示道具的锻造属性。
### 说明
从道具属性数据中读取道具的锻造属性。
---
## 十五、SetForging 函数
### 函数签名
- `function SetForging(Value)`
### 参数
- `Value`:整数,表示要设置的锻造属性。
### 说明
在道具属性数据中设置道具的锻造属性。
---
## 十六、GetEnchanting 函数
### 函数签名
- `function GetEnchanting()`
### 返回值
- 整数,表示道具的附魔属性。
### 说明
从道具属性数据中读取道具的附魔属性。
---
## 十七、SetEnchanting 函数
### 函数签名
- `function SetEnchanting(Value)`
### 参数
- `Value`:整数,表示要设置的附魔属性。
### 说明
在道具属性数据中设置道具的附魔属性。
---
## 十八、Flush 函数
### 函数签名
- `function Flush()`
### 说明
将道具的属性数据`Attribute`刷写到对应的内存地址中。
---
## 十九、Delete 函数
### 函数签名
- `function Delete()`
### 说明
删除道具,调用相关函数移除道具,并将当前对象设为`null`
---
## 十九、GetRarity 函数
### 函数签名
- `function GetRarity()`
### 说明
获取品级
---
## 十九、GetAttachType 函数
### 函数签名
- `function GetAttachType()`
### 说明
获取交易类型
---
## 十九、IsPackagble 函数
### 函数签名
- `function IsPackagble()`
### 说明
//是否可打包

36
Object/Log/Log.md Normal file
View File

@@ -0,0 +1,36 @@
# Log 类函数文档
**类说明**
`Log`类为日志相关操作在使用前请先在sqr_main中初始化。
```
//初始化日志器
Log({
"normal": "/dp_s/log/normal.log",
"error": "/dp_s/log/error.log"
});
```
---
### 函数签名
**公有函数**
- `function Put(Type,Msg)`
### 参数
- `Type`:日志类型
- `Msg`:日志字符串
**这里给出一个例子**
---
```
Log.Put("normal", "测试日志");
Log.Put("error", "测试错误日志");
```
---
---

17
Object/MD5/MD5.md Normal file
View File

@@ -0,0 +1,17 @@
# MD5 类函数文档
**类说明**
`MD5`类为获取MD5相关操作。
---
### 函数签名
**公有函数**
- `function GetFile(FileName)`
### 参数
- `FileName`字符串要获取MD5的文件路径
### 返回值
- string类型。
---

282
Object/Math/Math.md Normal file
View File

@@ -0,0 +1,282 @@
# MathClass 类函数文档
## 一、getDirectionToTargetX 函数
### 函数签名
- `function getDirectionToTargetX(objX, x)`
### 参数
- `objX`:整数,表示对象的 X 坐标
- `x`:整数,表示目标 X 坐标
### 返回值
- 如果 `objX` 大于 `x`,返回 0否则返回 1。
---
## 二、Rand 函数
### 函数签名
- `function Rand(Min, Max)`
### 参数
- `Min`:整数,表示随机数的最小值
- `Max`:整数,表示随机数的最大值(左闭右开区间)
### 返回值
- 一个在 `Min``Max` 之间的随机整数。
---
## 三、getCollisionByObjBox 函数
### 函数签名
- `function getCollisionByObjBox(obj, box)`
### 参数
- `obj`:对象,包含 `X``Y``Z` 属性
- `box`:数组,表示碰撞盒的参数
### 返回值
- 数组,包含碰撞盒的两个顶点坐标。
---
## 四、GetDistancePos 函数
### 函数签名
- `function GetDistancePos(startX, direction, offsetX)`
### 参数
- `startX`:整数,表示起始 X 坐标
- `direction`整数表示方向0 或 1
- `offsetX`:整数,表示偏移量
### 返回值
- 根据方向计算得到的新的 X 坐标。
---
## 五、getRorateAngleByCurrentPos 函数
### 函数签名
- `function getRorateAngleByCurrentPos(x1, y1, z1, x2, y2, z2)`
### 参数
- `x1``y1``z1`:整数,表示第一个点的坐标
- `x2``y2``z2`:整数,表示第二个点的坐标
### 返回值
- 目前总是返回 0。
---
## 六、sq_BParabola 函数
### 函数签名
- `function sq_BParabola(currentT, maxT, initZPos, jumpHeight, lastZPos)`
### 参数
- `currentT`:整数,表示当前时间
- `maxT`:整数,表示最大时间
- `initZPos`:整数,表示初始 Z 坐标
- `jumpHeight`:整数,表示跳跃高度
- `lastZPos`:整数,表示最终 Z 坐标
### 返回值
- 通过贝塞尔曲线计算得到的 Z 坐标,整数类型。
---
## 七、sq_Parabola 函数
### 函数签名
- `function sq_Parabola(x, b, c)`
### 参数
- `x`:整数,表示自变量
- `b`:整数,表示抛物线参数
- `c`:整数,表示抛物线参数
### 返回值
- 通过抛物线公式计算得到的值,浮点数类型。
---
## 八、Get2D_Distance 函数
### 函数签名
- `function Get2D_Distance(x1, y1, x2, y2)`
### 参数
- `x1``y1`:整数,表示第一个点的坐标
- `x2``y2`:整数,表示第二个点的坐标
### 返回值
- 两个点之间的平面距离,浮点数类型。
---
## 九、CheckAngleIsInArea 函数
### 函数签名
- `function CheckAngleIsInArea(judge, startA, endA)`
### 参数
- `judge`:整数,表示要判断的角度
- `startA`:整数,表示起始角度
- `endA`:整数,表示结束角度
### 返回值
- 如果 `judge``startA``endA` 形成的锐角内,返回 `true`;否则返回 `false`
---
## 十、toDegree 函数
### 函数签名
- `function toDegree(x)`
### 参数
- `x`:浮点数,表示弧度值
### 返回值
- 弧度值转换为角度值,浮点数类型。
---
## 十一、toRadian 函数
### 函数签名
- `function toRadian(x)`
### 参数
- `x`:浮点数,表示角度值
### 返回值
- 角度值转换为弧度值,浮点数类型。
---
## 十二、CubeAndCubeCollection 函数
### 函数签名
- `function CubeAndCubeCollection(c1StartX, c1StartY, c1StartZ, c1EndX, c1EndY, c1EndZ, c2StartX, c2StartY, c2StartZ, c2EndX, c2EndY, c2EndZ)`
### 参数
- `c1StartX``c1StartY``c1StartZ`:整数,表示第一个立方体的起始坐标
- `c1EndX``c1EndY``c1EndZ`:整数,表示第一个立方体的结束坐标
- `c2StartX``c2StartY``c2StartZ`:整数,表示第二个立方体的起始坐标
- `c2EndX``c2EndY``c2EndZ`:整数,表示第二个立方体的结束坐标
### 返回值
- 如果两个立方体有碰撞,返回 `true`;否则返回 `false`
---
## 十三、pointIsInCubeArea 函数
### 函数签名
- `function pointIsInCubeArea(px, py, pz, startX, startY, startZ, endX, endY, endZ)`
### 参数
- `px``py``pz`:整数,表示要判断的点的坐标
- `startX``startY``startZ`:整数,表示立方体的起始坐标
- `endX``endY``endZ`:整数,表示立方体的结束坐标
### 返回值
- 如果点在立方体内,返回 `true`;否则返回 `false`
---
## 十四、pointIsIn4PointArea 函数
### 函数签名
- `function pointIsIn4PointArea(px, py, x1, y1, x2, y2, x3, y3, x4, y4)`
### 参数
- `px``py`:整数,表示要判断的点的坐标
- `x1``y1``x2``y2``x3``y3``x4``y4`:整数,表示四边形的四个顶点坐标
### 返回值
- 如果点在四边形内,返回 `true`;否则返回 `false`
---
## 十五、get4PointArea 函数
### 函数签名
- `function get4PointArea(x1, y1, x2, y2, x3, y3, x4, y4)`
### 参数
- `x1``y1``x2``y2``x3``y3``x4``y4`:整数,表示四边形的四个顶点坐标
### 返回值
- 四边形的面积,浮点数类型。
---
## 十六、get3PointArea 函数
### 函数签名
- `function get3PointArea(x1, y1, x2, y2, x3, y3)`
### 参数
- `x1``y1``x2``y2``x3``y3`:整数,表示三角形的三个顶点坐标
### 返回值
- 三角形的面积,浮点数类型。
---
## 十七、getSign 函数
### 函数签名
- `function getSign(var)`
### 参数
- `var`:整数,表示要判断符号的数
### 返回值
- 如果 `var` 小于 0返回 1如果 `var` 大于 0返回 -1如果 `var` 等于 0返回 0。
---
## 十八、sqrt 函数
### 函数签名
- `function sqrt(sum)`
### 参数
- `sum`:浮点数,表示要开平方的数
### 返回值
- `sum` 的平方根,浮点数类型。
---
## 十九、Round 函数
### 函数签名
- `function Round(var)`
### 参数
- `var`:浮点数,表示要四舍五入的数
### 返回值
-`var` 进行四舍五入后的结果,整数类型。
---
## 二十、getUniformVelocity 函数
### 函数签名
- `function getUniformVelocity(sv, ev, currentRate, maxRate)`
### 参数
- `sv`:浮点数,表示起始值
- `ev`:浮点数,表示结束值
- `currentRate`:整数,表示当前速率
- `maxRate`:整数,表示最大速率
### 返回值
- 根据当前速率和最大速率计算得到的在 `sv``ev` 之间的值,浮点数类型。
---
## 二十一、sq_GetAccel 函数
### 函数签名
- `function sq_GetAccel(sv, ev, currentRate, maxRate, increaseFeature)`
### 参数
- `sv`:浮点数,表示起始值
- `ev`:浮点数,表示结束值
- `currentRate`:整数,表示当前速率
- `maxRate`:整数,表示最大速率
- `increaseFeature`:布尔值,表示加速度的特征
### 返回值
- 根据当前速率、最大速率和加速度特征计算得到的在 `sv``ev` 之间的值,浮点数类型。
---
## 二十二、getMax 函数
### 函数签名
- `function getMax(a, b)`
### 参数
- `a``b`:整数,表示要比较的两个数
### 返回值
- `a``b` 中的较大值。
---
## 二十三、getMin 函数
### 函数签名
- `function getMin(a, b)`
### 参数
- `a``b`:整数,表示要比较的两个数
### 返回值
- `a``b` 中的较小值。
---
## 二十四、getBeizeri 函数
### 函数签名
- `function getBeizeri(var1, var2, p0, p1, p2, p3)`
### 参数
- `var1``var2`:整数,表示贝塞尔曲线的参数
- `p0``p1``p2``p3`:浮点数,表示贝塞尔曲线的控制点
### 返回值
- 通过贝塞尔曲线公式计算得到的值,浮点数类型。
---
## 二十五、getBeizeriAngle 函数
### 函数签名
- `function getBeizeriAngle(var1, var2, p0, p1, p2, p3)`
### 参数
- `var1``var2`:整数,表示贝塞尔曲线的参数
- `p0``p1``p2``p3`:浮点数,表示贝塞尔曲线的控制点
### 返回值
- 通过贝塞尔曲线公式计算得到的角度值,浮点数类型。
---

26
Object/Memory/Memory.md Normal file
View File

@@ -0,0 +1,26 @@
# Memory 类函数文档
**类说明**
`Memory`类用于服务端内存操作方法。
---
## 一、alloc 函数
### 函数签名
- `function alloc(Size)`
### 返回值
- NativePointer。
### 说明
申请一块指定大小的内存。
---
## 二、allocUtf8String 函数
### 函数签名
- `function allocUtf8String(Str)`
### 返回值
- NativePointer。
### 说明
将字符串转换为内存空间的字符串指针(注意 此内存不可修改)。
---

39
Object/Mysql/Mysql.md Normal file
View File

@@ -0,0 +1,39 @@
# MYSQL 类函数文档
**类说明**
`MYSQL`类为服务端数据库相关操作。
---
**本类为单例类逻辑相关不易描述请直接模仿示例**
### 示例
> 请在你的 sqr_main() 函数中初始化数据库连接池
```
local PoolObj = MysqlPool.GetInstance();
PoolObj.SetBaseConfiguration("127.0.0.1", 3306, "game", "uu5!^%jg");
//连接池编码 默认为latin1 如果有需求可更改为 utf8之类的
//PoolObj.Charset = "latin1";
//连接池大小
PoolObj.PoolSize = 10;
//初始化
PoolObj.Init();
```
> 然后你可以在任何地方调用连接池获取连接 进行数据库操作
```
//查询的sql语句
local sql = "SELECT m_id,charac_name,lev,village,job,exp,Hp FROM charac_info WHERE charac_no = 1;";
//查询的元素类型按sql中的顺序
local column_type_list = ["int", "string", "int", "int", "int", "int", "int"];
//从连接池中获取一个空闲连接
local SqlObj = MysqlPool.GetInstance().GetConnect();
local result = SqlObj.Select(sql, column_type_list);
printT(result);
//使用完成后请将连接放回连接池
MysqlPool.GetInstance().PutConnect(SqlObj);
```
---

View File

@@ -0,0 +1,70 @@
# NativePointer 类函数文档
**类说明**
`NativePointer`类为服务端Native层内存对象。
**注意事项**
进阶操作,不提供说明,请确保自身有足够的能力编写,与群内其他开发者或群主沟通使用
---
- `function add(intoffset)`
- `function sub(intoffset)`
- `function writeByteArray(arr)`
- `function readByteArray(size)`
- `function writeS8(value)`
- `function writeU8(value)`
- `function writeS16(value)`
- `function writeU16(value)`
- `function writeS32(value)`
- `function writeU32(value)`
- `function writeShort(value)`
- `function writeUShort(value)`
- `function writeInt(value)`
- `function writeUInt(value)`
- `function writeFloat(value)`
- `function writeDouble(value)`
- `function readS8()`
- `function readU8()`
- `function readS16()`
- `function readU16()`
- `function readS32()`
- `function readU32()`
- `function readShort()`
- `function readUShort()`
- `function readInt()`
- `function readUInt()`
- `function readFloat()`
- `function readDouble()`
- `function readUtf8String(...)`
- `function readPointer()`
---

121
Object/Pack/Pack.md Normal file
View File

@@ -0,0 +1,121 @@
# Packet 类函数文档
## 一、构造函数
### 函数签名
- `constructor(...)`
### 说明
如果有参数传入,则使用传入的参数进行构造;如果没有参数传入,则创建一个新的数据包。
---
## 二、Put_Header 函数
### 函数签名
- `function Put_Header(a, b)`
### 参数
- `a`:整数
- `b`:整数
### 说明
设置数据包的头部信息。
---
## 三、Put_Byte 函数
### 函数签名
- `function Put_Byte(Value)`
### 参数
- `Value`:整数
### 说明
向数据包中写入一个字节的值。
---
## 四、Put_Short 函数
### 函数签名
- `function Put_Short(Value)`
### 参数
- `Value`:整数
### 说明
向数据包中写入一个短整型的值。
---
## 五、Put_Int 函数
### 函数签名
- `function Put_Int(Value)`
### 参数
- `Value`:整数
### 说明
向数据包中写入一个整型的值。
---
## 六、Put_Binary 函数
### 函数签名
- `function Put_Binary(Value)`
### 参数
- `Value`:字符串
### 说明
向数据包中写入二进制数据。
---
## 七、Put_BinaryEx 函数
### 函数签名
- `function Put_BinaryEx(Str, Len)`
### 参数
- `Str`:字符串指针
- `Len`:整数,表示字符串长度
### 说明
向数据包中写入指定长度的二进制数据。
---
## 八、Put_BinaryEx_M 函数
### 函数签名
- `function Put_BinaryEx_M(Str, Len)`
### 参数
- `Str`:字符串指针
- `Len`:整数,表示字符串长度
### 说明
向数据包中写入指定长度的二进制数据。
---
## 九、Put_Str 函数
### 函数签名
- `function Put_Str(Str, Len)`
### 参数
- `Str`:字符串
- `Len`:整数,表示字符串长度
### 说明
向数据包中写入一个字符串。
---
## 十、Finalize 函数
### 函数签名
- `function Finalize(Value)`
### 参数
- `Value`:布尔值
### 说明
完成数据包的构建。
---
## 十一、Send 函数
### 函数签名
- `function Send(SUser)`
### 参数
- `SUser`:用户对象
### 说明
将数据包发送给指定用户。
---
## 十二、Delete 函数
### 函数签名
- `function Delete()`
### 说明
删除数据包。
---

89
Object/Party/Party.md Normal file
View File

@@ -0,0 +1,89 @@
# Party 类函数文档
## 一、创建队伍
### 函数签名
- `function Create(SUser)`
### 参数
- `SUser`:用户对象
---
## 二、给队伍加入玩家
### 函数签名
- `function Join(SUser)`
### 参数
- `SUser`:用户对象
---
## 三、获取队长
### 函数签名
- `function GetMaster()`
### 返回值
- 用户对象,表示队长,若没有则返回 null
---
## 四、发送每个玩家的 IP 广播(因为组队时 P2P
### 函数签名
- `function SendIpInfo()`
---
## 五、获取战斗对象
### 函数签名
- `function GetBattleField()`
### 返回值
- `BattleField`对象,表示战斗对象
---
## 六、获取玩家
### 函数签名
- `function GetUser(Pos)`
### 参数
- `Pos`:整数,表示位置
### 返回值
- 用户对象,表示玩家,若没有则返回 null
---
## 七、踢出玩家
### 函数签名
- `function LeaveUser(SUser)`
### 参数
- `SUser`:用户对象
---
## 八、从副本踢出玩家
### 函数签名
- `function LeaveUserOnDgn(SUser)`
### 参数
- `SUser`:用户对象
---
## 九、设置队伍可用复活币数量
### 函数签名
- `function SetPartyMemberCoinLimit(Count)`
### 参数
- `Count`:整数,表示复活币数量
---
## 十、遍历玩家并执行函数
### 函数签名
- `function ForeachMember(Func)`
### 参数
- `Func`:函数,表示要执行的函数
---
## 十一、获取地下城清除状态
### 函数签名
- `function Get_Dgn_Clear_State()`
### 返回值
- 整数,表示地下城清除状态
---

85
Object/PvfItem/PvfItem.md Normal file
View File

@@ -0,0 +1,85 @@
# PvfItem 类函数文档
## 三、Output 函数
### 函数签名
- `function Output()`
### 功能
- 遍历`Attribute`属性中的值,将其转换为十六进制字符串表示,并打印出来。
---
## 四、获取编号函数
### 函数签名
- `function GetIndex()`
### 返回值
- 整数,表示物品的编号。
---
## 五、获取可用等级函数
### 函数签名
- `function GetUsableLevel()`
### 返回值
- 整数,表示物品的可用等级。
---
## 六、获取稀有度函数
### 函数签名
- `function GetRarity()`
### 返回值
- 整数,表示物品的稀有度。
---
## 七、获取名字函数
### 函数签名
- `function GetName()`
### 返回值
- 字符串,表示物品的名字。
---
## 八、公共函数 - 获取名字
### 函数签名
- `function GetNameById(Id)`
### 参数
- `Id`:整数,表示物品的 ID。
### 返回值
- 字符串,表示对应 ID 的物品名字。
---
## 九、公共函数 - 获取 PVF 物品
### 函数签名
- `function GetPvfItemById(Idx)`
### 参数
- `Idx`:整数,表示物品的索引。
### 返回值
- 如果找到对应索引的物品,返回一个`PvfItem`对象;否则返回 null。
---
## 十、是否是魔法封印
### 函数签名
- `function IsRandomOption()`
### 返回值
- 如果是否是魔法封印 1为true 0为false。
---
## 十一、获取最低穿戴等级
### 函数签名
- `function GetUsableLevel()`
### 返回值
- 如果最低的可穿戴等级。
---
## 十二、是否为消耗品
### 函数签名
- `function IsStackable()`
### 返回值
- 如果是否是消耗品 0为装备 1为消耗品。
---

View File

@@ -0,0 +1,55 @@
# ScriptData 类函数文档
**类说明**
`ScriptData`类为读取PVF相关操作,使用前请现在sqr_main中调用构造函数初始化。
---
### 函数签名
**构造函数**
- `Script(Path = "/home/neople/game/Script.pvf")`
### 参数
- `Path`PVF文件的路径
**这里给出两个例子**
---
```
//在默认路径的PVF
Script();
//在指定路径的PVF 例如/home/xxx/Scirpt.pvf
Script("/home/xxx/Scirpt.pvf");
```
---
**懒得写函数原型了 这里直接给出使用例子**
---
```
//读取装备List 读取完的内容在这个Buffer里
local Buffer = ScriptData.GetFileData("equipment/equipment.lst", function(DataTable, Data) {
while (!Data.Eof()) {
local Key = Data.Get();
//注册装备列表 路径写入 数据未读取
DataTable.rawset(Key, {
Path = Data.Get(),
Data = null
});
}
print("加载装备List完成, 共" + DataTable.len() + "个");
});
//读取某一件装备的数据
local Buffer = ScriptData.GetFileData("equipment/character/swordman/weapon/hsword/lgcy_agitto_nitras.equ", function(DataTable, Data) {
while (!Data.Eof()) {
local Buf = Data.Get();
print(Buf);
}
});
```
---

63
Object/Timer/Timer.md Normal file
View File

@@ -0,0 +1,63 @@
# Timer 类函数文档
**类说明**
`Timer`类为定时器相关操作。
---
### 函数签名
**公有函数**
- `function SetTimeOut(target_func, delay_time, ...)`
### 参数
- `target_func`:函数体,要获执行的函数
- `delay_time`:整数,要延迟的时间(秒)
- `...`:可变参数,传入的参数可再函数体回调函数中使用
**这里给出两个个例子**
> 无参数
```
Timer.SetTimeOut(function() {
print("注册 5 秒后执行")
}, 5);
```
---
> 有参数
```
Timer.SetTimeOut(function(str,num) {
print(str);//将打印 "字符串"
print(num);//将打印 123
print("注册 5 秒后执行")
}, 5,"字符串",123);
```
---
---
### 函数签名
**公有函数**
- `function SetCronTask(target_func, CronString, ...)`
### 参数
- `target_func`:函数体,要获执行的函数
- `CronString`:字符串,计划任务格式 让gpt帮你写cron字符串
- `...`:可变参数,传入的参数可再函数体回调函数中使用
**这里给出两个个例子**
> 无参数
```
Timer.SetCronTask(function() {
print("注册 每五秒 执行")
}, "*/5 * * * * ?");
```
---
> 有参数
```
Timer.SetCronTask(function(str,num) {
print(str);//将打印 "字符串"
print(num);//将打印 123
print("注册 每五秒 执行")
}, "*/5 * * * * ?","字符串",123);
```
---

449
Object/User/User.md Normal file
View File

@@ -0,0 +1,449 @@
# 用户相关函数文档
## 一、获取当前区域
### 函数签名
- `function GetArea(b)`
此函数接受一个布尔值参数`b`,返回一个整数,表示当前区域索引。
---
## 二、获取当前区域位置
### 函数签名
- `function GetAreaPos()`
该函数返回一个包含两个整数属性`X``Y`的对象,分别表示当前位置的横坐标和纵坐标。
---
## 三、获取朝向
### 函数签名
- `function GetDirections()`
此函数返回一个整数,表示朝向。
---
## 四、获取可见 values
### 函数签名
- `function GetVisibleValues()`
返回一个整数,表示可见值。
---
## 五、获取当前城镇位置
### 函数签名
- `function GetLocation()`
该函数返回一个对象,包含`Pos`(对象,包含当前位置的横坐标和纵坐标)、`Town`(整数,表示城镇索引)、`Area`(整数,表示区域索引)。
---
## 六、账号状态
### 函数签名
- `function GetState()`
返回一个整数,代表账号状态(登录后大于等于 3
---
## 七、角色数量
### 函数签名
- `function GetCharacCount()`
此函数返回一个整数,表示角色数量。
---
## 八、账号 ID
### 函数签名
- `function GetUID()`
返回一个整数,表示账号 ID。
---
## 九、唯一 ID
### 函数签名
- `function GetUniqueId()`
返回一个整数,表示唯一 ID。
---
## 十、角色 ID
### 函数签名
- `function GetCID()`
此函数返回一个整数,表示角色 ID。
---
## 十一、角色职业
### 函数签名
- `function GetCharacJob()`
返回一个整数,表示角色职业。
---
## 十二、角色名称
### 函数签名
- `function GetCharacName()`
该函数返回一个字符串,表示角色名称。
---
## 十三、角色等级
### 函数签名
- `function GetCharacLevel()`
返回一个整数,表示角色等级。
---
## 十四、设置角色等级
### 函数签名
- `function SetCharacLevel(new_level)`
此函数接受一个整数参数`new_level`,表示新的角色等级,返回一个布尔值。
---
## 十五、角色转职职业
### 函数签名
- `function GetCharacGrowType()`
返回一个整数,表示角色转职职业。
---
## 十六、角色觉醒职业
### 函数签名
- `function GetCharacSecondGrowType()`
该函数返回一个整数,表示角色觉醒职业。
---
## 十七、更改转职职业
### 函数签名
- `function ChangeGrowType(GrowType, IsAwa)`
接受两个参数,`GrowType`为整数,转职职业;`IsAwa`为布尔值,表示是否觉醒。
---
## 十八、已用疲劳值
### 函数签名
- `function GetFatigue()`
返回一个整数,表示已用疲劳值。
---
## 十九、最大疲劳值
### 函数签名
- `function GetMaxFatigue()`
此函数返回一个整数,表示最大疲劳值。
---
## 二十、获取背包
### 函数签名
- `function GetInven()`
返回一个整数,表示背包索引,若没有则返回 null。
---
## 二十一、踢人
### 函数签名
- `function Kick(...)`
此函数接受可变参数,参数包括`src`(整数,渠道,可选)、`p2`(整数,可选)、`p3`(整数,可选),返回一个整数,表示错误码?
### 函数签名
- `function DisConn(err)`
接受一个错误号参数`err`(可选),返回一个整数,表示踢人结果。
---
## 二十二、当前小队/副本
### 函数签名
- `function GetParty()`
返回一个`CParty`对象,表示当前小队/副本,若没有则返回 null。
---
## 二十三、是否在领主塔
### 函数签名
- `function CheckInBossTower()`
返回一个布尔值,表示是否在领主塔。
---
## 二十四、是否在龙之路
### 函数签名
- `function CheckInBlueMarble()`
该函数返回一个布尔值,表示是否在龙之路。
---
## 二十五、是否开启 GM 权限
### 函数签名
- `function IsGmMode()`
返回一个布尔值,表示是否开启 GM 权限。
---
## 二十六、获取账号上次退出游戏的时间
### 函数签名
- `function GetCurCharacLastPlayTick()`
返回一个时间戳,表示账号上次退出游戏的时间。
---
## 二十七、获取账号本次登录游戏的时间
### 函数签名
- `function GetCurCharacLoginTick()`
此函数返回一个时间戳,表示账号本次登录游戏的时间。
---
## 二十八、获得公网地址
### 函数签名
- `function GetIpAddress()`
返回一个整数,表示公网地址。
---
## 二十九、发包
### 函数签名
- `function Send(SPacket)`
此函数接受一个数据包对象`SPacket`作为参数。
---
## 三十一、发送消息包
### 函数签名
- `function SendNotiPacket(Str, Type2, Type3)`
此函数接受三个整数参数`Type1``Type2``Type3`
---
## 三十二、获取技能树
### 函数签名
- `function GetSkillW()`
返回一个技能树对象。
---
## 三十三、重置技能树
### 函数签名
- `function InitSkillW(GrowType, IsAwa)`
接受两个参数,`GrowType`为整数,转职编号;`IsAwa`为布尔值,表示是否觉醒。
---
## 三十四、发送公告消息
### 函数签名
- `function SendNotiPacketMessage(String, Type)`
此函数接受两个参数,一个字符串`String`和一个整数`Type`
---
## 三十五、发送公告消息(带颜色)
### 函数签名
- `function SendNotiForColorPacketMessage(StringArr, Type)`
接受一个字符串数组`StringArr`和一个整数`Type`作为参数。
---
## 三十六、发送公告消息(带颜色和 ID
### 函数签名
- `function SendNotiForColorAIdPacketMessage(StringArr, Type)`
接受一个字符串数组`StringArr`和一个整数`Type`作为参数。
---
## 三十七、调试信息包
### 函数签名
- `function Debug(Any)`
接受一个任意对象`Any`作为参数。
---
## 三十八、发送道具
### 函数签名
- `function GiveItem(ItemId, ItemCount)`
此函数接受两个参数,一个整数`ItemId`表示道具 ID一个整数`ItemCount`表示道具数量,返回一个数组,表示发送成功后的道具信息,若发送失败则返回 null。
### 函数签名
- `function GiveItemEx(GiveTab)`
接受一个包含道具 ID 和数量的对象Map`GiveTab`作为参数。
---
## 三十九、更新背包栏
### 函数签名
- `function SendItemSpace(ItemSpace)`
接受一个整数参数`ItemSpace`,表示背包栏索引。
---
## 四十、更新道具信息
### 函数签名
- `function SendUpdateItemList(Type, ItemSpace, Slot)`
此函数接受三个参数,一个整数`Type`、一个整数`ItemSpace`表示背包栏索引、一个整数`Slot`表示道具槽位。
---
## 四十一、发送系统邮件
### 函数签名
- `function SendMail(ItemList,...)`
接受一个道具列表`ItemList`和可变参数,可选参数包含邮件标题和正文等信息。
---
## 四十二、无条件完成指定任务并领取奖励
### 函数签名
- `function ClearQuest_Gm(QuestId)`
接受一个整数参数`QuestId`,表示任务 ID。
---
## 四十三、充值点券
### 函数签名
- `function RechargeCera(Amount)`
接受一个整数参数`Amount`,表示点券数量。
---
## 四十四、获取点券
### 函数签名
- `function GetCera()`
返回一个整数,表示点券数量。
---
## 四十五、充值代币券
### 函数签名
- `function RechargeCeraPoint(Amount)`
接受一个整数参数`Amount`,表示代币券数量。
---
## 四十六、获取代币券
### 函数签名
- `function GetCeraPoint()`
此函数返回一个整数,表示代币券数量。
---
## 四十七、充值金币
### 函数签名
- `function RechargeMoney(Amount)`
接受一个整数参数`Amount`,表示金币数量。
---
## 四十八、充值胜点
### 函数签名
- `function RechargeWinPoint(Amount)`
接受一个整数参数`Amount`,表示胜点数量。
---
## 四十九、获取胜点
### 函数签名
- `function GetWinPoint()`
返回一个整数,表示胜点数量。
---
## 五十、获取复活币
### 函数签名
- `function GetCoin()`
此函数返回一个整数,表示复活币数量。
---
## 五十一、离开队伍
### 函数签名
- `function LeaveParty()`
---
## 五十二、放弃副本
### 函数签名
- `function GiveupDgn()`
---
## 五十三、设置玩家坐标
### 函数签名
- `function SetPosition(Xpos, Ypos, Direction)`
接受三个参数,一个整数`Xpos`表示横坐标,一个整数`Ypos`表示纵坐标,一个整数`Direction`表示方向。
---
## 五十四、获取玩家任务信息
### 函数签名
- `function GetQuest()`
返回一个任务信息对象。
---
## 五十四、发送弹窗公告包(可自定义文字需要客户端修复233dll搭配)
### 函数签名
- `function SendNotiBox(Msg, Type)`
接受三个参数,一个字符串`Msg`公告文本,一个整数`Type`表示类型 0全体 1自己 2队伍。
---
## 五十四、获取公会名称
### 函数签名
- `function GetGuildName()`
### 返回值
- 如果公会的名称。
---

101
Object/World/World.md Normal file
View File

@@ -0,0 +1,101 @@
## 一、根据 UID 获取 Session
### 函数签名
- `function GetSessionByUid(Uid)`
### 参数
- `Uid`:整数,表示用户 ID
### 返回值
- 返回一个 Session 对象,表示根据用户 ID 获取到的 Session。
---
## 二、根据 Session 获取玩家
### 函数签名
- `function GetUserBySession(Session)`
### 参数
- `Session`Session 对象
### 返回值
- 如果找到对应的用户,返回一个 User 对象;否则返回 null。
---
## 三、根据 UID 获取玩家
### 函数签名
- `function GetUserByUid(Uid)`
### 参数
- `Uid`:整数,表示用户 ID
### 返回值
- 如果找到对应的用户,返回一个 User 对象;否则返回 null。
---
## 四、根据名字获取玩家
### 函数签名
- `function GetUserByName(Name)`
### 参数
- `Name`:字符串,表示用户名字
### 返回值
- 如果找到对应的用户,返回一个 User 对象;否则返回 null。
---
## 五、获取玩家数量
### 函数签名
- `function GetUserCount()`
### 返回值
- 整数,表示玩家数量。
---
## 六、给所有玩家发包
### 函数签名
- `function SendAll(Pack)`
### 参数
- `Pack`:数据包对象
---
## 七、给所有玩家发送公告
### 函数签名
- `function SendNotiPacketMessage(String, Type)`
### 参数
- `String`:字符串,表示公告内容
- `Type`:整数,表示公告类型
---
## 八、发送公告消息(带颜色)
### 函数签名
- `function SendNotiForColorPacketMessage(StringArr, Type)`
### 参数
- `StringArr`:字符串数组
- `Type`:整数,表示公告类型
---
## 九、发送公告消息(带颜色和 ID
### 函数签名
- `function SendNotiForColorAIdPacketMessage(StringArr, Type)`
### 参数
- `StringArr`:字符串数组
- `Type`:整数,表示公告类型
---
## 十、通过 UID 和 CID 获取玩家
### 函数签名
- `function GetUserByUidCid(Uid, Cid)`
### 参数
- `Uid`:整数,表示用户 ID
- `Cid`:整数,表示角色 ID
### 返回值
- 如果找到对应的用户,返回一个 User 对象;否则返回 null。
---
## 十一、获取在线玩家列表
### 函数签名
- `function GetOnlinePlayer()`
### 返回值
- 在线玩家的数组。
---