引用 | 編輯
藍的天空
2012-12-19 21:43 |
樓主
▼ |
||
x0
請問一下各位高手假如我要用GASH來買槍 而且買了之後是永久保存的 可以用另外的選單來開啟 請問一下要怎麼寫? 拜託各位高手教一下 x0
|
引用 | 編輯
觀眾甲
2012-12-19 22:17 |
1樓
▲ ▼ |
新增一個變數或者bool
如果他購買了 將變數設成1 并將他用fvault或者nvault儲存到資料庫 玩家離開伺服器時儲存資料 玩家進入伺服器時讀取資料 利用if判斷他變數是否為1 非1則return 1則give_item x0 |
引用 | 編輯
八云の橙貓
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 這樣就可以運作囉~ x2 |