引用 | 编辑
蓝的天空
2012-12-19 21:43 |
楼主
▼ |
||
![]() 假如我要用GASH来买枪 而且买了之后是永久保存的 可以用另外的选单来开启 请问一下要怎么写? 拜托各位高手教一下 ![]() ![]()
|
引用 | 编辑
观众甲
2012-12-19 22:17 |
1楼
▲ ▼ |
新增一个变数或者bool
如果他购买了 将变数设成1 并将他用fvault或者nvault储存到资料库 玩家离开伺服器时储存资料 玩家进入伺服器时读取资料 利用if判断他变数是否为1 非1则return 1则give_item ![]() |
引用 | 编辑
八云の橙猫
2012-12-20 21:26 |
3楼
▲ ▼ |
下面是引用 蓝的天空 于 2012-12-20 20:01 发表的 : 复制程式 public client_disconnect(id) //玩家断线时 { SaveData(id) //进行保存资料的动作 } public client_putinserver(id) // 当玩家进入伺服器时 { LoadData(id) //进行读取资料的动作 } public SaveData(id) { new name[32], vaultkey[128], vaultdata[256] get_user_name(id, name, 31) //取得玩家名称 format(vaultkey, 127, "Data-%s", name) //使用某玩家的名称进行资料保存(Data可以随意更改 不妨碍保存) format(vaultdata, 255, "%i#", g_HasBuyItem[id]) //假设前面已经新增一个g_HasBuyItem 并且在此进行保存 nvault_set(vault, vaultkey, vaultdata) } public LoadData(id) { new name[32], vaultkey[128], vaultdata[256] get_user_name(id,name,31) format(vaultkey, 127, "Data-%s", name) //读取相应名称玩家的资料 format(vaultdata, 255, "%i#", g_HasBuyItem[id]) //读取相应资料 **注意:有多项资料时 顺序不可错 nvault_get(vault, vaultkey, vaultdata, 255) replace_all(vaultdata, 255, "#", " ") new BuyItem[id] //新增BuyItem parse(vaultdata, BuyItem, 31) //读取储存好的BuyItem资料(见下行) g_HasBuyItem[id] = str_to_num(BuyItem) //将g_HasBuyItem由字串转换为数字后进行读取动作 } 有错请指正-w-((对于专有名词不太会解释 ----- 对于g_HasBuyItem进行保存的动作(假设你已经有新增的话 或者要改成其他的也行) 如果已经有购买者则以1进行保存 未购买者则以0进行保存 之后再用上帝所说的方法写出code 这样就可以运作啰~ ![]() |