Re: [wiz]一些程式碼

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間15年前 (2010/06/22 15:38), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《justinj (闇冥)》之銘言: : 等級排序由低至高 G,F,E,D,C,B,A,S,SS,SSS : 那我要如何簡單的比較大小呢? : 例如我的等級為D....某個任務要求為E級...那D>E..可以接之類的 mixed levels=({"G","F","E","D","C","B","A","S","SS","SSS"}); tar_level=tar->query_level(); // 比方取出 "D" need_level="E"; if(member_array(need_level,levels) > member_array(tar_level,levels)) return notify_fail("你的等級至少要 "+need_level+" 級才能接任務喔.\n"); member_array 的意思是, 如果 "D" 有在 levels 陣列裡面, 它就 return "D" 這個字串在 levels 的陣列位置,例如它會 return 3 (因為陣列位置是從 0 開始) 而像 "H" 沒有在 levels 裡頭,它就會 return -1。 所以當 "E" 的位置在 "D" 的後面,return 回來的值就會比較 大。 : 第二個問題...中文字的轉碼寫法 : 看看有沒有像 "日"->ansii碼為何... : "D3E5"轉成中文碼之類的... 首先,你要自己寫 10 進位轉 16 進位的函數。我是不確定 LPC 有沒有內建,但沒內建也沒關係。 string to_hex(int v) { int a,b; mixed hexs=({"0","1","2","3","4","5","6","7", "8","9","A","B","C","D","E","F"}); if(v<1 || v>255) return "ERROR"; b=v%16; a=(v-b)/16; return ""+hexs[a]+""+hexs[b]; } string chinese_to_ascii(string str) { int i,s,v; string msg=str+" 轉換後的結果 = "; s=strlen(str); for(i=0;i<s;i++) { v=str[i]; msg+=to_hex(v); } return msg; } 剛有試,「小太保」會被轉為「A470 A4D3 AB4F」 剛 google 了一下 小 的 ascii 碼應該是沒錯。 上面應該有更簡單的寫法。 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.225.161.242

06/22 17:25, , 1F
.wa~~沒想到第2個問題有答案...3Q......
06/22 17:25, 1F
文章代碼(AID): #1C86XrWc (mud_sanc)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
1
2
文章代碼(AID): #1C86XrWc (mud_sanc)