This commit is contained in:
2024-03-18 21:37:40 +08:00
commit c4aef8f3a3
313 changed files with 74071 additions and 0 deletions

View File

@@ -0,0 +1,419 @@
SUB_STATE_FROZENLAND_0 <- 0
SUB_STATE_FROZENLAND_1 <- 1
SUB_STATE_FROZENLAND_2 <- 2
SUB_STATE_FROZENLAND_3 <- 3
SUB_STATE_FROZENLAND_4 <- 4
SUB_STATE_FROZENLAND_CASTING <- 5
function createShockWaveAnimation(obj, x, y, z)
{
local ani = sq_CreateAnimation("", "PassiveObject/Character/Mage/Animation/ATFrozenLand/sub_dodge.ani");
local shockWaveObj = sq_CreatePooledObject(ani,true);
shockWaveObj = sq_SetEnumDrawLayer(shockWaveObj, ENUM_DRAWLAYER_BOTTOM);
if(shockWaveObj)
{
shockWaveObj.setCurrentPos(x,y,z);
sq_AddObject(obj, shockWaveObj, OBJECTTYPE_DRAWONLY, false);
}
}
function checkExecutableSkill_FrozenLand(obj)
{
if(!obj) return false;
local b_useskill = obj.sq_IsUseSkill(SKILL_FROZENLAND);
if(b_useskill) {
obj.sq_IntVectClear();
obj.sq_IntVectPush(SUB_STATE_FROZENLAND_CASTING); // substate撮?
obj.sq_AddSetStatePacket(STATE_FROZENLAND, STATE_PRIORITY_IGNORE_FORCE, true);
return true;
}
return false;
}
function checkCommandEnable_FrozenLand(obj)
{
if(!obj) return false;
local state = obj.sq_GetState();
if(state == STATE_ATTACK)
{
// 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20]
return obj.sq_IsCommandEnable(SKILL_FROZENLAND); // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] obj.sq_IsCommandEnable(SKILL_FROZENLAND);
}
return true;
}
function onSetState_FrozenLand(obj, state, datas, isResetTimer)
{
if(!obj) return;
local substate = obj.sq_GetVectorData(datas, 0);
obj.setSkillSubState(substate);
obj.sq_StopMove();
obj.getVar().clear_vector();
obj.getVar().push_vector(0);
obj.getVar().push_vector(0);
obj.getVar().push_vector(0);
obj.getVar().push_vector(0);
obj.getVar().push_vector(0);
obj.getVar("state").clear_ct_vector();
obj.getVar("state").push_ct_vector();
if(substate == SUB_STATE_FROZENLAND_CASTING)
{
// 议蝶? 楼紫蒂 评塭陛紫烟 扑姜
// 议蝶? 楼紫陛 渗唳肾贼, 缣栖诡桧暮 楼紫紫 渗唳 腌栖棻.
// 议蝶? 啪桧虽紫 ?卫蒂 ?鄹栖棻.
obj.sq_SetCurrentAnimation(CUSTOM_ANI_FROZENLAND_CASTING);
local skillLevel = sq_GetSkillLevel(obj, SKILL_FROZENLAND);
local castTime = sq_GetCastTime(obj, SKILL_FROZENLAND, skillLevel);
local animation = sq_GetCurrentAnimation(obj);
local startTime = sq_GetFrameStartTime(animation, 16);
local speedRate = startTime.tofloat() / castTime.tofloat();
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_CAST_SPEED, SPEED_TYPE_CAST_SPEED,
SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, speedRate, speedRate);
sq_StartDrawCastGauge(obj, startTime, true);
obj.sq_PlaySound("MW_SLASHWATER");
}
else if(substate == SUB_STATE_FROZENLAND_0) {
obj.sq_SetCurrentAnimation(CUSTOM_ANI_FROZENLAND1);
}
else if(substate == SUB_STATE_FROZENLAND_1) {
obj.sq_SetCurrentAnimation(CUSTOM_ANI_FROZENLAND2);
}
else if(substate == SUB_STATE_FROZENLAND_2) {
local t = obj.getVar("state").get_ct_vector(0);
t.Reset();
t.Start(10000,0);
//obj.sq_SetCurrentAnimation(CUSTOM_ANI_FROZENLAND3);
}
else if(substate == SUB_STATE_FROZENLAND_3)
{
//print(" obj.sq_SetCurrentAnimation(CUSTOM_ANI_FROZENLAND3);");
obj.sq_SetCurrentAnimation(CUSTOM_ANI_FROZENLAND3);
}
else if(substate == SUB_STATE_FROZENLAND_4) {
// SUB_STATE_FROZENLAND_4 怃粽蝶才桧? 蒙机
}
//obj.sq_SetStaticSpeedInfo(SPEED_TYPE_CAST_SPEED, SPEED_TYPE_CAST_SPEED,
// SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0);
}
function prepareDraw_FrozenLand(obj)
{
if(!obj) return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_FROZENLAND_0) {
// SUB_STATE_FROZENLAND_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_1) {
// SUB_STATE_FROZENLAND_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_2) {
// SUB_STATE_FROZENLAND_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_3) {
// SUB_STATE_FROZENLAND_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_4) {
// SUB_STATE_FROZENLAND_4 怃粽蝶才桧? 蒙机
}
}
function onProc_FrozenLand(obj)
{
if(!obj) return;
local substate = obj.getSkillSubState();
local pAni = obj.sq_GetCurrentAni();
local frmIndex = obj.sq_GetCurrentFrameIndex(pAni);
local currentT = sq_GetCurrentTime(pAni);
if(substate == SUB_STATE_FROZENLAND_0) {
// SUB_STATE_FROZENLAND_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_1) {
// SUB_STATE_FROZENLAND_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_2) {
// SUB_STATE_FROZENLAND_2 怃粽蝶才桧? 蒙机
local t = obj.getVar("state").get_ct_vector(0);
local currentT = 0;
currentT = t.Get();
//print(" currentT:" + currentT);
if(currentT > 240)
{
if(!obj.getVar().get_vector(1))
{
//obj.sq_SetCurrentAnimation(CUSTOM_ANI_FROZENLAND3);
if(obj.isMyControlObject())
{
obj.sq_IntVectClear();
obj.sq_IntVectPush(SUB_STATE_FROZENLAND_3); // substate撮?
obj.sq_AddSetStatePacket(STATE_FROZENLAND, STATE_PRIORITY_IGNORE_FORCE, true);
}
obj.getVar().set_vector(1, 1);
}
}
}
else if(substate == SUB_STATE_FROZENLAND_3) {
// SUB_STATE_FROZENLAND_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_4) {
// SUB_STATE_FROZENLAND_4 怃粽蝶才桧? 蒙机
}
}
function onProcCon_FrozenLand(obj)
{
if(!obj) return;
local substate = obj.getSkillSubState();
local pAni = obj.sq_GetCurrentAni();
local frmIndex = obj.sq_GetCurrentFrameIndex(pAni);
if(substate == SUB_STATE_FROZENLAND_0) {
if(frmIndex >= 4) {
if(obj.getVar().get_vector(0) == 0)
{
if(obj.isMyControlObject())
{
local radiusRate = obj.sq_GetIntData(SKILL_FROZENLAND, 0);// 0. 卫瞪彰嫔 (葆彻霞 虽荤 绿徽 : 100%~)
local stopSpinNum = obj.sq_GetIntData(SKILL_FROZENLAND, 2); // 2. 晦菅桧 釭颤釭怃 薯濠葬缣怃 蝶?击 紫朝 热
local spinTime = obj.sq_GetIntData(SKILL_FROZENLAND, 3); // 3. 模辨给桧 药怃 陛遴等煎 菟横螃朝 卫除
sq_BinaryStartWrite();
sq_BinaryWriteDword(radiusRate); // 卫瞪彰嫔 (葆彻霞 虽荤 绿徽 : 100%~)
sq_BinaryWriteDword(stopSpinNum); // 晦菅桧 釭颤釭怃 薯濠葬缣怃 蝶?击 紫朝 热
sq_BinaryWriteDword(spinTime); // 模辨给桧 药怃 陛遴等煎 菟横螃朝 卫除
local multiHitTerm = obj.sq_GetIntData(SKILL_FROZENLAND, 1); // 1. 晦菅 棻钦?? 除问 (0.001蟾 钦嫔)
local multiHitAttackRate = obj.sq_GetBonusRateWithPassive(SKILL_FROZENLAND, STATE_FROZENLAND, 0, 1.0); //0.晦菅 棻钦?? 奢问溘(%)
local expAttackRate = obj.sq_GetBonusRateWithPassive(SKILL_FROZENLAND, STATE_FROZENLAND, 1, 1.0); // 1.晦菅 ?嫦 奢问溘(%)
obj.sq_GetLevelData(SKILL_FROZENLAND, 1, obj.sq_GetSkillLevel(SKILL_FROZENLAND));
// 2.彩念 ?徽 3.彩念 溯涟 4.彩念 卫除
local skillLevel = obj.sq_GetSkillLevel(SKILL_FROZENLAND);
local frozenRate = obj.sq_GetLevelData(SKILL_FROZENLAND, 2, skillLevel); // 2.彩念 ?徽
local frozenLevel = obj.sq_GetLevelData(SKILL_FROZENLAND, 3, skillLevel); // 3.彩念 溯涟
local frozenTime = obj.sq_GetLevelData(SKILL_FROZENLAND, 4, skillLevel); // 4.彩念 卫除
sq_BinaryWriteDword(multiHitTerm); // 晦菅 棻钦?? 除问
sq_BinaryWriteDword(multiHitAttackRate); // 晦菅 棻钦?? 奢问溘 (%)
sq_BinaryWriteDword(expAttackRate); // 晦菅 ?嫦 奢问溘 (%)
sq_BinaryWriteDword(frozenRate); // 彩念 ?徽
sq_BinaryWriteDword(frozenLevel); // 彩念 溯涟
sq_BinaryWriteDword(frozenTime); // 彩念 卫除
// 觼煎栖赝 嬴桧蛊 跷陛 蒙机
// 觼煎栖赝 嬴桧蛊 跷陛 蒙机 薯濠葬缣怃 给坚毡朝 卫除桧 0尔棻 觼棻贼 舆嫔蒂 摹??朝 state煎 渗唳?捡 ?栖棻.
local spinAddTime = obj.sq_GetIntData(SKILL_FROZENLAND, 4); // 4. 模辨给桧陛 议葛搅 舆渗击 ?瞪?朝 卫除 (0.001蟾钦嫔)
sq_BinaryWriteDword(spinAddTime); // 模辨给桧陛 议葛搅 舆渗击 ?瞪?朝 卫除 (0.001蟾钦嫔)
obj.sq_SendCreatePassiveObjectPacket(24247, 0, 10, -1, 0); // 陴彻饵 - 橡横称擎 渠虽 (葆彻霞)
}
obj.getVar().set_vector(0, 1);
}
}
}
else if(substate == SUB_STATE_FROZENLAND_1) {
local magicCirclePassiveObj = obj.sq_GetPassiveObject(24247); // po_ATFrozenLandMagicCircle
local stateChange = true;
if(magicCirclePassiveObj)
{
local magicCirclePassiveState = magicCirclePassiveObj.getState();
if(magicCirclePassiveState == S_PO_FROZENLAND_MC_3)
{
stateChange = true;
}
else
{
stateChange = false;
}
}
if(stateChange)
{
obj.sq_IntVectClear();
obj.sq_IntVectPush(SUB_STATE_FROZENLAND_2); // substate撮?
obj.sq_AddSetStatePacket(STATE_FROZENLAND, STATE_PRIORITY_IGNORE_FORCE, true);
}
}
else if(substate == SUB_STATE_FROZENLAND_2) {
// SUB_STATE_FROZENLAND_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_3) {
// SUB_STATE_FROZENLAND_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_4) {
// SUB_STATE_FROZENLAND_4 怃粽蝶才桧? 蒙机
}
}
function onEndCurrentAni_FrozenLand(obj)
{
if(!obj) return;
if(!obj.isMyControlObject()) {
return;
}
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_FROZENLAND_CASTING)
{
obj.sq_IntVectClear();
obj.sq_IntVectPush(SUB_STATE_FROZENLAND_0); // substate撮?
obj.sq_AddSetStatePacket(STATE_FROZENLAND, STATE_PRIORITY_IGNORE_FORCE, true);
}
else if(substate == SUB_STATE_FROZENLAND_0) {
obj.sq_IntVectClear();
obj.sq_IntVectPush(SUB_STATE_FROZENLAND_1); // substate撮?
obj.sq_AddSetStatePacket(STATE_FROZENLAND, STATE_PRIORITY_IGNORE_FORCE, true);
}
else if(substate == SUB_STATE_FROZENLAND_1) {
}
else if(substate == SUB_STATE_FROZENLAND_2) {
}
else if(substate == SUB_STATE_FROZENLAND_3) {
obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
}
else if(substate == SUB_STATE_FROZENLAND_4) {
// SUB_STATE_FROZENLAND_4 怃粽蝶才桧? 蒙机
}
}
function onKeyFrameFlag_FrozenLand(obj, flagIndex)
{
if(!obj) return false;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_FROZENLAND_0) {
// SUB_STATE_FROZENLAND_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_1) {
// SUB_STATE_FROZENLAND_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_2) {
// SUB_STATE_FROZENLAND_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_3) {
// SUB_STATE_FROZENLAND_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_4) {
// SUB_STATE_FROZENLAND_4 怃粽蝶才桧? 蒙机
}
return false;
}
function onEndState_FrozenLand(obj, new_state)
{
if(!obj) return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_FROZENLAND_0) {
// SUB_STATE_FROZENLAND_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_1) {
// SUB_STATE_FROZENLAND_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_2) {
// SUB_STATE_FROZENLAND_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_3) {
// SUB_STATE_FROZENLAND_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_4) {
// SUB_STATE_FROZENLAND_4 怃粽蝶才桧? 蒙机
}
// 蝶才桧? 谦猿 ?擎 镞模 肾历棻贼 议蝶? 啪桧虽 桡据
sq_EndDrawCastGauge(obj);
}
function onAfterSetState_FrozenLand(obj, state, datas, isResetTimer)
{
if(!obj) return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_FROZENLAND_0) {
// SUB_STATE_FROZENLAND_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_1) {
// SUB_STATE_FROZENLAND_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_2) {
// SUB_STATE_FROZENLAND_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_3) {
// SUB_STATE_FROZENLAND_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FROZENLAND_4) {
// SUB_STATE_FROZENLAND_4 怃粽蝶才桧? 蒙机
}
}

