Sqr/character/atmage/pieceofice/po_atpieceoficecore.nut

91 lines
2.2 KiB
Plaintext
Raw Normal View History

2024-03-18 21:37:40 +08:00
PIECE_OF_ICE_CORE_STATE_STAY <- 2;
PIECE_OF_ICE_CORE_STATE_DAMAGE <- 3;
PIECE_OF_ICE_CORE_STATE_END <- 4;
PIECE_OF_ICE_CORE_VAR_START_X <- 0;
PIECE_OF_ICE_CORE_VAR_SHAKE_END_TIME <- 1;
function setCustomData_po_ATPieceOfIceCore(obj, reciveData)
{
if(!obj) return;
local var = obj.getVar();
local x = obj.getXPos();
var.setInt(PIECE_OF_ICE_CORE_VAR_START_X, x);
var.push_ct_vector();
local timer = var.get_ct_vector(0);
obj.sendStateOnlyPacket(PIECE_OF_ICE_CORE_STATE_STAY);
var.setInt(PIECE_OF_ICE_CORE_VAR_SHAKE_END_TIME, 0);
}
function setState_po_ATPieceOfIceCore(obj, state, datas)
{
if(!obj) return;
if(state == PIECE_OF_ICE_CORE_STATE_DAMAGE)
{
local ani = obj.getCurrentAnimation();
local var = obj.getVar();
if(ani) {
local currentIndex = sq_GetVectorData(datas, 0) + 3;
ani.setCurrentFrameWithChildLayer(currentIndex);
}
local timer = var.get_ct_vector(0);
var.setInt(PIECE_OF_ICE_CORE_VAR_SHAKE_END_TIME, timer.Get() + 50);
sq_SetMyShake(obj,2,80);
}
else if(state == PIECE_OF_ICE_CORE_STATE_END)
{
local ani = obj.getCurrentAnimation();
if(ani)
ani.setCurrentFrameWithChildLayer(10); // 葆虽虞 ?溯歜
}
}
function procAppend_po_ATPieceOfIceCore(obj)
{
if(!obj) return;
local var = obj.getVar();
local timer = var.get_ct_vector(0);
local shakeEndTime = var.getInt(PIECE_OF_ICE_CORE_VAR_SHAKE_END_TIME);
local shakeValue = 0;
if(timer.Get() < shakeEndTime && obj.getState() != PIECE_OF_ICE_CORE_STATE_END)
shakeValue = (sq_GetShuttleValue(0, 6,sq_GetObjectTime(obj),100)-3);
local x = var.getInt(PIECE_OF_ICE_CORE_VAR_START_X) + shakeValue;
local y = obj.getYPos();
local z = sq_GetShuttleValue(55, 65,sq_GetObjectTime(obj),1200);
sq_SetCurrentPos(obj, x, y, z);
}
function onKeyFrameFlag_po_ATPieceOfIceCore(obj, flagIndex)
{
if(!obj)
return false;
if(flagIndex == 1)
{
sq_SetMyShake(obj,3,100);
}
if(flagIndex == 2)
{
obj.sendStateOnlyPacket(PIECE_OF_ICE_CORE_STATE_END);
}
return true;
}
function onEndCurrentAni_po_ATPieceOfIceCore(obj)
{
if(!obj) return;
if(obj.isMyControlObject()) {
sq_SendDestroyPacketPassiveObject(obj);
}
}