添加示例项目
This commit is contained in:
11
示例项目/转职券/Proj.ifo
Normal file
11
示例项目/转职券/Proj.ifo
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"ProjectName": "转职券",
|
||||
"ProjectDescribe": "按官方的转职券来写,转职券道具可以复制 主线完成券 一类。",
|
||||
"ProjectAuthor": "zz",
|
||||
"ProjectVersion": 1.1,
|
||||
"ProjectConfig": "转职券.json",
|
||||
"ProjectFiles": [
|
||||
"转职券.nut"
|
||||
],
|
||||
"ProjectRunFunc": "_Dps_CLASS_CHANGE_Main_"
|
||||
}
|
||||
53
示例项目/转职券/转职券.json
Normal file
53
示例项目/转职券/转职券.json
Normal file
@@ -0,0 +1,53 @@
|
||||
|
||||
|
||||
{
|
||||
"config_meta": {
|
||||
"comment": "转职道具功能配置表 v1.2",
|
||||
"author": "System",
|
||||
"create_date": "2024-05-14"
|
||||
},
|
||||
|
||||
"class_change_items": {
|
||||
"8016": {
|
||||
"job": 7,
|
||||
"grow": 1,
|
||||
"comment": "男气功"
|
||||
},
|
||||
"8017": {
|
||||
"job": 7,
|
||||
"grow": 3,
|
||||
"comment": "男街霸"
|
||||
},
|
||||
"8018": {
|
||||
"job": 7,
|
||||
"grow": 2,
|
||||
"comment": "男散打"
|
||||
},
|
||||
"8019": {
|
||||
"job": 7,
|
||||
"grow": 4,
|
||||
"comment": "男柔道"
|
||||
},
|
||||
"2024051416": {
|
||||
"job": 9,
|
||||
"grow": 1,
|
||||
"comment": "驭剑士"
|
||||
},
|
||||
"2024051417": {
|
||||
"job": 9,
|
||||
"grow": 3,
|
||||
"comment": "契魔者"
|
||||
},
|
||||
"2024051419": {
|
||||
"job": 8,
|
||||
"grow": 1,
|
||||
"comment": "元素爆破师"
|
||||
},
|
||||
"2024051420": {
|
||||
"job": 8,
|
||||
"grow": 2,
|
||||
"comment": "冰结师"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
59
示例项目/转职券/转职券.nut
Normal file
59
示例项目/转职券/转职券.nut
Normal file
@@ -0,0 +1,59 @@
|
||||
|
||||
// =================== 加载 JSON 配置 ===================
|
||||
local rawConfig = GlobalConfig.Get("转职券.json");
|
||||
local CLASS_CHANGE_ITEMS = {};
|
||||
|
||||
// 转换字符串键到整型键
|
||||
foreach(keyStr, config in rawConfig.class_change_items) {
|
||||
try {
|
||||
CLASS_CHANGE_ITEMS[keyStr.tointeger()] <- config;
|
||||
} catch(e) {
|
||||
::print("[ERROR] 转换道具ID失败: " + keyStr + "\n");
|
||||
}
|
||||
}
|
||||
|
||||
// =================== 通用转职函数 ===================
|
||||
function ChangeGrowTypeHandler(SUser, ItemId) {
|
||||
// 读取角色信息
|
||||
local curJob = SUser.GetCharacJob();
|
||||
local curGrow = SUser.GetCharacGrowType();
|
||||
local curLevel = SUser.GetCharacLevel();
|
||||
local curAwaken = SUser.GetCharacSecondGrowType();
|
||||
|
||||
// 获取转职配置
|
||||
local config = CLASS_CHANGE_ITEMS[ItemId];
|
||||
|
||||
// 条件验证
|
||||
if (curLevel < 20) return SendClassChangeError(SUser, "角色等级不足20级!", ItemId);
|
||||
|
||||
if (curJob != config.job) return SendClassChangeError(SUser, "职业不符无法使用!", ItemId);
|
||||
|
||||
if (curAwaken > 0) return SendClassChangeError(SUser, "觉醒后无法转职!", ItemId);
|
||||
|
||||
if (curGrow == config.grow) return SendClassChangeError(SUser, "已处于目标职业分支!", ItemId);
|
||||
|
||||
// 执行转职操作
|
||||
SUser.ChangeGrowType(config.grow, 0);
|
||||
SUser.InitSkillW(1, 0);
|
||||
SUser.SendNotiPacket(0, 2, 0);
|
||||
SUser.SendNotiPacketMessage("角色转职成功!", 0);
|
||||
}
|
||||
|
||||
// =================== 错误处理函数 ===================
|
||||
function SendClassChangeError(SUser, msg, itemId) {
|
||||
SUser.SendNotiPacketMessage(msg, 0);
|
||||
SUser.SendNotiBox(msg, 1);
|
||||
SUser.GiveItem(itemId, 1); // 退还道具
|
||||
}
|
||||
|
||||
//加载入口
|
||||
function _Dps_CLASS_CHANGE_Main_() {
|
||||
if ("class_change_items" in rawConfig) {
|
||||
foreach (itemId, _ in CLASS_CHANGE_ITEMS) {
|
||||
Cb_Use_Item_Sp_Func[itemId] <- ChangeGrowTypeHandler;
|
||||
}
|
||||
::print("[SUCCESS] 注册转职道具数量: " + CLASS_CHANGE_ITEMS.len() + "\n");
|
||||
} else {
|
||||
::print("[ERROR] 转职配置缺失 class_change_items 节点\n");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user