350 lines
11 KiB
Plaintext
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;
|
|
|
|
}
|
|
|
|
|
|
|
|
|