Sqr/character/atmage/darknessmantle/darknessmantle.nut

347 lines
10 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

SUB_STATE_DARKNESSMANTLE_0 <- 0
SUB_STATE_DARKNESSMANTLE_1 <- 1
SUB_STATE_DARKNESSMANTLE_2 <- 2
SUB_STATE_DARKNESSMANTLE_3 <- 3
SUB_STATE_DARKNESSMANTLE_4 <- 4
SUB_STATE_DARKNESSMANTLE_CASTING <- 5
function checkExecutableSkill_DarknessMantle(obj)
{
if(!obj) return false;
local b_useskill = obj.sq_IsUseSkill(SKILL_DARKNESSMANTLE);
if(b_useskill)
{
obj.sq_IntVectClear();
obj.sq_IntVectPush(SUB_STATE_DARKNESSMANTLE_CASTING); // substate撮?
obj.sq_AddSetStatePacket(STATE_DARKNESSMANTLE, STATE_PRIORITY_IGNORE_FORCE, true);
return true;
}
return false;
}
function checkCommandEnable_DarknessMantle(obj)
{
if(!obj) return false;
local state = obj.sq_GetState();
if(state == STATE_ATTACK)
{
// 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20]
return obj.sq_IsCommandEnable(SKILL_DARKNESSMANTLE); // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] obj.sq_IsCommandEnable(SKILL_BROKENARROW);
}
return true;
}
function onSetState_DarknessMantle(obj, state, datas, isResetTimer)
{
if(!obj) return;
local substate = obj.sq_GetVectorData(datas, 0);
obj.setSkillSubState(substate);
obj.sq_StopMove();
local posX = obj.getXPos();
local posY = obj.getYPos();
local posZ = obj.getZPos();
obj.getVar().clear_vector();
obj.getVar().push_vector(0);
obj.getVar().push_vector(0);
obj.getVar("flag").clear_vector();
obj.getVar("flag").push_vector(0);
obj.getVar("flag").push_vector(0);
if(substate == SUB_STATE_DARKNESSMANTLE_CASTING)
{
obj.sq_SetCurrentAnimation(CUSTOM_ANI_DARKNESSMANTLE_CASTING);
local skillLevel = sq_GetSkillLevel(obj, SKILL_DARKNESSMANTLE);
// 议蝶? 楼紫蒂 评塭陛紫烟 扑姜
// 议蝶? 楼紫陛 渗唳肾贼, 缣栖诡桧暮 楼紫紫 渗唳 腌栖棻.
// 议蝶? 啪桧虽紫 ?卫蒂 ?鄹栖棻.
local castTime = sq_GetCastTime(obj, SKILL_DARKNESSMANTLE, skillLevel);
local animation = sq_GetCurrentAnimation(obj);
local startTime = sq_GetFrameStartTime(animation, 16);
local speedRate = startTime.tofloat() / castTime.tofloat();
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_CAST_SPEED, SPEED_TYPE_CAST_SPEED,
SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, speedRate, speedRate);
sq_StartDrawCastGauge(obj, startTime, true);
addElementalChain_ATMage(obj, ENUM_ELEMENT_DARK);
}
else if(substate == SUB_STATE_DARKNESSMANTLE_0)
{
obj.sq_PlaySound("MW_DMANTLE_READY");
obj.sq_SetCurrentAnimation(CUSTOM_ANI_DARKNESSMANTLE);
}
else if(substate == SUB_STATE_DARKNESSMANTLE_1) {
// SUB_STATE_DARKNESSMANTLE_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_2) {
// SUB_STATE_DARKNESSMANTLE_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_3) {
// SUB_STATE_DARKNESSMANTLE_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_4) {
// SUB_STATE_DARKNESSMANTLE_4 怃粽蝶才桧? 蒙机
}
}
function prepareDraw_DarknessMantle(obj)
{
if(!obj) return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_DARKNESSMANTLE_0) {
// SUB_STATE_DARKNESSMANTLE_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_1) {
// SUB_STATE_DARKNESSMANTLE_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_2) {
// SUB_STATE_DARKNESSMANTLE_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_3) {
// SUB_STATE_DARKNESSMANTLE_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_4) {
// SUB_STATE_DARKNESSMANTLE_4 怃粽蝶才桧? 蒙机
}
}
function onProc_DarknessMantle(obj)
{
if(!obj) return;
local substate = obj.getSkillSubState();
local pAni = obj.sq_GetCurrentAni();
local frmIndex = obj.sq_GetCurrentFrameIndex(pAni);
local currentT = sq_GetCurrentTime(pAni);
if(substate == SUB_STATE_DARKNESSMANTLE_0) {
// SUB_STATE_DARKNESSMANTLE_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_1) {
// SUB_STATE_DARKNESSMANTLE_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_2) {
// SUB_STATE_DARKNESSMANTLE_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_3) {
// SUB_STATE_DARKNESSMANTLE_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_4) {
// SUB_STATE_DARKNESSMANTLE_4 怃粽蝶才桧? 蒙机
}
}
function onProcCon_DarknessMantle(obj)
{
if(!obj) return;
local substate = obj.getSkillSubState();
local pAni = obj.sq_GetCurrentAni();
local frmIndex = obj.sq_GetCurrentFrameIndex(pAni);
local currentT = sq_GetCurrentTime(pAni);
if(substate == SUB_STATE_DARKNESSMANTLE_0) {
if(!obj.getVar("flag").get_vector(0))
{
if(frmIndex >= 4)
{
local skillLevel = obj.sq_GetSkillLevel(SKILL_DARKNESSMANTLE);
local suckVel = obj.sq_GetIntData(SKILL_DARKNESSMANTLE, 0); // 0. 庄横渡晦朝 ?
// 0.匐擎晦遴 彰嫔 (<-100%->) 1.裔?奢问溘(%) 2.菩?溯涟 3.菩?虽楼溯涟
local darkCircleRate = obj.sq_GetLevelData(SKILL_DARKNESSMANTLE, SKL_LVL_COLUMN_IDX_0, skillLevel);
local expAtkRate = obj.sq_GetBonusRateWithPassive(SKILL_DARKNESSMANTLE, STATE_DARKNESSMANTLE, SKL_LVL_COLUMN_IDX_1, 1.0); // 1.裔?奢问溘(%)
local slowLevel = obj.sq_GetLevelData(SKILL_DARKNESSMANTLE, SKL_LVL_COLUMN_IDX_2, skillLevel);
local slowTime = obj.sq_GetLevelData(SKILL_DARKNESSMANTLE, SKL_LVL_COLUMN_IDX_3, skillLevel);
// 觼煎栖赝 嬴桧蛊 跷陛蒙机
// 觼煎栖赝嬴桧蛊 跷陛 晦栋 横菸怃赝 ?渠徽 (100%)
local sizeRate = obj.sq_GetIntData(SKILL_DARKNESSMANTLE, 0); // 0. 庄横渡晦朝 ?
if(obj.isMyControlObject())
{
local fireOffsetX = 200;
sq_BinaryStartWrite();
sq_BinaryWriteDword(suckVel); //
sq_BinaryWriteDword(darkCircleRate); //
sq_BinaryWriteDword(expAtkRate); //
sq_BinaryWriteDword(slowLevel); //
sq_BinaryWriteDword(slowTime); //
// 觼煎栖赝 嬴桧蛊 跷陛蒙机
// 觼煎栖赝嬴桧蛊 跷陛 晦栋 横菸怃赝 ?渠徽 (100%)
local expSizeRate = obj.sq_GetIntData(SKILL_DARKNESSMANTLE, 1); // 1. 觼煎栖赝嬴桧蛊 跷陛 晦栋 横菸怃赝 ?渠徽 (100%~)
sq_BinaryWriteDword(expSizeRate); //
obj.sq_SendCreatePassiveObjectPacket(24252, 0, fireOffsetX, 1, 0);
}
obj.getVar("flag").set_vector(0, 1);
}
}
}
else if(substate == SUB_STATE_DARKNESSMANTLE_1) {
// SUB_STATE_DARKNESSMANTLE_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_2) {
// SUB_STATE_DARKNESSMANTLE_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_3) {
// SUB_STATE_DARKNESSMANTLE_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_4) {
// SUB_STATE_DARKNESSMANTLE_4 怃粽蝶才桧? 蒙机
}
}
function onEndCurrentAni_DarknessMantle(obj)
{
if(!obj) return;
if(!obj.isMyControlObject()) {
return;
}
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_DARKNESSMANTLE_CASTING)
{
obj.sq_IntVectClear();
obj.sq_IntVectPush(SUB_STATE_DARKNESSMANTLE_0); // substate撮?
obj.sq_AddSetStatePacket(STATE_DARKNESSMANTLE, STATE_PRIORITY_IGNORE_FORCE, true);
}
else if(substate == SUB_STATE_DARKNESSMANTLE_0)
{
obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
}
else if(substate == SUB_STATE_DARKNESSMANTLE_1) {
// SUB_STATE_DARKNESSMANTLE_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_2) {
// SUB_STATE_DARKNESSMANTLE_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_3) {
// SUB_STATE_DARKNESSMANTLE_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_4) {
// SUB_STATE_DARKNESSMANTLE_4 怃粽蝶才桧? 蒙机
}
}
function onKeyFrameFlag_DarknessMantle(obj, flagIndex)
{
if(!obj) return false;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_DARKNESSMANTLE_0) {
// SUB_STATE_DARKNESSMANTLE_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_1) {
// SUB_STATE_DARKNESSMANTLE_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_2) {
// SUB_STATE_DARKNESSMANTLE_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_3) {
// SUB_STATE_DARKNESSMANTLE_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_4) {
// SUB_STATE_DARKNESSMANTLE_4 怃粽蝶才桧? 蒙机
}
return false;
}
function onEndState_DarknessMantle(obj, new_state)
{
if(!obj) return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_DARKNESSMANTLE_0) {
// SUB_STATE_DARKNESSMANTLE_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_1) {
// SUB_STATE_DARKNESSMANTLE_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_2) {
// SUB_STATE_DARKNESSMANTLE_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_3) {
// SUB_STATE_DARKNESSMANTLE_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_4) {
// SUB_STATE_DARKNESSMANTLE_4 怃粽蝶才桧? 蒙机
}
// 蝶才桧? 谦猿 ?擎 镞模 肾历棻贼 议蝶? 啪桧虽 桡据
sq_EndDrawCastGauge(obj);
}
function onAfterSetState_DarknessMantle(obj, state, datas, isResetTimer)
{
if(!obj) return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_DARKNESSMANTLE_0) {
// SUB_STATE_DARKNESSMANTLE_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_1) {
// SUB_STATE_DARKNESSMANTLE_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_2) {
// SUB_STATE_DARKNESSMANTLE_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_3) {
// SUB_STATE_DARKNESSMANTLE_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_DARKNESSMANTLE_4) {
// SUB_STATE_DARKNESSMANTLE_4 怃粽蝶才桧? 蒙机
}
}