找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 420|回复: 4

有没有大佬指点一下咋合并函数

[复制链接]

3782

主题

3万

回帖

11万

积分

出神入化

积分
115796
发表于 3 小时前 | 显示全部楼层 |阅读模式
function getCurrentModuleDamageRate_ATMage(obj)
{
local rate = 100;
if (obj.sq_GetSkillLevel(169) > 0)
{
rate = rate * (100 + sq_GetLevelData(obj, 169, 0,
obj.sq_GetSkillLevel(169) ) / 10) / 100;
}
if (obj.sq_GetSkillLevel(169) > 0)
{
rate = rate * (100 + sq_GetLevelData(obj, 169, 1,
obj.sq_GetSkillLevel(169) ) / 10) / 100;
}
if (obj.sq_GetSkillLevel(195) > 0)
{
rate = rate * (100 + sq_GetLevelData(obj, 195, 0,
obj.sq_GetSkillLevel(195) ) / 10) / 100;
}
if (obj.sq_GetSkillLevel(198) > 0)
{
rate = rate * (100 + sq_GetLevelData(obj, 198, 0,
obj.sq_GetSkillLevel(198) ) / 10) / 100;
}
if (obj.sq_GetSkillLevel(51) > 0)
{
rate = rate * (100 + sq_GetLevelData(obj, 51, 2,
obj.sq_GetSkillLevel(51) ) / 10) / 100;
}
if (obj.sq_GetSkillLevel(65) > 0)
{
rate = rate * (100 + sq_GetLevelData(obj, 65, 2,
obj.sq_GetSkillLevel(65) ) / 10) / 100;
}
if (obj.sq_GetSkillLevel(50) > 0)
{
rate = rate * (100 + sq_GetLevelData(obj, 50, 5,
obj.sq_GetSkillLevel(50) ) / 10) / 100;
}
if (CNSquirrelAppendage.sq_IsAppendAppendage(obj, "Character/ATMage/Resonance/ap_ATMage_element_attack_water.nut"))
{
//atmage iceMaster buff character inrease attackRate
local atkRate = sq_GetLevelData(obj, SKILL_RESONANCE, 3, obj.sq_GetSkillLevel(SKILL_RESONANCE) ) / 10;
rate = rate * (100 + atkRate) / 100;
}
return rate.tofloat() / 100.0;
}
阿荣社区欢迎你(bbs.vul7.com)
回复

使用道具 举报

3782

主题

3万

回帖

11万

积分

出神入化

积分
115796
 楼主| 发表于 3 小时前 | 显示全部楼层
