Sqr/character/atmage/iceroad/iceroad.nut

351 lines
8.7 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.

SUB_STATE_ICEROAD_0 <- 0
SUB_STATE_ICEROAD_1 <- 1
SUB_STATE_ICEROAD_2 <- 2
SUB_STATE_ICEROAD_3 <- 3
SUB_STATE_ICEROAD_4 <- 4
SUB_STATE_ICEROAD_CASTING <- 5
SKL_LV_0 <- 0 // 卫除渡 mp 模赅榆
SKL_LV_1 <- 1 // 虽楼卫除
SKL_LV_2 <- 2 // 桧楼 马模纂
SKL_LV_3 <- 3 // 桧楼 ?徽
function checkExecutableSkill_IceRoad(obj)
{
if(!obj) return false;
local skill = sq_GetSkill(obj, SKILL_ICEROAD);
if(!skill) return false;
local appendage = obj.GetSquirrelAppendage("Character/ATMage/IceRoad/ap_ATMage_IceRoad.nut");
if(appendage) {
local isvalid = appendage.isValid();
if(isvalid) {
sq_SendChangeSkillEffectPacket(obj, SKILL_ICEROAD);
//skill.resetCurrentCoolTime();
//skill.setSealActiveFunction(true);
//local skill_level = sq_GetSkillLevel(obj, SKILL_ICEROAD);
//obj.startSkillCoolTime(SKILL_ICEROAD, skill_level, -1);
//
//appendage.setValid(false);
return true;
}
}
if(skill.isInCoolTime()) return false;
local b_useskill = obj.sq_IsUseSkill(SKILL_ICEROAD);
if(b_useskill) {
obj.sq_IntVectClear();
obj.sq_IntVectPush(SUB_STATE_ICEROAD_CASTING); // substate撮?
obj.sq_AddSetStatePacket(STATE_ICEROAD, STATE_PRIORITY_IGNORE_FORCE, true);
return true;
}
return false;
}
function checkCommandEnable_IceRoad(obj)
{
if(!obj) return false;
local state = obj.sq_GetState();
if(state == STATE_ATTACK) {
// 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20]
return obj.sq_IsCommandEnable(SKILL_ICEROAD);
}
return true;
}
function onSetState_IceRoad(obj, state, datas, isResetTimer)
{
if(!obj) return;
local substate = obj.sq_GetVectorData(datas, 0);
obj.setSkillSubState(substate);
obj.sq_StopMove();
//obj.sq_SendCreatePassiveObjectPacket(24243, 0, 0, 0, 0);
obj.getVar().clear_vector();
obj.getVar().push_vector(0);
obj.getVar().push_vector(0);
if(substate == SUB_STATE_ICEROAD_CASTING) {
obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICEROAD_CASTING);
local skillLevel = sq_GetSkillLevel(obj, SKILL_ICEROAD);
local castTime = sq_GetCastTime(obj, SKILL_ICEROAD, 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);
obj.sq_PlaySound("MW_ICEROAD");
sq_StartDrawCastGauge(obj, startTime, true);
}
else if(substate == SUB_STATE_ICEROAD_0) {
//CUSTOM_ANI_ICEROAD
obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICEROAD);
}
else if(substate == SUB_STATE_ICEROAD_1) {
// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_2) {
// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_3) {
// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_4) {
// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机
}
}
function prepareDraw_IceRoad(obj)
{
if(!obj) return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_ICEROAD_0) {
// SUB_STATE_ICEROAD_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_1) {
// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_2) {
// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_3) {
// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_4) {
// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机
}
}
function onProc_IceRoad(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_ICEROAD_0) {
if(frmIndex >= 7) {
if(!obj.getVar().get_vector(0)) {
local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, SKILL_ICEROAD, false, "Character/ATMage/IceRoad/ap_ATMage_IceRoad.nut", false);
// 罹晦怃 append 蒙机
CNSquirrelAppendage.sq_Append(appendage, obj, obj);
//
if(obj.isMyControlObject()) {
local skill = sq_GetSkill(obj, SKILL_ICEROAD);
skill.setSealActiveFunction(false);
}
obj.getVar().set_vector(0, 1);
}
}
if(frmIndex >= 4) {
if(!obj.getVar().get_vector(1)) {
local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, SKILL_ICEROAD, true, "Appendage/Character/ap_atmage_effect.nut", true);
obj.getVar().set_vector(1, 1);
}
}
}
else if(substate == SUB_STATE_ICEROAD_1) {
// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_2) {
// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_3) {
// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_4) {
// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机
}
}
function onProcCon_IceRoad(obj)
{
if(!obj) return;
local substate = obj.getSkillSubState();
//obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
if(substate == SUB_STATE_ICEROAD_0) {
// SUB_STATE_ICEROAD_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_1) {
// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_2) {
// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_3) {
// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_4) {
// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机
}
}
function onEndCurrentAni_IceRoad(obj)
{
if(!obj) return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_ICEROAD_CASTING)
{
if(obj.isMyControlObject())
{
obj.sq_IntVectClear();
obj.sq_IntVectPush(SUB_STATE_ICEROAD_0); // substate撮?
obj.sq_AddSetStatePacket(STATE_ICEROAD, STATE_PRIORITY_IGNORE_FORCE, true);
}
}
else if(substate == SUB_STATE_ICEROAD_0)
{
// SUB_STATE_ICEROAD_0 怃粽蝶才桧? 蒙机
if(obj.isMyControlObject())
{
obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
}
}
else if(substate == SUB_STATE_ICEROAD_1) {
// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_2) {
// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_3) {
// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_4) {
// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机
}
}
function onKeyFrameFlag_IceRoad(obj, flagIndex)
{
if(!obj) return false;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_ICEROAD_0) {
// SUB_STATE_ICEROAD_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_1) {
// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_2) {
// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_3) {
// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_4) {
// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机
}
return false;
}
function onEndState_IceRoad(obj, new_state)
{
if(!obj) return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_ICEROAD_0) {
// SUB_STATE_ICEROAD_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_1) {
// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_2) {
// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_3) {
// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_4) {
// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机
}
// 蝶才桧? 谦猿 ?擎 镞模 肾历棻贼 议蝶? 啪桧虽 桡据
sq_EndDrawCastGauge(obj);
}
function onAfterSetState_IceRoad(obj, state, datas, isResetTimer)
{
if(!obj) return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_ICEROAD_0) {
// SUB_STATE_ICEROAD_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_1) {
// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_2) {
// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_3) {
// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_ICEROAD_4) {
// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机
}
}