Sqr/character/creatormage/passive_skill_creatormage.nut

350 lines
11 KiB
Plaintext

/////////////////////////////////////////////////////////
//
// ?卫粽 蝶鉴籀葬
// ?渡 蝶鉴暧 ?卫粽 蝶鉴暧 Appendage蛔烟/?薯 蛔蛔
//
/////////////////////////////////////////////////////////
function ProcPassiveSkill_CreatorMage(obj, skill_index, skill_level)
{
if (skill_index == SKILL_FIREWALL || skill_index == SKILL_FIREMETEO)
{ // firewall
if (skill_level > 0)
{
local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false,
"Character/CreatorMage/ap_creatormage_flame.nut", true);
if (appendage)
{
local attributeSkill = SKILL_CREATORFLAME;
local level = sq_GetSkillLevel(obj, attributeSkill);
// 0.裟蝶 啪桧虽 热纂
local maxCnt = sq_GetLevelData(obj, attributeSkill, 0, level);
if (appendage.sq_var.size_vector() == 0)
{
for (local i = 0; i < I_SIZE; i++)
appendage.sq_var.push_vector(0);
appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
local beforeMaxCnt = appendage.sq_var.get_vector(I_MAX_COUNT);
appendage.sq_var.set_vector(I_MAX_COUNT, maxCnt);
if (appendage.sq_var.get_vector(I_REMAIN_COUNT) > appendage.sq_var.get_vector(I_MAX_COUNT) || sq_GetCurrentModuleType() == MODULE_TYPE_ROOM_LIST)
{
// 陴擎 醱瞪高桧 裟蝶纂尔棻 觼棻贼 裟蝶纂 虏踯虏 醱瞪卫霾栖棻.
appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
else if (beforeMaxCnt > 0 && beforeMaxCnt != maxCnt)
{
setCreatorSkillStateSkillIndex(obj, -1);
onAllChargeCreatorMageGauge(obj);
}
// 0. 棻 瓣表韩阳梱虽 勘葬朝 卫除 (ms)
local chargeTime = sq_GetIntData(obj, attributeSkill, 0);
appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime);
local chargeMode = appendage.sq_var.get_vector(l_CHARGE_ON);
if (chargeMode)
{
local remainCnt = appendage.sq_var.get_vector(I_REMAIN_COUNT);
appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, remainCnt);
local time = appendage.sq_var.get_vector(I_CURRENT_CHARGE_TIME);
if ((chargeTime - time) > 0)
appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime - time);
}
else
{
appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, 0);
appendage.sq_var.set_vector(I_CURRENT_CHARGE_TIME, 0);
//appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
}
}
}
else if (skill_index == SKILL_ICEROCK || skill_index == SKILL_ICEPLATE)
{
if (skill_level > 0)
{
local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false,
"Character/CreatorMage/ap_creatormage_ice.nut", true);
if (appendage)
{
local attributeSkill = SKILL_CREATORICE;
local level = sq_GetSkillLevel(obj, attributeSkill);
// 0.裟蝶 啪桧虽 热纂
local maxCnt = sq_GetLevelData(obj, attributeSkill, 0, level);
if (appendage.sq_var.size_vector() == 0)
{
for (local i = 0; i < I_SIZE; i++)
appendage.sq_var.push_vector(0);
appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
local beforeMaxCnt = appendage.sq_var.get_vector(I_MAX_COUNT);
appendage.sq_var.set_vector(I_MAX_COUNT, maxCnt);
if (appendage.sq_var.get_vector(I_REMAIN_COUNT) > appendage.sq_var.get_vector(I_MAX_COUNT) || sq_GetCurrentModuleType() == MODULE_TYPE_ROOM_LIST)
{
// 陴擎 醱瞪高桧 裟蝶纂尔棻 觼棻贼 裟蝶纂 虏踯虏 醱瞪卫霾栖棻.
appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
else if (beforeMaxCnt > 0 && beforeMaxCnt != maxCnt)
{
setCreatorSkillStateSkillIndex(obj, -1);
onAllChargeCreatorMageGauge(obj);
}
// 0. 棻 瓣表韩阳梱虽 勘葬朝 卫除 (ms)
local chargeTime = sq_GetIntData(obj, attributeSkill, 0);
appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime);
local chargeMode = appendage.sq_var.get_vector(l_CHARGE_ON);
if (chargeMode)
{
local remainCnt = appendage.sq_var.get_vector(I_REMAIN_COUNT);
appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, remainCnt);
local time = appendage.sq_var.get_vector(I_CURRENT_CHARGE_TIME);
print(" chargeMode:" + chargeMode);
print(" delayTime:" + time);
if ((chargeTime - time) > 0)
appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime - time);
}
else
{
appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, 0);
appendage.sq_var.set_vector(I_CURRENT_CHARGE_TIME, 0);
//appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
}
}
}
else if (skill_index == SKILL_WOODFENCE || skill_index == SKILL_MGRAB)
{
if (skill_level > 0)
{
local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false,
"Character/CreatorMage/ap_creatormage_disturb.nut", true);
if (appendage)
{
local attributeSkill = SKILL_CREATORDISTURB;
local level = sq_GetSkillLevel(obj, attributeSkill);
// 0.裟蝶 啪桧虽 热纂
local maxCnt = sq_GetLevelData(obj, attributeSkill, 0, level);
if (appendage.sq_var.size_vector() == 0)
{
for (local i = 0; i < I_SIZE; i++)
appendage.sq_var.push_vector(0);
appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
local beforeMaxCnt = appendage.sq_var.get_vector(I_MAX_COUNT);
appendage.sq_var.set_vector(I_MAX_COUNT, maxCnt);
if (appendage.sq_var.get_vector(I_REMAIN_COUNT) > appendage.sq_var.get_vector(I_MAX_COUNT) || sq_GetCurrentModuleType() == MODULE_TYPE_ROOM_LIST)
{
// 陴擎 醱瞪高桧 裟蝶纂尔棻 觼棻贼 裟蝶纂 虏踯虏 醱瞪卫霾栖棻.
appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
else if (beforeMaxCnt > 0 && beforeMaxCnt != maxCnt)
{
setCreatorSkillStateSkillIndex(obj, -1);
onAllChargeCreatorMageGauge(obj);
}
//appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
//appendage.sq_var.set_vector(l_CHARGE_ON, 0);
// 0. 棻 瓣表韩阳梱虽 勘葬朝 卫除 (ms)
local chargeTime = sq_GetIntData(obj, attributeSkill, 0);
appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime);
local chargeMode = appendage.sq_var.get_vector(l_CHARGE_ON);
if (chargeMode)
{
local remainCnt = appendage.sq_var.get_vector(I_REMAIN_COUNT);
appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, remainCnt);
local time = appendage.sq_var.get_vector(I_CURRENT_CHARGE_TIME);
print(" chargeMode:" + chargeMode);
print(" delayTime:" + time);
if ((chargeTime - time) > 0)
appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime - time);
}
else
{
appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, 0);
appendage.sq_var.set_vector(I_CURRENT_CHARGE_TIME, 0);
//appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
}
}
}
else if (skill_index == SKILL_FIREHURRICANE || skill_index == SKILL_ICESHIELD)
{
if (skill_level > 0)
{
local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false,
"Character/CreatorMage/ap_creatormage_guardian.nut", true);
if (appendage)
{
local attributeSkill = SKILL_CREATORGUARDIAN;
local level = sq_GetSkillLevel(obj, attributeSkill);
// 0.裟蝶 啪桧虽 热纂
local maxCnt = sq_GetLevelData(obj, attributeSkill, 0, level);
if (appendage.sq_var.size_vector() == 0)
{
for (local i = 0; i < I_SIZE; i++)
appendage.sq_var.push_vector(0);
appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
local beforeMaxCnt = appendage.sq_var.get_vector(I_MAX_COUNT);
appendage.sq_var.set_vector(I_MAX_COUNT, maxCnt);
if (appendage.sq_var.get_vector(I_REMAIN_COUNT) > appendage.sq_var.get_vector(I_MAX_COUNT) || sq_GetCurrentModuleType() == MODULE_TYPE_ROOM_LIST)
{
// 陴擎 醱瞪高桧 裟蝶纂尔棻 觼棻贼 裟蝶纂 虏踯虏 醱瞪卫霾栖棻.
appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
else if (beforeMaxCnt > 0 && beforeMaxCnt != maxCnt)
{
setCreatorSkillStateSkillIndex(obj, -1);
onAllChargeCreatorMageGauge(obj);
}
// 0. 棻 瓣表韩阳梱虽 勘葬朝 卫除 (ms)
local chargeTime = sq_GetIntData(obj, attributeSkill, 0);
appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime);
local chargeMode = appendage.sq_var.get_vector(l_CHARGE_ON);
if (chargeMode)
{
local remainCnt = appendage.sq_var.get_vector(I_REMAIN_COUNT);
appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, remainCnt);
local time = appendage.sq_var.get_vector(I_CURRENT_CHARGE_TIME);
print(" chargeMode:" + chargeMode);
print(" delayTime:" + time);
if ((chargeTime - time) > 0)
appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime - time);
}
else
{
appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, 0);
appendage.sq_var.set_vector(I_CURRENT_CHARGE_TIME, 0);
//appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
}
}
}
else if (skill_index == SKILL_WINDPRESS || skill_index == SKILL_WINDSTORM)
{
// 孺萄 楼撩
if (skill_level > 0)
{
local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false,
"Character/CreatorMage/ap_creatormage_wind.nut", true);
if (appendage)
{
local attributeSkill = SKILL_CREATORWIND;
local level = sq_GetSkillLevel(obj, attributeSkill);
// 0.裟蝶 啪桧虽 热纂
local maxCnt = sq_GetLevelData(obj, attributeSkill, 0, level);
if (appendage.sq_var.size_vector() == 0)
{
for (local i = 0; i < I_SIZE; i++)
appendage.sq_var.push_vector(0);
appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
local beforeMaxCnt = appendage.sq_var.get_vector(I_MAX_COUNT);
appendage.sq_var.set_vector(I_MAX_COUNT, maxCnt);
if (appendage.sq_var.get_vector(I_REMAIN_COUNT) > appendage.sq_var.get_vector(I_MAX_COUNT) || sq_GetCurrentModuleType() == MODULE_TYPE_ROOM_LIST)
{
// 陴擎 醱瞪高桧 裟蝶纂尔棻 觼棻贼 裟蝶纂 虏踯虏 醱瞪卫霾栖棻.
appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
else if (beforeMaxCnt > 0 && beforeMaxCnt != maxCnt)
{
setCreatorSkillStateSkillIndex(obj, -1);
onAllChargeCreatorMageGauge(obj);
}
// 0. 棻 瓣表韩阳梱虽 勘葬朝 卫除 (ms)
local chargeTime = sq_GetIntData(obj, attributeSkill, 0);
appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime);
local chargeMode = appendage.sq_var.get_vector(l_CHARGE_ON);
if (chargeMode)
{
local remainCnt = appendage.sq_var.get_vector(I_REMAIN_COUNT);
appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, remainCnt);
local time = appendage.sq_var.get_vector(I_CURRENT_CHARGE_TIME);
print(" chargeMode:" + chargeMode);
print(" delayTime:" + time);
if ((chargeTime - time) > 0)
appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime - time);
}
else
{
appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, 0);
appendage.sq_var.set_vector(I_CURRENT_CHARGE_TIME, 0);
//appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
}
}
}
}
return true;
}
function onUseSkillPassiveSkill_CreatorMage(obj,skillIndex, skillLevel)
{
if(!obj)
return;
}