165 lines
5.0 KiB
Plaintext
165 lines
5.0 KiB
Plaintext
// 蝶鉴 撮睡嫦翕 亵勒击 虏菟横舆朝 ?热殓栖棻.. 嫦翕 亵勒 state朝 桧嘐 模蝶缣怃 掘?肾横 毡蝗栖棻. 桧够缣怃 useskill娄 setstate蒂 虽姜?舆贼 腌栖棻.
|
|
function checkExecutableSkill_Ripper(obj)
|
|
{
|
|
if(!obj) return false;
|
|
local b_useskill = obj.sq_IsUseSkill(SKILL_RIPPER);
|
|
if(b_useskill) {
|
|
obj.sq_addSetStatePacket(STATE_RIPPER, STATE_PRIORITY_USER, false);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
// 蝶鉴嬴桧夔 ?撩? 亵勒击 评虽朝 ?热殓栖棻. true蒂 葬欐?贼 蝶鉴 嬴桧夔桧 ?撩?陛 腌栖棻. (嫦翕亵勒 state朝 模蝶缣怃 籀葬腌栖棻.)
|
|
function checkCommandEnable_Ripper(obj)
|
|
{
|
|
if(!obj) return false;
|
|
|
|
local state = obj.sq_GetSTATE();
|
|
|
|
if(state == STATE_ATTACK) {
|
|
// 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20]
|
|
return obj.sq_IsCommandEnable(SKILL_RIPPER);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
|
//isCheckHitCollision谛 checkHit朝 ?问 羹觼蒂 鼻渠寞桧 嬴棋 顶陛 ?捡 ?唳办缣 噙樯棻. pvp缣摹 鼻渠寞桧 ?问羹觼蒂 ?贼 拟港卫除桧 替溥 蝶鉴桧 警蜗肾朝 唳办陛 毡晦 阳侥.
|
|
function onIsCheckHitCollision_Ripper(obj,damager)
|
|
{
|
|
return obj.isMyControlObject();
|
|
}
|
|
|
|
function isForceHitCheck_Ripper(obj)
|
|
{
|
|
return obj.isMyControlObject();
|
|
}
|
|
|
|
function onAttack_Ripper(obj,damager,boundingBox)
|
|
{
|
|
local sq_var = obj.getVar();
|
|
sq_var.setBool(0,true); // 奢问 撩奢
|
|
|
|
local isLast = sq_var.getBool(1); // 虞颤
|
|
if (!isLast) {
|
|
sq_var.push_obj_vector(damager);
|
|
sq_AtrractionForce(obj, damager, false, 270, -1, 2000.0, 1500.0, false); // 尘横顶晦
|
|
sq_EffectLayerAppendage(damager,sq_RGB(255,255,255),155,0,80,0);
|
|
}
|
|
}
|
|
|
|
|
|
function onEndState_Ripper(obj, newState)
|
|
{
|
|
if(!obj) return;
|
|
local sq_var = obj.getVar();
|
|
sq_var.clear_obj_vector();
|
|
|
|
local ani = sq_GetCurrentAnimation(obj);
|
|
if(ani){
|
|
local sizeRate = sq_var.getFloat(2);
|
|
ani.setAttackBoundingBoxSizeRate(1.0/sizeRate,true);
|
|
}
|
|
}
|
|
|
|
|
|
// state蒂 撮??坚 籀挤戏煎 菟横螃啪 腌栖棻. 陕谦 葬模蝶蒂 撮??栖棻.
|
|
function onSetState_Ripper(obj, state, datas, isResetTimer)
|
|
{
|
|
if(!obj) return;
|
|
local sq_var = obj.getVar();
|
|
obj.sq_stopMove();
|
|
obj.sq_setCurrentAnimation(CUSTOM_ANI_RIPPER);
|
|
obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_RIPPER);
|
|
obj.sq_setAttackPowerWithPassive(SKILL_RIPPER, state, -1,0,1.0);
|
|
sq_var.setBool(0,false);
|
|
sq_var.setBool(1,false);
|
|
sq_var.setFloat(2,1.0);
|
|
|
|
obj.sq_setXScroll(180,500,1500,100);
|
|
obj.sq_PlaySound("PR_RIPPER_READY");
|
|
}
|
|
|
|
function onEndCurrentAni_Ripper(obj)
|
|
{
|
|
obj.sq_addSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
|
|
obj.sq_setfindNearMovablePos(obj.getXPos(),obj.getYPos(),50,1,5);
|
|
}
|
|
|
|
function onKeyFrameFlag_Ripper(obj,flagIndex)
|
|
{
|
|
local isMycontrolObject = obj.sq_isMyControlObject();
|
|
local sq_var = obj.getVar();
|
|
|
|
if(isMycontrolObject && flagIndex == 1) // 霞翕,廓翻 桧??朝 釭缣啪虏 尔樯棻.
|
|
obj.sq_setShake(obj,4,60);
|
|
else if(isMycontrolObject && flagIndex == 2)
|
|
obj.sq_setShake(obj,2,30);
|
|
else if(flagIndex == 3)
|
|
{
|
|
if(isMycontrolObject)
|
|
obj.sq_setShake(obj,3,60);
|
|
}
|
|
else if(isMycontrolObject && flagIndex == 4)
|
|
obj.sq_setShake(obj,2,30);
|
|
else if(flagIndex == 6)
|
|
{
|
|
obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_RIPPER);
|
|
local state = obj.sq_GetSTATE();
|
|
obj.sq_setAttackPowerWithPassive(SKILL_RIPPER, state, -1,0,1.0);
|
|
}
|
|
else if(flagIndex == 5 && sq_var.getBool(0))
|
|
{
|
|
local state = obj.sq_GetSTATE();
|
|
|
|
obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_RIPPER_EXPLOSION);
|
|
|
|
// 葬? ?撩 蝶鉴桧贼
|
|
local exSkillLevel = sq_GetSkillLevel(obj,SKILL_RIPPER_EX);
|
|
if(!sq_isPVPMode() && exSkillLevel > 0) {
|
|
local sizeRate = sq_GetLevelData(obj, SKILL_RIPPER, 2, exSkillLevel);
|
|
sizeRate = sizeRate * 0.01;
|
|
|
|
local ani = sq_GetCurrentAnimation(obj);
|
|
if(ani){
|
|
ani.setAttackBoundingBoxSizeRate(sizeRate,true);
|
|
sq_var.setFloat(2,sizeRate);
|
|
}
|
|
}
|
|
|
|
|
|
obj.sq_setAttackPowerWithPassive(SKILL_RIPPER, state, -1,1,1.0);
|
|
sq_AddDrawOnlyAniFromParent(obj,"Character/Priest/Effect/Animation/Ripper/etc/33p_1_burst1-handup_normal.ani",0,1,0);
|
|
sq_AddDrawOnlyAniFromParent(obj,"Character/Priest/Effect/Animation/Ripper/etc/33p_burst1-handup_normal.ani",0,1,0);
|
|
if(isMycontrolObject)
|
|
{
|
|
local flash = sq_flashScreen(obj,80, 80, 0, 255, sq_RGBA(255,255,255,128),GRAPHICEFFECT_NONE,ENUM_DRAWLAYER_BOTTOM);
|
|
sq_addFlashScreen(flash,0,0,400,255,sq_RGBA(0,0,0,180),GRAPHICEFFECT_NONE,ENUM_DRAWLAYER_BOTTOM);
|
|
|
|
local objListSize = sq_var.get_obj_vector_size();
|
|
for(local i =0;i<objListSize;++i)
|
|
{
|
|
local obj = sq_var.get_obj_vector(i);
|
|
if(obj == null)
|
|
continue;
|
|
|
|
sq_EffectLayerAppendage(obj,sq_RGB(0,0,0),255,0,160,160);
|
|
}
|
|
}
|
|
}
|
|
else if(flagIndex == 7 && sq_var.getBool(0))
|
|
{
|
|
sq_var.setBool(1,true);
|
|
if(isMycontrolObject)
|
|
sq_SendCreatePassiveObjectPacket(obj,24102, 0, 267, 1, 83,obj.getDirection());
|
|
obj.sq_PlaySound("R_PR_RIPPER");
|
|
}
|
|
|
|
return true;
|
|
}
|