# 三、获取数据然后存储
> 我们可以在游戏中获取一些信息然后存储下来,比如 `玩家名字` 或 某些 `字符串` 信息
比如我们需要获取玩家名字,这里我们需要用到的是 `fakemeta` 模块中的 `pev_netname`
我们来细致讲一下,首先我们需要知道要获取谁。通过当前已知条件可以写出这样的代码:
`pev(id, pev_netname)`
但这样是没有作用的,因为获取之后没有保存下来。那么我们应该如何`保存`呢
我们来看个代码例句:(获取玩家名字)
```
public test(id)
{
new fname[33]
pev(id, pev_netname, fname, 32)
client_print(id, print_chat, "玩家 %s 引发了函数", fname)
}
```
上面的例子不难看出,获取后保存的地方就是 `fname` 这个数组里面,当我们使用的时候 只需要写上 `fname` 即可。
那具体是怎么样获取的?
我们首先要分解一下代码。然后我们逐步来分析;
1. `new fname[33]` 创建一个临时变量(变量名是 `fname` 这是一个带数组的存储器,最大存储33字符)
2. `id` 指的是索引(index),意思是获取谁的名字,要和函数的 `索引(index)` 对应
3. `pev( )` 通过 `fakemeta` 的 PEV 来获取一些数据,在括号 `()` 里填写需要获取什么
4. `pev_netname` 获取玩家的游戏名字(可以通过 `fakemeta_const.inc` 以查看更多)
5. `fname` 当我们获取后,将获取到的数据存储到什么地方(这里填写 `数组的变量名` )
6. `32` 我们定义的 数组最大是 `33` 的存储空间,所以在最后就必须 `少一位` 。
当我们把所有代码组合一下,就变成如下:
```
new fname[33]
pev(id, pev_netname, fname, 32)
```
> TIP:获取到的名字已经被存储到了 `fname` 变量中,你可以随时来调用他
## 扩展思维
> 当然除了获取名字,还有更多的变通方法
写法注意:创建的临时变量名,要和 pev( ) 里面的那个进行对应。
我们来看看还有哪些其他的使用方式
* 获取实体名
```
new class[33]
pev(id, pev_classname, class, 32)
```
* 获取模型路径
```
new jmodel[33]
pev(id, pev_model, model, 32)
```
> 更多的 `pev_` 可参考 `fakemeta_const.inc`
> * 使用的 `变量存储` 是临时变量