發表新的主題  發表回覆
我的資料 | 免費註冊 | 搜尋文章 | 最新話題 | 常見問題 | 會員清單 | 論壇首頁
  下個最舊主題   下一個最新主題
»  FSS   » 五星物語討論區   » 資訊討論區   » [問題]mailbox的問題

UBB好友: 把此頁寄給好友!    
發表者 主題: [問題]mailbox的問題
超帥滴酒鬼




會員號碼: 33

評分會員

發表於 May 30, 2003 10:56 AM     資料 超帥滴酒鬼   個人網頁   Email 超帥滴酒鬼     發送新的私人訊息   編輯/刪除 文章   引用回覆

想問一下一個問題, 下面是mailbox.c內寄信出去時,
要讓收信人login時能判斷new_mail是不是大於1,
來給他訊息說有新信,
下面那樣寫不知道為什麼不能在ob內設定new_mail為1,

object ppl, ob, mbx;

ob = FINGER_D->acquire_login_ob(rcvr);
if( !ob ) {
write("沒有這個人存在。\n");
return;
}
ob->add("new_mail",1);
ob->save();

我試過把add("new_mail",1) 改為 set("new_mail",1)
不過還是沒效果,
因為我在/feature/dbase.c內的add和set都加上write_file寫log,
結果不管是透過add內來執行set或者直接在上面那段裡set,
會完全沒進入set那段裡面,
後來我試著在add內判斷, 如果要設定的是new_mail就直接
dbase["new_mail"] = data;
才把new_mail寫入 /data/login/xxx.o內...@@

FINGER_D->acquire_login_ob內容為
object acquire_login_ob(string id)
{
object ob;

if( ob = find_player(id) ) {
// Check if the player is linkdead
if( ob->query_temp("link_ob") )
return ob->query_temp("link_ob");
}
ob = new(LOGIN_OB);
ob->set("id", id);
return ob->restore() ? ob : 0;
}

add內容為
mixed add(string prop, mixed data)
{
mixed old;

if( !mapp(dbase) || !(old = query(prop, 1)) )
return set(prop, data);

if( functionp(old) )
error("dbase: add() - called on a function type property.\n");

return set(prop, old + data);
}

set 內容為
mixed set(string prop, mixed data)
{
if( !mapp(dbase) ) dbase = ([]);

if( strsrch(prop, '/')!=-1 )
return _set( dbase, explode(prop, "/"), data );

return dbase[prop] = data;
}

基本上 add 和 set 都是在/feature/dbase.c,
應該比較沒人去動他, fss我不知道@@,
不過看起來add裡, 不管ob本身是否本來都有設定new_mail這變數
應該都會執行到set那段, 可是不知道為什麼
ob->set("new_mail",1)或ob->add("new_mail",1)都沒效果...

而有呼叫到add就表示LOGIN_OB真的有繼承到dbase.c,
可是不知道為什麼呼叫set就會完全沒進入set內,
不知道kcc或者哪位巫師大哥大姐知道這個問題的..
還是我太笨了看不出來?..
thanks!


總發表數: 76 | 來自: 台北縣 | 註冊於: Nov 2002  |  IP: 查看 IP
超帥滴酒鬼




會員號碼: 33

評分會員

發表於 June 03, 2003 03:12 PM     資料 超帥滴酒鬼   個人網頁   Email 超帥滴酒鬼     發送新的私人訊息   編輯/刪除 文章   引用回覆

ㄜ....
自己找到原因了...
原來login_ob裡有為了"某些"原因override了set
所以在mailbox裡面動點手腳就ok了...
什麼原因?...看起來好像是防hack用...所以這裡不post了..
kcc應該知道才對....

總發表數: 76 | 來自: 台北縣 | 註冊於: Nov 2002  |  IP: 查看 IP

本地時間為 台灣時間  

發表新的主題  發表回覆 關閉主題    移動主題    刪除主題 下個最舊主題   下一個最新主題
直接到:

聯絡我們 | 五星物語

Powered by Infopop Corporation
UBB 中文繁體版 1.02 By Windheart(www.windheart.com)TM 6.04e