111
This commit is contained in:
46
character/ATGunner/ATGunner13State.nut
Normal file
46
character/ATGunner/ATGunner13State.nut
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
文件名:ATGunner13State.nut
|
||||
路径:character/ATGunner/ATGunner13State.nut
|
||||
创建日期:2022-09-10 17:39
|
||||
文件用途:女枪手13号状态
|
||||
*/
|
||||
|
||||
if (!getroottable().rawin("onSetState_ATGunner13State_Table")) onSetState_ATGunner13State_Table <- {}
|
||||
|
||||
function onSetState_ATGunner13State(obj, state, datas, isResetTimer) {
|
||||
|
||||
//遍历并执行函数
|
||||
foreach(Flag, Func in onSetState_ATGunner13State_Table) {
|
||||
Func(obj, state, datas, isResetTimer);
|
||||
}
|
||||
//return 1;
|
||||
}
|
||||
|
||||
|
||||
if (!getroottable().rawin("onEndCurrentAni_ATGunner13State_Table")) onEndCurrentAni_ATGunner13State_Table <- {}
|
||||
|
||||
function onEndCurrentAni_ATGunner13State(obj)
|
||||
{
|
||||
if(!obj) return;
|
||||
|
||||
//遍历并执行函数
|
||||
foreach(Flag, Func in onEndCurrentAni_ATGunner13State_Table) {
|
||||
Func(obj);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (!getroottable().rawin("onKeyFrameFlag_ATGunner13State_Table")) onKeyFrameFlag_ATGunner13State_Table <- {}
|
||||
|
||||
function onKeyFrameFlag_ATGunner13State(obj, flagIndex)
|
||||
{
|
||||
if (!obj) return false;
|
||||
|
||||
//遍历并执行函数
|
||||
foreach(Flag, Func in onKeyFrameFlag_ATGunner13State_Table) {
|
||||
Func(obj, flagIndex);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
132
character/ATGunner/ATGunner_po.nut
Normal file
132
character/ATGunner/ATGunner_po.nut
Normal file
@@ -0,0 +1,132 @@
|
||||
/*
|
||||
文件名:ATGunner_po.nut
|
||||
路径:character/ATGunner/ATGunner_po.nut
|
||||
创建日期:2022-09-10 21:59
|
||||
文件用途:女枪手PO文件
|
||||
*/
|
||||
|
||||
if (!getroottable().rawin("setCustomData_po_atgunner_po_Table")) setCustomData_po_atgunner_po_Table <- {}
|
||||
function setCustomData_po_atgunner_po(obj, receiveData)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = receiveData.readDword(); //开始读取 四字节数 数据
|
||||
obj.getVar("skill").clear_vector(); //清空 Skill 储存器
|
||||
obj.getVar("skill").push_vector(skillid); //向 Skill 储存器 push内容
|
||||
|
||||
|
||||
//根据 技能ID 判断执行函数
|
||||
if (setCustomData_po_atgunner_po_Table.rawin(skillid)) {
|
||||
setCustomData_po_atgunner_po_Table[skillid](obj, receiveData);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!getroottable().rawin("setState_po_atgunner_po_Table")) setState_po_atgunner_po_Table <- {}
|
||||
function setState_po_atgunner_po(obj, state, datas)
|
||||
{
|
||||
if (!obj) return;
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
//根据 技能ID 判断执行函数
|
||||
if (setState_po_atgunner_po_Table.rawin(skillid)) {
|
||||
setState_po_atgunner_po_Table[skillid](obj, state, datas);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!getroottable().rawin("procAppend_po_atgunner_po_Table")) procAppend_po_atgunner_po_Table <- {}
|
||||
function procAppend_po_atgunner_po(obj) //处于obj特效状态中
|
||||
{
|
||||
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = obj.getVar("skill").get_vector(0); //获取 Skill 储存器 0号位内容
|
||||
|
||||
|
||||
//根据 技能ID 判断执行函数
|
||||
if (procAppend_po_atgunner_po_Table.rawin(skillid)) {
|
||||
procAppend_po_atgunner_po_Table[skillid](obj);
|
||||
}
|
||||
}
|
||||
|
||||
if (!getroottable().rawin("onAttack_po_atgunner_po_Table")) onAttack_po_atgunner_po_Table <- {}
|
||||
function onAttack_po_atgunner_po(obj, damager, boundingBox, isStuck)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
if (!damager)
|
||||
return 0;
|
||||
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
|
||||
//根据 技能ID 判断执行函数
|
||||
if (onAttack_po_atgunner_po_Table.rawin(skillid)) {
|
||||
onAttack_po_atgunner_po_Table[skillid](obj, damager, boundingBox, isStuck);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
if (!getroottable().rawin("onEndCurrentAni_po_atgunner_po_Table")) onEndCurrentAni_po_atgunner_po_Table <- {}
|
||||
function onEndCurrentAni_po_atgunner_po(obj)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
|
||||
//根据 技能ID 判断执行函数
|
||||
if (onEndCurrentAni_po_atgunner_po_Table.rawin(skillid)) {
|
||||
onEndCurrentAni_po_atgunner_po_Table[skillid](obj);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (!getroottable().rawin("onKeyFrameFlag_po_atgunner_po_Table")) onKeyFrameFlag_po_atgunner_po_Table <- {}
|
||||
function onKeyFrameFlag_po_atgunner_po(obj, flagIndex)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
|
||||
//根据 技能ID 判断执行函数
|
||||
if (onKeyFrameFlag_po_atgunner_po_Table.rawin(skillid)) {
|
||||
onKeyFrameFlag_po_atgunner_po_Table[skillid](obj, flagIndex);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function onTimeEvent_po_atgunner_po(obj, timeEventIndex, timeEventCount)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function getCustomHitEffectFileName_po_atgunner_po(obj, isAttachOnDamager)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function onChangeSkillEffect_po_atgunner_po(obj, skillIndex, reciveData)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
}
|
||||
581
character/ATGunner/Ranger/Sawblade.nut
Normal file
581
character/ATGunner/Ranger/Sawblade.nut
Normal file
@@ -0,0 +1,581 @@
|
||||
/*
|
||||
文件名:Sawblade.nut
|
||||
路径:character/ATGunner/Ranger/Sawblade.nut
|
||||
创建日期:2022-09-09 19:17
|
||||
文件用途:技能-枪刃改良(女漫游二觉被动)
|
||||
*/
|
||||
if (!getroottable().rawin("ATGunner_Sawblade_Skill")) ATGunner_Sawblade_Skill <- {}
|
||||
|
||||
|
||||
function Sawblade_PassiveSkill(obj, Index, Level) {
|
||||
//Sout("被动技能触发");
|
||||
}
|
||||
|
||||
|
||||
if (getroottable().rawin("ProcPassiveSkill_ATGunner_Table"))
|
||||
ProcPassiveSkill_ATGunner_Table.rawset(235, Sawblade_PassiveSkill);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{
|
||||
function ProcAppend_Sawblade_6(obj) {
|
||||
if (sq_GetSkillLevel(obj, 235) < 1) return;
|
||||
local CoolTime = obj.sq_GetIntData(235, 0);
|
||||
local CoolTimer = TimeSTL("SawbladeCoolTime_DC", CoolTime);
|
||||
// 按键C 高度小于100 高度大于10(判断是否已经跳起来了) 冷却未开始计算 或者 不处于冷却状态
|
||||
if (KeyPress.isKeyPress(5) && obj.getZPos() <= 100 && obj.getZPos() >= 10 && (CoolTimer.Get() == false || CoolTimer.Get() == CoolTime)) {
|
||||
local pIntVec = sq_GetGlobalIntVector();
|
||||
sq_IntVectorClear(pIntVec);
|
||||
sq_IntVectorPush(pIntVec, 67);
|
||||
sq_IntVectorPush(pIntVec, 67);
|
||||
obj.addSetStatePacket(13, pIntVec, STATE_PRIORITY_USER, false, "");
|
||||
CoolTimer.Reset();
|
||||
CoolTimer.Start();
|
||||
}
|
||||
CoolTime = obj.sq_GetIntData(235, 1);
|
||||
CoolTimer = TimeSTL("SawbladeCoolTime_KZ", CoolTime);
|
||||
// 空中Z
|
||||
if (KeyPress.isKeyPress(6) && obj.getZPos() >= 20 && (CoolTimer.Get() == false || CoolTimer.Get() == CoolTime)) {
|
||||
local pIntVec = sq_GetGlobalIntVector();
|
||||
sq_IntVectorClear(pIntVec);
|
||||
sq_IntVectorPush(pIntVec, 69);
|
||||
sq_IntVectorPush(pIntVec, 69);
|
||||
obj.addSetStatePacket(13, pIntVec, STATE_PRIORITY_USER, false, "");
|
||||
CoolTimer.Reset();
|
||||
CoolTimer.Start();
|
||||
}
|
||||
}
|
||||
|
||||
//6号状态 枪刃改良proc声明
|
||||
if (getroottable().rawin("procAppend_ATGunner_Table"))
|
||||
System.InsertArrayInTable(procAppend_ATGunner_Table, 6, "Sawblade", ProcAppend_Sawblade_6);
|
||||
}
|
||||
|
||||
|
||||
|
||||
{
|
||||
function ProcAppend_Sawblade_15(obj) {
|
||||
if (sq_GetSkillLevel(obj, 235) < 1) return;
|
||||
local CoolTime = obj.sq_GetIntData(235, 2);
|
||||
local CoolTimer = TimeSTL("SawbladeCoolTime_HC", CoolTime);
|
||||
// 按键C 高度小于100 高度大于10(判断是否已经跳起来了) 冷却未开始计算 或者 不处于冷却状态
|
||||
if (KeyPress.isKeyPress(6) && (CoolTimer.Get() == false || CoolTimer.Get() == CoolTime)) {
|
||||
local pIntVec = sq_GetGlobalIntVector();
|
||||
sq_IntVectorClear(pIntVec);
|
||||
sq_IntVectorPush(pIntVec, 68);
|
||||
sq_IntVectorPush(pIntVec, 68);
|
||||
obj.addSetStatePacket(13, pIntVec, STATE_PRIORITY_USER, false, "");
|
||||
CoolTimer.Reset();
|
||||
CoolTimer.Start();
|
||||
}
|
||||
}
|
||||
|
||||
//15号状态 枪刃改良proc声明
|
||||
if (getroottable().rawin("procAppend_ATGunner_Table"))
|
||||
System.InsertArrayInTable(procAppend_ATGunner_Table, 15, "Sawblade", ProcAppend_Sawblade_15);
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
function ProcAppend_Sawblade_19(obj) {
|
||||
if (sq_GetSkillLevel(obj, 235) < 1) return;
|
||||
local CoolTime = obj.sq_GetIntData(235, 3);
|
||||
local CoolTimer = TimeSTL("SawbladeCoolTime_LQ", CoolTime);
|
||||
// 按键C 高度小于100 高度大于10(判断是否已经跳起来了) 冷却未开始计算 或者 不处于冷却状态
|
||||
if (KeyPress.isKeyPress(6) && (CoolTimer.Get() == false || CoolTimer.Get() == CoolTime)) {
|
||||
local pIntVec = sq_GetGlobalIntVector();
|
||||
sq_IntVectorClear(pIntVec);
|
||||
sq_IntVectorPush(pIntVec, 70);
|
||||
sq_IntVectorPush(pIntVec, 70);
|
||||
obj.addSetStatePacket(13, pIntVec, STATE_PRIORITY_USER, false, "");
|
||||
CoolTimer.Reset();
|
||||
CoolTimer.Start();
|
||||
}
|
||||
}
|
||||
|
||||
//19号状态 枪刃改良proc声明
|
||||
if (getroottable().rawin("procAppend_ATGunner_Table"))
|
||||
System.InsertArrayInTable(procAppend_ATGunner_Table, 19, "Sawblade", ProcAppend_Sawblade_19);
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
function ProcAppend_Sawblade_13(obj) {
|
||||
|
||||
local pAni = obj.sq_GetCurrentAni(); //当前播放的Ani
|
||||
local currentT = sq_GetCurrentTime(pAni); //Ani的当前时间
|
||||
local fireT = pAni.getDelaySum(false); //总时间
|
||||
local srcX = ATGunner_Sawblade_Skill["Xpos"]; // X的起始位置
|
||||
local srcZ = ATGunner_Sawblade_Skill["Zpos"]; // Z的起始位置
|
||||
|
||||
{ //双C
|
||||
if (Chr_State_Table[0] == 67 && Chr_State_Table[1] == 67) {
|
||||
local vz = sq_GetAccel(0, 100, currentT, 300, true);
|
||||
local vx = GameC.getQuadraticFunction(obj, 0 + sq_GetAccel(0, 36, currentT, 300, true), 240, 100).tointeger();
|
||||
//local vz = getQuadraticFunction(obj, 0 + ccz, 40, 100).tointeger();
|
||||
local dstX = srcX + sq_GetDistancePos(0, obj.getDirection(), vx); //这是要 X 位移随时变动的值
|
||||
if (obj.isMovablePos(dstX, obj.getYPos())) sq_setCurrentAxisPos(obj, 0, dstX); //这是判断这个值能不能到达 也就是会不会卡墙里 不会 在进行位移
|
||||
sq_setCurrentAxisPos(obj, 2, srcZ + vz); //这是位移Z轴
|
||||
}
|
||||
}
|
||||
|
||||
{ //空Z
|
||||
if (Chr_State_Table[0] == 691 && Chr_State_Table[1] == 691 /*&& ccc.getInt(0) == 1*/ ) {
|
||||
local Zpos = srcZ;
|
||||
local MoveX = Zpos; //移动多少x距离
|
||||
local MoveZ = Zpos; //移动多少Z距离
|
||||
local v = sq_GetUniformVelocity(0, MoveX, currentT, Zpos);
|
||||
local v2 = sq_GetUniformVelocity(0, MoveZ, currentT, Zpos);
|
||||
local dstX = sq_GetDistancePos(srcX, obj.getDirection(), v);
|
||||
local dstZ = sq_GetDistancePos(Zpos, 0, v2);
|
||||
if (obj.isMovablePos(dstX, obj.getYPos())) sq_setCurrentAxisPos(obj, 0, dstX); //设置当前x坐标
|
||||
sq_setCurrentAxisPos(obj, 2, dstZ); //设置当前z坐标
|
||||
if (obj.getZPos() <= 1) {
|
||||
local frame = sq_GetAnimationFrameIndex(pAni);
|
||||
switch (frame) {
|
||||
case 0:
|
||||
pAni.setCurrentFrameWithChildLayer(1);
|
||||
break;
|
||||
case 1:
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{ //滑铲
|
||||
local MoveXPos = 50;
|
||||
//滑铲抬手
|
||||
if (Chr_State_Table[0] == 68 && Chr_State_Table[1] == 68) {
|
||||
local MoveX = MoveXPos; //移动多少x距离
|
||||
local v = sq_GetUniformVelocity(0, MoveX, currentT, fireT); //计算平均移动值
|
||||
local dstX = sq_GetDistancePos(srcX, obj.getDirection(), v); //计算出的X坐标
|
||||
if (obj.isMovablePos(dstX, obj.getYPos())) sq_setCurrentAxisPos(obj, 0, dstX); //设置当前x坐标
|
||||
}
|
||||
//滑铲冲刺
|
||||
if (Chr_State_Table[0] == 681 && Chr_State_Table[1] == 681) {
|
||||
local MoveX = MoveXPos * 4; //移动多少x距离
|
||||
local v = sq_GetUniformVelocity(0, MoveX, currentT, fireT); //计算平均移动值
|
||||
local dstX = sq_GetDistancePos(srcX, obj.getDirection(), v); //计算出的X坐标
|
||||
if (obj.isMovablePos(dstX, obj.getYPos())) sq_setCurrentAxisPos(obj, 0, dstX); //设置当前x坐标
|
||||
}
|
||||
}
|
||||
|
||||
{ //拉起
|
||||
if (Chr_State_Table[0] == 701 && Chr_State_Table[1] == 701) {
|
||||
|
||||
local MoveZ = 80; //移动多少Z距离
|
||||
local v2 = sq_GetUniformVelocity(0, MoveZ, currentT, fireT);
|
||||
//local dstZ = sq_GetDistancePos(srcZ, 0, v2);
|
||||
sq_setCurrentAxisPos(obj, 2, v2); //设置当前z坐标
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//13号状态 枪刃改良proc声明
|
||||
if (getroottable().rawin("procAppend_ATGunner_Table"))
|
||||
System.InsertArrayInTable(procAppend_ATGunner_Table, 13, "Sawblade", ProcAppend_Sawblade_13);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
{
|
||||
//设置状态时
|
||||
function onSetState_Sawblade(obj, state, datas, isResetTimer) {
|
||||
ATGunner_Sawblade_Skill.rawset("Zpos", obj.getZPos());
|
||||
ATGunner_Sawblade_Skill.rawset("Xpos", obj.getXPos());
|
||||
|
||||
//双C
|
||||
{
|
||||
if (Chr_State_Table[0] == 67 && Chr_State_Table[1] == 67) {
|
||||
obj.sq_SetCurrentAnimation(104);
|
||||
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED, SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//空Z
|
||||
{
|
||||
//如果子状态为设定的69号状态 空中z抬手
|
||||
if (Chr_State_Table[0] == 69 && Chr_State_Table[1] == 69) {
|
||||
//设定ani
|
||||
obj.sq_SetCurrentAnimation(109);
|
||||
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED, SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 6.0, 6.0);
|
||||
}
|
||||
//空中z 下落
|
||||
if (Chr_State_Table[0] == 691 && Chr_State_Table[1] == 691) {
|
||||
//设定ani
|
||||
obj.sq_SetCurrentAnimation(110);
|
||||
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED, SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.5, 1.5);
|
||||
obj.sq_SetCurrentAttackInfo(27);
|
||||
}
|
||||
}
|
||||
|
||||
{ //滑铲
|
||||
//滑铲起手
|
||||
if (Chr_State_Table[0] == 68 && Chr_State_Table[1] == 68) {
|
||||
|
||||
obj.sq_SetCurrentAnimation(105);
|
||||
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED, SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0);
|
||||
|
||||
}
|
||||
//滑铲冲刺
|
||||
if (Chr_State_Table[0] == 681 && Chr_State_Table[1] == 681) {
|
||||
obj.sq_SetCurrentAnimation(106);
|
||||
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_MOVE_SPEED, SPEED_TYPE_MOVE_SPEED, SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 2.1, 2.1);
|
||||
obj.sq_SetCurrentAttackInfo(26);
|
||||
}
|
||||
}
|
||||
|
||||
{ //拉起
|
||||
//拉起第一段
|
||||
if (Chr_State_Table[0] == 70 && Chr_State_Table[1] == 70) {
|
||||
//设定ani
|
||||
obj.sq_SetCurrentAnimation(107);
|
||||
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED, SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0);
|
||||
}
|
||||
//拉起第二段
|
||||
if (Chr_State_Table[0] == 701 && Chr_State_Table[1] == 701) {
|
||||
//设定ani
|
||||
obj.sq_SetCurrentAnimation(108);
|
||||
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED, SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0);
|
||||
obj.sq_SetCurrentAttackInfo(28);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//13号状态 枪刃改良proc声明
|
||||
if (getroottable().rawin("onSetState_ATGunner13State_Table"))
|
||||
onSetState_ATGunner13State_Table.rawset("Sawblade", onSetState_Sawblade);
|
||||
}
|
||||
|
||||
|
||||
//多重爆头
|
||||
{
|
||||
function setState_Sawblade_multiheadshot(obj, state, datas, isResetTimer) {
|
||||
|
||||
|
||||
if (Chr_State_Table[1] == 1) {
|
||||
local ShootDct = Chr_State_Table[2];
|
||||
if (obj.getDirection() == 0) {
|
||||
if (ShootDct == 0) ShootDct = 1;
|
||||
else if (ShootDct == 1) ShootDct = 0;
|
||||
}
|
||||
local montab = GameC.findRoundNearAllEnemyRect(obj, 340, 80, ShootDct);
|
||||
if (montab.len() > 0) {
|
||||
local AtkRate = obj.sq_GetLevelData(72, 0, sq_GetSkillLevel(obj, 72));
|
||||
local ap = sq_getNewAttackInfoPacket();
|
||||
ap.hitStunTimeAttackerDamager = 600; //僵直时间
|
||||
ap.powerRate = AtkRate; //百分比
|
||||
ap.useWeapon = true; //是否吃武器伤害
|
||||
ap.eType = ATTACKTYPE_PHYSICAL; //攻击类型 魔法还是物理
|
||||
ap.backForce = 50; //推开距离
|
||||
ap.upForce = 50; //打击高度
|
||||
|
||||
//local ballCount = obj.getMyPassiveObjectCount(24233);
|
||||
//local magicBall = obj.getMyPassiveObject(24233, i)
|
||||
foreach(Object in montab) {
|
||||
sq_SendHitObjectPacketByAttackInfo(obj, Object, ap); //以新的攻击包发送攻击
|
||||
//sq_SendHitObjectPacket(obj, Object, 0, 0, sq_GetObjectHeight(Object) / 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//13号状态 枪刃改良proc声明
|
||||
if (getroottable().rawin("setState_ATGunner_Table"))
|
||||
System.InsertArrayInTable(setState_ATGunner_Table, 37, "Sawblade", setState_Sawblade_multiheadshot);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//走射
|
||||
{
|
||||
//ATGunner_Sawblade_Skill.rawset("shoot", 0);
|
||||
|
||||
function ProcAppend_Sawblade_walkshoot(obj) {
|
||||
//GameC.DestroyPassiveObject(obj,22001);
|
||||
/*
|
||||
if ((obj.isCurrentCutomAniIndex(28) || obj.isCurrentCutomAniIndex(29) || obj.isCurrentCutomAniIndex(30))) {
|
||||
if (ATGunner_Sawblade_Skill["shoot"] == 0) {
|
||||
local DamageRate = obj.sq_GetBonusRateWithPassive(15, 27, 0, 1.0);
|
||||
obj.sq_StartWrite(); //开始写入
|
||||
obj.sq_WriteDword(671); //写入 4 字节数 技能ID
|
||||
//obj.sq_WriteDword(WeaponType); //写入 4 字节数 武器类型
|
||||
//obj.sq_WriteDword(flagIndex); //写入 4 字节数 关键帧
|
||||
obj.sq_WriteDword(DamageRate); //写入 4 字节数 伤害率
|
||||
obj.sq_SendCreatePassiveObjectPacket(24371, 0, 0, -10, 20);
|
||||
|
||||
ATGunner_Sawblade_Skill.rawset("shoot", 1);
|
||||
}
|
||||
} else if ((obj.isCurrentCutomAniIndex(31) || obj.isCurrentCutomAniIndex(32) || obj.isCurrentCutomAniIndex(33))) {
|
||||
if (ATGunner_Sawblade_Skill["shoot"] == 0) {
|
||||
local DamageRate = obj.sq_GetBonusRateWithPassive(15, 27, 0, 1.0);
|
||||
obj.sq_StartWrite(); //开始写入
|
||||
obj.sq_WriteDword(671); //写入 4 字节数 技能ID
|
||||
//obj.sq_WriteDword(WeaponType); //写入 4 字节数 武器类型
|
||||
//obj.sq_WriteDword(flagIndex); //写入 4 字节数 关键帧
|
||||
obj.sq_WriteDword(DamageRate); //写入 4 字节数 伤害率
|
||||
obj.sq_SendCreatePassiveObjectPacket(24371, 0, 0, 10, 20);
|
||||
|
||||
ATGunner_Sawblade_Skill.rawset("shoot", 1);
|
||||
}
|
||||
} else {
|
||||
ATGunner_Sawblade_Skill.rawset("shoot", 0);
|
||||
}
|
||||
*/
|
||||
}
|
||||
//27号状态 枪刃改良proc声明
|
||||
if (getroottable().rawin("procAppend_ATGunner_Table"))
|
||||
System.InsertArrayInTable(procAppend_ATGunner_Table, 27, "Sawblade", ProcAppend_Sawblade_walkshoot);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//动画结束时
|
||||
{
|
||||
function onEndCurrentAni_Sawblade(obj) {
|
||||
|
||||
{ //双C的结束
|
||||
if (Chr_State_Table[0] == 67 && Chr_State_Table[1] == 67) {
|
||||
local pIntVec = sq_GetGlobalIntVector();
|
||||
sq_IntVectorClear(pIntVec);
|
||||
sq_IntVectorPush(pIntVec, 1);
|
||||
sq_IntVectorPush(pIntVec, 0);
|
||||
sq_IntVectorPush(pIntVec, 1);
|
||||
obj.addSetStatePacket(6, pIntVec, STATE_PRIORITY_USER, false, "");
|
||||
}
|
||||
}
|
||||
|
||||
{ //空Z
|
||||
if (Chr_State_Table[0] == 69 && Chr_State_Table[1] == 69) {
|
||||
local pIntVec = sq_GetGlobalIntVector();
|
||||
sq_IntVectorClear(pIntVec);
|
||||
sq_IntVectorPush(pIntVec, 691);
|
||||
sq_IntVectorPush(pIntVec, 691);
|
||||
obj.addSetStatePacket(13, pIntVec, STATE_PRIORITY_USER, false, "");
|
||||
}
|
||||
|
||||
if (Chr_State_Table[0] == 691 && Chr_State_Table[1] == 691) {
|
||||
local pIntVec = sq_GetGlobalIntVector();
|
||||
sq_IntVectorClear(pIntVec);
|
||||
sq_IntVectorPush(pIntVec, 0);
|
||||
sq_IntVectorPush(pIntVec, 0);
|
||||
sq_IntVectorPush(pIntVec, 0);
|
||||
obj.addSetStatePacket(0, pIntVec, STATE_PRIORITY_USER, false, "");
|
||||
}
|
||||
}
|
||||
|
||||
{ //滑铲
|
||||
if (Chr_State_Table[0] == 68 && Chr_State_Table[1] == 68) {
|
||||
local pIntVec = sq_GetGlobalIntVector();
|
||||
sq_IntVectorClear(pIntVec);
|
||||
sq_IntVectorPush(pIntVec, 681);
|
||||
sq_IntVectorPush(pIntVec, 681);
|
||||
obj.addSetStatePacket(13, pIntVec, STATE_PRIORITY_USER, false, "");
|
||||
}
|
||||
|
||||
if (Chr_State_Table[0] == 681 && Chr_State_Table[1] == 681) {
|
||||
local pIntVec = sq_GetGlobalIntVector();
|
||||
sq_IntVectorClear(pIntVec);
|
||||
sq_IntVectorPush(pIntVec, 0);
|
||||
sq_IntVectorPush(pIntVec, 0);
|
||||
sq_IntVectorPush(pIntVec, 0);
|
||||
obj.addSetStatePacket(0, pIntVec, STATE_PRIORITY_USER, false, "");
|
||||
}
|
||||
}
|
||||
|
||||
{ //拉起
|
||||
if (Chr_State_Table[0] == 70 && Chr_State_Table[1] == 70) {
|
||||
local pIntVec = sq_GetGlobalIntVector();
|
||||
sq_IntVectorClear(pIntVec);
|
||||
sq_IntVectorPush(pIntVec, 701);
|
||||
sq_IntVectorPush(pIntVec, 701);
|
||||
obj.addSetStatePacket(13, pIntVec, STATE_PRIORITY_USER, false, "");
|
||||
}
|
||||
|
||||
if (Chr_State_Table[0] == 701 && Chr_State_Table[1] == 701) {
|
||||
local pIntVec = sq_GetGlobalIntVector();
|
||||
sq_IntVectorClear(pIntVec);
|
||||
sq_IntVectorPush(pIntVec, 1);
|
||||
sq_IntVectorPush(pIntVec, 0);
|
||||
sq_IntVectorPush(pIntVec, 200);
|
||||
obj.addSetStatePacket(6, pIntVec, STATE_PRIORITY_USER, false, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (getroottable().rawin("onEndCurrentAni_ATGunner13State_Table"))
|
||||
onEndCurrentAni_ATGunner13State_Table.rawset("Sawblade", onEndCurrentAni_Sawblade);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//关键帧时
|
||||
{
|
||||
function onKeyFrameFlag_Sawblade(obj, flagIndex) {
|
||||
local WeaponType = obj.getWeaponSubType();
|
||||
local DamageRate = obj.sq_GetBonusRateWithPassive(235, 13, 0, 3.0);
|
||||
//0左轮 1自动手枪 2步枪 3手炮 4手弩
|
||||
obj.sq_StartWrite(); //开始写入
|
||||
obj.sq_WriteDword(670); //写入 4 字节数 技能ID
|
||||
obj.sq_WriteDword(WeaponType); //写入 4 字节数 武器类型
|
||||
obj.sq_WriteDword(flagIndex); //写入 4 字节数 关键帧
|
||||
obj.sq_WriteDword(DamageRate); //写入 4 字节数 伤害率
|
||||
obj.sq_SendCreatePassiveObjectPacket(24371, 0, 40, 0, 20);
|
||||
|
||||
obj.sq_StartWrite(); //开始写入
|
||||
obj.sq_WriteDword(670); //写入 4 字节数 技能ID
|
||||
obj.sq_WriteDword(WeaponType); //写入 4 字节数 武器类型
|
||||
obj.sq_WriteDword(flagIndex); //写入 4 字节数 关键帧
|
||||
obj.sq_WriteDword(DamageRate); //写入 4 字节数 伤害率
|
||||
obj.sq_SendCreatePassiveObjectPacket(24371, 0, 70, 0, 40);
|
||||
|
||||
if (WeaponType != 3 && WeaponType != 4) {
|
||||
obj.sq_StartWrite(); //开始写入
|
||||
obj.sq_WriteDword(670); //写入 4 字节数 技能ID
|
||||
obj.sq_WriteDword(8); //写入 4 字节数 武器类型
|
||||
obj.sq_WriteDword(flagIndex); //写入 4 字节数 关键帧
|
||||
obj.sq_WriteDword(DamageRate); //写入 4 字节数 伤害率
|
||||
obj.sq_SendCreatePassiveObjectPacket(24371, 0, 40, 0, 50);
|
||||
|
||||
obj.sq_StartWrite(); //开始写入
|
||||
obj.sq_WriteDword(670); //写入 4 字节数 技能ID
|
||||
obj.sq_WriteDword(8); //写入 4 字节数 武器类型
|
||||
obj.sq_WriteDword(flagIndex); //写入 4 字节数 关键帧
|
||||
obj.sq_WriteDword(DamageRate); //写入 4 字节数 伤害率
|
||||
obj.sq_SendCreatePassiveObjectPacket(24371, 0, 70, 0, 70);
|
||||
}
|
||||
}
|
||||
if (getroottable().rawin("onKeyFrameFlag_ATGunner13State_Table"))
|
||||
onKeyFrameFlag_ATGunner13State_Table.rawset("Sawblade", onKeyFrameFlag_Sawblade);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//特效 设置自定义特效时
|
||||
{
|
||||
function setCustomData_po_atgunner_Sawblade(obj, receiveData) {
|
||||
local WeaponType = receiveData.readDword();
|
||||
obj.getVar("Type").clear_vector();
|
||||
obj.getVar("Type").push_vector(WeaponType);
|
||||
|
||||
local flagIndex = receiveData.readDword();
|
||||
local DamageRate = receiveData.readDword();
|
||||
|
||||
local ani;
|
||||
switch (WeaponType) {
|
||||
case 0:
|
||||
ani = obj.getVar().GetAnimationMap("zuolun", "passiveobject/sqr_po/atgunner/animation/suncha/bulletpistol.ani");
|
||||
break;
|
||||
case 1:
|
||||
ani = obj.getVar().GetAnimationMap("buqiang", "passiveobject/sqr_po/atgunner/animation/suncha/bulletmusket.ani");
|
||||
break;
|
||||
case 2:
|
||||
ani = obj.getVar().GetAnimationMap("zidong", "passiveobject/sqr_po/atgunner/animation/suncha/bulletautomatic_31439.ani");
|
||||
break;
|
||||
case 3:
|
||||
ani = obj.getVar().GetAnimationMap("cannon", "passiveobject/sqr_po/atgunner/animation/suncha/cannon/attack.ani");
|
||||
break;
|
||||
case 4:
|
||||
ani = obj.getVar().GetAnimationMap("shounu", "passiveobject/sqr_po/atgunner/animation/suncha/bulletbowgun.ani");
|
||||
break;
|
||||
case 8:
|
||||
ani = obj.getVar().GetAnimationMap("EFFCT", "passiveobject/sqr_po/atgunner/animation/suncha/headshotgunner.ani");
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (flagIndex) {
|
||||
case 111:
|
||||
sq_SetCustomRotate(obj, sq_ToRadian(-80.0));
|
||||
break;
|
||||
case 222:
|
||||
sq_SetCustomRotate(obj, sq_ToRadian(-85.0));
|
||||
break;
|
||||
case 333:
|
||||
sq_SetCustomRotate(obj, sq_ToRadian(-100.0));
|
||||
break;
|
||||
}
|
||||
|
||||
obj.setCurrentAnimation(ani);
|
||||
local attackInfo = sq_GetCustomAttackInfo(obj, 0); //设置 特效 使用0号位atk
|
||||
sq_SetCurrentAttackBonusRate(attackInfo, DamageRate); //给攻击信息设置百分比值
|
||||
sq_SetCurrentAttackInfo(obj, attackInfo); //设置 当前攻击信息
|
||||
|
||||
}
|
||||
if (getroottable().rawin("setCustomData_po_atgunner_po_Table"))
|
||||
setCustomData_po_atgunner_po_Table.rawset(670, setCustomData_po_atgunner_Sawblade);
|
||||
|
||||
|
||||
function setCustomData_po_atgunner_Sawblade_walkshoot(obj, receiveData) {
|
||||
local DamageRate = receiveData.readDword();
|
||||
local ani = obj.getVar().GetAnimationMap("Sawblade_walkshoot", "passiveobject/sqr_po/atgunner/animation/suncha/walkshootgun.ani");
|
||||
|
||||
obj.setCurrentAnimation(ani);
|
||||
local attackInfo = sq_GetCustomAttackInfo(obj, 0); //设置 特效 使用0号位atk
|
||||
sq_SetCurrentAttackBonusRate(attackInfo, DamageRate); //给攻击信息设置百分比值
|
||||
sq_SetCurrentAttackInfo(obj, attackInfo); //设置 当前攻击信息
|
||||
|
||||
}
|
||||
if (getroottable().rawin("setCustomData_po_atgunner_po_Table"))
|
||||
setCustomData_po_atgunner_po_Table.rawset(671, setCustomData_po_atgunner_Sawblade_walkshoot);
|
||||
}
|
||||
|
||||
|
||||
//特效 Ani播放完成时
|
||||
{
|
||||
function onEndCurrentAni_po_atgunner_Sawblade(obj) {
|
||||
sq_SendDestroyPacketPassiveObject(obj);
|
||||
}
|
||||
|
||||
if (getroottable().rawin("onEndCurrentAni_po_atgunner_po_Table"))
|
||||
onEndCurrentAni_po_atgunner_po_Table.rawset(670, onEndCurrentAni_po_atgunner_Sawblade);
|
||||
|
||||
if (getroottable().rawin("onEndCurrentAni_po_atgunner_po_Table"))
|
||||
onEndCurrentAni_po_atgunner_po_Table.rawset(671, onEndCurrentAni_po_atgunner_Sawblade);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//特效 Proc中
|
||||
{
|
||||
function procAppend_po_atgunner_Sawblade(obj) {
|
||||
local Type = obj.getVar("Type").get_vector(0);
|
||||
|
||||
if (Type == 3 || Type == 8) return;
|
||||
|
||||
local pAni = obj.getCurrentAnimation();
|
||||
local index = sq_GetAnimationFrameIndex(pAni);
|
||||
|
||||
local currentT = sq_GetCurrentTime(pAni);
|
||||
local fireT = pAni.getDelaySum(false); //总时间
|
||||
|
||||
local MoveZ = obj.getZPos(); //移动多少Z距离
|
||||
|
||||
if (MoveZ <= 3) {
|
||||
sq_SendDestroyPacketPassiveObject(obj);
|
||||
}
|
||||
|
||||
|
||||
local v2 = sq_GetUniformVelocity(MoveZ, 0, currentT, MoveZ * 10);
|
||||
local dstZ = sq_GetDistancePos(0, -MoveZ, v2);
|
||||
|
||||
sq_setCurrentAxisPos(obj, 2, dstZ); //设置当前z坐标
|
||||
|
||||
}
|
||||
if (getroottable().rawin("procAppend_po_atgunner_po_Table"))
|
||||
procAppend_po_atgunner_po_Table.rawset(670, procAppend_po_atgunner_Sawblade);
|
||||
}
|
||||
137
character/GetCurrentModuleDamageRate.nut
Normal file
137
character/GetCurrentModuleDamageRate.nut
Normal file
@@ -0,0 +1,137 @@
|
||||
/*
|
||||
文件名:GetCurrentModuleDamageRate.nut
|
||||
路径:character/GetCurrentModuleDamageRate.nut
|
||||
创建日期:2022-11-12 19:42
|
||||
文件用途:提升伤害
|
||||
*/
|
||||
|
||||
|
||||
|
||||
//获取强化增幅提升率
|
||||
function SetUpgradeRate() {
|
||||
local Rate = [
|
||||
[0, 1.0],
|
||||
[1, 1.02],
|
||||
[2, 1.03],
|
||||
[3, 1.04],
|
||||
[4, 1.05],
|
||||
[5, 1.06],
|
||||
[6, 1.07],
|
||||
[7, 1.08],
|
||||
[8, 1.09],
|
||||
[9, 1.10],
|
||||
[10, 1.10],
|
||||
[11, 1.20],
|
||||
[12, 1.40],
|
||||
[13, 1.60],
|
||||
[14, 2.20],
|
||||
[15, 3.40],
|
||||
];
|
||||
local RootTable = getroottable();
|
||||
local Level = L_sq_GetCharacterAttribute(0x1054, 1);
|
||||
RootTable.rawset("UpgradeRate", Rate[Level][1] - 1.0);
|
||||
}
|
||||
|
||||
//最终伤害
|
||||
function GetOverDamgeRate(obj) {
|
||||
return (obj.sq_GetIntData(169, 1).tofloat() / 100.0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------黄字追加伤害
|
||||
function GetYellowAddDamageRate(obj) {
|
||||
local YellowAdd = obj.getVar("YellowAdd");
|
||||
YellowAdd.clear_vector();
|
||||
local YellowAddRate = YellowAdd.getInt(0); //黄字追加伤害初始值
|
||||
|
||||
//----------------------------------------------------------------------------技能栏手搓伤害增加率
|
||||
local SkillSlot = obj.getVar("SkillSlot");
|
||||
local SkillSlotRate = (12 - SkillSlot.getInt(0)) * 5;
|
||||
YellowAdd.setInt(0, SkillSlotRate);
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
return YellowAddRate;
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------黄字追加伤害
|
||||
|
||||
|
||||
|
||||
function getCurrentModuleDamageRate(obj) {
|
||||
|
||||
if (!obj)
|
||||
return 1.0;
|
||||
local rate = 10.0;
|
||||
|
||||
local UpgradeRate = getroottable()["UpgradeRate"];
|
||||
rate += (GetYellowAddDamageRate(obj).tofloat() / 100.0); //追加黄字
|
||||
|
||||
//强化增伤 //最终增伤
|
||||
//rate *= 1 + UpgradeRate + GetOverDamgeRate(obj);
|
||||
return rate;
|
||||
}
|
||||
|
||||
if (!getroottable().rawin("DungeonIndex")) DungeonIndex <- [];
|
||||
if (!getroottable().rawin("GrowType")) GrowType <- [];
|
||||
|
||||
|
||||
|
||||
function L_getCurrentModuleDamageRate(obj) {
|
||||
if (!obj)
|
||||
return 1.0;
|
||||
local rate;
|
||||
if (getroottable().rawin("LenheartCurrentModuleDamageRate")) {
|
||||
rate = 1.0 + getroottable()["LenheartCurrentModuleDamageRate"];
|
||||
} else {
|
||||
rate = 1.0;
|
||||
}
|
||||
local AncientAttackHit = obj.getVar("AncientAttackHit");
|
||||
local AncientAttackRate = AncientAttackHit.getInt(10).tofloat() / 1000.0;
|
||||
|
||||
local ClientRat = 1.0;
|
||||
try {
|
||||
ClientRat = getCurrentModuleDamageRate(obj).tofloat();
|
||||
} catch (exception) {
|
||||
ClientRat = 1.0;
|
||||
}
|
||||
|
||||
local stage = sq_GetGlobaludpModuleStage();
|
||||
local dungeon = sq_GetDungeonByStage(stage);
|
||||
local dungeonIndex = sq_GetDuegonIndex(dungeon);
|
||||
local fbsh = 100;
|
||||
|
||||
foreach(id in DungeonIndex) {
|
||||
if (dungeonIndex == id[0]) {
|
||||
fbsh = id[1];
|
||||
}
|
||||
}
|
||||
local nrate = fbsh.tofloat() / 100.0;
|
||||
rate = rate.tofloat() * nrate;
|
||||
|
||||
local LLJob = sq_getJob(obj);
|
||||
local LLGrowT = sq_getGrowType(obj);
|
||||
|
||||
local LLLen = GrowType.len();
|
||||
for (local i = 0; i< 11; ++i) {
|
||||
if (i == LLLen) break;
|
||||
if (LLJob == i) {
|
||||
foreach(GR in GrowType[i]) {
|
||||
if (LLGrowT == GR[0])
|
||||
rate = rate.tofloat() * GR[1].tofloat();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return (rate * ClientRat) + AncientAttackRate;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function GetMyDamageRateByLenheart(Chunk) {
|
||||
local Jso = Json.Decode(Chunk);
|
||||
local str = Jso.sh;
|
||||
|
||||
local Func = compilestring(str);
|
||||
Func();
|
||||
}
|
||||
Pack_Control.rawset(20058002, GetMyDamageRateByLenheart);
|
||||
46
character/Swordman/Swordman13State.nut
Normal file
46
character/Swordman/Swordman13State.nut
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
文件名:Swordman13State.nut
|
||||
路径:character/Swordman/Swordman13State.nut
|
||||
创建日期:2022-09-10 17:39
|
||||
文件用途:鬼剑士13号状态
|
||||
*/
|
||||
|
||||
if (!getroottable().rawin("onSetState_Swordman13State_Table")) onSetState_Swordman13State_Table <- {}
|
||||
|
||||
function onSetState_Swordman13State(obj, state, datas, isResetTimer) {
|
||||
|
||||
//遍历并执行函数
|
||||
foreach(Flag, Func in onSetState_Swordman13State_Table) {
|
||||
Func(obj, state, datas, isResetTimer);
|
||||
}
|
||||
//return 1;
|
||||
}
|
||||
|
||||
|
||||
if (!getroottable().rawin("onEndCurrentAni_Swordman13State_Table")) onEndCurrentAni_Swordman13State_Table <- {}
|
||||
|
||||
function onEndCurrentAni_Swordman13State(obj)
|
||||
{
|
||||
if(!obj) return;
|
||||
|
||||
//遍历并执行函数
|
||||
foreach(Flag, Func in onEndCurrentAni_Swordman13State_Table) {
|
||||
Func(obj);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (!getroottable().rawin("onKeyFrameFlag_Swordman13State_Table")) onKeyFrameFlag_Swordman13State_Table <- {}
|
||||
|
||||
function onKeyFrameFlag_Swordman13State(obj, flagIndex)
|
||||
{
|
||||
if (!obj) return false;
|
||||
|
||||
//遍历并执行函数
|
||||
foreach(Flag, Func in onKeyFrameFlag_Swordman13State_Table) {
|
||||
Func(obj, flagIndex);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
133
character/Swordman/Swordman_po.nut
Normal file
133
character/Swordman/Swordman_po.nut
Normal file
@@ -0,0 +1,133 @@
|
||||
/*
|
||||
文件名:Swordman_po.nut
|
||||
路径:character/Swordman/Swordman_po.nut
|
||||
创建日期:2022-09-10 21:59
|
||||
文件用途:鬼剑士PO文件
|
||||
*/
|
||||
|
||||
|
||||
if (!getroottable().rawin("setCustomData_po_swordman_po_Table")) setCustomData_po_swordman_po_Table <- {}
|
||||
function setCustomData_po_swordman_po(obj, receiveData)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = receiveData.readDword(); //开始读取 四字节数 数据
|
||||
obj.getVar("skill").clear_vector(); //清空 Skill 储存器
|
||||
obj.getVar("skill").push_vector(skillid); //向 Skill 储存器 push内容
|
||||
|
||||
|
||||
//根据 技能ID 判断执行函数
|
||||
if (setCustomData_po_swordman_po_Table.rawin(skillid)) {
|
||||
setCustomData_po_swordman_po_Table[skillid](obj, receiveData);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!getroottable().rawin("setState_po_swordman_po_Table")) setState_po_swordman_po_Table <- {}
|
||||
function setState_po_swordman_po(obj, state, datas)
|
||||
{
|
||||
if (!obj) return;
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
//根据 技能ID 判断执行函数
|
||||
if (setState_po_swordman_po_Table.rawin(skillid)) {
|
||||
setState_po_swordman_po_Table[skillid](obj, state, datas);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!getroottable().rawin("procAppend_po_swordman_po_Table")) procAppend_po_swordman_po_Table <- {}
|
||||
function procAppend_po_swordman_po(obj) //处于obj特效状态中
|
||||
{
|
||||
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = obj.getVar("skill").get_vector(0); //获取 Skill 储存器 0号位内容
|
||||
|
||||
|
||||
//根据 技能ID 判断执行函数
|
||||
if (procAppend_po_swordman_po_Table.rawin(skillid)) {
|
||||
procAppend_po_swordman_po_Table[skillid](obj);
|
||||
}
|
||||
}
|
||||
|
||||
if (!getroottable().rawin("onAttack_po_swordman_po_Table")) onAttack_po_swordman_po_Table <- {}
|
||||
function onAttack_po_swordman_po(obj, damager, boundingBox, isStuck)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
if (!damager)
|
||||
return 0;
|
||||
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
|
||||
//根据 技能ID 判断执行函数
|
||||
if (onAttack_po_swordman_po_Table.rawin(skillid)) {
|
||||
onAttack_po_swordman_po_Table[skillid](obj, damager, boundingBox, isStuck);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
if (!getroottable().rawin("onEndCurrentAni_po_swordman_po_Table")) onEndCurrentAni_po_swordman_po_Table <- {}
|
||||
function onEndCurrentAni_po_swordman_po(obj)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
|
||||
//根据 技能ID 判断执行函数
|
||||
if (onEndCurrentAni_po_swordman_po_Table.rawin(skillid)) {
|
||||
onEndCurrentAni_po_swordman_po_Table[skillid](obj);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (!getroottable().rawin("onKeyFrameFlag_po_swordman_po_Table")) onKeyFrameFlag_po_swordman_po_Table <- {}
|
||||
function onKeyFrameFlag_po_swordman_po(obj, flagIndex)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
|
||||
//根据 技能ID 判断执行函数
|
||||
if (onKeyFrameFlag_po_swordman_po_Table.rawin(skillid)) {
|
||||
onKeyFrameFlag_po_swordman_po_Table[skillid](obj, flagIndex);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function onTimeEvent_po_swordman_po(obj, timeEventIndex, timeEventCount)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function getCustomHitEffectFileName_po_swordman_po(obj, isAttachOnDamager)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function onChangeSkillEffect_po_swordman_po(obj, skillIndex, reciveData)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
local skillid = obj.getVar("skill").get_vector(0);
|
||||
|
||||
}
|
||||
387
character/Swordman/WeaponMaster/Meteorsword.nut
Normal file
387
character/Swordman/WeaponMaster/Meteorsword.nut
Normal file
@@ -0,0 +1,387 @@
|
||||
/*
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
function checkExecutableSkill_meteorsword(obj) {
|
||||
if (!obj) return false;
|
||||
local isUse = obj.sq_IsUseSkill(235);
|
||||
if (isUse) {
|
||||
obj.sq_IsEnterSkillLastKeyUnits(235); //允许长按
|
||||
|
||||
|
||||
obj.sq_IntVectClear(); //清除人物子状态
|
||||
obj.sq_IntVectPush(0); //向人物子状态0号位 push 数据 0
|
||||
obj.sq_AddSetStatePacket(235, STATE_PRIORITY_USER, true); //将人物写入 235号 主状态
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function checkCommandEnable_meteorsword(obj) {
|
||||
if (!obj) return false;
|
||||
local chrstate = obj.sq_GetState(); //获取人物主状态
|
||||
|
||||
if (chrstate == STATE_STAND) //if 人物主状态为站立 返回真
|
||||
return true;
|
||||
|
||||
if (chrstate == STATE_ATTACK) //if 人物主状态为攻击中 state 8
|
||||
{
|
||||
return obj.sq_IsCommandEnable(235); //返回 是否允许按下235号技能按键的 布尔值
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function onProcCon_meteorsword(obj) {
|
||||
local bDownKey = obj.isDownSkillLastKey();
|
||||
local stateTimer = obj.sq_GetStateTimer();
|
||||
local RootTable = getroottable();
|
||||
|
||||
if (Chr_State_Table[0] == 0) {
|
||||
if (!bDownKey) {
|
||||
obj.sq_IntVectClear(); //清除人物子状态
|
||||
obj.sq_IntVectPush(3); //向人物子状态0号位 push 数据 0
|
||||
obj.sq_AddSetStatePacket(235, STATE_PRIORITY_USER, true); //将人物写入 235号 主状态
|
||||
} else if (stateTimer >= 800) {
|
||||
obj.sq_IntVectClear(); //清除人物子状态
|
||||
obj.sq_IntVectPush(2); //向人物子状态0号位 push 数据 0
|
||||
obj.sq_AddSetStatePacket(235, STATE_PRIORITY_USER, true); //将人物写入 235号 主状态
|
||||
}
|
||||
return;
|
||||
} else if (Chr_State_Table[0] == 2) {
|
||||
if (!bDownKey) {
|
||||
obj.sq_IntVectClear(); //清除人物子状态
|
||||
obj.sq_IntVectPush(4); //向人物子状态0号位 push 数据 0
|
||||
obj.sq_AddSetStatePacket(235, STATE_PRIORITY_USER, true); //将人物写入 235号 主状态
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function createEff_meteorsword(obj, ani, X, Y, Z, B) {
|
||||
local ani = sq_CreateAnimation("", ani);
|
||||
local pooledObj = sq_CreatePooledObject(ani, B);
|
||||
pooledObj.setCurrentPos(X, Y, Z);
|
||||
pooledObj.setCurrentDirection(obj.getDirection());
|
||||
sq_AddObject(obj, pooledObj, 2, false);
|
||||
|
||||
return pooledObj;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function onSetState_meteorsword(obj, state, datas, isResetTimer) {
|
||||
|
||||
if (!obj) return;
|
||||
obj.sq_StopMove(); //停止移动
|
||||
|
||||
obj.getVar("meteorsword").clear_vector();
|
||||
local RootTable = getroottable();
|
||||
|
||||
|
||||
if (Chr_State_Table[0] == 0) {
|
||||
local Direction = obj.getDirection();
|
||||
obj.sq_SetCurrentAnimation(124);
|
||||
|
||||
local montab = GameC.findRoundNearAllEnemyRect(obj, 340, 80, Direction);
|
||||
if (montab.len() > 0) {
|
||||
foreach(Monobj in montab) {
|
||||
if (!CNSquirrelAppendage.sq_IsAppendAppendage(Monobj, "character/swordman/weaponmaster/ap_meteorsword.nut")) {
|
||||
local append = CNSquirrelAppendage.sq_AppendAppendage(Monobj, obj, -1, true, "character/swordman/weaponmaster/ap_meteorsword.nut", false);
|
||||
CNSquirrelAppendage.sq_AppendAppendageID(append, Monobj, obj, 235, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (Chr_State_Table[0] == 2) {
|
||||
obj.sq_SetCurrentAnimation(125);
|
||||
|
||||
GameC.RemoveObjectAppend(obj, "character/swordman/weaponmaster/ap_meteorsword.nut");
|
||||
} else if (Chr_State_Table[0] == 3) {
|
||||
obj.sq_SetCurrentAnimation(126);
|
||||
} else if (Chr_State_Table[0] == 4) {
|
||||
obj.sq_SetCurrentAnimation(126);
|
||||
|
||||
obj.sq_SendCreatePassiveObjectPacket(2022100901, 0, 200, 1, 0);
|
||||
createEff_meteorsword(obj, "passiveobject/sqr_po/swordman/animation/meteorsword/up_meteorsword_shock1.ani", sq_GetDistancePos(obj.getXPos(), obj.getDirection(), 200), obj.getYPos(), obj.getZPos(), true);
|
||||
createEff_meteorsword(obj, "character/swordman/animation/yosin/meteorsword/up.ani", sq_GetDistancePos(obj.getXPos(), obj.getDirection(), 0), obj.getYPos(), obj.getZPos(), true);
|
||||
sq_SetShake(obj, 6, 1000);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function onEndCurrentAni_meteorsword(obj) {
|
||||
if (!obj) return;
|
||||
|
||||
if (Chr_State_Table[0] == 1) {
|
||||
obj.sq_IntVectClear(); //清除人物子状态
|
||||
obj.sq_IntVectPush(3); //向人物子状态0号位 push 数据 0
|
||||
obj.sq_AddSetStatePacket(235, STATE_PRIORITY_USER, true); //将人物写入 235号 主状态
|
||||
} else if (Chr_State_Table[0] == 3) {
|
||||
local attackBonusRate = obj.sq_GetBonusRateWithPassive(235, 235, 5, 2.0);
|
||||
|
||||
obj.sq_StartWrite(); //开始写入
|
||||
obj.sq_WriteDword(235); //写入 4 字节数 技能ID
|
||||
obj.sq_WriteDword(40); //写入 4 字节数 掉落范围
|
||||
obj.sq_WriteDword(20); //写入 4 字节数 掉落数量
|
||||
obj.sq_WriteDword(1); //写入 4 字节数 当前计数
|
||||
obj.sq_WriteDword(attackBonusRate); //写入 4 字节数 atk
|
||||
obj.sq_WriteDword(0); //写入 4 字节数 是否满蓄力
|
||||
obj.sq_AddSetStatePacket(0, STATE_PRIORITY_USER, true);
|
||||
local POSxadd = sq_GetDistancePos(0, obj.getDirection(), 200); //设置落剑中点
|
||||
obj.sq_WriteDword(obj.getXPos() + POSxadd); //释放的时候的坐标
|
||||
obj.sq_WriteDword(obj.getYPos()); //释放的时候的坐标
|
||||
obj.sq_SendCreatePassiveObjectPacket(24370, 0, 200, 0, 0);
|
||||
} else if (Chr_State_Table[0] == 4) {
|
||||
local attackBonusRate = obj.sq_GetBonusRateWithPassive(235, 235, 5, 2.0);
|
||||
|
||||
|
||||
obj.sq_StartWrite(); //开始写入
|
||||
obj.sq_WriteDword(235); //写入 4 字节数 技能ID
|
||||
obj.sq_WriteDword(40); //写入 4 字节数 掉落范围
|
||||
obj.sq_WriteDword(20); //写入 4 字节数 掉落数量
|
||||
obj.sq_WriteDword(1); //写入 4 字节数 当前计数
|
||||
obj.sq_WriteDword(attackBonusRate); //写入 4 字节数 atk
|
||||
obj.sq_WriteDword(1); //写入 4 字节数 是否满蓄力
|
||||
obj.sq_AddSetStatePacket(0, STATE_PRIORITY_USER, true);
|
||||
local POSxadd = sq_GetDistancePos(0, obj.getDirection(), 200); //设置落剑中点
|
||||
obj.sq_WriteDword(obj.getXPos() + POSxadd); //释放的时候的坐标
|
||||
obj.sq_WriteDword(obj.getYPos()); //释放的时候的坐标
|
||||
obj.sq_SendCreatePassiveObjectPacket(24370, 0, 200, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
{
|
||||
function setCustomData_po_Swordman_meteorsword(obj, receiveData) {
|
||||
local px = receiveData.readDword(); //掉落范围
|
||||
local downnum = receiveData.readDword(); //掉落数量
|
||||
local nowdownnum = receiveData.readDword(); //当前计数
|
||||
local atk = receiveData.readDword(); //atk
|
||||
local BigSword = receiveData.readDword(); //是否满蓄力
|
||||
|
||||
local Xpos = receiveData.readDword();
|
||||
local Ypos = receiveData.readDword();
|
||||
|
||||
local size = 100;
|
||||
|
||||
local SwordIndex = sq_getRandom(1, 7);
|
||||
local ani;
|
||||
|
||||
if (nowdownnum > downnum) {
|
||||
ani = obj.getVar().GetAnimationMap("流星落蓄力一击", "passiveobject/sqr_po/swordman/animation/meteorsword/dropsword8_meteorsword_swords.ani");
|
||||
atk *= 5;
|
||||
size = 200;
|
||||
} else {
|
||||
ani = obj.getVar().GetAnimationMap("流星落", "passiveobject/sqr_po/swordman/animation/meteorsword/dropsword" + SwordIndex + "_meteorsword_swords.ani"); // 定义一下ani
|
||||
}
|
||||
obj.setCurrentAnimation(ani); //设置 特效 使用定义的 ani
|
||||
local attackInfo = sq_GetCustomAttackInfo(obj, 0); //设置 特效 使用6号位atk
|
||||
sq_SetCurrentAttackInfo(obj, attackInfo); //设置 当前攻击信息
|
||||
attackInfo = sq_GetCurrentAttackInfo(obj); //设置 attackInfo 为得到当前攻击信息
|
||||
|
||||
sq_SetCurrentAttackPower(attackInfo, atk); //给当前攻击设置 百分比
|
||||
|
||||
|
||||
local currentAni = sq_GetCurrentAnimation(obj); //得到特效当前正在播放ani
|
||||
local sizeRate = size.tofloat() / 100.0; //转换浮点数运算
|
||||
currentAni.setImageRateFromOriginal(sizeRate, sizeRate); //增加ani 宽度跟高度率
|
||||
currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); //增加ani als附加 ani大小比例
|
||||
sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); //攻击框,x y z比率
|
||||
|
||||
|
||||
obj.getVar("var").clear_vector();
|
||||
obj.getVar("var").push_vector(px); //掉落范围
|
||||
obj.getVar("var").push_vector(downnum); //掉落数量
|
||||
obj.getVar("var").push_vector(nowdownnum); //当前计数
|
||||
obj.getVar("var").push_vector(atk); //atk
|
||||
obj.getVar("var").push_vector(BigSword); //是否满蓄力
|
||||
|
||||
obj.getVar("var").push_vector(Xpos);
|
||||
obj.getVar("var").push_vector(Ypos);
|
||||
}
|
||||
|
||||
setCustomData_po_swordman_po_Table.rawset(235, setCustomData_po_Swordman_meteorsword);
|
||||
}
|
||||
|
||||
|
||||
|
||||
{
|
||||
function onKeyFrameFlag_po_swordman_meteorsword(obj, flagIndex) {
|
||||
local px = obj.getVar("var").get_vector(0); //掉落范围
|
||||
local downnum = obj.getVar("var").get_vector(1); //掉落数量
|
||||
local nowdownnum = obj.getVar("var").get_vector(2); //当前计数
|
||||
local atk = obj.getVar("var").get_vector(3); //atk
|
||||
local BigSword = obj.getVar("var").get_vector(4); //atk
|
||||
|
||||
local Xpos = obj.getVar("var").get_vector(5);
|
||||
local Ypos = obj.getVar("var").get_vector(6);
|
||||
if (flagIndex == 1) {
|
||||
|
||||
if (downnum > nowdownnum) //如果最大计数 大于当前计数
|
||||
{
|
||||
if (!obj.isMyControlObject()) return false; //如果不是我的控制对象则返回
|
||||
|
||||
local posX = Xpos + sq_getRandom(-px * 2, px * 2); //得到坐标
|
||||
local posY = Ypos + sq_getRandom(-px, px); //得到坐标
|
||||
|
||||
sq_BinaryStartWrite();
|
||||
sq_BinaryWriteDword(235);
|
||||
|
||||
sq_BinaryWriteDword(px); //atk 百分比值
|
||||
sq_BinaryWriteDword(downnum); //最大计数
|
||||
sq_BinaryWriteDword(nowdownnum + 1); //当前计数
|
||||
sq_BinaryWriteDword(atk); //
|
||||
sq_BinaryWriteDword(BigSword);
|
||||
|
||||
|
||||
sq_BinaryWriteDword(Xpos);
|
||||
sq_BinaryWriteDword(Ypos);
|
||||
|
||||
|
||||
sq_SendCreatePassiveObjectPacketPos(obj, 24370, 0, posX, posY, obj.getZPos()); //生成 obj特效
|
||||
sq_SetMyShake(obj, 1, 100);
|
||||
return true;
|
||||
}
|
||||
|
||||
} else if (flagIndex == 666) {
|
||||
sq_SetMyShake(obj, 5, 300);
|
||||
}
|
||||
if (flagIndex == 222 && BigSword == 1 && downnum == nowdownnum) {
|
||||
if (!obj.isMyControlObject()) return false; //如果不是我的控制对象则返回
|
||||
|
||||
local posX = Xpos; //得到坐标
|
||||
local posY = Ypos; //得到坐标
|
||||
|
||||
sq_BinaryStartWrite();
|
||||
sq_BinaryWriteDword(235);
|
||||
|
||||
sq_BinaryWriteDword(px); //atk 百分比值
|
||||
sq_BinaryWriteDword(downnum); //最大计数
|
||||
sq_BinaryWriteDword(nowdownnum + 1); //当前计数
|
||||
sq_BinaryWriteDword(atk); //
|
||||
sq_BinaryWriteDword(BigSword);
|
||||
|
||||
sq_BinaryWriteDword(Xpos);
|
||||
sq_BinaryWriteDword(Ypos);
|
||||
|
||||
sq_SendCreatePassiveObjectPacketPos(obj, 24370, 0, posX, posY, obj.getZPos()); //生成 obj特效
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
onKeyFrameFlag_po_swordman_po_Table.rawset(235, onKeyFrameFlag_po_swordman_meteorsword);
|
||||
}
|
||||
|
||||
{
|
||||
function onEndCurrentAni_po_swordman_meteorsword(obj) {
|
||||
sq_SendDestroyPacketPassiveObject(obj);
|
||||
}
|
||||
onEndCurrentAni_po_swordman_po_Table.rawset(235, onEndCurrentAni_po_swordman_meteorsword);
|
||||
}
|
||||
/*
|
||||
|
||||
|
||||
|
||||
function setCustomData_po_swordman_meteorsword(obj, receiveData)
|
||||
{
|
||||
local px = receiveData.readDword(); //掉落范围
|
||||
local downnum = receiveData.readDword(); //掉落数量
|
||||
local nowdownnum = receiveData.readDword(); //当前计数
|
||||
local atk = receiveData.readDword(); //atk
|
||||
|
||||
local Xpos = receiveData.readDword();
|
||||
local Ypos = receiveData.readDword();
|
||||
local WeaponIndex = receiveData.readDword();
|
||||
|
||||
local size = 100;
|
||||
|
||||
local SwordIndex = sq_getRandom(1, 7);
|
||||
local ani = obj.getVar().GetAnimationMap("流星落", "passiveobject/sqr_po/swordman/animation/meteorsword/dropsword" + SwordIndex + "_meteorsword_swords.ani"); // 定义一下ani
|
||||
if (WeaponIndex == 80000001)
|
||||
{
|
||||
ani = obj.getVar().GetAnimationMap("克拉丽丝流星落", "passiveobject/sqr_po/swordman/animation/meteorsword/dropsword8_meteorsword_swords.ani");
|
||||
downnum = downnum * 2;
|
||||
px = px + 2;
|
||||
}
|
||||
obj.setCurrentAnimation(ani); //设置 特效 使用定义的 ani
|
||||
local attackInfo = sq_GetCustomAttackInfo(obj, 6); //设置 特效 使用6号位atk
|
||||
sq_SetCurrentAttackInfo(obj, attackInfo); //设置 当前攻击信息
|
||||
attackInfo = sq_GetCurrentAttackInfo(obj); //设置 attackInfo 为得到当前攻击信息
|
||||
sq_SetCurrentAttackPower(attackInfo, atk); //给当前攻击设置 百分比
|
||||
|
||||
|
||||
local currentAni = sq_GetCurrentAnimation(obj); //得到特效当前正在播放ani
|
||||
local sizeRate = size.tofloat() / 100.0; //转换浮点数运算
|
||||
currentAni.setImageRateFromOriginal(sizeRate, sizeRate); //增加ani 宽度跟高度率
|
||||
currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); //增加ani als附加 ani大小比例
|
||||
sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); //攻击框,x y z比率
|
||||
|
||||
|
||||
obj.getVar("var").clear_vector();
|
||||
obj.getVar("var").push_vector(px); //掉落范围
|
||||
obj.getVar("var").push_vector(downnum); //掉落数量
|
||||
obj.getVar("var").push_vector(nowdownnum); //当前计数
|
||||
obj.getVar("var").push_vector(atk); //atk
|
||||
|
||||
obj.getVar("var").push_vector(Xpos);
|
||||
obj.getVar("var").push_vector(Ypos);
|
||||
|
||||
}
|
||||
|
||||
function onKeyFrameFlag_po_swordman_meteorsword(obj, flagIndex)
|
||||
{
|
||||
if (flagIndex == 1)
|
||||
{
|
||||
local px = obj.getVar("var").get_vector(0); //掉落范围
|
||||
local downnum = obj.getVar("var").get_vector(1); //掉落数量
|
||||
local nowdownnum = obj.getVar("var").get_vector(2); //当前计数
|
||||
local atk = obj.getVar("var").get_vector(3); //atk
|
||||
|
||||
local Xpos = obj.getVar("var").get_vector(4);
|
||||
local Ypos = obj.getVar("var").get_vector(5);
|
||||
|
||||
|
||||
if (downnum > nowdownnum) //如果最大计数 大于当前计数
|
||||
{
|
||||
if (!obj.isMyControlObject()) return false; //如果不是我的控制对象则返回
|
||||
|
||||
local posX = Xpos + sq_getRandom(-px * 2, px * 2); //得到坐标
|
||||
local posY = Ypos + sq_getRandom(-px, px); //得到坐标
|
||||
|
||||
sq_BinaryStartWrite();
|
||||
sq_BinaryWriteDword(235);
|
||||
|
||||
sq_BinaryWriteDword(px); //atk 百分比值
|
||||
sq_BinaryWriteDword(downnum); //最大计数
|
||||
sq_BinaryWriteDword(nowdownnum + 1); //当前计数
|
||||
sq_BinaryWriteDword(atk); //
|
||||
|
||||
sq_BinaryWriteDword(Xpos);
|
||||
sq_BinaryWriteDword(Ypos);
|
||||
|
||||
|
||||
sq_SendCreatePassiveObjectPacketPos(obj, 24370, 0, posX, posY, obj.getZPos()); //生成 obj特效
|
||||
sq_SetMyShake(obj, 1, 100);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
78
character/Swordman/WeaponMaster/ap_Meteorsword.nut
Normal file
78
character/Swordman/WeaponMaster/ap_Meteorsword.nut
Normal file
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
文件名:ap_Meteorsword.nut
|
||||
路径:character/Swordman/WeaponMaster/ap_Meteorsword.nut
|
||||
创建日期:2022-10-09 01:03
|
||||
文件用途:
|
||||
*/
|
||||
function sq_AddFunctionName(appendage) {
|
||||
appendage.sq_AddFunctionName("proc", "proc_appendage_meteorsword")
|
||||
appendage.sq_AddFunctionName("onStart", "onStart_appendage_meteorsword")
|
||||
}
|
||||
|
||||
function sq_AddEffect(appendage) {
|
||||
|
||||
}
|
||||
|
||||
function proc_appendage_meteorsword(appendage) {
|
||||
if (!appendage) return;
|
||||
|
||||
local parentObj = appendage.getParent(); //获得父对象
|
||||
local sourceObj = appendage.getSource(); //获得源对象
|
||||
|
||||
if (!sourceObj || !parentObj || sourceObj.getState() == STATE_STAND) {
|
||||
appendage.setValid(false);
|
||||
return;
|
||||
}
|
||||
|
||||
local startX = appendage.getVar().get_vector(0);
|
||||
local startY = appendage.getVar().get_vector(1);
|
||||
|
||||
sourceObj = sq_GetCNRDObjectToSQRCharacter(sourceObj); //将基础类对象转化为 角色对象
|
||||
|
||||
|
||||
if (sourceObj.getState() != 235) {
|
||||
appendage.setValid(false);
|
||||
return;
|
||||
}
|
||||
|
||||
local chrX = sq_GetDistancePos(sourceObj.getXPos(), sourceObj.getDirection(), 200);
|
||||
local chrY = sourceObj.getYPos();
|
||||
|
||||
local currT = appendage.getTimer().Get();
|
||||
|
||||
local maxT = 500;
|
||||
|
||||
|
||||
if (currT < maxT) {
|
||||
local currX = sq_GetUniformVelocity(startX, chrX, currT, maxT);
|
||||
local currY = sq_GetUniformVelocity(startY, chrY, currT, maxT);
|
||||
|
||||
parentObj.setCurrentPos(currX, currY, parentObj.getZPos());
|
||||
|
||||
} else {
|
||||
appendage.setValid(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function onStart_appendage_meteorsword(appendage) {
|
||||
if (!appendage) {
|
||||
return;
|
||||
}
|
||||
local parentObj = appendage.getParent();
|
||||
local sourceObj = appendage.getSource();
|
||||
|
||||
if (!sourceObj || !parentObj) {
|
||||
appendage.setValid(false);
|
||||
return;
|
||||
}
|
||||
appendage.getVar().clear_vector();
|
||||
appendage.getVar().push_vector(parentObj.getXPos());
|
||||
appendage.getVar().push_vector(parentObj.getYPos());
|
||||
|
||||
|
||||
}
|
||||
15
character/atgunner_load_state.nut
Normal file
15
character/atgunner_load_state.nut
Normal file
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
文件名:atgunner_load_state.nut
|
||||
路径:character/atgunner_load_state.nut
|
||||
创建日期:2022-09-09 19:23
|
||||
文件用途:女枪手技能声明文件
|
||||
*/
|
||||
//dofile("sqr/ProcPassiveSkill/ProcPassiveSkill_ATGunner.nut"); //女枪手被动技能
|
||||
//dofile("sqr/procAppend/procAppend_ATGunner.nut"); //女枪手Proc循环函数
|
||||
|
||||
//女枪手13号状态
|
||||
IRDSQRCharacter.pushState(5, "character/atgunner/atgunner13state.nut", "ATGunner13State", 13, -1);
|
||||
//女枪手PO文件声明
|
||||
//IRDSQRCharacter.pushPassiveObj("character/atgunner/atgunner_po.nut", 24371);
|
||||
|
||||
dofile("sqr/character/ATGunner/Ranger/Sawblade.nut"); //枪刃改良-女漫游-二觉被动
|
||||
BIN
character/atmage/atmage_buff.nut
Normal file
BIN
character/atmage/atmage_buff.nut
Normal file
Binary file not shown.
1256
character/atmage/atmage_common.nut
Normal file
1256
character/atmage/atmage_common.nut
Normal file
File diff suppressed because it is too large
Load Diff
341
character/atmage/atmage_header.nut
Normal file
341
character/atmage/atmage_header.nut
Normal file
@@ -0,0 +1,341 @@
|
||||
// 桧够擎 湍?模蝶缣 桡朝 牖热 蝶觼董?煎虏 偃嫦?贼怃 ?蹂? 蝶鉴偃嫦缣 ?蹂? 鼻热,enum 跷陛高击 摹树?朝 睡碟殓栖棻.
|
||||
// 湍?模蝶缣 毡朝 高击 桧够缣 厥戏卫贼 寰腌栖棻.
|
||||
|
||||
|
||||
STATE_ATTACK <- 8
|
||||
STATE_WIND_STRIKE <- 20 // 孺萄 蝶?塭桧觼
|
||||
STATE_CRYSTALATTACK <- 21 // 觼葬蝶骁 横鸥
|
||||
STATE_ELEMENTAL_CHANGE <- 22 // 楼撩嫦翕
|
||||
STATE_DARK_CHANGE <- 23 // 檩瞪
|
||||
STATE_FIRE_ROAD <- 24 // ?桧横煎萄
|
||||
STATE_CHAINLIGHTNING <- 25 // 羹樯塭桧?棚
|
||||
STATE_ICEROAD <- 26 // 橡挤望
|
||||
STATE_ICE_SWORD <- 27 // 彩匐
|
||||
STATE_HOLONG_LIGHT <- 28 // ?炀碳
|
||||
STATE_PIECE_OF_ICE <- 29 // 橡挤??
|
||||
STATE_FLAMECIRCLE <- 30 // ?溯歜怃赝
|
||||
STATE_BLUEDRAGONWILL <- 31 // 热瑟暧 暧虽
|
||||
STATE_FROZENLAND <- 32 // 橡横称擎 渠虽
|
||||
STATE_ICE_AREA <- 33 // 嬴桧蝶 缣横葬横
|
||||
STATE_ICE_CRASH <- 34 // 嬴桧蝶 觼楚莲
|
||||
STATE_BROKENARROW <- 35 // 粽煎赎拥煎办
|
||||
STATE_PUSH_OUT <- 36 // 尘横顶晦
|
||||
STATE_MAGIC_CANNON <- 37 // 衙霜 议凯
|
||||
STATE_MAGIC_SHIELD <- 38 // 尔?虞 ?撩
|
||||
STATE_TELEPORT <- 39 // 萝溯??
|
||||
STATE_FALLENBLOSSOMS <- 40 // 奢鳝:钒?翱玺
|
||||
STATE_TURNWINDMILL <- 41 // ?离给葬晦
|
||||
STATE_DARKNESSMANTLE <- 42 // 棻觼栖蝶裔?
|
||||
STATE_WATER_CANNON <- 43 // 僭渠?
|
||||
STATE_MANABURST <- 44 // 葆釭?舆
|
||||
STATE_RESONANCE <- 45 // 奢赀
|
||||
STATE_LIGHTNING_WALL <- 46 // 塭桧?棚 错
|
||||
STATE_FIREPILLAR <- 47 // 碳晦菅
|
||||
STATE_ICEMAN <- 48 // 嬴桧蝶裔
|
||||
STATE_ELEMENTAL_RAIN <- 49 // 县溯诠骁 溯樯
|
||||
STATE_MULTI_SHOT <- 50 // 翱楼掘 嫦饵
|
||||
STATE_DIEHARD <- 51 // 碳饵
|
||||
STATE_ATMAGE_DASH_ATTACK <- 52 // 热樯羹
|
||||
STATE_ICECHAKRAM <- 53 // 彩盟? (彩念饵:陕撩挡?粽)
|
||||
|
||||
STATE_ELEMENTAL_BUSTER <- 54 // 县溯诠骁 帼蝶搅
|
||||
|
||||
STATE_ICE_ORB_EX <- 60 // ?撩 嬴桧蝶 螃粽
|
||||
STATE_CONCENTRATE_EX <- 61 // 钟抚?溯桧?(尧蹴)
|
||||
STATE_ELEMENTAL_STRIKE_EX <- 62 // 县溯诠骁 蝶?塭桧觼(ex)
|
||||
STATE_ICE_FIELD_EX <- 63 // 嬴桧蝶 ?萄
|
||||
|
||||
// 陴彻饵 skill妇湿 睡碟殓栖棻.
|
||||
//
|
||||
SKILL_WIND_STRIKE <- 1 // 孺萄 蝶?塭桧觼
|
||||
SKILL_ATCHAINLIGHTNING <- 2 // 羹樯塭桧?棚
|
||||
SKILL_CRYSTALATTACK <- 3 // 觼葬蝶骁 横鸥
|
||||
SKILL_DARK_CHANGE <- 4 // 檩瞪
|
||||
SKILL_ELEMENTAL_CHANGE <- 5 // 楼撩嫦翕
|
||||
SKILL_FIRE_ROAD <- 6 // ?桧横煎萄
|
||||
SKILL_ICEROAD <- 7 // 橡挤望
|
||||
SKILL_ICE_SWORD <- 8 // 彩匐
|
||||
SKILL_HOLONG_LIGHT <- 9 // ?炀碳
|
||||
SKILL_PIECE_OF_ICE <- 10 // 橡挤??
|
||||
SKILL_FLAMECIRCLE <- 11 // ?溯歜怃赝
|
||||
SKILL_BLUEDRAGONWILL <- 12 // 热瑟暧 暧虽
|
||||
SKILL_FROZENLAND <- 13 // 橡横称擎 渠虽
|
||||
SKILL_ICE_AREA <- 14 // 嬴桧蝶缣横葬横
|
||||
SKILL_ICE_CRASH <- 15 // 嬴桧蝶觼楚莲
|
||||
SKILL_BROKENARROW <- 16 // 橡横称擎 渠虽
|
||||
SKILL_PUSH_OUT <- 17 // 尘横顶晦
|
||||
SKILL_MAGIC_CANNON <- 18 // 衙霜 议凯
|
||||
SKILL_MAGIC_SHIELD <- 19 // 尔?虞 ?撩
|
||||
SKILL_TELEPORT <- 20 // 萝溯??
|
||||
SKILL_FALLENBLOSSOMS <- 21 // 奢鳝:钒?翱玺
|
||||
SKILL_EXPRESSION <- 22 // 嫦? (?卫粽)
|
||||
SKILL_TURNWINDMILL <- 23 // ?离给葬晦
|
||||
SKILL_DARKNESSMANTLE <- 24 // 棻觼栖蝶 裔?
|
||||
SKILL_MULTI_SHOT <- 25 // 翱楼 葆彻掘 嫦饵
|
||||
SKILL_WATER_CANNON <- 26 // 僭渠?
|
||||
SKILL_FIREPILLAR <- 27 // 碳晦菅
|
||||
SKILL_MANABURST <- 28 // 葆釭?舆
|
||||
SKILL_LIGHTNING_WALL <- 29 // 塭桧?棚错
|
||||
SKILL_ELEMENTAL_RAIN <- 30 // 县溯诡陈 溯樯
|
||||
SKILL_RESONANCE <- 31 // 奢赀
|
||||
SKILL_ICEMAN <- 32 // 嬴桧蝶裔
|
||||
SKILL_DIEHARD <- 33 // 碳饵
|
||||
SKILL_ELEMENTAL_SHIELD <- 34 // 楼撩尔?
|
||||
SKILL_ICE_ELEMENTAL_ATTACK <- 35 // 热樯羹
|
||||
|
||||
|
||||
SKILL_CANCEL_WIND_STRIKE <- 38 // 孺萄 蝶?塭桧觼
|
||||
SKILL_CANCEL_PUSH_OUT <- 39 // 尘横顶晦
|
||||
SKILL_CANCEL_FALLENBLOSSOMS <- 40 // 奢鳝:钒?翱玺
|
||||
SKILL_CANCEL_TURNWINDMILL <- 41 // ?离给葬晦
|
||||
SKILL_CANCEL_BROKENARROW <- 42 // 橡横称擎 渠虽
|
||||
SKILL_CANCEL_ICE_CRASH <- 43 // 嬴桧蝶觼楚莲
|
||||
SKILL_CANCEL_FROZENLAND <- 44 // 橡横称擎 渠虽
|
||||
SKILL_CANCEL_ICE_SWORD <- 45 // 彩匐
|
||||
SKILL_CANCEL_MULTI_SHOT <- 46 // 警蜗 翱楼 葆彻掘 陈葬晦
|
||||
SKILL_CANCEL_FLAMECIRCLE <- 47 // ?溯歜怃赝
|
||||
SKILL_ICECHAKRAM <- 48 // 彩盟? (彩念饵:陕撩挡?粽)
|
||||
SKILL_ELEMENTAL_BUSTER <- 49 // 县溯诠骁 帼蝶搅(陕撩晦)
|
||||
SKILL_TUNDRASOUL <- 50 // 矗萄塭暧 陛? (彩念饵:陕撩?卫粽)
|
||||
SKILL_ELEMENTAL_CHAIN <- 51 // 县溯诠骁 羹樯 (县溯诠骁夥该:陕撩?卫粽)
|
||||
|
||||
SKILL_ICE_ORB_EX <- 60 // ?撩 嬴桧蝶 螃粽
|
||||
SKILL_CONCENTRATE_EX <- 61 // 钟抚?溯?(尧蹴)
|
||||
SKILL_ELEMENTAL_STRIKE_EX <- 62 // 县溯诠骁 蝶?塭桧觼 (?撩蝶鉴)
|
||||
SKILL_ICE_FIELD_EX <- 63 // 嬴桧蝶 ?萄
|
||||
|
||||
|
||||
//211 `ATMage/WindStrikeEx.skl` // 孺萄蝶?塭桧觼 鬼?
|
||||
//212 `ATMage/ChainLightningEx.skl` // 羹樯塭桧?棚 鬼?
|
||||
SKILL_CRYSTALATTACK_EX <- 213 //觼葬蝶骁 横鸥 鬼?
|
||||
//214 `ATMage/DarkChangeEx.skl` // 檩瞪 鬼?//
|
||||
SKILL_FIRE_ROAD_EX <- 216 // ?桧横煎萄 鬼?
|
||||
SKILL_ICEROAD_EX <- 217 // 橡挤望 鬼?
|
||||
SKILL_ICE_SWORD_EX <- 218 // 彩寥匐 鬼?
|
||||
//219 `ATMage/HolongLightEx.skl` // ?炀碳(敝扑?) 鬼?
|
||||
//220 `ATMage/PieceOfIceEx.skl` // ?横蝶 螃粽 嬴桧蝶 鬼?
|
||||
//221 `ATMage/FlameCircleEx.skl` // ?溯歜怃赝 鬼?
|
||||
//222 `ATMage/BlueDragonWillEx.skl` // 热瑟暧 暧虽(嬴桧蝶 紧?该) 鬼?
|
||||
//223 `ATMage/FrozenLandEx.skl` // 橡横称擎 渠虽(斛?暧 僭晦菅) 鬼?
|
||||
SKILL_ICE_AREA_EX <- 224 // 嬴桧蝶缣横葬横(嬴桧蝶觼葬蝶骁凛表) 鬼?
|
||||
//225 `ATMage/IceCrashEx.skl` // 嬴桧蝶觼楚莲 鬼?
|
||||
//226 `ATMage/BrokenArrowEx.skl` // 粽煎赎缣煎办 鬼?
|
||||
SKILL_PUSH_OUT_EX <- 227 // 尘横顶晦(旎釭潍) 鬼?
|
||||
//228 `ATMage/MagicCannonEx.skl` // 衙霜议凯 鬼?
|
||||
//229 `ATMage/MagicShieldEx.skl` // 尔?虞?撩 鬼?
|
||||
//
|
||||
//231 `ATMage/FallenBlossomsEx.skl` // 钒?翱玺(扑?翱玺) 鬼?
|
||||
//
|
||||
//233 `ATMage/TurnWindmillEx.skl` // ?离给葬晦(?瞪瘫玺) 鬼?
|
||||
//234 `ATMage/DarknessMantleEx.skl` // 棻觼栖蝶 裔? 鬼?
|
||||
//235 `ATMage/MultiShotEx.skl` // 翱楼嫦饵 鬼?
|
||||
//236 `ATMage/WaterCannonEx.skl` // 僭渠? 鬼?
|
||||
//237 `ATMage/FirePillarEx.skl` // 碳晦菅 鬼?
|
||||
//
|
||||
SKILL_LIGHTNING_WALL_EX <- 239 // 塭桧?棚 错 鬼?
|
||||
//
|
||||
//240 `ATMage/ElementalRainEx.skl` // 县溯诠骁 溯樯 鬼?
|
||||
//241 `ATMage/ResonanceEx.skl` // 奢赀 鬼?
|
||||
//242 `ATMage/IceManEx.skl` // 嬴桧蝶裔 鬼?
|
||||
|
||||
|
||||
|
||||
SKILL_BASIC_ATTACK_UP <- 174 // 晦狱晦 鬼?
|
||||
|
||||
|
||||
// 陴彻饵 animation 妇湿 睡碟殓栖棻.
|
||||
//
|
||||
CUSTOM_ANI_WIND_STRIKE <- 0 // 孺萄 蝶?塭桧觼
|
||||
CUSTOM_ANI_CRYSTALATTACK <- 1 // 觼葬蝶骁 横鸥
|
||||
CUSTOM_ANI_DARK_CHANGE_READY <- 2 // 檩瞪 : 议蝶?
|
||||
CUSTOM_ANI_DARK_CHANGE_START <- 3 // 檩瞪 : 嫦翕
|
||||
CUSTOM_ANI_ELEMENTAL_CHANGE <- 4 // 楼撩嫦翕
|
||||
CUSTOM_ANI_FIRE_ROAD_CAST1 <- 5 // ?桧横煎萄 - 议蝶?1
|
||||
CUSTOM_ANI_FIRE_ROAD_CAST2 <- 6 // ?桧横煎萄 - 议蝶?2
|
||||
CUSTOM_ANI_CHAINLIGHTNING_CAST <- 7 // 7.羹樯塭桧?棚
|
||||
CUSTOM_ANI_CHAINLIGHTNING <- 8 // 8.羹樯塭桧?棚
|
||||
CUSTOM_ANI_CHAINLIGHTNING_END <- 9 // 9.羹樯塭桧?棚
|
||||
CUSTOM_ANI_ICE_SWORD <- 10 // 彩匐
|
||||
CUSTOM_ANI_HOLONG_LIGHT <- 11 // ?炀碳
|
||||
CUSTOM_ANI_PIECE_OF_ICE <- 12 // 橡挤??
|
||||
CUSTOM_ANI_ICEROAD <- 13 // 橡挤望
|
||||
CUSTOM_ANI_FLAMECIRCLE1 <- 14 // ?溯歜怃赝1 - 卫翕
|
||||
CUSTOM_ANI_FLAMECIRCLE2 <- 15 // ?溯歜怃赝2 - 遽绿
|
||||
CUSTOM_ANI_FLAMECIRCLE3 <- 16 // ?溯歜怃赝3 - 嫦饵
|
||||
CUSTOM_ANI_BLUEDRAGONWILL1 <- 17 // 热瑟暧 暧虽1
|
||||
CUSTOM_ANI_BLUEDRAGONWILL2 <- 18 // 热瑟暧 暧虽2
|
||||
CUSTOM_ANI_BLUEDRAGONWILL3 <- 19 // 热瑟暧 暧虽3
|
||||
CUSTOM_ANI_FROZENLAND1 <- 20 // 橡横称擎 渠虽1
|
||||
CUSTOM_ANI_FROZENLAND2 <- 21 // 橡横称擎 渠虽2
|
||||
|
||||
CUSTOM_ANI_ICE_AREA <- 22 // 嬴桧蝶 缣横葬横
|
||||
CUSTOM_ANI_ICE_CRASH_START <- 23 // 嬴桧蝶 觼楚莲 卫蒙
|
||||
CUSTOM_ANI_ICE_CRASH_LOOP <- 24 // 嬴桧蝶 觼楚莲 奁犒
|
||||
CUSTOM_ANI_ICE_CRASH_LOOP_ATTACK <- 25 // 嬴桧蝶 觼楚莲 奁犒 奢问卫
|
||||
CUSTOM_ANI_ICE_CRASH_END <- 26 // 嬴桧蝶 觼楚莲 虞颤
|
||||
CUSTOM_ANI_FROZENLAND3 <- 27 // 橡横称擎 渠虽3
|
||||
CUSTOM_ANI_BROKENARROW1 <- 28 // 粽煎赎缣煎办 1
|
||||
CUSTOM_ANI_BROKENARROW_LOOP1 <- 29 // 粽煎赎缣煎办 1 loop
|
||||
CUSTOM_ANI_PUSH_OUT_GRAB <- 30 // 尘横顶晦 : 尘晦瞪 濩晦
|
||||
|
||||
CUSTOM_ANI_PUSH_OUT <- 31 // 尘横顶晦
|
||||
CUSTOM_ANI_BROKENARROW_DASH1 <- 32 // 粽煎赎缣煎办 2
|
||||
CUSTOM_ANI_BROKENARROW_DASH2 <- 33 // 粽煎赎缣煎办 3
|
||||
CUSTOM_ANI_AT_MAGIC_CANNON_1 <- 34 // 衙霜 议凯 热?
|
||||
CUSTOM_ANI_AT_MAGIC_SHIELD <- 35 // 尔?虞 ?撩
|
||||
CUSTOM_ANI_TELEPORT1 <- 36 // 萝溯??1
|
||||
CUSTOM_ANI_TELEPORT2 <- 37 // 萝溯??2
|
||||
CUSTOM_ANI_FALLENBLOSSOMS1 <- 38 // 钒?翱玺1
|
||||
CUSTOM_ANI_FALLENBLOSSOMS2 <- 39 // 钒?翱玺2
|
||||
CUSTOM_ANI_FALLENBLOSSOMS3 <- 40 // 钒?翱玺3
|
||||
|
||||
CUSTOM_ANI_AT_MAGIC_CANNON_2 <- 41 // 衙霜 议凯 渠陕摹
|
||||
CUSTOM_ANI_AT_MAGIC_CANNON_3 <- 42 // 衙霜 议凯 热霜
|
||||
CUSTOM_ANI_TURNWINDMILL1 <- 43 // ?离 给葬晦1
|
||||
CUSTOM_ANI_TURNWINDMILL2 <- 44 // ?离 给葬晦2
|
||||
CUSTOM_ANI_DARKNESSMANTLE <- 45 // 棻觼栖蝶裔?
|
||||
CUSTOM_ANI_AT_MAGIC_CANNON_READY <- 46 // 衙霜 议凯 遽绿
|
||||
CUSTOM_ANI_WATER_CANNON <- 47 // 僭渠?
|
||||
CUSTOM_ANI_ICE_ELEMENTAL_ATTACK1 <- 48 // 热樯羹 奢问1
|
||||
CUSTOM_ANI_ICE_ELEMENTAL_ATTACK2 <- 49 // 热樯羹 奢问2
|
||||
CUSTOM_ANI_ICE_ELEMENTAL_ATTACK3 <- 50 // 热樯羹 奢问3
|
||||
|
||||
CUSTOM_ANI_ICE_ELEMENTAL_DASH_ATTACK <- 51 // 热樯羹 渠莲 奢问
|
||||
CUSTOM_ANI_ICE_ELEMENTAL_JUMP_ATTACK <- 52 // 热樯羹 薄? 奢问
|
||||
CUSTOM_ANI_LIGHTNING_WALL <- 53 // 塭桧?棚 错
|
||||
CUSTOM_ANI_RESONANCE <- 54 // 奢赀
|
||||
CUSTOM_ANI_FIREPILLAR1 <- 55 // 碳晦菅1
|
||||
CUSTOM_ANI_FIREPILLAR2 <- 56 // 碳晦菅2
|
||||
CUSTOM_ANI_FIREPILLAR3 <- 57 // 碳晦菅3
|
||||
CUSTOM_ANI_ICEMAN1 <- 58 // 58. 嬴桧蝶裔1 (颤啃?)
|
||||
CUSTOM_ANI_ICEMAN2 <- 59 // 59. 嬴桧蝶裔2 (议蝶?)
|
||||
CUSTOM_ANI_ICEMAN3 <- 60 // 60. 嬴桧蝶裔3 (桧翕)
|
||||
|
||||
CUSTOM_ANI_ICEMAN4 <- 61 // 61. 嬴桧蝶裔4 (陪颤)
|
||||
CUSTOM_ANI_ICEMAN5 <- 62 // 62. 嬴桧蝶裔5 (鬼颤)
|
||||
CUSTOM_ANI_ELEMENTAL_RAIN_CAST <- 63 // 63. 县溯诠骁 溯樯 议蝶? 卫蒙
|
||||
CUSTOM_ANI_ELEMENTAL_RAIN_JUMP <- 64 // 64. 县溯诠骁 溯樯 薄?
|
||||
CUSTOM_ANI_ELEMENTAL_RAIN_JUMP_STAY <- 65 // 65. 县溯诠骁 溯樯 薄? 渠晦
|
||||
CUSTOM_ANI_ELEMENTAL_RAIN_SHOOT <- 66 // 66. 县溯诠骁 溯樯 楼撩 嫦饵.
|
||||
CUSTOM_ANI_ELEMENTAL_RAIN_CHARGE_SHOOT <- 67 // 67. 县溯诠骁 溯樯 离虽螂 嫦饵.
|
||||
CUSTOM_ANI_MULTI_SHOT <- 68 // 68. 翱楼 葆彻掘 嫦饵.
|
||||
CUSTOM_ANI_ICEMAN6 <- 69 // 69. 嬴桧蝶裔6 (铮桧?)
|
||||
CUSTOM_ANI_DIEHARD1 <- 70 // 70. 碳饵1
|
||||
|
||||
CUSTOM_ANI_DIEHARD2 <- 71 // 71. 碳饵2
|
||||
CUSTOM_ANI_DIEHARD3 <- 72 // 72. 碳饵3
|
||||
CUSTOM_ANI_FROZENLAND_CASTING <- 73 // 73. 橡横称擎 渠虽 议蝶?
|
||||
CUSTOM_ANI_FLAMECIRCLE_CASTING <- 74 // 74. ?溯歜怃赝 议蝶?
|
||||
CUSTOM_ANI_DARKNESSMANTLE_CASTING <- 75 // 75. 棻觼栖蝶裔? 议蝶?
|
||||
CUSTOM_ANI_ICEROAD_CASTING <- 76 // 76. 橡挤望 议蝶?
|
||||
CUSTOM_ANI_PUSH_OUT_ATTACK <- 77 // 77. 尘横顶晦 尘晦
|
||||
CUSTOM_ANI_AT_MAGIC_CANNON_4 <- 78 // 78. 衙霜议凯 虽鼻颤
|
||||
CUSTOM_ANI_ICECHAKRAM_1 <- 79 // 79. 彩盟?1
|
||||
|
||||
CUSTOM_ANI_ICECHAKRAM_2 <- 80 // 80. 彩盟?2
|
||||
CUSTOM_ANI_ICECHAKRAM_3 <- 81 // 81. 彩盟?3
|
||||
CUSTOM_ANI_ICECHAKRAM_4 <- 82 // 82. 彩盟?4
|
||||
CUSTOM_ANI_ICECHAKRAM_5 <- 83 // 83. 彩盟?5
|
||||
CUSTOM_ANI_ICECHAKRAM_6 <- 84 // 84. 彩盟?6
|
||||
CUSTOM_ANI_ELEMENTAL_BUSTER_FIRE_CAST <- 85 // 85. 县溯诠骁 帼蝶搅 (?楼撩 嫦翕)
|
||||
CUSTOM_ANI_ELEMENTAL_BUSTER_FIRE <- 86 // 86. 县溯诠骁 帼蝶搅
|
||||
CUSTOM_ANI_ELEMENTAL_BUSTER_WATER_CAST <- 87 // 87. 县溯诠骁 帼蝶搅 (热楼撩 嫦翕)
|
||||
CUSTOM_ANI_ELEMENTAL_BUSTER_WATER <- 88 // 88. 县溯诠骁 帼蝶搅
|
||||
CUSTOM_ANI_ELEMENTAL_BUSTER_LIGHT_CAST <- 89 // 89. 县溯诠骁 帼蝶搅 (赀楼撩 嫦翕)
|
||||
CUSTOM_ANI_ELEMENTAL_BUSTER_LIGHT <- 90 // 90. 县溯诠骁 帼蝶搅
|
||||
CUSTOM_ANI_ELEMENTAL_BUSTER_DARK_CAST <- 91 // 91. 县溯诠骁 帼蝶搅 (檩楼撩 嫦翕)
|
||||
|
||||
CUSTOM_ANI_ELEMENTAL_BUSTER_DARK <- 92 // 92. 县溯诠骁 帼蝶搅
|
||||
CUSTOM_ANI_ICE_ORB_EX <- 93 // 93. 嬴桧蝶 螃粽 拥栖(?撩) 樯策蝶
|
||||
CUSTOM_ANI_CONCENTRATE_EX <- 94 // 94. 钟抚?溯桧?(?撩)
|
||||
CUSTOM_ANI_ELEMENTAL_STRIKE_EX <- 95 // 95. 县溯诠骁 蝶?塭桧觼(?撩)
|
||||
CUSTOM_ANI_ICE_FIELD_EX <- 96 // 96. 嬴桧蝶 ?萄(?撩)
|
||||
|
||||
|
||||
// 陴彻饵 atk?橾 妇湿 睡碟殓栖棻.
|
||||
//
|
||||
CUSTOM_ATTACK_INFO_DARK_CHANGE <- 0 // 檩瞪 : 奢问姜尔
|
||||
CUSTOM_ATTACK_INFO_ICE_SWORD <- 1 // 彩匐 : 奢问姜尔
|
||||
CUSTOM_ATTACK_INFO_ICE_SWORD_LAST <- 2 // 彩匐虞颤 : 奢问姜尔
|
||||
CUSTOM_ATTACK_INFO_PIECE_OF_ICE <- 3 // 橡挤?? : 奢问姜尔
|
||||
CUSTOM_ATTACK_INFO_FLAMECIRCLE <- 4 // ?溯歜怃赝 : 奢问姜尔
|
||||
CUSTOM_ATTACK_INFO_ICE_CRASH <- 5 // 嬴桧蝶觼楚莲
|
||||
CUSTOM_ATTACK_INFO_ICE_CRASH_LAST <- 6 // 嬴桧蝶觼楚莲
|
||||
CUSTOM_ATTACK_INFO_PUSH_OUT_GRAB<- 7 // 尘横顶晦 濩晦
|
||||
CUSTOM_ATTACK_INFO_PUSH_OUT <- 8 // 尘横顶晦
|
||||
CUSTOM_ATTACK_INFO_AT_MAGE_BROKENARROW <- 9 // 粽煎赎拥煎办 虞颤 `ATAttackInfo/BrokenArrow.atk`
|
||||
CUSTOM_ATTACK_INFO_FALLENBLOSSOMS <- 10 // 钒?翱玺 `ATAttackInfo/FallenBlossoms.atk`
|
||||
CUSTOM_ATTACK_INFO_AT_MAGE_MAGIC_SHIELD_FIRE <- 11 // 尔?虞 ?撩 ?楼撩
|
||||
CUSTOM_ATTACK_INFO_AT_MAGE_MAGIC_SHIELD_LIGHT <- 12 // 尔?虞 ?撩 赀楼撩
|
||||
CUSTOM_ATTACK_INFO_TURN_WINDMILL <- 13 // 1ATAttackInfo/TurnWindmill.atk`
|
||||
CUSTOM_ATTACK_INFO_ICE_ELEMENTAL_ATTACK1 <- 14 // 热樯羹 奢问1
|
||||
CUSTOM_ATTACK_INFO_ICE_ELEMENTAL_ATTACK2 <- 15 // 热樯羹 奢问1
|
||||
CUSTOM_ATTACK_INFO_ICE_ELEMENTAL_ATTACK3 <- 16 // 热樯羹 奢问1
|
||||
CUSTOM_ATTACK_INFO_ICE_ELEMENTAL_DASH_ATTACK <- 17 // 热樯羹 渠莲 奢问
|
||||
CUSTOM_ATTACK_INFO_ICE_ELEMENTAL_JUMP_ATTACK <- 18 // 热樯羹 薄? 奢问
|
||||
CUSTOM_ATTACK_INFO_RESONANCE <- 19 // 奢赀
|
||||
CUSTOM_ATTACK_INFO_ICEMAN <- 20 // 嬴桧蝶裔
|
||||
CUSTOM_ATTACK_INFO_ICE_CHAKRAM <- 21 // 嬴桧蝶裔
|
||||
|
||||
|
||||
ENUM_ELEMENT_FIRE <- 0 /// ?
|
||||
ENUM_ELEMENT_WATER <- 1 /// 热
|
||||
ENUM_ELEMENT_DARK <- 2 /// 檩
|
||||
ENUM_ELEMENT_LIGHT <- 3 /// 赀
|
||||
ENUM_ELEMENT_NONE <- 4 /// 鼠
|
||||
ENUM_ELEMENT_MAX <- 4 /// 楼撩 譆渠 高
|
||||
|
||||
VECTOR_FLAG_0 <- 0
|
||||
VECTOR_FLAG_1 <- 1
|
||||
VECTOR_FLAG_2 <- 2
|
||||
VECTOR_FLAG_3 <- 3
|
||||
VECTOR_FLAG_4 <- 4
|
||||
VECTOR_FLAG_5 <- 5
|
||||
|
||||
SKL_STATIC_INT_IDX_0 <- 0
|
||||
SKL_STATIC_INT_IDX_1 <- 1
|
||||
SKL_STATIC_INT_IDX_2 <- 2
|
||||
SKL_STATIC_INT_IDX_3 <- 3
|
||||
SKL_STATIC_INT_IDX_4 <- 4
|
||||
SKL_STATIC_INT_IDX_5 <- 5
|
||||
SKL_STATIC_INT_IDX_6 <- 6
|
||||
SKL_STATIC_INT_IDX_7 <- 7
|
||||
SKL_STATIC_INT_IDX_8 <- 8
|
||||
|
||||
SKL_LVL_COLUMN_IDX_0 <- 0
|
||||
SKL_LVL_COLUMN_IDX_1 <- 1
|
||||
SKL_LVL_COLUMN_IDX_2 <- 2
|
||||
SKL_LVL_COLUMN_IDX_3 <- 3
|
||||
SKL_LVL_COLUMN_IDX_4 <- 4
|
||||
SKL_LVL_COLUMN_IDX_5 <- 5
|
||||
SKL_LVL_COLUMN_IDX_6 <- 6
|
||||
|
||||
PASSIVEOBJ_SUB_STATE_0 <- 10
|
||||
PASSIVEOBJ_SUB_STATE_1 <- 11
|
||||
PASSIVEOBJ_SUB_STATE_2 <- 12
|
||||
PASSIVEOBJ_SUB_STATE_3 <- 13
|
||||
PASSIVEOBJ_SUB_STATE_4 <- 14
|
||||
PASSIVEOBJ_SUB_STATE_5 <- 15
|
||||
PASSIVEOBJ_SUB_STATE_6 <- 16
|
||||
PASSIVEOBJ_SUB_STATE_7 <- 17
|
||||
|
||||
BROKENARROW_UNIQUE_ID <- 9001
|
||||
|
||||
|
||||
|
||||
VECTOR_I_STATE <- 0
|
||||
VECTOR_I_FLAG <- 1
|
||||
VECTOR_I_REBIRTH_STATE <- 2
|
||||
VECTOR_I_REBIRTH_TIME <- 3
|
||||
|
||||
|
||||
GHOST_TIME <- 2000
|
||||
ANGEL_DOWN_TIME <- 1000
|
||||
DOWN_PAUSE_TIME <- 100
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
| ||||