精華區beta mud_sanc 關於我們 聯絡資訊
假設一 mapping objs = (["檔名" : 物件, ...]) 存放了所有武器 的檔名及該檔名所指向的物件。 定義一個 mixed types = ({"blade","lance","sword","axe", "wand","rod","dagger","bow","gun"}) mapping objs; static mixed types = ({"blade","lance","sword","axe", "wand","rod","dagger","bow","gun"}) // 上述兩個設為全域變數 void show_data(string str,int s) { // 第一次呼叫該函數時, s=0 string str="",files,t; mixed keys_objs; object ob; if(s>sizeof(types)) { write("資料顯示完畢.\n"); return 1; } if(s==sizeof(types)) { str="其它類武器總覽:\n"+ "======================================================\n"; keys_objs=keys(objs); foreach(files in keys_objs) { if(!ob=objs[files]) continue; if((string)ob->query("type")!=t) continue; str+=sprintf("%s %s\n",ob->query("short"),files); } write_file("/open/cmds/loadall_other.data",str); write("其它類武器資料存檔完成.\n"+ "全部工作已結束,感謝你的使用。\n"); return 1; } t=types[s]; str=t+" 類武器總覽:\n"+ "======================================================\n"; keys_objs=keys(objs); foreach(files in keys_objs) { if(!ob=objs[files]) continue; if((string)ob->query("type")!=t) continue; str+=sprintf("%s %s\n",ob->query("short"),files); map_delete(objs,files); } write_file("/open/cmds/loadall_"+t+".data",str); write(t+" 類武器資料存檔完成, 請按 enter 鍵繼續......"); input_to("show_data",0,s+1,str); // 重覆 input_to 自己, 同時 s+1 return 1; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: laechan 來自: 61.225.184.225 (11/15 11:19) ※ 編輯: laechan 來自: 61.225.184.225 (11/15 11:23)