Re: [建議] 成就系統

看板mud_sanc (Sanctuary - 聖殿)作者 (揮淚斬馬雲)時間2周前 (2024/10/30 20:00), 2周前編輯推噓0(0013)
留言13則, 2人參與, 1周前最新討論串2/2 (看更多)
最近偶爾會發生玩家資料檔、天空城之家的檔案、以及 times_check 資料檔的遺失事件,這些共通點都是會去 call save_object 函數, 目前懷疑成就系統在呼叫這個的時候,沒有設 CD 時間,導致玩家在 執行某些成就的更新動作時,可能會產生問題。 可能而已,目前還在假設階段,但 CD 時間是必要的,這部份可參考 一些用時間控制的寫法,例如在主物件中假設玩家下某指令去呼叫該 物件的某函數時 int save_room() { save_object(base_name(this_object())); return 1; } int 某函數() { int t=time(); object ppl=this_player(); if(ppl->query_temp("time_record/呼叫某函數CD時間")>t) return notify_fail("你要等一下喔。\n"); // 然後才允許執行該函數原本的東西 . . // 然後設定比方 CD 時間兩秒 ppl->set_temp("time_record/呼叫某函數CD時間",t+2); // 然後才做 save_object save_room(); return 1; } 凡會頻繁呼叫到 save_room 的東西都盡可能這樣做,因為每 一次寫檔(讀檔也是,但 sanc 比較少有頻繁讀檔的情況)都需 要時間。 例如,目前已知有使用更新成就的 ai 指令,該指令及相關指 令請盡可能加上 CD 時間至少 2 秒。 例子: /u/l/laechan/skycastle/room/skyroom.c int wit_xxx(string str) { int n,t; object ppl; if(!str || str=="") return notify_fail("提領挪布幣語法: wit 數目.\n"+ "你的家目前共存有 "+data["nobu_money"]+" 挪布幣.\n"+ "請注意,領出後的挪布幣無法再存入家中.\n"); ppl=this_player(); t=time(); // 利用玩家 temp data 區的 time_record 欄位來儲存 if(ppl->query_temp("time_record/wit_nobu_money")>t) return notify_fail("wit: 你要等一下喔.\n"); // 從家拿出東西=buy int buy(string str1) { // 在 玩家的天空城之家本身儲存這個參數(當成他的家的全域參數) if(query("action_time")>time()) { write(HIR"你要等一下才能再做這個動作唷!\n"NOR); return 1; } Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.120.231 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/mud_sanc/M.1730289625.A.F0E.html ※ 編輯: laechan (114.33.120.231 臺灣), 10/30/2024 20:06:42

10/31 15:05, 1周前 , 1F
我是有做5秒以內可以記錄,但不儲存的功能..
10/31 15:05, 1F

10/31 15:35, 1周前 , 2F
那修改成5秒內都不能archive
10/31 15:35, 2F

10/31 15:36, 1周前 , 3F
修正/std/new_ob/instance_room.c 移動時自動增加
10/31 15:36, 3F

10/31 15:36, 1周前 , 4F
修正/d/ppl/justinj/cmds/_go.c 移動時自動增加
10/31 15:36, 4F

10/31 15:36, 1周前 , 5F
修正/d/ppl/justinj/cmds/_archive.c
10/31 15:36, 5F

10/31 15:36, 1周前 , 6F
修正/d/ppl/justinj/cmds/_map3.c
10/31 15:36, 6F

10/31 15:36, 1周前 , 7F
修正/open/cmds/vobjs_d.c打死怪物時自動增加
10/31 15:36, 7F

11/01 15:08, 1周前 , 8F
修改questing的部分,以及_archive.c/_map3.c
11/01 15:08, 8F

11/01 15:09, 1周前 , 9F
其它修改都改回來..其它是用questing
11/01 15:09, 9F

11/01 16:02, 1周前 , 10F
確認一下,成就資料存在skycastle 嗎?
11/01 16:02, 10F

11/01 17:02, 1周前 , 11F
目前是存在skycastle..如果要在新手村用就要抽出來
11/01 17:02, 11F

11/01 17:28, 1周前 , 12F
it's ok, 目前跟nobu商量string讀取長度限制的放寬
11/01 17:28, 12F

11/01 17:28, 1周前 , 13F
若有順利放寬, da 玩家的家時應該就show得出來
11/01 17:28, 13F
文章代碼(AID): #1d8X_PyE (mud_sanc)
討論串 (同標題文章)
文章代碼(AID): #1d8X_PyE (mud_sanc)