Sqr/character/atmage/iceroad/po_aticeroad.nut

190 lines
4.6 KiB
Plaintext
Raw Normal View History

2024-03-18 21:37:40 +08:00
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);
}
}