Sqr/character/creatormage/firemeteo/firemeteo.nut

83 lines
2.5 KiB
Plaintext
Raw Permalink Normal View History

2024-03-18 21:37:40 +08:00
SUB_STATE_FIREMETEO_0 <- 0
function onMouseButtonDown_FireMeteo(obj)
{
if (!obj) return;
local objectManager = obj.getObjectManager();
local xPos = objectManager.getFieldXPos(IMouse.GetXPos(), ENUM_DRAWLAYER_NORMAL);
local yPos = objectManager.getFieldYPos(IMouse.GetYPos(), 0, ENUM_DRAWLAYER_NORMAL);
local zPos = 61;
if (yPos < TILE_FLOOR_START_Y)
{ // 夥款桧 卫蒙?朝 y谢?塭贼..
return;
}
local ptl = sq_GetParticleInfo(obj, "Particle/CreatorFireMeteo.ptl");
sq_BinaryParameterStartWrite();
// ?塭嘐搅陛 伞鼠 号嬴 夥桧伞葬 等桧颤蒂 桧辨?栖棻.
// x, y, z == 亿郭?卫粽螃粽薛?陛 轿溘腆 够
// wx, wy == 唳坚?卫陛 轿溘腆 够
// delay ControlRate 唳坚?卫暧 蝶?萄 亵瞰辨 %高
// warningMarkIndex == 唳坚?卫暧 谦盟 : 0 寰尔歜, 1 尔鳝, 2 渠?, 3 尔鳝 (嬴捱Only), 4 渠? (嬴捱Only)
local moveVariable1 = 500;
local naaMoveVariable1 = -400; // -800
local createXDistance = xPos - moveVariable1;
local createYDistance = yPos;
local createZDistance = -naaMoveVariable1;
local dir = sq_GetDirection(obj);
if (dir == ENUM_DIRECTION_LEFT)
{
createXDistance = xPos + moveVariable1;
}
sq_BinaryParameterWriteDword(createXDistance);
sq_BinaryParameterWriteDword(createYDistance);
sq_BinaryParameterWriteDword(createZDistance);
sq_BinaryParameterWriteDword(xPos);
sq_BinaryParameterWriteDword(yPos);
sq_BinaryParameterWriteDword(ENUM_DIRECTION_NEUTRAL);
sq_BinaryParameterWriteDword(200); // int delayControlRate
local markType = obj.sq_GetIntData(SKILL_FIREMETEO, 0); // 颤啪? 葆觼 谦盟(渗唳?虽 蜓匙!)
sq_BinaryParameterWriteDword(markType); //int warningMarkIndex
// 奢问溘 跷陛热纂 蒙机
local level = sq_GetSkillLevel(obj, SKILL_CREATORFLAME);
// 1.奢问溘 跷陛 热纂 (%)
local addValue = sq_GetLevelData(obj, SKILL_CREATORFLAME, SKL_LV_1, level);
local addRate = addValue.tofloat() / 100.0;
print(" addRate:" + addRate);
local skillLevel = sq_GetSkillLevel(obj, SKILL_FIREMETEO);
local power = obj.sq_GetPowerWithPassive(SKILL_FIREMETEO, STATE_FIREMETEO, SKL_LV_0,-1,addRate.tofloat());
local sizeRate = sq_GetLevelData(obj, SKILL_FIREMETEO, SKL_LV_1, skillLevel);
// 诡才螃 奢问溘 ?卫
sq_BinaryStartWrite();
// 奢问溘 撮?
sq_BinaryWriteDword(power);
// size rate
sq_BinaryWriteDword(sizeRate);
local skill_level = obj.sq_GetSkillLevel(SKILL_FIREMETEO);
sq_CreatePassiveObjectAfterWarning(obj, 23501, skill_level, ptl);
obj.sq_PlaySound("R_METEO_CASTING");
}