Sqr/character/atmage/iceroad/po_aticeroad.nut

190 lines
4.6 KiB
Plaintext
Raw 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.

function setCustomData_po_ATIceRoad(obj, reciveData)
{
if(!obj) return;
//sq_BinaryWriteDword(change_time); // 卫除
//sq_BinaryWriteDword(rate); // ?徽
//sq_BinaryWriteDword(movSpd); // 马模纂
local changeTime = reciveData.readDword(); // 卫除
local rate = reciveData.readDword(); // ?徽
local movSpd = reciveData.readDword(); // 马模纂
obj.getVar("info").clear_vector();
obj.getVar("info").push_vector(changeTime);
local atk = sq_GetCurrentAttackInfo(obj);
//sq_SetChangeStatusIntoAttackInfo(atk, 0, ACTIVESTATUS_SLOW, rate, movSpd, changeTime);
// ?撩蝶鉴暧 溯涟
// 嬴桧蝶 煎萄 ?撩 ?卫粽 蝶鉴击 寡锡棻贼 蜃擎 瞳桧 彩念 鼻鹧桧鼻缣 勘萼棻.
local exSkillLevel = reciveData.readWord();
if (exSkillLevel > 0)
{
local prob = reciveData.readFloat();
local asLevel = reciveData.readWord();
local validTime = reciveData.readDword();
sq_SetChangeStatusIntoAttackInfoWithEtc(atk, 0, ACTIVESTATUS_FREEZE, prob.tointeger(), asLevel, validTime, 0, 0);
}
}
function setState_po_ATIceRoad(obj, state, datas)
{
if(!obj) return;
}
function procAppend_po_ATIceRoad(obj)
{
if(!obj) return;
//print(" ice road");
//
}
function onAttack_po_ATIceRoad(obj, damager, boundingBox, isStuck)
{
if(!obj) return 0;
local pChr = obj.getTopCharacter();
if(!pChr) return 0;
if(obj.isMyControlObject())
{
local skill_level = sq_GetSkillLevel(pChr, SKILL_ICEROAD);
local rate = sq_GetLevelData(pChr, SKILL_ICEROAD, SKL_LV_3, skill_level); // 桧楼 ?徽
local rand = sq_getRandom(0, 100);
// 桧楼?徽桧 剩横陛捡 桧楼马模 横?蛤虽蒂 勘横鄹栖棻..
//sq_IsValidActiveStatus(damager, ACTIVESTATUS_SLOW);
if(rate >= rand)
{
local group = sq_GetGroup(damager);
local uniqueId = sq_GetUniqueId(damager);
sq_BinaryStartWrite();
sq_BinaryWriteWord(group);
sq_BinaryWriteWord(uniqueId);
sq_SendChangeSkillEffectPacket(obj, SKILL_ICEROAD);
}
}
//
return 0;
}
function onChangeSkillEffect_po_ATIceRoad(obj, skillIndex, reciveData)
{
print(" onChangeSkillEffect_po_ATIceRoad:" + obj);
if(skillIndex != SKILL_ICEROAD) return;
if(!obj) return;
local pChr = obj.getTopCharacter();
print(" onChangeSkillEffect_po_ATIceRoad:" + pChr);
if(!pChr) return;
//print(" iceroad rand:" + rand + " rate:" + rate);
local group = reciveData.readWord();
local uniqueId = reciveData.readWord();
local damager = sq_GetObject(obj, group, uniqueId);
local active_damager = sq_GetCNRDObjectToActiveObject(damager);
if(!active_damager) return 0;
local appendage = CNSquirrelAppendage.sq_AppendAppendage(damager, damager, SKILL_ICEROAD, true, "Character/ATMage/IceRoad/ap_ATMage_IceRoadCS.nut", false);
// 罹晦怃 append 蒙机
CNSquirrelAppendage.sq_AppendAppendageID(appendage, damager, damager, APID_SKILL_LIGHT_ENCHANT_WEAPON, false);
//
// 酝犒肾贼 寰肾晦 阳侥缣.. 棻卫 椭朝棻..
appendage = active_damager.GetSquirrelAppendage("Character/ATMage/IceRoad/ap_ATMage_IceRoadCS.nut");
// 桧楼 马模
if(appendage)
{
local skill_level = sq_GetSkillLevel(pChr, SKILL_ICEROAD);
local change_time = sq_GetLevelData(pChr, SKILL_ICEROAD, SKL_LV_1, skill_level); // 虽楼卫除
//local change_time = 5000;
appendage.sq_SetValidTime(change_time); // 横?蛤虽 颤歜 撮?
local mov_spd = sq_GetLevelData(pChr, SKILL_ICEROAD, SKL_LV_2, skill_level); // 虽楼卫除
mov_spd = -mov_spd;
//local mov_spd = -600;
print(" mov_spd:" + mov_spd.tofloat());
appendage.getTimer().Reset();
appendage.getTimer().Start(0,0);
appendage.sq_var.clear_vector();
appendage.sq_var.push_vector(change_time); // 虽楼卫除
appendage.sq_var.push_vector(0); // ?楚斜
local change_appendage = appendage.sq_getChangeStatus("changeStatus");
if(!change_appendage)
change_appendage = appendage.sq_AddChangeStatusAppendageID(damager, damager, 0, CHANGE_STATUS_TYPE_MOVE_SPEED, false, mov_spd, APID_COMMON);
if(change_appendage)
{
change_appendage.clearParameter();
change_appendage.addParameter(CHANGE_STATUS_TYPE_MOVE_SPEED, false, mov_spd.tofloat());
}
}
else
{
print(" exist appendage");
}
}
function onDestroyObject_po_ATIceRoad(obj, object)
{
if(!obj) return;
}
function onKeyFrameFlag_po_ATIceRoad(obj, flagIndex)
{
}
function onEndCurrentAni_po_ATIceRoad(obj)
{
if(!obj) return;
if(obj.isMyControlObject()) {
sq_SendDestroyPacketPassiveObject(obj);
}
}