Sqr/passiveobject/character/priest/po_pendemoniumexdevil.nut

87 lines
2.3 KiB
Plaintext

PEND_EX_PO_IS_MOVING <- 0;
PEND_EX_PO_POS_X <- 1;
PEND_EX_PO_SPEED <- 2;
PEND_EX_MOVE_MAX <- 3;
function setCustomData_po_PandemoniumEx(obj,reciveData)
{
local scale = reciveData.readWord();
local speed = reciveData.readWord();
local maxTime = reciveData.readWord();
local maxDistance = reciveData.readWord();
local dmg = reciveData.readDword();
local posX = obj.getXPos();
local pAttack = sq_GetCurrentAttackInfo(obj);
sq_SetCurrentAttackBonusRate(pAttack, dmg);
//scale 暧 彰嫔朝 0~4 0桧贼 蒙擎 饵桧锷 斜桧谖缚 赎饵桧锷
local ani = obj.getCurrentAnimation();
local addAni = null;
if(scale == 0) {
obj.setCurrentAnimation(obj.getCustomAnimation(1));
ani = obj.getCurrentAnimation();
addAni = obj.getCustomAnimation(2);
}
else {
addAni = obj.getCustomAnimation(0);
}
if(ani && addAni)
ani.addLayerAnimation(2,addAni,false);
if(ani)
ani.setFrameDelay(4,maxTime,true);
obj.sq_var.setBool(PEND_EX_PO_IS_MOVING,false);
obj.sq_var.setInt(PEND_EX_PO_POS_X, posX);
obj.sq_var.setInt(PEND_EX_PO_SPEED, speed);
obj.sq_var.setInt(PEND_EX_MOVE_MAX, maxDistance);
}
function procAppend_po_PandemoniumEx(obj)
{
if(obj.sq_var.getBool(PEND_EX_PO_IS_MOVING))
{
local currentTime = obj.sq_var.get_ct_vector(0);
local posX = obj.getXPos();
local posY = obj.getYPos();
local posZ = obj.getZPos();
local speed = obj.sq_var.getInt(PEND_EX_PO_SPEED);
local maxDistanceX = obj.sq_var.getInt(PEND_EX_MOVE_MAX);
local startPosX = obj.sq_var.getInt(PEND_EX_PO_POS_X);
local distanceX = sq_GetUniformVelocity(0, speed, currentTime.Get(), maxDistanceX);
posX = sq_GetDistancePos(startPosX, obj.getDirection(), distanceX);
obj.setCurrentPos(posX, posY, posZ);
}
}
function onKeyFrameFlag_po_PandemoniumEx(obj,flagIndex)
{
if(flagIndex == 0) {
//if(obj.sq_isMyControlObject()) // 霞翕,廓翻 桧??朝 釭缣啪虏 尔樯棻.
// obj.sq_setShake(obj,3,150);
obj.sq_var.push_ct_vector();
local currentTime = obj.sq_var.get_ct_vector(0);
currentTime.Start(9999999,0);
obj.sq_var.setBool(PEND_EX_PO_IS_MOVING,true);
//sq_SendDestroyPacketPassiveObject(obj);
}
return true;
}
function onEndCurrentAni_po_PandemoniumEx(obj)
{
sq_SendDestroyPacketPassiveObject(obj);
}