Binary file not shown.

View File

@@ -0,0 +1,44 @@
function setCustomData_po_ATFrozenLandExpWaterPole(obj, reciveData)
{
if(!obj) return;
local index = reciveData.readDword(); // 樯策蝶
local expAttackRate = reciveData.readDword(); // ?嫦奢问溘
local atk = sq_GetCurrentAttackInfo(obj);
if(atk)
{
sq_SetCurrentAttackBonusRate(atk, expAttackRate);
}
if(index == 1)
{
local ani = obj.getCustomAnimation(0);
obj.setCurrentAnimation(ani);
}
}
function onDestroyObject_po_ATFrozenLandExpWaterPole(obj, object)
{
if(!obj) return;
}
function onEndCurrentAni_po_ATFrozenLandExpWaterPole(obj)
{
if(!obj) return;
if(!obj.isMyControlObject()) return;
sq_SendDestroyPacketPassiveObject(obj);
}

View File

@@ -0,0 +1,516 @@
S_PO_FROZENLAND_MC_0 <- 10
S_PO_FROZENLAND_MC_1 <- 11
S_PO_FROZENLAND_MC_2 <- 12
S_PO_FROZENLAND_MC_3 <- 13
S_PO_FROZENLAND_MC_4 <- 14
S_PO_FROZENLAND_MC_5 <- 15
function insertIceFog(obj, dx, dy, dz)
{
if(!obj)
return;
local x = sq_GetXPos(obj);
local y = sq_GetYPos(obj);
local z = sq_GetZPos(obj);
local particleCreater = obj.getVar().GetparticleCreaterMap("fronzenLand", "PassiveObject/Character/Mage/Particle/ATFrozenLand.ptl", obj);
particleCreater.Restart(0);
particleCreater.SetPos(x + dx, y + dy, z + dz);
//print(" insertIceFog:" + particleCreater);
sq_AddParticleObject(obj, particleCreater);
}
function setCustomData_po_ATFrozenLandMagicCircle(obj, reciveData)
{
if(!obj) return;
local radiusRate = reciveData.readDword(); // 卫瞪彰嫔 (葆彻霞 虽荤 绿徽 : 100%~)
local spinNum = reciveData.readDword(); // 晦菅桧 釭颤釭怃 薯濠葬缣怃 蝶?击 紫朝 热
local spinTime = reciveData.readDword(); // 模辨给桧 药怃 陛遴等煎 菟横螃朝 卫除
local multiHitTerm = reciveData.readDword(); // 晦菅 棻钦?? 除问
local multiHitAttackRate = reciveData.readDword(); // 晦菅 棻钦?? 奢问溘 (%)
local expAttackRate = reciveData.readDword(); // 晦菅 ?嫦 奢问溘 (%)
local frozenRate = reciveData.readDword(); // 彩念 ?徽
local frozenLevel = reciveData.readDword(); // 彩念 溯涟
local frozenTime = reciveData.readDword(); // 彩念 卫除
// 觼煎栖赝 嬴桧蛊 跷陛 蒙机 薯濠葬缣怃 给坚毡朝 卫除桧 0尔棻 觼棻贼 舆嫔蒂 摹??朝 state煎 渗唳?捡 ?栖棻.
local spinAddTime = reciveData.readDword(); // 模辨给桧陛 议葛搅 舆渗击 ?瞪?朝 卫除 (0.001蟾钦嫔)
obj.getVar("state").clear_vector(); // state vector
obj.getVar("state").push_vector(0);
obj.getVar("flag").clear_vector();
obj.getVar("flag").push_vector(0);
obj.getVar("flag").push_vector(0);
obj.getVar("flag").push_vector(0);
obj.getVar("flag").push_vector(0);
obj.getVar("flag").push_vector(0);
obj.getVar("basePos").clear_vector();
obj.getVar("basePos").push_vector(0);
obj.getVar("basePos").push_vector(0);
obj.getVar("basePos").push_vector(0);
obj.getVar("flag").clear_timer_vector();
obj.getVar("flag").push_timer_vector();
obj.getVar("icefog").clear_vector();
obj.getVar("icefog").push_vector(0);
local t = obj.getVar("flag").get_timer_vector(0);
t.setParameter(50, 1);
t.resetInstant(0);
//radiusRate = 100;
obj.getVar("radius").clear_vector();
obj.getVar("radius").push_vector(radiusRate); //
obj.getVar("radius").push_vector(0); // setstate煎 setcurrentanimation 胀 拥栖诡桧暮 亿煎遴 绿徽
obj.getVar("radius").push_vector(spinNum); // 2 蝶?偎热
obj.getVar("radius").push_vector(spinTime); // 3 模辨给桧 药怃 陛遴等煎 菟横螃朝 卫除
obj.getVar("attack").clear_vector();
obj.getVar("attack").push_vector(multiHitTerm); //
obj.getVar("attack").push_vector(multiHitAttackRate); //
obj.getVar("attack").push_vector(expAttackRate); //
obj.getVar("attack").push_vector(frozenRate); //
obj.getVar("attack").push_vector(frozenLevel); //
obj.getVar("attack").push_vector(frozenTime); //
// 觼煎栖赝 嬴桧蛊 跷陛 蒙机 薯濠葬缣怃 给坚毡朝 卫除桧 0尔棻 觼棻贼 舆嫔蒂 摹??朝 state煎 渗唳?捡 ?栖棻.
obj.getVar("spin").clear_vector();
obj.getVar("spin").push_vector(spinAddTime); //
if(obj.isMyControlObject()) {
local pIntVec = sq_GetGlobalIntVector();
sq_IntVectorClear(pIntVec);
sq_IntVectorPush(pIntVec, radiusRate);
obj.addSetStatePacket(S_PO_FROZENLAND_MC_0, pIntVec, STATE_PRIORITY_AUTO, false, "");
}
}
function setState_po_ATFrozenLandMagicCircle(obj, state, datas)
{
if(!obj) return;
local passiveState = state;
obj.getVar("state").set_vector(0, passiveState);
obj.getVar("flag").set_vector(VECTOR_FLAG_0, 0);
initGetVarTimer(obj, 1, 400, 10);
if(passiveState == S_PO_FROZENLAND_MC_0) {
local x = sq_GetXPos(obj);
local y = sq_GetYPos(obj);
local z = sq_GetZPos(obj);
obj.getVar("basePos").set_vector(0, x);
obj.getVar("basePos").set_vector(1, y);
obj.getVar("basePos").set_vector(2, z);
local atk = sq_GetCurrentAttackInfo(obj);
if(atk)
{
local frozenRate = obj.getVar("attack").get_vector(3);
local frozenLevel = obj.getVar("attack").get_vector(4);
local frozenTime = obj.getVar("attack").get_vector(5);
print(" frozenRate:" + frozenRate);
sq_SetChangeStatusIntoAttackInfo(atk, 0, ACTIVESTATUS_FREEZE, frozenRate, frozenLevel, frozenTime);
}
}
else if(passiveState == S_PO_FROZENLAND_MC_1) {
}
else if(passiveState == S_PO_FROZENLAND_MC_2) {
local ani = obj.getCustomAnimation(0);
obj.setCurrentAnimation(ani);
}
else if(passiveState == S_PO_FROZENLAND_MC_3) {
}
else if(passiveState == S_PO_FROZENLAND_MC_4) {
local ani = obj.getCustomAnimation(1);
obj.setCurrentAnimation(ani);
}
if(passiveState != S_PO_FROZENLAND_MC_3)
{
local radius100Rate = obj.getVar("radius").get_vector(0);
local radiusRate = (radius100Rate.tofloat() / 100.0);
local currentAni = sq_GetCurrentAnimation(obj);
currentAni.setImageRateFromOriginal(radiusRate, radiusRate);
local size = (sq_GetAniRealImageSize(currentAni, ENUM_DIRECTION_RIGHT) / 2) + 60;
obj.getVar("radius").set_vector(1, size);
}
//radius100Rate
}
function procAppend_po_ATFrozenLandMagicCircle(obj)
{
if(!obj) return;
local pChr = obj.getTopCharacter();
if(!pChr) {
if(obj.isMyControlObject())
{
sq_SendDestroyPacketPassiveObject(obj);
}
return;
}
local objX = sq_GetXPos(obj);
local objY = sq_GetYPos(obj);
local objZ = sq_GetZPos(obj);
local state = obj.getVar("state").get_vector(0);
local passiveState = state;
local pAni = sq_GetCurrentAnimation(obj);
local frmIndex = sq_GetAnimationFrameIndex(pAni);
if(passiveState == S_PO_FROZENLAND_MC_0) {
// 罹晦 passivestate缣怃朝 晦菅 ?卫粽螃粽薛?菟击 虏蛙栖棻..
if(frmIndex >= 2) {
if(obj.getVar("flag").get_vector(VECTOR_FLAG_0) == 0) {
if(obj.isMyControlObject()) {
//obj.getVar("attack").push_vector(multiHitTerm); //
//obj.getVar("attack").push_vector(multiHitAttackRate); //
//obj.getVar("attack").push_vector(expAttackRate); //
//obj.getVar("attack").push_vector(frozenRate); //
//obj.getVar("attack").push_vector(frozenLevel); //
//obj.getVar("attack").push_vector(frozenTime); //
local radius100Rate = obj.getVar("radius").get_vector(0);
local radiusRate = (radius100Rate.tofloat() / 100.0);
local size = (sq_GetAniRealImageSize(pAni, ENUM_DIRECTION_RIGHT) / 2) + 60;
obj.getVar("radius").set_vector(1, size);
local radiusSize = obj.getVar("radius").get_vector(1);
local spinNum = obj.getVar("radius").get_vector(2);
local spinTime = obj.getVar("radius").get_vector(3);
local multiHitTerm = obj.getVar("attack").get_vector(0);
local multiHitAttackRate = obj.getVar("attack").get_vector(1);
// 觼煎栖赝 嬴桧蛊 跷陛 蒙机 薯濠葬缣怃 给坚毡朝 卫除桧 0尔棻 觼棻贼 舆嫔蒂 摹??朝 state煎 渗唳?捡 ?栖棻.
local spinAddTime = obj.getVar("spin").get_vector(0);
sq_BinaryStartWrite();
sq_BinaryWriteDword(0); //
sq_BinaryWriteDword(0); //
sq_BinaryWriteDword(radiusSize); //
sq_BinaryWriteDword(spinNum); //
sq_BinaryWriteDword(spinTime); //
sq_BinaryWriteDword(multiHitTerm); //
sq_BinaryWriteDword(multiHitAttackRate); //
sq_BinaryWriteDword(spinAddTime); //
sq_SendCreatePassiveObjectPacketFromPassivePos( obj, 24248, 0, 0, 0, 0);
sq_BinaryStartWrite();
sq_BinaryWriteDword(180); //
sq_BinaryWriteDword(1); //
sq_BinaryWriteDword(radiusSize); //
sq_BinaryWriteDword(spinNum); //
sq_BinaryWriteDword(spinTime); //
sq_BinaryWriteDword(multiHitTerm); //
sq_BinaryWriteDword(multiHitAttackRate); //
sq_BinaryWriteDword(spinAddTime); //
sq_SendCreatePassiveObjectPacketFromPassivePos( obj, 24248, 0, 0, 0, 0);
//obj.getVar().set_vector(1, 1);
}
local pIntVec = sq_GetGlobalIntVector();
sq_IntVectorClear(pIntVec);
sq_IntVectorPush(pIntVec, 0);
obj.addSetStatePacket(S_PO_FROZENLAND_MC_2, pIntVec, STATE_PRIORITY_AUTO, false, "");
obj.getVar("flag").set_vector(VECTOR_FLAG_0, 1);
}
local currentT = sq_GetCurrentTime(pAni);
//procParticleCreaterMap(obj, currentT, "PassiveObject/Character/Mage/Particle/ATFrozenLand.ptl", objX, objY + 5, objZ);
//insertIceFog(obj, 0, 5, 0);
}
}
else if(passiveState == S_PO_FROZENLAND_MC_1) {
}
else if(passiveState == S_PO_FROZENLAND_MC_2) {
// 罹晦 ?卫粽蝶才桧?缣怃朝 晦菅桧 桡横螺朝虽 ?樯?坚 棻 桡横螺棻贼 ?嫦?卫粽螃粽薛?蒂 当撩?怃 棻挤蝶才桧?煎 setstate?栖棻.
if(obj.getVar("flag").get_vector(VECTOR_FLAG_0) == 0)
{
local pole_passive_obj = sq_GetPassiveObject(obj, 24248);
if(!pole_passive_obj)
{
local parentObj = obj.getParent();
CNSquirrelAppendage.sq_RemoveAppendage(parentObj, "Appendage/Character/ap_common_suck.nut");
if(obj.isMyControlObject()) {
local radius100Rate = obj.getVar("radius").get_vector(0);
local radiusRate = (radius100Rate.tofloat() / 100.0);
local currentAni = sq_GetCurrentAnimation(obj);
local size = (sq_GetAniRealImageSize(currentAni, ENUM_DIRECTION_RIGHT) / 2) + 60;
obj.getVar("radius").set_vector(1, size);
local radiusSize = obj.getVar("radius").get_vector(1);
local expAttackRate = obj.getVar("attack").get_vector(2); //
sq_BinaryStartWrite();
sq_BinaryWriteDword(radiusSize); //
sq_BinaryWriteDword(expAttackRate); // ?嫦奢问溘
sq_BinaryWriteDword(radius100Rate); // 怃赝 ?渠 绿徽
local cx = obj.getVar("basePos").get_vector(0);
local cy = obj.getVar("basePos").get_vector(1);
local cz = obj.getVar("basePos").get_vector(2);
sq_SendCreatePassiveObjectPacket(obj, 24249, 0, 0, 1, 0, obj.getDirection());
//sq_SendCreatePassiveObjectPacketFromPassivePos( obj, 24249, 0, cx, cy, cz); // ?嫦 ?卫粽螃粽薛?
local pIntVec = sq_GetGlobalIntVector();
sq_IntVectorClear(pIntVec);
sq_IntVectorPush(pIntVec, 0);
obj.addSetStatePacket(S_PO_FROZENLAND_MC_3, pIntVec, STATE_PRIORITY_AUTO, false, "");
}
obj.getVar("flag").set_vector(VECTOR_FLAG_0, 1);
}
else
{
if(obj.getVar("flag").get_vector(VECTOR_FLAG_2) == 0)
{
local poleState = pole_passive_obj.getState();
if(poleState == S_PO_FROZENLAND_POLE_1 || poleState == S_PO_FROZENLAND_POLE_2)
{
local poleAni = pole_passive_obj.getCurrentAnimation();
local frmIndex = sq_GetAnimationFrameIndex(poleAni);
if(frmIndex >= 1)
{
// CNFlashScreen* sq_flashScreen(CNRDObject* obj, int inTime, int stayTime, int outTime,
// int maxAlpha, DWORD rbga, int effectType, int layerType)
sq_SetMyShake(obj,4,200);
local poleAniFrameNumber = sq_GetAniFrameNumber(poleAni, 0);
local poleAniDelayTime = poleAni.getDelaySum(0, poleAniFrameNumber - 1);
local poleAniLoopTime = poleAni.getDelaySum(3, poleAniFrameNumber - 1);
local spinNum = obj.getVar("radius").get_vector(2);
local spinTime = obj.getVar("radius").get_vector(3);
local totalSpinPoleDelaySum = ((spinNum - 1) * poleAniLoopTime) + poleAniDelayTime - 80;
totalSpinPoleDelaySum = totalSpinPoleDelaySum + spinTime;
// 觼煎栖赝 嬴桧蛊 跷陛 蒙机 薯濠葬缣怃 给坚毡朝 卫除桧 0尔棻 觼棻贼 舆嫔蒂 摹??朝 state煎 渗唳?捡 ?栖棻.
totalSpinPoleDelaySum = totalSpinPoleDelaySum + obj.getVar("spin").get_vector(0);
//print( " spinNum:" + spinNum + " poleAniDelayTime:" + poleAniDelayTime + " poleAniLoopTime:" + poleAniLoopTime + " spinTime:" + spinTime + " totalSpinPoleDelaySum:" + totalSpinPoleDelaySum);
if(obj.isMyControlObject())
{
local fScreen = sq_flashScreen(obj,0,totalSpinPoleDelaySum,0,140, sq_RGB(0,0,0), GRAPHICEFFECT_NONE, ENUM_DRAWLAYER_BOTTOM);
}
obj.getVar("flag").set_vector(VECTOR_FLAG_2, 1);
}
}
}
if(!obj.getVar("flag").get_vector(VECTOR_FLAG_3))
{
local poleState = pole_passive_obj.getState();
if(poleState == S_PO_FROZENLAND_POLE_2)
{
print(" appendage suck");
local parentObj = obj.getParent();
// 庄横菟桧朝 横?蛤虽 陛翕
local appendage = CNSquirrelAppendage.sq_AppendAppendage(parentObj, obj, SKILL_FROZENLAND, false, "Appendage/Character/ap_common_suck.nut", false);
local suckVel = 200;
local radiusSize = obj.getVar("radius").get_vector(1);
local range = radiusSize * 2;
if(appendage)
{
appendage.sq_SetValidTime(2000);
// 罹晦怃 append 蒙机
CNSquirrelAppendage.sq_Append(appendage, parentObj, obj);
local auraAppendage = appendage.sq_getAuraMaster("frozenAura");
//
if(!auraAppendage)
auraAppendage = appendage.sq_AddAuraMaster("frozenAura",parentObj, obj, 1200, 18, 5, 0);
auraAppendage.setAttractionInfo(suckVel, suckVel, range, 100);
}
//
obj.getVar("flag").set_vector(VECTOR_FLAG_3, 1);
obj.sq_PlaySound("ICEEARTH_SPIN");
}
}
}
}
}
else if(passiveState == S_PO_FROZENLAND_MC_3) {
// 罹晦 ?卫粽蝶才桧?缣怃朝 ?嫦 ?卫粽暧 拥栖诡桧暮 ?溯歜击 ?樯?怃 饵塭虽啪 ?栖棻.
if(obj.getVar("flag").get_vector(VECTOR_FLAG_0) == 0)
{
local exp_passive_obj = sq_GetPassiveObject(obj, 24249);
if(exp_passive_obj)
{
if(exp_passive_obj.getState() == S_PO_FROZENLAND_1)
{
local exp_ani = sq_GetCurrentAnimation(exp_passive_obj);
local exp_frm_index = sq_GetAnimationFrameIndex(exp_ani);
if(exp_frm_index >= 4)
{
if(obj.isMyControlObject())
{
local pIntVec = sq_GetGlobalIntVector();
sq_IntVectorClear(pIntVec);
sq_IntVectorPush(pIntVec, 0);
obj.addSetStatePacket(S_PO_FROZENLAND_MC_4, pIntVec, STATE_PRIORITY_AUTO, false, "");
}
obj.getVar("flag").set_vector(VECTOR_FLAG_0, 1);
}
}
}
}
}
local t = obj.getVar("flag").get_timer_vector(0);
if(passiveState == S_PO_FROZENLAND_MC_2)
{
if(obj.getVar("flag").get_vector(VECTOR_FLAG_2) == 1)
{
local currentT = sq_GetCurrentTime(pAni);
if(t.isOnEvent(currentT) == true)
{
local radius = obj.getVar("radius").get_vector(1);
//
//local offset = 20;
local index = obj.getVar("icefog").get_vector(0);
local size = 3;
local iKeyList =[];
iKeyList.resize(size);
iKeyList[0] = ((radius * 2) / 3);
iKeyList[1] = -(radius * 2) / 3;
iKeyList[2] = 0;
print(" iKeyList[0]:" + iKeyList[0]);
print(" iKeyList[1]:" + iKeyList[1]);
insertIceFog(obj, iKeyList[0], 2, 40);
insertIceFog(obj, iKeyList[1], 2, 40);
insertIceFog(obj, iKeyList[2], 2, 40);
print(" insertIceFog:" + iKeyList[index]);
index = index + 1;
if(index > 2)
{
index = 0;
}
index = obj.getVar("icefog").set_vector(0, index);
}
}
}
}
function onDestroyObject_po_ATFrozenLandMagicCircle(obj, object)
{
if(!obj) return;
}
function onKeyFrameFlag_po_ATFrozenLandMagicCircle(obj, flagIndex)
{
}
function onEndCurrentAni_po_ATFrozenLandMagicCircle(obj)
{
if(!obj) return;
if(!obj.isMyControlObject()) return;
local state = obj.getVar("state").get_vector(0);
local passiveState = state;
if(passiveState == S_PO_FROZENLAND_MC_0) {
//local pIntVec = sq_GetGlobalIntVector();
//
//sq_IntVectorClear(pIntVec);
//sq_IntVectorPush(pIntVec, 0);
//
//obj.addSetStatePacket(S_PO_FROZENLAND_MC_1, pIntVec, STATE_PRIORITY_AUTO, false, "");
}
else if(passiveState == S_PO_FROZENLAND_MC_1) {
}
else if(passiveState == S_PO_FROZENLAND_MC_2) {
}
else if(passiveState == S_PO_FROZENLAND_MC_4) {
if(obj.isMyControlObject())
{
sq_SendDestroyPacketPassiveObject(obj);
}
}
}

