下面是引用 藍的天空 於 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 這樣就可以運作囉~