添加示例项目

This commit is contained in:
2026-04-16 16:27:53 +08:00
parent 69a2141804
commit 721fb5a992
192 changed files with 10148 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
{
"ProjectName": "强化增幅锻造药剂",
"ProjectDescribe": "使用药剂或持有指定物品时增加强化/增幅/锻造概率",
"ProjectAuthor": "南瓜",
"ProjectVersion": 1.0,
"ProjectConfig": "强化增幅锻造药剂配置_nangua.json",
"ProjectFiles": [
"强化增幅锻造药剂.nut"
],
"ProjectRunFunc": "_Dps_Increase_probability_Main_"
}

View File

@@ -0,0 +1,64 @@
// 强化时使用角色
upgrade_user <- null;
// 强化时使用材料
current_material <- null;
// 锻造时使用角色
Separate_user <- null;
// 强化装备时
function _Dps_Increase_probability_Main_() {
Cb_WongWork_CItemUpgrade_Enter_Func._Upgrade_Item <- function(args) {
upgrade_user = User(args[1]);
local upgrade_info_t = args[3];
local Upgrade_rand = NativePointer(upgrade_info_t).add(32).readU32();
// 如果材料是3242则代表增幅如果是3171则代表强化
current_material = NativePointer(upgrade_info_t).add(44).readU32();
}
// 锻造装备时
Cb_WongWork_CItemUpgrade_Separate_Enter_Func.Separate_Upgrade <- function(args) {
Separate_user = User(args[1]);
local upgrade_info_t = args[3];
local Upgrade_rand = NativePointer(upgrade_info_t).add(4).readU32();
local Separate_rand = 10 * Upgrade_rand;
}
// 随机值
Cb_CMTRand_randInt_Leave_Func._Upgrade_Item <- function(args) {
local address = Haker.NextReturnAddress;
local Config = GlobalConfig.Get("强化增幅锻造药剂配置_nangua.json");
if(address == "0x8547768") {
local rand = args.pop();
local charac_no = upgrade_user.GetCID().tostring();
if (current_material == Config["强化药剂"]["强化材料(如你的强化材料是3171,则这里写3171)"] && Sq_CallFunc(S_Ptr("0x865E994"), "int", ["pointer", "int"], upgrade_user.C_Object, Config["强化药剂"]["药剂ID"]) && Config["强化药剂"]["开关(true开启/false关闭)"]) {
local prob = Config["强化药剂"]["增加概率值"];
if (Config["强化药剂"]["指定角色概率值"].rawin(charac_no)) {
prob = Config["强化药剂"]["指定角色概率值"][charac_no];
}
local increase = rand * prob;
local result = rand + increase;
if (result > 100000) result = 100000;
return result;
}else if (current_material == Config["增幅药剂"]["增幅材料(如你的增幅材料是3242,则这里写3242)"] && Sq_CallFunc(S_Ptr("0x865E994"), "int", ["pointer", "int"], upgrade_user.C_Object, Config["增幅药剂"]["药剂ID"]) && Config["增幅药剂"]["开关(true开启/false关闭)"]) {
local prob = Config["增幅药剂"]["增加概率值"];
if (Config["增幅药剂"]["指定角色概率值"].rawin(charac_no)) {
prob = Config["增幅药剂"]["指定角色概率值"][charac_no];
}
local increase = rand * prob;
local result = rand + increase;
if (result > 100000) result = 100000;
return result;
}
}else if(address == "0x811e506" && Config["锻造药剂"]["开关(true开启/false关闭)"]) {
local rand = args.pop();
local charac_no = Separate_user.GetCID().tostring();
if (Sq_CallFunc(S_Ptr("0x865E994"), "int", ["pointer", "int"], Separate_user.C_Object, Config["锻造药剂"]["药剂ID"])) {
local prob = Config["锻造药剂"]["增加概率值"];
if (Config["锻造药剂"]["指定角色概率值"].rawin(charac_no)) {
prob = Config["锻造药剂"]["指定角色概率值"][charac_no];
}
local result = rand / (1 + prob);
if (result < 1) result = 1;
return result;
}
}
}
}

View File

@@ -0,0 +1,35 @@
{
"强化药剂": {
"开关(true开启/false关闭)":true,
"药剂ID":2600025,
"强化材料(如你的强化材料是3171,则这里写3171)":3171,
"增加概率值":0.1,
"指定角色概率值":{
"1":0.1,
"2":0.1
}
},
"增幅药剂": {
"开关(true开启/false关闭)":true,
"药剂ID":2600025,
"增幅材料(如你的增幅材料是3242,则这里写3242)":3242,
"增加概率值":0.1,
"指定角色概率值":{
"1":0.1,
"2":0.1
}
},
"锻造药剂": {
"开关(true开启/false关闭)":true,
"药剂ID":2600025,
"增加概率值":0.1,
"指定角色概率值":{
"1":0.1,
"2":0.1
}
},
"概率说明1":"1概率值0.1代表10%的概率,10%并不是说提高10%的概率,因为强化时有一个随机数0-10万",
"概率说明2":"所以强化时如果随机值是1万,提高10%的概率就是10000*0.1=1000,最终随机数是11000(10000+1000)",
"概率说明3":"在强化时如成功率是20%,那么他的随机值就是20000,如果概率值大于20000就会强化成功,如果概率值小于20000就会失败",
"指定角色说明":"角色ID可以查看数据库中 taiwan_cain → charac_info → charac_no代表角色ID"
}