Sqr/character/atmage/concentrate/po_atconcentrateexp.nut

190 lines
5.3 KiB
Plaintext
Raw Permalink Normal View History

2024-03-18 21:37:40 +08:00
/************************************************
// 蒙擎 ?嫦 螃粽薛?
************************************************/
function setCustomData_po_ATConcentrateExpSmall(obj, receiveData)
{
if (!obj) return;
local sizeRate = receiveData.readWord();
local attackBonusRate = receiveData.readDword();
local element = receiveData.readByte();
local attackInfo = sq_GetCurrentAttackInfo(obj);
if (attackInfo)
sq_SetCurrentAttackBonusRate(attackInfo, attackBonusRate);
if (element != ENUM_ELEMENT_NONE)
{
attackInfo.setElement(ENUM_ELEMENT_NONE);
attackInfo.setElement(element);
}
obj.sq_PlaySound("FM31_HIT");
local particleCreater = obj.getVar().GetparticleCreaterMap("concentrateParticle", "PassiveObject/Character/Mage/Particle/ATConcentrateSub.ptl", obj);
particleCreater.Restart(0);
particleCreater.SetPos(obj.getXPos(), obj.getYPos(), obj.getZPos());
sq_AddParticleObject(obj, particleCreater);
}
function onEndCurrentAni_po_ATConcentrateExpSmall(obj)
{
if (!obj) return;
if (obj.isMyControlObject()) {
sq_SendDestroyPacketPassiveObject(obj);
}
}
function getHitDirection_po_ATConcentrateExpSmall(obj, damager)
{
if (!obj) return 0;
return sq_GetOppositeDirection(obj.getDirection());
}
/************************************************
// 赎 ?嫦 螃粽薛?
************************************************/
function setCustomData_po_ATConcentrateExpBig(obj, receiveData)
{
if (!obj) return;
local sizeRate = receiveData.readWord();
local attackBonusRate = receiveData.readDword();
local element = receiveData.readByte();
local attackInfo = sq_GetCurrentAttackInfo(obj);
if (attackInfo)
sq_SetCurrentAttackBonusRate(attackInfo, attackBonusRate);
if (element != ENUM_ELEMENT_NONE)
{
attackInfo.setElement(ENUM_ELEMENT_NONE);
attackInfo.setElement(element);
}
obj.sq_PlaySound("HWANG_FENCING_EXP");
local particleCreater = obj.getVar().GetparticleCreaterMap("concentrateParticle", "PassiveObject/Character/Mage/Particle/ATConcentrateSub.ptl", obj);
particleCreater.Restart(0);
particleCreater.SetPos(obj.getXPos(), obj.getYPos(), obj.getZPos());
sq_AddParticleObject(obj, particleCreater);
sq_flashScreen(obj, 0, 240, 120, 150, sq_RGB(0,0,0), GRAPHICEFFECT_NONE, ENUM_DRAWLAYER_BOTTOM);
local animation = sq_GetCurrentAnimation(obj);
if (!animation) return;
local size = sizeRate.tofloat() / 100.0;
animation.setImageRateFromOriginal(size, size);
animation.setAutoLayerWorkAnimationAddSizeRate(size);
sq_SetAttackBoundingBoxSizeRate(animation, size, size, size);
}
function onEndCurrentAni_po_ATConcentrateExpBig(obj)
{
if (!obj) return;
if (obj.isMyControlObject()) {
sq_SendDestroyPacketPassiveObject(obj);
}
}
function getHitDirection_po_ATConcentrateExpBig(obj, damager)
{
if (!obj) return 0;
return sq_GetOppositeDirection(obj.getDirection());
}
/************************************************
// 楼撩 葆彻掘 螃粽薛?
************************************************/
function setCustomData_po_ATConcentrateBall(obj, receiveData)
{
if (!obj) return;
obj.sq_SetMoveParticle("Particle/ATConcentrate.ptl", 0.0, 0.0);
local maxBoundNumber = receiveData.readWord();
local smallExpBonusRate = receiveData.readDword();
local bigExpBonusRate = receiveData.readDword();
local bigExpSizeRate = receiveData.readWord();
local element = receiveData.readByte();
local var = obj.getVar();
var.clear_vector();
var.push_vector(0);
var.push_vector(maxBoundNumber);
var.push_vector(smallExpBonusRate);
var.push_vector(bigExpBonusRate);
var.push_vector(bigExpSizeRate);
var.push_vector(element);
}
function procAppend_po_ATConcentrateBall(obj)
{
if (obj.getZPos() <= 0)
{
local var = obj.getVar();
local currentBoundNumber = var.get_vector(0);
local maxBoundNumber = var.get_vector(1);
if (currentBoundNumber + 1 < maxBoundNumber)
{
// 夥遴注肾横 萤塭陞阳暧 陛楼紫 高
local jumpVelocity = 320;
var.set_vector(0, currentBoundNumber + 1);
sq_SetObjectBounding(obj, jumpVelocity);
// 蒙擎 ?嫦 螃粽薛?蒂 当撩?棻.
if (obj.isMyControlObject())
{
sq_BinaryStartWrite();
// 蒙擎 ?嫦擎 ?鼻 100% 饵桧锷煎 ?嫦?.
sq_BinaryWriteWord(100);
// 蒙擎 ?嫦 奢问溘%
sq_BinaryWriteDword(obj.getVar().get_vector(2));
sq_BinaryWriteByte(obj.getVar().get_vector(5));
sq_SendCreatePassiveObjectPacket(obj, 24284, 0, 0, -1, 0, obj.getDirection());
// ?贼霞翕
sq_SetMyShake(obj, 2, 240);
}
}
else
{
// 葆虽虞 赎 ?嫦 螃粽薛?蒂 当撩?坚 模资卫监棻.
if (obj.isMyControlObject())
{
local var = obj.getVar();
sq_BinaryStartWrite();
// 赎 ?嫦暧 饵桧锷
sq_BinaryWriteWord(var.get_vector(4));
// 赎 ?嫦暧 奢问溘
sq_BinaryWriteDword(var.get_vector(3));
sq_BinaryWriteByte(obj.getVar().get_vector(5));
sq_SendCreatePassiveObjectPacket(obj, 24285, 0, 0, -1, 0, obj.getDirection());
// 螃粽薛?蒂 饷薯?棻.
sq_SendDestroyPacketPassiveObject(obj);
// ?贼霞翕
sq_SetMyShake(obj, 5, 240);
}
}
}
}
function onEndCurrentAni_po_ATConcentrateBall(obj)
{
if (!obj) return;
if (obj.isMyControlObject()) {
sq_SendDestroyPacketPassiveObject(obj);
}
}