111
This commit is contained in:
BIN
passiveobject/character/priest/po_devilstrike_attack1.nut
Normal file
BIN
passiveobject/character/priest/po_devilstrike_attack1.nut
Normal file
Binary file not shown.
BIN
passiveobject/character/priest/po_devilstrike_attack2.nut
Normal file
BIN
passiveobject/character/priest/po_devilstrike_attack2.nut
Normal file
Binary file not shown.
BIN
passiveobject/character/priest/po_devilstrike_attack3.nut
Normal file
BIN
passiveobject/character/priest/po_devilstrike_attack3.nut
Normal file
Binary file not shown.
BIN
passiveobject/character/priest/po_disasterexp.nut
Normal file
BIN
passiveobject/character/priest/po_disasterexp.nut
Normal file
Binary file not shown.
BIN
passiveobject/character/priest/po_earthquakerock.nut
Normal file
BIN
passiveobject/character/priest/po_earthquakerock.nut
Normal file
Binary file not shown.
86
passiveobject/character/priest/po_pendemoniumexdevil.nut
Normal file
86
passiveobject/character/priest/po_pendemoniumexdevil.nut
Normal file
@@ -0,0 +1,86 @@
|
||||
PEND_EX_PO_IS_MOVING <- 0;
|
||||
PEND_EX_PO_POS_X <- 1;
|
||||
PEND_EX_PO_SPEED <- 2;
|
||||
PEND_EX_MOVE_MAX <- 3;
|
||||
|
||||
function setCustomData_po_PandemoniumEx(obj,reciveData)
|
||||
{
|
||||
local scale = reciveData.readWord();
|
||||
local speed = reciveData.readWord();
|
||||
local maxTime = reciveData.readWord();
|
||||
local maxDistance = reciveData.readWord();
|
||||
local dmg = reciveData.readDword();
|
||||
|
||||
local posX = obj.getXPos();
|
||||
|
||||
local pAttack = sq_GetCurrentAttackInfo(obj);
|
||||
sq_SetCurrentAttackBonusRate(pAttack, dmg);
|
||||
|
||||
//scale 暧 彰嫔朝 0~4 0桧贼 蒙擎 饵桧锷 斜桧谖缚 赎饵桧锷
|
||||
local ani = obj.getCurrentAnimation();
|
||||
local addAni = null;
|
||||
if(scale == 0) {
|
||||
obj.setCurrentAnimation(obj.getCustomAnimation(1));
|
||||
ani = obj.getCurrentAnimation();
|
||||
addAni = obj.getCustomAnimation(2);
|
||||
}
|
||||
else {
|
||||
addAni = obj.getCustomAnimation(0);
|
||||
}
|
||||
|
||||
if(ani && addAni)
|
||||
ani.addLayerAnimation(2,addAni,false);
|
||||
|
||||
if(ani)
|
||||
ani.setFrameDelay(4,maxTime,true);
|
||||
|
||||
|
||||
obj.sq_var.setBool(PEND_EX_PO_IS_MOVING,false);
|
||||
obj.sq_var.setInt(PEND_EX_PO_POS_X, posX);
|
||||
obj.sq_var.setInt(PEND_EX_PO_SPEED, speed);
|
||||
obj.sq_var.setInt(PEND_EX_MOVE_MAX, maxDistance);
|
||||
|
||||
}
|
||||
|
||||
function procAppend_po_PandemoniumEx(obj)
|
||||
{
|
||||
if(obj.sq_var.getBool(PEND_EX_PO_IS_MOVING))
|
||||
{
|
||||
local currentTime = obj.sq_var.get_ct_vector(0);
|
||||
local posX = obj.getXPos();
|
||||
local posY = obj.getYPos();
|
||||
local posZ = obj.getZPos();
|
||||
local speed = obj.sq_var.getInt(PEND_EX_PO_SPEED);
|
||||
local maxDistanceX = obj.sq_var.getInt(PEND_EX_MOVE_MAX);
|
||||
|
||||
local startPosX = obj.sq_var.getInt(PEND_EX_PO_POS_X);
|
||||
local distanceX = sq_GetUniformVelocity(0, speed, currentTime.Get(), maxDistanceX);
|
||||
|
||||
posX = sq_GetDistancePos(startPosX, obj.getDirection(), distanceX);
|
||||
obj.setCurrentPos(posX, posY, posZ);
|
||||
}
|
||||
}
|
||||
|
||||
function onKeyFrameFlag_po_PandemoniumEx(obj,flagIndex)
|
||||
{
|
||||
if(flagIndex == 0) {
|
||||
//if(obj.sq_isMyControlObject()) // 霞翕,廓翻 桧??朝 釭缣啪虏 尔樯棻.
|
||||
// obj.sq_setShake(obj,3,150);
|
||||
obj.sq_var.push_ct_vector();
|
||||
local currentTime = obj.sq_var.get_ct_vector(0);
|
||||
|
||||
currentTime.Start(9999999,0);
|
||||
|
||||
obj.sq_var.setBool(PEND_EX_PO_IS_MOVING,true);
|
||||
|
||||
|
||||
//sq_SendDestroyPacketPassiveObject(obj);
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function onEndCurrentAni_po_PandemoniumEx(obj)
|
||||
{
|
||||
sq_SendDestroyPacketPassiveObject(obj);
|
||||
}
|
||||
24
passiveobject/character/priest/po_powerofdarknessarrow.nut
Normal file
24
passiveobject/character/priest/po_powerofdarknessarrow.nut
Normal file
@@ -0,0 +1,24 @@
|
||||
function setCustomData_po_PowerOfDarknessArrow(obj,reciveData)
|
||||
{
|
||||
local angle = reciveData.readFloat();
|
||||
local rate = reciveData.readDword();
|
||||
sq_SetCustomRotate(obj,angle);
|
||||
|
||||
|
||||
local pAttack = sq_GetCurrentAttackInfo(obj);
|
||||
sq_SetCurrentAttackBonusRate(pAttack, rate);
|
||||
}
|
||||
|
||||
function onKeyFrameFlag_po_PowerOfDarknessArrow(obj,flagIndex)
|
||||
{
|
||||
if(flagIndex == 1) {
|
||||
if(obj.sq_isMyControlObject()) // 霞翕,廓翻 桧??朝 釭缣啪虏 尔樯棻.
|
||||
obj.sq_setShake(obj,3,150);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function onEndCurrentAni_po_PowerOfDarknessArrow(obj)
|
||||
{
|
||||
sq_SendDestroyPacketPassiveObject(obj);
|
||||
}
|
||||
BIN
passiveobject/character/priest/po_powerofdarknesscircle.nut
Normal file
BIN
passiveobject/character/priest/po_powerofdarknesscircle.nut
Normal file
Binary file not shown.
BIN
passiveobject/character/priest/po_ripperexplosion.nut
Normal file
BIN
passiveobject/character/priest/po_ripperexplosion.nut
Normal file
Binary file not shown.
189
passiveobject/character/priest/po_spincutter.nut
Normal file
189
passiveobject/character/priest/po_spincutter.nut
Normal file
@@ -0,0 +1,189 @@
|
||||
|
||||
//S_SPINCUTTER_THROW <- 0
|
||||
//S_SPINCUTTER_RECALL <- 1
|
||||
//S_SPINCUTTER_ARRIVAL <- 2
|
||||
|
||||
S_PO_SPINCUTTER_THROW <- 10
|
||||
S_PO_SPINCUTTER_RECALL <- 11
|
||||
|
||||
VECTOR_I_RECALL_FLAG <- 0
|
||||
VECTOR_I_RECALL_STD_X <- 1
|
||||
VECTOR_I_MULTI_HIT_COUNT <- 2
|
||||
VECTOR_I_ATTACK_RATE <- 3 // 奢问溘
|
||||
|
||||
|
||||
//function setCustomData_po_Spincutter(obj, data, size)
|
||||
function setCustomData_po_Spincutter(obj,reciveData)
|
||||
{
|
||||
//sq_BinaryStartRead(data);
|
||||
//local multi_count = sq_BinaryGetDWord();
|
||||
//local rate = sq_BinaryGetDWord();
|
||||
local multi_count = reciveData.readDword();
|
||||
local rate = reciveData.readDword();
|
||||
|
||||
|
||||
|
||||
obj.sq_var.push_vector(0);
|
||||
obj.sq_var.push_vector(0);
|
||||
obj.sq_var.push_vector(0);
|
||||
obj.sq_var.push_vector(0);
|
||||
obj.sq_var.push_vector(0);
|
||||
|
||||
obj.sq_var.set_vector(VECTOR_I_MULTI_HIT_COUNT, multi_count);
|
||||
obj.sq_var.set_vector(VECTOR_I_ATTACK_RATE, rate);
|
||||
|
||||
local attackInfo = sq_GetCustomAttackInfo(obj, 0);
|
||||
sq_SetCurrentAttackInfo(obj, attackInfo);
|
||||
|
||||
local pAttack = sq_GetCurrentAttackInfo(obj);
|
||||
sq_SetCurrentAttackBonusRate(pAttack, rate);
|
||||
|
||||
|
||||
local pAni = obj.getCurrentAnimation();
|
||||
local initDelay = 0;
|
||||
local attackTime = pAni.getDelaySum(false);
|
||||
local hitCnt = obj.sq_var.get_vector(VECTOR_I_MULTI_HIT_COUNT);
|
||||
|
||||
local term = 500 / hitCnt;
|
||||
//print("term = attackTime / hitCnt :" + attackTime);
|
||||
|
||||
obj.timer_.setParameter(term, hitCnt);
|
||||
obj.timer_.resetInstant(initDelay);
|
||||
|
||||
//print("\n eType:" + eType);
|
||||
|
||||
}
|
||||
|
||||
function setState_po_Spincutter(obj, state, datas)
|
||||
{
|
||||
local passiveState = state;
|
||||
|
||||
|
||||
if(passiveState == S_PO_SPINCUTTER_THROW) {
|
||||
}
|
||||
else if(passiveState == S_PO_SPINCUTTER_RECALL) {
|
||||
local pA = obj.getCustomAnimation(0);
|
||||
|
||||
|
||||
local objectX = sq_GetVectorData(datas, 0); // xpos
|
||||
|
||||
obj.setCurrentAnimation(pA);
|
||||
obj.sq_var.set_vector(VECTOR_I_RECALL_STD_X, objectX);
|
||||
|
||||
//print("objectx:" + objectX + "getxpos" + obj.getXPos());
|
||||
|
||||
local attackInfo = sq_GetDefaultAttackInfo(obj);
|
||||
sq_SetCurrentAttackInfo(obj, attackInfo);
|
||||
local rate = obj.sq_var.get_vector(VECTOR_I_ATTACK_RATE);
|
||||
|
||||
local current_attack_info = sq_GetCurrentAttackInfo(obj);
|
||||
//print(" spincutter attack rate:" + rate);
|
||||
sq_SetCurrentAttackBonusRate(current_attack_info, rate);
|
||||
|
||||
|
||||
local pAni = obj.getCurrentAnimation();
|
||||
|
||||
local initDelay = 0;
|
||||
local attackTime = pAni.getDelaySum(false);
|
||||
local hitCnt = obj.sq_var.get_vector(VECTOR_I_MULTI_HIT_COUNT);
|
||||
//local hitCnt = 6;
|
||||
local term = attackTime / hitCnt;
|
||||
|
||||
obj.timer_.setParameter(term, hitCnt);
|
||||
obj.timer_.resetInstant(initDelay);
|
||||
|
||||
//print("setCustomData_po_Spincutter x:" + obj.getXPos());
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function procAppend_po_Spincutter(obj)
|
||||
{
|
||||
local pChr = obj.getTopCharacter();
|
||||
|
||||
if(!pChr)
|
||||
{
|
||||
sq_SendDestroyPacketPassiveObject(obj);
|
||||
return;
|
||||
}
|
||||
|
||||
local state = pChr.getState();
|
||||
local substate = pChr.getSkillSubState();
|
||||
local pAni = pChr.getCurrentAnimation();
|
||||
local frmIndex = pAni.GetCurrentFrameIndex();
|
||||
local bEnd = sq_IsEnd(pAni);
|
||||
local isMyControl = obj.isMyControlObject();
|
||||
|
||||
|
||||
if(state != STATE_SPINCUTTER)
|
||||
{
|
||||
sq_SendDestroyPacketPassiveObject(obj);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(substate == S_SPINCUTTER_THROW) {
|
||||
}
|
||||
else if(substate == S_SPINCUTTER_RECALL) {
|
||||
local flag = obj.sq_var.get_vector(VECTOR_I_RECALL_FLAG);
|
||||
if(flag == 0) {
|
||||
obj.sq_var.set_vector(VECTOR_I_RECALL_FLAG, 1);
|
||||
if(isMyControl == true) {
|
||||
// vector
|
||||
local pIntVec = sq_GetGlobalIntVector();
|
||||
sq_IntVectorClear(pIntVec);
|
||||
sq_IntVectorPush(pIntVec, obj.getXPos());
|
||||
|
||||
//print("sq_IntVectorPush:" + obj.getXPos());
|
||||
|
||||
obj.addSetStatePacket(S_PO_SPINCUTTER_RECALL, pIntVec, STATE_PRIORITY_AUTO, false, "");
|
||||
//sq_addSetStatePacketColObj(obj, S_PO_SPINCUTTER_RECALL);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(obj.getState() == S_PO_SPINCUTTER_RECALL) {
|
||||
local dstX = sq_GetDistancePos(pChr.getXPos(), obj.getDirection(), 80);
|
||||
//local dstX = pChr.getXPos();
|
||||
local currentT = sq_GetCurrentTime(pAni);
|
||||
local totalT = pAni.getDelaySum(false);
|
||||
local srcX = obj.sq_var.get_vector(VECTOR_I_RECALL_STD_X);
|
||||
local posX = sq_GetAccel(srcX, dstX, currentT, totalT, false);
|
||||
//local posX = sq_GetAccel(srcX, dstX, currentT, totalT - 100, false);
|
||||
local posY = obj.getYPos();
|
||||
local posZ = obj.getZPos();
|
||||
obj.setCurrentPos(posX, posY, posZ);
|
||||
|
||||
//print("src x:" + srcX + "dst x:" + dstX);
|
||||
}
|
||||
}
|
||||
|
||||
//local pObjAni = obj.getCurrentAnimation();
|
||||
//local time = sq_GetCurrentTime(pObjAni);
|
||||
//
|
||||
//if (obj.timer_.isOnEvent(time) == true)
|
||||
//obj.resetHitObjectList();
|
||||
|
||||
}
|
||||
else if(substate == S_SPINCUTTER_ARRIVAL) {
|
||||
sq_SendDestroyPacketPassiveObject(obj);
|
||||
return;
|
||||
}
|
||||
|
||||
local pObjAni = obj.getCurrentAnimation();
|
||||
local time = sq_GetCurrentTime(pObjAni);
|
||||
|
||||
if (obj.timer_.isOnEvent(time) == true) {
|
||||
//print("resetHitObjectList");
|
||||
obj.resetHitObjectList();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function onDestroyObject_po_Spincutter(obj, object)
|
||||
{
|
||||
}
|
||||
|
||||
62
passiveobject/character/priest/po_spincutterthrow.nut
Normal file
62
passiveobject/character/priest/po_spincutterthrow.nut
Normal file
@@ -0,0 +1,62 @@
|
||||
|
||||
//S_SPINCUTTER_THROW <- 0
|
||||
//S_SPINCUTTER_RECALL <- 1
|
||||
//S_SPINCUTTER_ARRIVAL <- 2
|
||||
|
||||
|
||||
//function setCustomData_po_SpincutterThrow(obj, data, size)
|
||||
function setCustomData_po_SpincutterThrow(obj,reciveData)
|
||||
{
|
||||
//sq_BinaryStartRead(data);
|
||||
//local rate = sq_BinaryGetDWord();
|
||||
|
||||
local rate = reciveData.readDword();
|
||||
|
||||
|
||||
local pAttack = sq_GetCurrentAttackInfo(obj);
|
||||
sq_SetCurrentAttackBonusRate(pAttack, rate);
|
||||
// sq_SetCurrentAttacknBackForce(pAttack, 800);
|
||||
// sq_SetCurrentAttacknUpForce(pAttack, 300);
|
||||
// sq_SetCurrentAttackDirection(pAttack, ATTACK_DIRECTION_UP);
|
||||
// sq_SetCurrentAttackeDamageAct(pAttack, DAMAGEACT_DAMAGE);
|
||||
}
|
||||
|
||||
function setState_po_SpincutterThrow(obj, state, datas)
|
||||
{
|
||||
}
|
||||
|
||||
function procAppend_po_SpincutterThrow(obj)
|
||||
{
|
||||
local pChr = obj.getTopCharacter();
|
||||
|
||||
if(!pChr)
|
||||
{
|
||||
sq_SendDestroyPacketPassiveObject(obj);
|
||||
return;
|
||||
}
|
||||
|
||||
local state = pChr.getState();
|
||||
local substate = pChr.getSkillSubState();
|
||||
local pAni = pChr.getCurrentAnimation();
|
||||
local frmIndex = pAni.GetCurrentFrameIndex();
|
||||
local bEnd = sq_IsEnd(pAni);
|
||||
local isMyControl = obj.isMyControlObject();
|
||||
|
||||
|
||||
if(state != STATE_SPINCUTTER)
|
||||
{
|
||||
sq_SendDestroyPacketPassiveObject(obj);
|
||||
return;
|
||||
}
|
||||
|
||||
if(substate != S_SPINCUTTER_THROW) {
|
||||
sq_SendDestroyPacketPassiveObject(obj);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function onDestroyObject_po_SpincutterThrow(obj, object)
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user