精華區beta mud 關於我們 聯絡資訊
在 tintin++/src/variables.c 裡頭做如下的修改... 從第一百二十五行左右開始... 以 ftp://ftp.ntu/.../tintin++v1.5pl6.tar.gz 為準... /******************************************************************/ void substitute_myvars(arg, result, ses) /* ... 中略 ... */ while(*arg) { if(*arg=='$') { /* substitute variable */ counter=0; while (*(arg+counter)=='$') counter++; varlen=0; while(isalpha(*(arg+varlen+counter))) varlen++; > /* Added. Line 125 */ > if (*( arg+varlen+counter )== '[' > && isdigit(*( arg+varlen+counter+1 ))) { > varlen += 2 ; > while ( isdigit(*( arg+varlen+counter ))) > varlen ++ ; > varlen ++ ; > } > /* End. */ if (varlen>0) strncpy(varname,arg+counter,varlen); *(varname+varlen)='\0'; if (counter==nest+1 && !isdigit(*(arg+counter+1))) { if((ln=searchnode_list(tempvars, varname))!= NULL) { strcpy(result, ln->right); result+=strlen(ln->right); arg+=counter+varlen; } /******************************************************************/ 加上去之後就可以使用 $var[1234] 之類的變數了... 記得數字的部份用 [] 圍起來... :D NOTE 忘了說... 這幾行加上去之後... '[' 會變成特殊字元... 所以原先比方 $ESC[80D 之類的 ansi code... 要改寫成 $ESC\[80D... (最近都忘了 load 新的 ansi.f... :~ 常常被捉到... ) 或者... 可以自己把 $var[1234] 的形式訂為 $var<1234>... 不過... 看起來有點不習慣就是... :D