# 一、FakeMeta(Pev)
在 `FakeMeta` 模块中有一种代码叫 `Pev`
PEV是一个神奇东西,他几乎可以篡改游戏中的任何数据,比如 `生命值`,`重力`,`固体类型`,`移动类型`,`摩擦力`,`坐标位置` 等等…
我们可以通过 `Pev` 来获取或者更改游戏中的数据
例如:
```
生命值是 `pev_health`
重力是 `pev_gravity`
坐标系是 `pev_origin`
移动向量 `pev_velocity`
……
```
让我们来看看如何用 `Pev` 更改以及获取
## 示例(1):将玩家生命值改为140
```
#include <amxmodx>
#include <fakemeta>
public test(id)
{
set_pev(id, pev_health, 140.0)
}
```
## 示例(2):获取玩家坐标位置
```
#include <amxmodx>
#include <fakemeta>
public test(id)
{
new Float:org[3]
pev(id, pev_origin, org)
client_print(id, print_chat, "玩家坐标是: [X: %.2f], [Y: %.2f], [%.2f]", org[0], org[1], org[2])
}
```
## 示例(3):设定玩家移动向量(玩家会以 `400.0` 的速度向上飞起)
```
#include <amxmodx>
#include <fakemeta>
public test(id)
{
new Float:vel[3]
vel[2] = 400.0
set_pev(id, pev_velocity, vec)
}
```
不难看出,获取也就是只写 `pev` ,而修改则需要写上 `set_pev` 。这就是他们的区别
## 更多的PEV
> 那 `pev类型` 到底有哪些呢?(下面的代码摘于:百度贴吧)
```
2.1.1 字符串型实体属性 里面装载另一个字符串
pev_string_start = 0, //无效的实体属性 主要用于遍历
pev_classname, 实体类型名称 做地图的人会知道这些 实体的类决定了实体是什么用途
pev_globalname,
pev_model, 实体模型
pev_target, 实体的目标 用于控制
pev_targetname, 实体的目标 用于控制
pev_netname, 实体的网络名称 如玩家游戏名称
pev_message, 实体的激发的文字
pev_noise, 保留备用的 可以自由存放
pev_noise1, 保留备用的 可以自由存放
pev_noise2, 保留备用的 可以自由存放
pev_noise3, 保留备用的 可以自由存放
pev_string_end, //无效的实体属性 主要用于遍历
2.1.2 实体值型实体属性 里面装载另一个实体号
pev_edict_start, //无效的实体属性 主要用于遍历
pev_chain, //不明
pev_dmg_inflictor, //被伤害的人/实体 ,攻击者
pev_enemy, //敌人 用于NPC
pev_aiment, //帽子等装饰 用于连接2个实体
pev_owner, //所有者
pev_groundentity, //脚下的实体
pev_euser1, //保留备用的 可以自由存放
pev_euser2, //保留备用的 可以自由存放
pev_euser3, //保留备用的 可以自由存放
pev_euser4, //保留备用的 可以自由存放
pev_edict_end, //无效的实体属性 主要用于遍历
2.1.3 小数型(浮点)实体属性 取得或设置实体的详细值
pev_float_start, //无效的实体属性 主要用于遍历
pev_impacttime, //碰撞时间
pev_starttime, //开始时间
pev_idealpitch, //理想的PITCH范围
pev_ideal_yaw, //理想的YAW范围
pev_pitch_speed, //朝向PITCH的速度
pev_yaw_speed, //朝向YAW的速度
pev_ltime, //时间长度
pev_nextthink, //下次心跳时间
pev_gravity, //重力
pev_friction, //摩擦速度 如滑雪
pev_frame, //当前实体播放的动作帧数
pev_animtime, //在什么时候开始播放实体动画
pev_framerate, //动画播放速度比率
pev_scale, //大小 仅用于SPR
pev_renderamt, //渲染 详见 fakemeta_util.inc fm_set_rendering
pev_health, //生命值
pev_frags, //比分
pev_takedamage, //实体是否可被伤害 参看HLSDK.INC
pev_max_health, //最大生命值
pev_teleport_time, //传输时间
pev_armortype, //护甲类型
pev_armorvalue, //护甲值
pev_dmg_take, //伤害值保存
pev_dmg_save, //伤害值保存
pev_dmg, //实体威力值 用于手雷等爆炸物
pev_dmgtime, //实体威力爆发时间 主要用于手雷爆炸物
pev_speed, //速度
pev_air_finished,
pev_pain_finished,
pev_radsuit_finished,
pev_maxspeed, //最大速度
pev_fov, //视野
pev_flFallVelocity, //坠落的速度
pev_fuser1, //保留备用的 可以自由存放
pev_fuser2, //保留备用的 可以自由存放
pev_fuser3, //保留备用的 可以自由存放
pev_fuser4, //保留备用的 可以自由存放
pev_float_end, //无效的实体属性 主要用于遍历
2.1.4 整数型实体属性 取得或设置实体的详细值
pev_int_start, //无效的实体属性 主要用于遍历
pev_fixangle, //朝向与视角朝向同步
pev_modelindex, //模型缓存序号
pev_viewmodel, //V模型
pev_weaponmodel, //P模型
pev_movetype, //移动类型 参看HLSDK.INC
pev_solid, //固态类型 参看HLSDK.INC
pev_skin, //模型的皮肤样式 如果模型有
pev_body, //子模型 如果模型有
pev_effects, //渲染亮度
pev_light_level, //亮度等级
pev_sequence, //模型的动作序列
pev_gaitsequence, //下半身动作序列 仅用于玩家
pev_rendermode, //详见 fakemeta_util.inc fm_set_rendering
pev_renderfx, //详见 fakemeta_util.inc fm_set_rendering
pev_weapons, //武器表(位)
pev_deadflag, //死亡标记 参看HLSDK.INC
pev_button, //正在被按下的按键
pev_impulse, //手电 喷图 喷射 等
pev_spawnflags, //出生标记 参看HLSDK.INC
pev_flags, //状态标记 参看HLSDK.INC
pev_colormap,
pev_team, //队伍
pev_waterlevel, //浸泡在水中的程度
pev_watertype, //浸泡在哪种液体中
pev_playerclass, //玩家角色
pev_weaponanim, //武器动作
pev_pushmsec, //推时间
pev_bInDuck, //蹲下
pev_flTimeStepSound, //脚步声
pev_flSwimTime, //游泳时间
pev_flDuckTime, //蹲下时间
pev_iStepLeft, //步伐
pev_gamestate, //游戏状态
pev_oldbuttons, //之前按下的按键
pev_groupinfo, //组类型
pev_iuser1, //保留备用的 可以自由存放
pev_iuser2, //保留备用的 可以自由存放
pev_iuser3, //保留备用的 可以自由存放
pev_iuser4, //保留备用的 可以自由存放
pev_int_end, //无效的实体属性 主要用于遍历
2.1.5 向量实体属性 取得或设置实体的向量(数组)
pev_vecarray_start, //无效的实体属性 主要用于遍历
pev_origin, //实体坐标
pev_oldorigin, //实体之前的坐标
pev_velocity, //实体速率
pev_basevelocity, //实体基础速率 用于传送带等
pev_clbasevelocity,
pev_movedir, //可能是移动目标
pev_angles, //实体朝向
pev_avelocity, //实体受速率影响时朝向变化 仅对实体有效
pev_v_angle, //实体视角朝向
pev_endpos, //开始点
pev_startpos, //结束点
pev_absmin, //实体范围 开始
pev_absmax, //实体范围 结束
pev_mins, //实体大小 开始
pev_maxs, //实体大小 结束
pev_size, //实体大小
pev_rendercolor, //详见 fakemeta_util.inc fm_set_rendering
pev_view_ofs, //瞄准视角的速率
pev_vuser1, //保留备用的 可以自由存放
pev_vuser2, //保留备用的 可以自由存放
pev_vuser3, //保留备用的 可以自由存放
pev_vuser4, //保留备用的 可以自由存放
pev_punchangle, //晃动朝向 仅对玩家有效
pev_vecarray_end, //无效的实体属性 主要用于遍历
```
> 可能不是所有的 `pev类` 都包含在里面。标准大全可参考 `fakemeta_const.inc`