Sqr/character/creatormage/woodfence/po_woodfence.nut

185 lines
3.3 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

sub_state_0 <- 0
sub_state_1 <- 1
function setCustomData_po_CreatorWoodFence(obj,recive)
{
if (!obj) return;
local time = recive.readDword();
local chr = obj.getTopCharacter();
if (chr)
{
local map = sq_GetMap(chr);
if (map)
{
map.recalcAStarAttributesByMovableObject(obj, false);
}
}
obj.getVar().clear_vector();
obj.getVar().push_vector(time); // 卫除
obj.getVar().push_vector(0); // ?楚斜
obj.getVar().clear_timer_vector();
obj.getVar().push_timer_vector();
obj.getVar().push_timer_vector();
local t = obj.getVar().get_timer_vector(0);
t.setParameter(20, -1);
t.resetInstant(0);
obj.getVar().clear_ct_vector();
obj.getVar().push_ct_vector();
local timer = obj.getVar().get_ct_vector(0);
timer.Reset();
timer.Start(10000,0);
obj.getVar("state").clear_vector();
obj.getVar("state").push_vector(0);
if(obj.isMyControlObject())
{
local pIntVec = sq_GetGlobalIntVector();
sq_IntVectorClear(pIntVec);
sq_IntVectorPush(pIntVec, 0);
obj.addSetStatePacket(PASSIVEOBJ_SUB_STATE_0, pIntVec, STATE_PRIORITY_AUTO, false, "");
}
}
function setState_po_CreatorWoodFence(obj,state,datas)
{
if(!obj) return;
local passiveState = state;
obj.getVar("state").set_vector(0, passiveState);
if(passiveState == PASSIVEOBJ_SUB_STATE_0)
{
//local ani = obj.getCustomAnimation(0);
//obj.setCurrentAnimation(ani);
local chr = obj.getTopCharacter();
local map = sq_GetMap(chr);
if (map)
{
map.recalcAStarAttributesByMovableObject(obj, false);
}
}
else if(passiveState == PASSIVEOBJ_SUB_STATE_1)
{
local ani = obj.getCustomAnimation(0);
obj.setCurrentAnimation(ani);
}
}
function procAppend_po_CreatorWoodFence(obj)
{
if(!obj) return;
local chr = obj.getTopCharacter();
local passiveState = obj.getVar("state").get_vector(0);
if (chr)
{
local initFlag = obj.getVar().get_vector(1);
if (!initFlag)
obj.getVar().set_vector(1, 1);
}
local ani = sq_GetCurrentAnimation(obj);
if (passiveState == PASSIVEOBJ_SUB_STATE_0)
{
local t = obj.getVar().get_ct_vector(0);
if (t)
{
local currentT = t.Get();
local maxTime = obj.getVar().get_vector(0);
if (currentT >= maxTime)
{
if (obj.isMyControlObject())
{
local pIntVec = sq_GetGlobalIntVector();
sq_IntVectorClear(pIntVec);
sq_IntVectorPush(pIntVec, 0);
obj.addSetStatePacket(PASSIVEOBJ_SUB_STATE_1, pIntVec, STATE_PRIORITY_AUTO, false, "");
//sq_SendDestroyPacketPassiveObject(obj);
}
}
}
}
else if (passiveState == PASSIVEOBJ_SUB_STATE_1)
{
if (sq_IsEnd(ani))
{
sq_SendDestroyPacketPassiveObject(obj);
}
}
}
function onChangeSkillEffect_po_CreatorWoodFence(obj,skillIndex,reciveData)
{
if(!obj) return;
}
function onDestroyObject_po_CreatorWoodFence(obj,object)
{
if(!obj) return;
}
function onKeyFrameFlag_po_CreatorWoodFence(obj,flagIndex)
{
if(!obj) return;
}
function onEndCurrentAni_po_CreatorWoodFence(obj)
{
if(!obj) return;
}
function destroy_po_CreatorWoodFence(obj)
{
local chr = obj.getTopCharacter();
if (chr)
{
local map = sq_GetMap(chr);
if (map)
{
map.recalcAStarAttributesByMovableObject(obj, true);
}
}
}