Sqr/character/atmage/iceman/ap_aticemanmagiccircle.nut

248 lines
5.7 KiB
Plaintext
Raw 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 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;
}