📄 px_ls_discharge_skill.h
字号:
#pragma once
/* must been first include begin */
#include "..\ProjectX_Common\ProjectX_Copyright.h"
#include "..\ProjectX_Common\ProjectX_Common.h"
/* must been first include end */
/* std and common include */
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
/************************************************************************
以下为定义角色向地图上任意点或者任一主体施放物理+元素+魔法攻击或者
类似增益时使用的记录结构,数据在计算时使用frame作为是否需要计算或者
是否可以被别的施放代替,并使用targetType作为此施放的类别,所有目的都
认同所属区域怪物默认为被施放目标
************************************************************************/
/************************************************************************
说明:
一 :对于处于地图上的任一可以产生施放动作的主体(如玩家+怪物+NPC+...),其可
以施放的动作主要为以下几种:
1 带攻击型动作
2 带恢复或者治愈型动作
3 带增益型动作
4 带中立型动作
二 :各种施放动作被施放目标可以分为以下几种
1 明显对立,即永久处于对立状态,如玩家与怪物之间
2 在某一种特定状态下,才处于对立状态,如玩家与玩家之间的pk
3 处于友好状态,其中施放目标为自身,为其特殊状态
4 被施放目标可以为单独一个目标,也可以为群体目标
三 :只有在被施放目标不能在默认规则下被确认时,被施放目标才会单独由targetID指示
四 :大多数施放动作都由其特定的施放启动,施放持续,施放冷却,施放延迟所需要的时间,
即需要相应的nFrame作为其前提支持,单为了简单,此处在计算时需参考施放主体
五 :为了节约内存等关键资源的利用,在提供了施放类别之后,可能在某一些特定施放类别
上,对各具体结构成员的实现上有一定偏差,具体参考实现即附带解释
************************************************************************/
//以下为定义施放动作的产生类别,并可选提供一定解释
#define DISCHARGE_SKILL_TYPE_CURE_TARGET 1 LS_NOTE(此施放动作为向target提供治疗)
typedef struct tagDischarge_Skill {
int frame_start; //此施放发生时的帧数
int frame_persist; //持续帧数
int skillID; //施放技能id,physic_acctack == 0 got TRUE
int targetID; //被施放目标id
byte targetType; //被施放目标type
byte posX; //被施放目标位置X
byte posY; //被施放目标位置Y
struct tagDischarge_Skill * pNext;
}DISCHARGE_SKILL, * LPDISCHARGE_SKILL;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -