Sqr/character/atmage/fireroad/fire_road.nut

176 lines
5.0 KiB
Plaintext
Raw Permalink 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.

function checkExecutableSkill_FireRoad(obj)
{
if (!obj) return false;
local isUseSkill = obj.sq_IsUseSkill(SKILL_FIRE_ROAD);
if (isUseSkill) {
obj.sq_IntVectClear();
obj.sq_IntVectPush(0); // subState掸?
obj.sq_AddSetStatePacket(STATE_FIRE_ROAD, STATE_PRIORITY_USER, true);
return true;
}
return false;
}
function checkCommandEnable_FireRoad(obj)
{
if(!obj)
return false;
local state = obj.sq_GetState();
if(state == STATE_ATTACK)
{
return obj.sq_IsCommandEnable(SKILL_FIRE_ROAD); // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] obj.sq_IsCommandEnable(SKILL_BROKENARROW);
}
return true;
}
function onEndState_FireRoad(obj, state)
{
// 蝶才桧? 谦猿 ?擎 镞模 肾历棻贼 议蝶? 啪桧虽 桡据
sq_EndDrawCastGauge(obj);
}
function onSetState_FireRoad(obj, state, datas, isResetTimer)
{
if (!obj) return;
obj.sq_StopMove();
local subState = obj.sq_GetVectorData(datas, 0); // subState
obj.sq_SetSkillSubState(obj, subState);
if (subState == 0)
{
obj.sq_SetCurrentAnimation(CUSTOM_ANI_FIRE_ROAD_CAST1);
obj.sq_PlaySound("MW_FIREROAD");
// 议蝶? 楼紫蒂 评塭陛紫烟 扑姜
// 议蝶? 楼紫陛 渗唳肾贼, 缣栖诡桧暮 楼紫紫 渗唳 腌栖棻.
// 议蝶? 啪桧虽紫 ?卫蒂 ?鄹栖棻.
local skillLevel = sq_GetSkillLevel(obj, SKILL_FIRE_ROAD);
local castTime = sq_GetCastTime(obj, SKILL_FIRE_ROAD, skillLevel);
local animation = sq_GetCurrentAnimation(obj);
obj.sq_Rewind(animation);
sq_SetFrameDelayTime(animation, 0, castTime);
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_CAST_SPEED, SPEED_TYPE_CAST_SPEED,
SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0);
sq_StartDrawCastGauge(obj, castTime, true);
addElementalChain_ATMage(obj, ENUM_ELEMENT_FIRE);
}
else if (subState == 1)
{
obj.sq_SetCurrentAnimation(CUSTOM_ANI_FIRE_ROAD_CAST2);
}
}
// prepareDraw
function prepareDraw_FireRoad(obj)
{
if (!obj) return;
}
// onEndCurrentAni
function onEndCurrentAni_FireRoad(obj)
{
if (!obj) return;
if (obj.sq_GetSkillSubState(obj) == 0) {
obj.sq_IntVectClear();
obj.sq_IntVectPush(1); // subState掸?
obj.sq_AddSetStatePacket(STATE_FIRE_ROAD, STATE_PRIORITY_USER, true);
}
else if (obj.sq_GetSkillSubState(obj) == 1) {
obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
}
}
// onKeyFrameFlag
function onKeyFrameFlag_FireRoad(obj, flagIndex)
{
if (!obj) return true;
local skillSubState = obj.sq_GetSkillSubState(obj);
if (skillSubState == 0) {
local skillLevel = obj.sq_GetSkillLevel(SKILL_FIRE_ROAD);
local pauseTime = obj.sq_GetIntData(SKILL_FIRE_ROAD, 0); // 螃粽薛? 当撩除问(卫除)
local xPos = obj.sq_GetIntData(SKILL_FIRE_ROAD, 1); // 螃粽薛? 当撩嫔纂(议葛搅煎 睡搅 赁?捻 云横螳 当撩肾朝虽?)
local xOffset = obj.sq_GetIntData(SKILL_FIRE_ROAD, 2); // 螃粽薛? 当撩除问(螃粽薛?除暧 当撩 除问)
local maxHit = obj.sq_GetIntData(SKILL_FIRE_ROAD, 3); // 螃粽薛?渡 譆渠 ??热
local sizeRate = obj.sq_GetIntData(SKILL_FIRE_ROAD, 5); // 螃粽薛?暧 ?渠徽(%)
// 螃粽薛? 当撩 偎热
local createCount = obj.sq_GetLevelData(SKILL_FIRE_ROAD, 0, skillLevel);
local damage1 = obj.sq_GetBonusRateWithPassive(SKILL_FIRE_ROAD, STATE_FIRE_ROAD, 1, 1.0); // 奢问溘1(%)
local damage2 = obj.sq_GetBonusRateWithPassive(SKILL_FIRE_ROAD, STATE_FIRE_ROAD, 2, 1.0); // 奢问溘2(%)
printc("createCount " + createCount);
// ?撩 蝶鉴击 寡锡棻贼 罹楝还桧(撮煎) 当撩胀棻.
local rowNumber = obj.sq_GetIntData(SKILL_FIRE_ROAD, 4);
local yAxisDistance = 55;
for (local i = 0; i < createCount; i++)
{
if (obj.isMyControlObject())
{
obj.sq_StartWrite();
obj.sq_WriteWord(pauseTime * i);// 当撩除问(卫除)
obj.sq_WriteDword(damage1); // 等嘐虽1
obj.sq_WriteDword(damage2); // 等嘐虽2
obj.sq_WriteByte(maxHit); // 螃粽薛?渡 譆渠 ??热
obj.sq_WriteByte(i); // ?营 当撩? 廓箪. (饵遴萄 轿溘辨)
obj.sq_WriteWord(sizeRate); // 螃粽薛?暧 ?渠徽(%)
printc("number " +i);
// 24212, 24213击 廓陞嬴陛贼怃 当撩?棻.
local passiveObjectIndex = 24212 + i % 2;
obj.sq_SendCreatePassiveObjectPacket(passiveObjectIndex, 0, xPos + xOffset * i, 1, 0);
// ?撩 蝶鉴击 寡锡棻贼 罹楝还桧(撮煎) 当撩胀棻.
if (rowNumber > 0)
{
for (local j = 0; j < rowNumber; j+=1)
{
local row = (j + 2) / 2;
row = row.tointeger();
if ((j % 2) == 0)
{ // 嫔薹
local y = row * yAxisDistance;
obj.sq_SendCreatePassiveObjectPacket(passiveObjectIndex, 0, xPos + xOffset * i, -y, 0);
}
else
{ // 嬴楚薹
local y = row * yAxisDistance;
obj.sq_SendCreatePassiveObjectPacket(passiveObjectIndex, 0, xPos + xOffset * i, y, 0);
}
}
}
}
}
}
return true;
}