View File

@@ -0,0 +1,420 @@
S_PO_FROZENLAND_POLE_0 <- 10
S_PO_FROZENLAND_POLE_1 <- 11
S_PO_FROZENLAND_POLE_2 <- 12
S_PO_FROZENLAND_POLE_3 <- 13
function procCreateShockWaveAnimation(obj, currentT)
{
if(!obj)
return;
local x = sq_GetXPos(obj);
local y = sq_GetYPos(obj);
local z = sq_GetZPos(obj);
local t = obj.getVar("state").get_timer_vector(0);
if (t.getEventTerm() == -1) {
print(" return:" + t.getEventTerm());
return;
}
if (t.isOnEvent(currentT) == true)
{
createShockWaveAnimation(obj, x, y, z);
}
}
function setCustomData_po_ATFrozenLandPole(obj, reciveData)
{
if(!obj) return;
local angle = reciveData.readDword() * 100;
local flip = reciveData.readDword();
local radiusSize = reciveData.readDword(); // 奁虽荤
local spinNum = reciveData.readDword(); // 晦菅桧 釭颤釭怃 薯濠葬缣怃 蝶?击 紫朝 热
local spinTime = reciveData.readDword(); // 模辨给桧 药怃 陛遴等煎 菟横螃朝 卫除
local multiHitTerm = reciveData.readDword(); // 晦菅 棻钦?? 除问
local multiHitAttackRate = reciveData.readDword(); // 晦菅 棻钦?? 奢问溘 (%)
local spinAddTime = reciveData.readDword(); // 模辨给桧陛 议葛搅 舆渗击 ?瞪?朝 卫除 (0.001蟾钦嫔)
local atk = sq_GetCurrentAttackInfo(obj);
if(atk)
{
sq_SetCurrentAttackBonusRate(atk, multiHitAttackRate);
}
obj.getVar("state").clear_vector(); // state vector
obj.getVar("state").push_vector(0);
obj.getVar("spin_dir").clear_vector(); // state vector
obj.getVar("spin_dir").push_vector(angle); // state vector
obj.getVar("flip").clear_vector(); // state vector
obj.getVar("flip").push_vector(0);
obj.getVar("radius").clear_vector(); // state vector
obj.getVar("radius").push_vector(radiusSize);
obj.getVar("pole").clear_vector();
obj.getVar("pole").push_vector(spinNum);
obj.getVar("pole").push_vector(spinTime);
obj.getVar().clear_vector();
obj.getVar().push_vector(0);
obj.getVar().push_vector(0);
obj.getVar().push_vector(0);
obj.getVar().push_vector(0);
obj.getVar().push_vector(0);
if(obj.isMyControlObject()) {
local pIntVec = sq_GetGlobalIntVector();
sq_IntVectorClear(pIntVec);
sq_IntVectorPush(pIntVec, 0);
obj.addSetStatePacket(S_PO_FROZENLAND_POLE_0, pIntVec, STATE_PRIORITY_AUTO, false, "");
}
if(flip)
{
obj.getVar("flip").set_vector(0, 1);
}
obj.getVar("state").clear_timer_vector();
obj.getVar("state").push_timer_vector();
local t = obj.getVar("state").get_timer_vector(0);
t.setParameter(200, -1);
t.resetInstant(0);
local hitCnt = obj.sq_var.get_vector(VECTOR_I_MULTI_HIT_COUNT);
print("\n\n multiHitTerm:" + multiHitTerm);
obj.timer_.setParameter(multiHitTerm, -1);
obj.timer_.resetInstant(0);
// 跷陛 觼煎栖赝 蒙机
// 觼煎栖赝 嬴桧蛊 跷陛 蒙机 薯濠葬缣怃 给坚毡朝 卫除桧 0尔棻 觼棻贼 舆嫔蒂 摹??朝 state煎 渗唳?捡 ?栖棻.
obj.getVar("spin").clear_vector();
obj.getVar("spin").push_vector(spinAddTime); // 譆渠偎热
obj.getVar("spin").push_vector(0);
}
function setState_po_ATFrozenLandPole(obj, state, datas)
{
if(!obj) return;
local passiveState = state;
obj.getVar("state").set_vector(0, passiveState);
local x = sq_GetXPos(obj);
local y = sq_GetYPos(obj);
local z = sq_GetZPos(obj);
if(passiveState == S_PO_FROZENLAND_POLE_0)
{
// 晦遽谢?
obj.getVar().set_vector(0, x);
obj.getVar().set_vector(1, y);
obj.getVar().set_vector(2, z);
local radius = obj.getVar("radius").get_vector(0);
local current100Angle = obj.getVar("spin_dir").get_vector(0);
current100Angle = current100Angle % 36000;
local angle = (current100Angle.tofloat() / 100.0);
local disMovLen = radius * sq_CosTable(angle.tointeger());
local mov_x = sq_GetDistancePos(x, obj.getDirection(), disMovLen.tointeger());
local axisMagnifyRate = 29.0;
local upMovLen = radius * sq_SinTable(angle.tointeger()) * axisMagnifyRate / 100;
local mov_y = y + upMovLen.tointeger();
sq_setCurrentAxisPos(obj, 1, mov_y);
sq_setCurrentAxisPos(obj, 0, mov_x);
}
else if(passiveState == S_PO_FROZENLAND_POLE_1)
{
if(obj.getVar("flip").get_vector(0))
{
local ani = obj.getCustomAnimation(1);
obj.setCurrentAnimation(ani);
}
else
{
local ani = obj.getCustomAnimation(0);
obj.setCurrentAnimation(ani);
}
//local hitCnt = 10;
//local term = 4000 / hitCnt;
//print(" \n\n term:" + term);
////obj.timer_.setParameter(term, hitCnt);
//obj.timer_.resetInstant(0);
}
if(passiveState == S_PO_FROZENLAND_POLE_1 || passiveState == S_PO_FROZENLAND_POLE_3)
{
obj.getVar().clear_ct_vector();
obj.getVar().push_ct_vector();
local t = obj.getVar().get_ct_vector(0);
t.Reset();
t.Start(10000,0);
local stateTimer = obj.getVar("state").get_timer_vector(0);
stateTimer.setParameter(200, -1);
stateTimer.resetInstant(0);
}
}
function procAppend_po_ATFrozenLandPole(obj)
{
if(!obj) return;
local pChr = obj.getTopCharacter();
if(!pChr) {
if(obj.isMyControlObject())
{
sq_SendDestroyPacketPassiveObject(obj);
}
return;
}
local state = obj.getVar("state").get_vector(0);
local passiveState = state;
local pAni = sq_GetCurrentAnimation(obj);
local frmIndex = sq_GetAnimationFrameIndex(pAni);
//local currentT = sq_GetCurrentTime(pAni);
local t = obj.getVar().get_ct_vector(0);
local currentT = 0;
if(t)
currentT = t.Get();
local x = sq_GetXPos(obj);
local y = sq_GetYPos(obj);
local z = sq_GetZPos(obj);
if(passiveState == S_PO_FROZENLAND_POLE_0) {
}
else if(passiveState == S_PO_FROZENLAND_POLE_1)
{
local stopSpinNum = obj.getVar("pole").get_vector(0);
if(obj.getVar().get_vector(2) >= stopSpinNum)
{
if(obj.isMyControlObject())
{
local pIntVec = sq_GetGlobalIntVector();
sq_IntVectorClear(pIntVec);
sq_IntVectorPush(pIntVec, 0);
// 觼煎栖赝 嬴桧蛊 跷陛 蒙机 薯濠葬缣怃 给坚毡朝 卫除桧 0尔棻 觼棻贼 舆嫔蒂 摹??朝 state煎 渗唳?捡 ?栖棻.
if(obj.getVar("spin").get_vector(0) > 0)
obj.addSetStatePacket(S_PO_FROZENLAND_POLE_3, pIntVec, STATE_PRIORITY_AUTO, false, "");
else
obj.addSetStatePacket(S_PO_FROZENLAND_POLE_2, pIntVec, STATE_PRIORITY_AUTO, false, "");
}
}
else
{
if(obj.getVar().get_vector(4) == 0)
{
if(frmIndex >= 6)
{
local spinNum = obj.getVar().get_vector(2);
obj.getVar().set_vector(2, spinNum + 1);
obj.getVar().set_vector(4, 1);
}
}
else
{
if(obj.getVar().get_vector(4) == 1)
{
if(frmIndex < 6)
{
obj.getVar().set_vector(4, 0);
}
}
}
obj.getVar().set_vector(3, currentT);
}
procCreateShockWaveAnimation(obj, currentT);
}
else if(passiveState == S_PO_FROZENLAND_POLE_3)
{
local baseX = obj.getVar().get_vector(0);
local baseY = obj.getVar().get_vector(1);
// 陕紫 侦褐
local currentSpeedRate = 1.0;
local defaultRoundTime = obj.getVar("pole").get_vector(1);
local radiusBaseSize = obj.getVar("radius").get_vector(0);
local radius = radiusBaseSize;
local base100Angle = obj.getVar("spin_dir").get_vector(0);
local current100Angle = (base100Angle + (36000 * currentSpeedRate * (currentT) / defaultRoundTime)) % 36000;
local angle = (current100Angle.tofloat() / 100.0);
//print( " angle:" + angle);
local disMovLen = radius * sq_CosTable(angle.tointeger());
local mov_x = sq_GetDistancePos(baseX, obj.getDirection(), disMovLen.tointeger());
local axisMagnifyRate = 29.0;
local upMovLen = radius * sq_SinTable(angle.tointeger()) * axisMagnifyRate / 100;
local mov_y = baseY + upMovLen.tointeger();
sq_setCurrentAxisPos(obj, 1, mov_y);
sq_setCurrentAxisPos(obj, 0, mov_x);
procCreateShockWaveAnimation(obj, currentT);
// 觼煎栖赝 嬴桧蛊 跷陛 蒙机 薯濠葬缣怃 给坚毡朝 卫除桧 0尔棻 觼棻贼 舆嫔蒂 摹??朝 state煎 渗唳?捡 ?栖棻.
local spinAddTime = obj.getVar("spin").get_vector(0);
if(currentT > spinAddTime)
{
if(obj.isMyControlObject())
{
local pIntVec = sq_GetGlobalIntVector();
sq_IntVectorClear(pIntVec);
sq_IntVectorPush(pIntVec, 0);
obj.addSetStatePacket(S_PO_FROZENLAND_POLE_2, pIntVec, STATE_PRIORITY_AUTO, false, "");
}
//obj.getVar("spin_dir").set_vector(0, angle.tointeger());
obj.getVar().set_vector(3, currentT);
}
}
else if(passiveState == S_PO_FROZENLAND_POLE_2)
{
local delaySum = obj.getVar().get_vector(3);
//local delaySum = 0;
local baseX = obj.getVar().get_vector(0);
local baseY = obj.getVar().get_vector(1);
// 陕紫 侦褐
local currentSpeedRate = 1.0;
local defaultRoundTime = obj.getVar("pole").get_vector(1);
local radiusBaseSize = obj.getVar("radius").get_vector(0);
local radius = sq_GetUniformVelocity(radiusBaseSize, 0, currentT - delaySum, defaultRoundTime);
local base100Angle = obj.getVar("spin_dir").get_vector(0);
local current100Angle = (base100Angle + (36000 * currentSpeedRate * (currentT - delaySum) / defaultRoundTime)) % 36000;
local angle = (current100Angle.tofloat() / 100.0);
local disMovLen = radius * sq_CosTable(angle.tointeger());
local mov_x = sq_GetDistancePos(baseX, obj.getDirection(), disMovLen.tointeger());
local axisMagnifyRate = 29.0;
local upMovLen = radius * sq_SinTable(angle.tointeger()) * axisMagnifyRate / 100;
local mov_y = baseY + upMovLen.tointeger();
sq_setCurrentAxisPos(obj, 1, mov_y);
sq_setCurrentAxisPos(obj, 0, mov_x);
if(currentT > (defaultRoundTime + delaySum))
{
if(obj.isMyControlObject())
{
sq_SendDestroyPacketPassiveObject(obj);
}
}
procCreateShockWaveAnimation(obj, currentT);
}
if (obj.timer_.isOnEvent(currentT) == true)
{
obj.resetHitObjectList();
}
}
function onDestroyObject_po_ATFrozenLandPole(obj, object)
{
if(!obj) return;
}
function onKeyFrameFlag_po_ATFrozenLandPole(obj, flagIndex)
{
}
function onEndCurrentAni_po_ATFrozenLandPole(obj)
{
if(!obj) return;
if(!obj.isMyControlObject()) return;
local state = obj.getVar("state").get_vector(0);
local passiveState = state;
if(passiveState == S_PO_FROZENLAND_POLE_0) {
local pIntVec = sq_GetGlobalIntVector();
sq_IntVectorClear(pIntVec);
sq_IntVectorPush(pIntVec, 0);
obj.addSetStatePacket(S_PO_FROZENLAND_POLE_1, pIntVec, STATE_PRIORITY_AUTO, false, "");
}
else if(passiveState == S_PO_FROZENLAND_POLE_1) {
}
else if(passiveState == S_PO_FROZENLAND_POLE_2) {
}
}
//*.obj;*.ani;*.als;*.lst;*.atk;*.skl;*.lst;*.ptl;*.nut;*.equ;*.ptl;*.etc
//*.obj;*.ani;*.als;*.lst;*.atk;*.skl;*.lst;*.ptl;*.nut;*.equ;*.ptl;*.etc
// *.obj;*.ani;*.als;*.lst;*.atk;*.skl;*.lst;*.ptl;*.nut;*.equ;*.ptl;*.etc;*.ui