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

UBB好友: 把此頁寄給好友!    
發表者 主題: reborn是由下列哪個設定決定的[問題]
超帥滴酒鬼




會員號碼: 33

評分會員

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

reborn是由下列哪個設定決定的啊...
# if an object is left alone for a certain time, then the
# function clean_up will be called. This function can do anything,
# like destructing the object. If the function isn't defined by the
# object, then nothing will happen.
# This time should be substantially longer than the swapping time.
time to clean up : 180

# How long time until an unused object is swapped out.
# Machine with too many players and too little memory: 900 (15 minutes)
# Machine with few players and lot of memory: 10000
# Machine with infinite memory: 0 (never swap).
time to swap : 120

# How many seconds until an object is reset again.
time to reset : 250

---------------------------------
是不是time to reset那項
我有的npc是會每次update時改變顏色或販賣物品..
可是我一直等都等不到他變色...
還是說reborn time並不會把"活的"物件清掉?
所以如果我要讓小販在reset time時重設
是要在那個npc.c內再寫一個下面那樣的code?
void setup()
{
::setup();
//下面是要做的事,像是改顏色或改變販賣物品
..........
}


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




會員號碼: 33

評分會員

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

雖然跟本意不太一樣不過也差不多..
就是寫在npc的 init.
一過去就換顏色...換賣的物品..XD

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




會員號碼: 1

會員評分:

發表於 April 22, 2003 12:09 PM     資料 kcc   個人網頁   Email kcc     發送新的私人訊息   編輯/刪除 文章   引用回覆

其實time to reset 與 time to clean up 都會影響到。
time to reset 是時間一到就執行物件的 reset(),例如 /std/room.c 裡的reset()
它會讓原本的 npc 回家,重置物件..等等。
而time to clean up 則是時間一到,如果房間裡沒有玩家,則消滅這個房間,亦即當玩家之後來到此房間時,此房間是全新的、重置過的。

由於你的 time to clean up 設的比 time to reset 短,所以會產生不同的影響。

而vendor的設計,不需要動到系統的標準物件,若只是要定時換物品、顏色,使用 call_out 是最容易做到的方法。


總發表數: 173 | 來自: TAIWAN | 註冊於: Nov 2002  |  IP: 查看 IP
超帥滴酒鬼




會員號碼: 33

評分會員

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

謝謝kcc的回答...
那...如果我override 物件的 reset() 或 clean_up()
可以防止這種事件的發生嗎?...

比如set("no_clean_up",1)和set("no_reset",1)
然後在std/內物件繼承的標準物件內或其它原本就有重新定義
reset()或clean_up()的地方加上判斷如果物件有設定這兩種屬性就不
reset或clean_up..
不知道可不可行

會想要這樣是因為看到fss內的store..想模仿一下..
結果發生以下情況

我讓商店繼承std/room/下store.c
裡面定這兩個
mapping item_value;
object *items;

item_value存每件物品數量, items直接把賣的物品存起來
結果時間過去後..不知道是因為reset或clean_up
我再去商店list
會出現items都空了... 好像被destruct掉
但是item_value值還在....
聽起來很像是kcc前面說的clean_up了...物件被消滅掉
不過因為item_value不是物件所以還在...
我後來有試過...在物件放到items內後把每個物件都set("no_clean_up",1)
然後又去有重新定義clean_up的地方..
我忘了是哪..好像是/adm下還是/feature下有
反正就是加上
if (ob->query("no_clean_up")) return 1;
之類的..
但是一樣沒用...XD...
真不行我就只好只存物品file_name了...
thanks kcc....


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




會員號碼: 1

會員評分:

發表於 April 25, 2003 04:25 PM     資料 kcc   個人網頁   Email kcc     發送新的私人訊息   編輯/刪除 文章   引用回覆

原來你的問題是商店...
商店的做法,原本就是只存資料,不存物件。
若是你真的"存物件",則可能要開一個虛擬的房間,把物件丟進去,並且防止該房間被clean_up。
但這樣做很浪費資源,若是商店多開幾家,你還得準備一堆虛擬房間。
正確的做法是,ppl到商店賣物品時,將物品資料記錄下來後,就將該物件dest掉了,
接著只要不讓商店被update就行了。

總發表數: 173 | 來自: TAIWAN | 註冊於: Nov 2002  |  IP: 查看 IP
kcc




會員號碼: 1

會員評分:

發表於 April 25, 2003 04:29 PM     資料 kcc   個人網頁   Email kcc     發送新的私人訊息   編輯/刪除 文章   引用回覆

另外關於你提到的 set("no_clean_up",1);
在原來的mudlib中,做法是檢查到no_clean_up = 1後,不執行 clean_up
但會將該參數 -1 ,所以在下一次檢查時該房間仍會被 clean_up
當然有很多檢查情況,會將該參數 +1

但很多時候,你是真的希望該房間無論如何都不被 clean_up 的。
這只有透過修改 /feature/clean_up.c 才行了,fss的已修改過。


總發表數: 173 | 來自: TAIWAN | 註冊於: Nov 2002  |  IP: 查看 IP
超帥滴酒鬼




會員號碼: 33

評分會員

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

我昨天已經把商店改寫成存資料了.
結果今天來就看到kcc也是說這樣做比較好...XD
不過.....防止房間被update不也是設定no_clean_up或no_reset嗎...
我記得我去改過/feature/clean_up...

if( !clonep() && this_object()->query("no_clean_up") ) return 1;

而商店裡也有

set("no_clean_up",1);
setup();

不過結果舊版存物品商店還是被清了...
kcc說的避免被update到底是大約怎樣弄啊....
但是kcc說的也對..存object太佔記憶體了....

thanks again!!!


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




會員號碼: 1

會員評分:

發表於 April 28, 2003 04:28 PM     資料 kcc   個人網頁   Email kcc     發送新的私人訊息   編輯/刪除 文章   引用回覆

上面已提到:
no_clean_up 在很多地方都會增減,所以請勿會錯意,認為設了這參數就不會被clean
真要永遠不被clean,請另外設參數,並在clean_up.c中檢查並return

總發表數: 173 | 來自: TAIWAN | 註冊於: Nov 2002  |  IP: 查看 IP
超帥滴酒鬼




會員號碼: 33

評分會員

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

我知道kcc意思了..
上次並沒去查no_clean_up哪裡有增減 ....
不過確實另設一參數然後改/feature/clean_up.c判斷是最容易方法了..

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

本地時間為 台灣時間  

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

聯絡我們 | 五星物語

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