DNF/sqr/character/atmage/iceroad/iceroad.nut

351 lines
8.7 KiB
Plaintext
Raw Normal View History

2024-03-30 00:19:16 +08:00
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 怃粽蝶才桧? 蒙机
}
}