DNF/sqr/character/creatormage/woodfence/po_woodfence.nut

185 lines
3.3 KiB
Plaintext
Raw Normal View History

2024-03-30 00:19:16 +08:00
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);
}
}
}