作者dsnsid (大顆壽司)
看板mud
標題[問題] 關於建構新的指令 (以ES2為mudlib)
時間Fri Mar 1 13:17:54 2024
大家好,我又來問問題。
之前靠著版上大大支援,解決了我在ubuntu下架設mud遇到的問題,非常感謝。
先附上我使用的mudlib :
https://github.com/taedlar/es2_mudlib
我在增加裡面的指令,大部分的時候沒甚麼問題。
我這次在做改中文名的指令。
我定義為chname。
語法如下:
#include <command.h>
inherit F_CLEAN_UP;
void create() { seteuid(getuid());}
int main(object me, string arg)
{
object link;
SECURED_COMMAND;
if ( link = me->link()) {
write("您的中文姓名 [" + link->query("name") + "]: ");
input_to("get_name", link);
return 1;
}
return notify_fail("斷線使用者不能修改個人資料。\n");
return notify_fail("請輸入你的新中文姓名。\n"); }
void get_name(string new_name, object link)
{
if( new_name != "" )
link->set("name", new_name);
write("請記得用 save 儲存您所作的修改。\n"); }
int help(object me) {
write(@HELP指令格式: chname 這個指令可以讓你更改你的中文姓名。
HELP ); return 1;}
-------語法到此結束分隔線-------
我遇到的問題是,以上面這個語法我可以成功把資料存在/data/login/x/
的人物資料xx.o裡面。
但是無法存到/data/user/x/的人物資料。
不知道要怎麼改..
如果有人有空的話,希望可以幫我看看哪邊出問題。
感謝!!
---題外話---
我在地圖裡種了一棵傳說之樹,想拿來告白用。
拿去問chatgpt他給我了一段可以用的程式碼,但是中文名都叫不出來。
後來自己修一修勉強可以用,覺得AI蠻有趣的。哈哈
但是上面提到的問題我問不出來 ,我下不到正確的關鍵字,結果害他一直跳針。
於是來請教大家,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.27.9.55 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/mud/M.1709270276.A.BEF.html
→ laechan : 看起來你是拿login那個檔案裡面的段落去貼到指令 03/01 13:30
→ laechan : 實際上若是在遊戲內的指令input_to("get_name",me); 03/01 13:31
→ laechan : 下方void get_name(string new_name,object me) { 03/01 13:31
→ laechan : 然後 me->set("name",new_name); 不過要留意一下 03/01 13:32
→ laechan : 確定ES2 mud的中文名是使用 "name" 欄位 03/01 13:32
→ laechan : 在login裡頭link類似靈魂,me=this_player()類似身體 03/01 13:33
→ laechan : link一般儲存的東西是密碼,i上次登入時間,ip這類的 03/01 13:34
→ laechan : 而一般使用的me則儲存中文名,等級,技能,...這些 03/01 13:34
→ dsnsid : 感謝解答!! 我是拿修改email的指令去改的 03/01 14:00
→ dsnsid : 所以可能是因為這樣 他存的位置不對 我再改一下 03/01 14:00
→ dsnsid : 感謝感謝 03/01 14:00
→ dsnsid : 歐,我改好了 已經成功了 謝謝大大教學 03/01 15:13
推 kyoe : link->set("name", new_name);後link->save(); 03/05 10:53
推 msrvoice : 完蛋了, 完全看不懂了 ... 04/15 21:42