Sqr/character/atmage/iceman/ap_aticemanmagiccircle.nut

248 lines
5.7 KiB
Plaintext
Raw Normal View History

2024-03-18 21:37:40 +08:00
function sq_AddFunctionName(appendage)
{
appendage.sq_AddFunctionName("proc", "proc_appendage_grab_icemagic")
appendage.sq_AddFunctionName("prepareDraw", "prepareDraw_appendage_grab_icemagic")
appendage.sq_AddFunctionName("onStart", "onStart_appendage_grab_icemagic")
appendage.sq_AddFunctionName("onEnd", "onEnd_appendage_grab_icemagic")
appendage.sq_AddFunctionName("isEnd", "isEnd_appendage_grab_icemagic")
appendage.sq_AddFunctionName("onDestroyObject", "onDestroyObject_appendage_grab_icemagic")
}
function sq_AddEffect(appendage)
{
}
function proc_appendage_grab_icemagic(appendage)
{
if(!appendage)
{
return;
}
if(!appendage.isValid())
return;
local obj = appendage.getParent();
if (obj.getState() != STATE_HOLD && obj.getState() != STATE_DIE)
{
// 湍螳虽朝 渠鼻桧 HOLD陛 嬴栖贼
if (obj.isMyControlObject())
{
// HOLD煎 瞪?
local pIntVec = sq_GetGlobalIntVector();
sq_IntVectorClear(pIntVec);
sq_IntVectorPush(pIntVec, Z_ACCEL_TYPE_CONST);
obj.addSetStatePacket(STATE_HOLD, pIntVec, STATE_PRIORITY_FORCE, false, "");
obj.flushSetStatePacket();
}
}
}
function onDestroyObject_appendage_grab_icemagic(appendage, destroyObj)
{
if(!appendage)
return true;
if (destroyObj == appendage.sq_GetSourceChrTarget())
{
appendage.setValid(false);
}
return true;
}
function onStart_appendage_grab_icemagic(appendage)
{
if(!appendage)
{
return;
}
local obj = appendage.getParent();
if(!obj)
{
return;
}
appendage.getVar().clear_vector();
appendage.getVar().push_vector(0); // 0
appendage.getVar().push_vector(0); // 1
appendage.getVar().push_vector(0); // 2
appendage.getVar().push_vector(0); // 3
appendage.getVar().push_vector(0); // 4
appendage.getVar().push_vector(0); // 5
sq_SetCustomDamageType(obj, true, 1); // DAMAGETYPE_SUPERARMOR = 1
sq_SetGrabable(obj, false);
if (sq_IsValidActiveStatus(obj, ACTIVESTATUS_STUN))
{
// STUN 勘溥毡戏贼 ?薯卫霁. STATE_STAND煎 给嬴陛虽 强啪 disable卫霁
obj.setEnableChangeState(false);
sq_IsSetActiveStatus(obj, ACTIVESTATUS_STUN, 0.0);
obj.setEnableChangeState(true);
}
print("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB");
}
function prepareDraw_appendage_grab_icemagic(appendage)
{
if(!appendage) {
return;
}
//if (attacker_->getState() != CNFighter::STATE_SUPLEX)
// return;
if(!appendage.isValid())
return;
local attacker = appendage.sq_GetSourceChrTarget();
if(!attacker)
{
appendage.setValid(false);
return;
}
if (attacker.getState() != STATE_ICEMAN)
{
appendage.setValid(false);
return;
}
if(attacker.getState() == STATE_ICEMAN && attacker.getSkillSubState() == SUB_STATE_ICEMAN_4)
{
local frmIndex = sq_GetCurrentFrameIndex(attacker);
if(frmIndex >= 6)
{
appendage.setValid(false);
return;
}
}
//print(" attacker.getSkillSubState():" + attacker.getSkillSubState());
local obj = appendage.getParent();
if(attacker.getState() == STATE_ICEMAN && attacker.getSkillSubState() == SUB_STATE_ICEMAN_3) // 陪颤翕蒙
{
//appendage.getVar().get_vector(0)
local isHit = false;
local frmIndex = sq_GetCurrentFrameIndex(attacker);
if(frmIndex >= 1 && !appendage.getVar().get_vector(0))
{
isHit = true;
appendage.getVar().set_vector(0, 1);
}
if(frmIndex >= 4 && !appendage.getVar().get_vector(1))
{
isHit = true;
appendage.getVar().set_vector(1, 1);
}
if(frmIndex >= 8 && !appendage.getVar().get_vector(2))
{
isHit = true;
appendage.getVar().set_vector(2, 1);
}
if(frmIndex >= 11 && !appendage.getVar().get_vector(3))
{
isHit = true;
appendage.getVar().set_vector(3, 1);
}
if(frmIndex >= 16 && !appendage.getVar().get_vector(4))
{
isHit = true;
appendage.getVar().set_vector(4, 1);
}
if(isHit)
{
if(attacker.isMyControlObject())
{
print(" hit");
local h = (sq_GetObjectHeight(obj) / 2);
//sq_SendHitObjectPacket(attacker,obj,0,0,0);
}
}
}
// 桧 横?蛤虽 勘萼吃击 嫡嬴蚂棻
// 勘萼吃桧 ?营 HOLD 鼻鹧陛 嬴栖塭贼
if (obj.getState() != STATE_HOLD)
// 警蜗
return;
}
function onEnd_appendage_grab_icemagic(appendage)
{
if(!appendage)
{
return;
}
local obj = appendage.getParent();
//sq_SetCustomRotate(obj, 0.0);
sq_SetCustomDamageType(obj, false, 0); // DAMAGETYPE_NORMAL = 0
sq_SetGrabable(obj, true);
//CNSquirrelAppendage.sq_AppendAppendage(damager, pChr, SKILL_ICEMAN,
//false, "Character/ATMage/IceMan/ap_ATIceManMagicCircle.nut", true);
//CNSquirrelAppendage.sq_RemoveAppendage(obj, "Character/ATMage/IceMan/ap_ATIceManMagicCircle.nut");
if(obj.isMyControlObject())
{
//sq_AddSetStatePacketActiveObject(obj, STATE_STAND, null, STATE_PRIORITY_USER);
//obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
//local pIntVec = sq_GetGlobalIntVector();
//sq_IntVectorClear(pIntVec);
//sq_IntVectorPush(pIntVec, obj.getDirection());
//sq_IntVectorPush(pIntVec, 0);
//sq_IntVectorPush(pIntVec, DOWN_PARAM_TYPE_FORCE);
//sq_IntVectorPush(pIntVec, 0);
//sq_IntVectorPush(pIntVec, 10);
//obj.addSetStatePacket(STATE_DOWN, pIntVec, STATE_PRIORITY_FORCE, false, "");
obj.addSetStatePacket(STATE_STAND, null, STATE_PRIORITY_FORCE, false, "");
obj.flushSetStatePacket();
print("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
}
}
// 横渐螳 陕撩 渗褐暧 部睡碟
function isEnd_appendage_grab_icemagic(appendage)
{
if(!appendage) return false;
local T = appendage.getTimer().Get();
return false;
}