157 lines
4.6 KiB
Plaintext
157 lines
4.6 KiB
Plaintext
// 横?蛤虽虏击 称桧坚 鼻撮晦栋擎 横?蛤虽缣怃 棻 ?棻.
|
||
|
||
|
||
function checkExecutableSkill_LightningWall(obj)
|
||
{
|
||
if(!obj) return false;
|
||
|
||
local b_useskill = obj.sq_IsUseSkill(SKILL_LIGHTNING_WALL);
|
||
if(b_useskill) {
|
||
obj.sq_AddSetStatePacket(STATE_LIGHTNING_WALL , STATE_PRIORITY_USER, false);
|
||
return true;
|
||
}
|
||
return false;
|
||
|
||
}
|
||
|
||
function checkCommandEnable_LightningWall(obj)
|
||
{
|
||
if(!obj)
|
||
return false;
|
||
|
||
local state = obj.sq_GetState();
|
||
|
||
if(state == STATE_ATTACK) {
|
||
// 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20]
|
||
return obj.sq_IsCommandEnable(SKILL_LIGHTNING_WALL);
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
function onEndState_LightningWall(obj, newState)
|
||
{
|
||
if(!obj)
|
||
return;
|
||
|
||
if(newState != STATE_LIGHTNING_WALL)
|
||
setLightningWallState(obj, PO_LIGHTNING_WALL_DESTROY);
|
||
}
|
||
|
||
function onSetState_LightningWall(obj, state, datas, isResetTimer)
|
||
{
|
||
if(!obj) return;
|
||
|
||
obj.sq_StopMove();
|
||
obj.sq_SetCurrentAnimation(CUSTOM_ANI_LIGHTNING_WALL);
|
||
|
||
// 议蝶? 楼紫蒂 评塭陛紫烟 扑姜
|
||
// 议蝶? 楼紫陛 渗唳肾贼, 缣栖诡桧暮 楼紫紫 渗唳 腌栖棻.
|
||
// 议蝶? 啪桧虽紫 ?卫蒂 ?鄹栖棻.
|
||
local skillLevel = sq_GetSkillLevel(obj, SKILL_LIGHTNING_WALL);
|
||
local castTime = sq_GetCastTime(obj, SKILL_LIGHTNING_WALL, skillLevel);
|
||
local animation = sq_GetCurrentAnimation(obj);
|
||
local castAniTime = sq_GetFrameStartTime(animation, 6);
|
||
local speedRate = castAniTime.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, castAniTime, true);
|
||
|
||
local var = obj.getVar();
|
||
var.setBool(0,false);
|
||
addElementalChain_ATMage(obj, ENUM_ELEMENT_LIGHT);
|
||
}
|
||
|
||
function setLightningWallState(obj, state)
|
||
{
|
||
if(!obj || !obj.isMyControlObject())
|
||
return;
|
||
|
||
local count = obj.getMyPassiveObjectCount(24218);
|
||
|
||
for(local i =0; i<count ; ++i) {
|
||
local wall = obj.getMyPassiveObject(24218,i);
|
||
if(wall) {
|
||
local var = obj.getVar();
|
||
local isSendMove = var.getBool(0);
|
||
|
||
if(state == PO_LIGHTNING_WALL_DESTROY) // 桧嘐 桧翕酝橾隆 赅暮桧 镞模 腑棻坚 饵塭虽虽 强朝棻.
|
||
{
|
||
if(wall.getState() != PO_LIGHTNING_WALL_MOVE)
|
||
wall.sendStateOnlyPacket(PO_LIGHTNING_WALL_DESTROY);
|
||
}
|
||
else
|
||
{
|
||
wall.sendStateOnlyPacket(state);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
function onEndCurrentAni_LightningWall(obj)
|
||
{
|
||
if(!obj) return;
|
||
obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
|
||
}
|
||
|
||
function onProc_LightningWall(obj)
|
||
{
|
||
if(!obj)
|
||
return;
|
||
local var = obj.getVar();
|
||
|
||
if(obj.isMyControlObject() && var.getBool(0) == false && sq_GetCurrentFrameIndex(obj) > 20)
|
||
{
|
||
setLightningWallState(obj,PO_LIGHTNING_WALL_MOVE);
|
||
sq_flashScreen(obj, 0, 1000,500, 180, sq_RGB(0,0,0), GRAPHICEFFECT_NONE, ENUM_DRAWLAYER_BOTTOM);
|
||
|
||
var.setBool(0,true);
|
||
obj.sq_PlaySound("LIGHTWALL_SHOT");
|
||
}
|
||
}
|
||
|
||
function onKeyFrameFlag_LightningWall(obj, flagIndex)
|
||
{
|
||
if(!obj) return true;
|
||
if (flagIndex == 1) {
|
||
sq_EndDrawCastGauge(obj);
|
||
sq_EffectLayerAppendageOnlyBody(obj, sq_RGB(255,255,255), 255, 0, 0, 320);
|
||
|
||
if(obj.isMyControlObject()) {
|
||
local yByDirection = -1;
|
||
if(obj.getDirection() != ENUM_DIRECTION_RIGHT)
|
||
yByDirection = 1;
|
||
|
||
local moveDistance = sq_GetIntData(obj, SKILL_LIGHTNING_WALL, 2); //2: 桧翕 剪葬
|
||
local attackPower = obj.sq_GetBonusRateWithPassive(SKILL_LIGHTNING_WALL , STATE_LIGHTNING_WALL, 0, 1.0);
|
||
local skill_level = sq_GetSkillLevel(obj, SKILL_LIGHTNING_WALL);
|
||
local prob = sq_GetLevelData(obj, SKILL_LIGHTNING_WALL, 2, skill_level)/10.0; // 2. 马瞪 ?睦 (0.1%)
|
||
local level = sq_GetLevelData(obj, SKILL_LIGHTNING_WALL, 1, skill_level); // 1. 马瞪 溯涟
|
||
local duration = sq_GetLevelData(obj, SKILL_LIGHTNING_WALL, 4, skill_level); // 4. 虽楼卫除
|
||
local lightDamage = sq_GetLevelData(obj, SKILL_LIGHTNING_WALL, 3, skill_level); // 3. 马瞪 奢问溘
|
||
|
||
|
||
// 塭桧?棚 错 当撩
|
||
obj.sq_StartWrite();
|
||
obj.sq_WriteDword(moveDistance); // 迹瞳虽 x 谢?
|
||
obj.sq_WriteDword(attackPower);
|
||
obj.sq_WriteDword(skill_level);
|
||
obj.sq_WriteFloat(prob);
|
||
obj.sq_WriteDword(level);
|
||
obj.sq_WriteDword(duration);
|
||
obj.sq_WriteDword(lightDamage);
|
||
obj.sq_SendCreatePassiveObjectPacket(24218, 0, 50, -1, 0);
|
||
}
|
||
}
|
||
else if (flagIndex == 2) {
|
||
sq_EffectLayerAppendageOnlyBody(obj, sq_RGB(255,255,255), 255, 0, 0, 400);
|
||
}
|
||
else if (flagIndex == 3) {
|
||
// 塭桧?棚 错 桧翕
|
||
sq_SetMyShake(obj,4,300);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
|