function getCurrentModuleDamageRate_ATMage(obj) {
local rate = 100;
local skillLevel = sq_GetSkillLevel(obj, 254);
local zzsh = sq_GetSkillLevel(obj, 254, 40, skillLevel);
if (obj.sq_GetSkillLevel(254) > 0) {
rate = rate * (40 + zzsh) / 100;
}
if (obj.sq_GetSkillLevel(169) > 0) {
rate = rate * (100 + sq_GetLevelData(obj, 169, 0, obj.sq_GetSkillLevel(169)) / 10) / 100;
}
if (obj.sq_GetSkillLevel(169) > 0) {
rate = rate * (100 + sq_GetLevelData(obj, 169, 1, obj.sq_GetSkillLevel(169)) / 10) / 100;
}
if (obj.sq_GetSkillLevel(50) > 0) {
rate = rate * (100 + sq_GetLevelData(obj, 50, 5, obj.sq_GetSkillLevel(50)) / 10) / 100;
}
if (obj.sq_GetSkillLevel(51) > 0) {
rate = rate * (100 + sq_GetLevelData(obj, 51, 2, obj.sq_GetSkillLevel(51)) / 10) / 100;
}
if (obj.sq_GetSkillLevel(198) > 0 && sq_getGrowType(obj) == 2) {
rate = rate * (100 + sq_GetLevelData(obj, 198, 0, obj.sq_GetSkillLevel(198)) / 10) / 100;
}
if (obj.sq_GetSkillLevel(199) > 0 && sq_getGrowType(obj) == 1) {
rate = rate * (100 + sq_GetLevelData(obj, 199, 0, obj.sq_GetSkillLevel(199)) / 10) / 100;
}
if (obj.sq_GetSkillLevel(34) > 0) {
rate = rate * (100 + sq_GetLevelData(obj, 34, 0, obj.sq_GetSkillLevel(34)) / 10) / 100;
}
if (CNSquirrelAppendage.sq_IsAppendAppendage(obj, "Character/ATMage/ManaBurst/ap_ATMage_ManaBurst.nut")) {
//atmage delusion character increase attackRate
local atkRate = sq_GetLevelData(obj, 28, 3, obj.sq_GetSkillLevel(28)) / 10;
rate = rate * (100 + atkRate) / 100;
}
if (CNSquirrelAppendage.sq_IsAppendAppendage(obj, "character/atmage/delusion/ap_delusion.nut")) {
//atmage delusion character increase attackRate
local atkRate = sq_GetLevelData(obj, 158, 1, obj.sq_GetSkillLevel(158));
rate = rate * (100 + atkRate) / 100;
}
if (obj.sq_GetSkillLevel(119) > 0) {
local atkRate = sq_GetLevelData(obj, 119, 0, obj.sq_GetSkillLevel(119)) / 10;
rate = rate * (100 + atkRate) / 100;
}
if (CNSquirrelAppendage.sq_IsAppendAppendage(obj, "Character/ATMage/Resonance/ap_ATMage_element_attack_water.nut")) {
local atkRate = sq_GetLevelData(obj, 31, 3, obj.sq_GetSkillLevel(31)) / 10;
rate = rate * (100 + atkRate) / 100;
}
local voidObj = getParticleVoid(obj);
if (voidObj && voidObj.getVar("state").get_vector(0) == 0) {
local atkRate = sq_GetLevelData(obj, 160, 0, obj.sq_GetSkillLevel(160)) / 10;
rate = rate * (100 + atkRate) / 100;
}
if (CNSquirrelAppendage.sq_IsAppendAppendage(obj, "character/atmage/bloodfire/ap_bloodfire.nut")) {
//atmage bloodMage character increase attackRate
local atkRate = sq_GetLevelData(obj, 97, 1, obj.sq_GetSkillLevel(97)) / 10;
rate = rate * (100 + atkRate) / 100;
}
if (CNSquirrelAppendage.sq_IsAppendAppendage(obj, "character/atmage/bloodone/ap_bloodone2.nut")) {
local atkRate = sq_GetLevelData(obj, 122, 0, obj.sq_GetSkillLevel(122)) / 10;
rate = rate * (100 + atkRate) / 100;
}
if (obj.sq_GetSkillLevel(170) > 0 && sq_getGrowType(obj) == 4) {
rate = rate * (1000 + sq_GetLevelData(obj, 170, 3, obj.sq_GetSkillLevel(170))) / 1000;
}
if (sq_GetSkillLevel(obj, 162) > 0 && sq_getGrowType(obj) == 0) {
local stoneNum = getBreakSenseMagicStoneCount(obj);
local atkRate = sq_GetLevelData(obj, 162, 2, obj.sq_GetSkillLevel(162)) / 10;
if (stoneNum == 2) {
atkRate = sq_GetLevelData(obj, 162, 3, obj.sq_GetSkillLevel(162)) / 10;
}
else if (stoneNum >= 3) {
atkRate = sq_GetLevelData(obj, 162, 4, obj.sq_GetSkillLevel(162)) / 10;
}
rate = rate * (100 + atkRate) / 100;
}
if (sq_GetSkillLevel(obj, 161) > 0) {
local stoneNum = getBreakSenseMagicStoneCount(obj);
local atkRate = sq_GetLevelData(obj, 161, 1, obj.sq_GetSkillLevel(161)) / 10;
if (stoneNum == 2) {
atkRate = sq_GetLevelData(obj, 161, 3, obj.sq_GetSkillLevel(161)) / 10;
}
else if (stoneNum >= 3) {
atkRate = sq_GetLevelData(obj, 161, 5, obj.sq_GetSkillLevel(161)) / 10;
}
rate = rate * (100 + atkRate) / 100;
}
if (sq_GetSkillLevel(obj, 164) > 0) {
local atkRate = sq_GetLevelData(obj, 164, 0, obj.sq_GetSkillLevel(164)) / 10;
rate = rate * (100 + atkRate) / 100;
}
if (CNSquirrelAppendage.sq_IsAppendAppendage(obj, "character/atmage/windbuff/ap_windbuff.nut")) {
local atkRate = sq_GetLevelData(obj, 142, 1, obj.sq_GetSkillLevel(142)) / 10;
rate = rate * (100 + atkRate) / 100;
}
return rate.tofloat() / 100.0;
}
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

3782

主题

3万

回帖

11万

积分

出神入化

积分
115796
 楼主| 发表于 3 小时前 | 显示全部楼层
上边那个是冰洁三被动 底下的本来pvf就有的 完全看不懂
刚才照着复制进去黑技能了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

3926

主题

3万

回帖

11万

积分

出神入化

积分
117419
发表于 3 小时前 | 显示全部楼层
直接把重复的函数一股脑给Ai 不比你在这问来的快?
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

3782

主题

3万

回帖

11万

积分

出神入化

积分
115796
 楼主| 发表于 3 小时前 | 显示全部楼层
function getCurrentModuleDamageRate_ATMage(obj)
{
local rate = 100;
// 定义技能配置数组: [技能ID, 数据索引]
local skillConfigs = [
[169, 0],
[169, 1],
[195, 0],
[198, 0],
[51, 2],
[65, 2],
[50, 5]
];
// 处理常规技能加成
foreach(config in skillConfigs)
{
local skillId = config[0];
local dataIndex = config[1];
local skillLevel = obj.sq_GetSkillLevel(skillId);
if(skillLevel > 0)
{
local modifier = sq_GetLevelData(obj, skillId, dataIndex, skillLevel) / 10;
rate = rate * (100 + modifier) / 100;
}
}
// 特殊处理:冰属性共鸣加成
const SKILL_RESONANCE = /* 根据实际情况填写值 */;
if(CNSquirrelAppendage.sq_IsAppendAppendage(obj, "Character/ATMage/Resonance/ap_ATMage_element_attack_water.nut "))
{
local skillLevel = obj.sq_GetSkillLevel(SKILL_RESONANCE);
if(skillLevel > 0)
{
local atkRate = sq_GetLevelData(obj, SKILL_RESONANCE, 3, skillLevel) / 10;
rate = rate * (100 + atkRate) / 100;
}
}
return rate.tofloat() / 100.0;
}
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

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

本版积分规则

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