99 lines
2.9 KiB
Plaintext
99 lines
2.9 KiB
Plaintext
VAR_PUSH_OUT_EXPLOSION_OLD_STATE <- 0
|
||
|
||
function sq_AddFunctionName(appendage)
|
||
{
|
||
appendage.sq_AddFunctionName("proc", "proc_appendage_PushOutExplosion")
|
||
appendage.sq_AddFunctionName("onStart", "onStart_appendage_PushOutExplosion")
|
||
appendage.sq_AddFunctionName("onEnd", "onEnd_appendage_PushOutExplosion")
|
||
}
|
||
|
||
function onStart_appendage_PushOutExplosion(appendage)
|
||
{
|
||
if(!appendage) {
|
||
return;
|
||
}
|
||
|
||
local parentObj = appendage.getParent();
|
||
|
||
if(!parentObj) {
|
||
appendage.setValid(false);
|
||
return;
|
||
}
|
||
|
||
local var = appendage.getVar();
|
||
var.setInt(VAR_PUSH_OUT_EXPLOSION_OLD_STATE,parentObj.getState());
|
||
|
||
}
|
||
|
||
function proc_appendage_PushOutExplosion(appendage)
|
||
{
|
||
if(!appendage && !appendage.isValid()) {
|
||
return;
|
||
}
|
||
|
||
local parentObj = appendage.getParent();
|
||
local sourceObj = appendage.getSource();
|
||
|
||
sourceObj = sq_GetCNRDObjectToSQRCharacter(sourceObj);
|
||
if(!sourceObj || !parentObj) {
|
||
appendage.setValid(false);
|
||
return;
|
||
}
|
||
|
||
local var = appendage.getVar();
|
||
local oldState = var.getInt(VAR_PUSH_OUT_EXPLOSION_OLD_STATE);
|
||
var.setInt(VAR_PUSH_OUT_EXPLOSION_OLD_STATE,parentObj.getState());
|
||
|
||
if(oldState == STATE_STAND && parentObj.getState() != STATE_DOWN){
|
||
appendage.setValid(false);
|
||
return;
|
||
}
|
||
|
||
if(parentObj.getState() == STATE_DOWN && parentObj.getDownState() >=1 || ( oldState == STATE_DOWN && parentObj.getState() != STATE_DOWN) )
|
||
{
|
||
if(sourceObj.isMyControlObject())
|
||
{
|
||
local level = sq_GetSkillLevel(sourceObj, SKILL_PUSH_OUT);
|
||
|
||
// 醱问? 舆渗等嘐虽
|
||
local attackPower = sourceObj.sq_GetPowerWithPassive(SKILL_PUSH_OUT, STATE_PUSH_OUT, 2, -1, 1.0);
|
||
local sizeRate = sq_GetIntData(sourceObj, SKILL_PUSH_OUT, 0);
|
||
print(sizeRate);
|
||
|
||
|
||
// 模蝶 : CNEarthBreak谛 翕橾? 匙击 饵辨?
|
||
sq_BinaryStartWrite();
|
||
// 0:(BOOL) ?筒 嵘鼠 0:絮筒
|
||
sq_BinaryWriteBool(0);
|
||
|
||
// 1:(float) 奢问溘
|
||
sq_BinaryWriteFloat(attackPower.tofloat());
|
||
|
||
// 2:(WORD) 饵桧锷
|
||
sq_BinaryWriteWord(sizeRate);
|
||
|
||
// 3:(WORD) 嗥办朝 ?
|
||
sq_BinaryWriteWord(200);
|
||
|
||
// 4:(bool) ?潍 蝶鉴 嵘鼠
|
||
local isExSkill = false;
|
||
isExSkill = sq_GetSkillLevel(sourceObj, SKILL_PUSH_OUT_EX) > 0;
|
||
sq_BinaryWriteBool(isExSkill);
|
||
|
||
// 5:(DWORD) parent id : ?潍 蝶鉴橾 阳朝 濠褐紫 醱问?蒂 蜃朝棻.
|
||
if(!isExSkill)
|
||
sq_BinaryWriteDword(sq_GetObjectId(parentObj));
|
||
|
||
|
||
local x = sourceObj.getXPos() > parentObj.getXPos() ? sourceObj.getXPos() - parentObj.getXPos() : parentObj.getXPos() - sourceObj.getXPos(); // 议葛搅谛 跨蝶搅谛暧 剪葬离
|
||
local y = parentObj.getYPos() - sourceObj.getYPos();
|
||
|
||
if(sourceObj.getDirection() == parentObj.getDirection())
|
||
x = -x;
|
||
|
||
sq_SendCreatePassiveObjectPacket(sourceObj, 21035, 0, x, y, 0, ENUM_DIRECTION_NEUTRAL);
|
||
}
|
||
appendage.setValid(false);
|
||
}
|
||
}
|
||
|