Sqr/character/atmage/pushout/ap_pushout.nut

75 lines
1.8 KiB
Plaintext

function sq_AddFunctionName(appendage)
{
appendage.sq_AddFunctionName("proc", "proc_appendage_PushOut")
appendage.sq_AddFunctionName("onStart", "onStart_appendage_PushOut")
appendage.sq_AddFunctionName("onEnd", "onEnd_appendage_PushOut")
}
function sq_AddEffect(appendage)
{
}
function proc_appendage_PushOut(appendage)
{
if(!appendage || !appendage.isValid()) {
return;
}
local parentObj = appendage.getParent();
local sourceObj = appendage.getSource();
if(!sourceObj || !parentObj) {
appendage.setValid(false);
return;
}
if (parentObj.getState() == STATE_HOLD)
{
if (parentObj.getState() == STATE_HOLD && !sq_IsInCategory(parentObj,CATEGORY_ETC_FIXTURE))
{
// 虽姜胀 寞?渠煎 鬼薯 瞪?
parentObj.setCurrentDirection(sq_GetOppositeDirection(sourceObj.getDirection()));
}
}
else
{
// ?萄卫郦晦
if (parentObj.isMyControlObject() && parentObj.getState() != STATE_DIE && !parentObj.isDead())
{
sq_IntVectorClear(sq_GetGlobalIntVector());
sq_IntVectorPush(sq_GetGlobalIntVector(),0);
sq_IntVectorPush(sq_GetGlobalIntVector(),0);
sq_AddSetStatePacketActiveObject(parentObj,STATE_HOLD, sq_GetGlobalIntVector(), STATE_PRIORITY_FORCE);
}
}
}
function onEnd_appendage_PushOut(appendage)
{
if(!appendage) {
return;
}
local parentObj = appendage.getParent();
if(!parentObj) {
appendage.setValid(false);
return;
}
if (parentObj.getState() == STATE_HOLD) {
appendage.setValid(false);
parentObj.sendStateOnlyPacket(STATE_STAND);
}
//local ao = sq_GetCNRDObjectToActiveObject(parentObj);
//if(ao && sq_IsMyControlObject(ao) && !ao.isMovablePos(ao.getXPos(),ao.getYPos())) {
//sq_SimpleMoveToNearMovablePos(ao,100); // 桧翕碳陛 虽羲缣 毡棻贼 桧翕陛栋虽羲戏煎 桧翕
//}
}