190 lines
4.6 KiB
Plaintext
190 lines
4.6 KiB
Plaintext
|
||
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);
|
||
}
|
||
|
||
}
|
||
|