[分享]簡便的 聊天室動作指令 程式碼

WOG設定安裝教學

版主: 涅魂, 簫哥


涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

[分享]簡便的 聊天室動作指令 程式碼

文章涅魂 » 2006-05-10 9:01 pm

這跟外掛區中的聊天室指令一文的功能一樣,但個人覺得這個方法應該會比該篇的內容更方便管理

以下為程式碼
代碼: 選擇全部
//動作陣列
$act_table =array(
"/kick"=>" &name 踢了 &aim 一腳"
);

//置換動作開始

   if(substr($_POST['message'],0,1) == "/")
   {
      $str = @explode(" ",$_POST['message'],2);
      if($search_action = $act_table[$str[0]])
      {
         $_POST['message'] = str_replace("&name",$p['p_name'],str_replace("&aim",$str[1],$search_action));
      }
   }

說明:
首先,先設定$act_table的內容,其中KEY為使用者輸入的動作指令(/kick 或 /hi 之類的)

接著辨別$_POST['message']的開頭是否為 "/" 開頭,若為是則進入區塊

再來,先將$_POST['message']用 " " 分開,而為了保持內容的完整性,所以只將該變數拆為兩個部分

接著再判斷$search_action是否能對應到$act_table中KEY為$str[0]的值,若取得到則將取到的內容的&name 與 &aim 置換

測試結果:
$p['p_name'] = "訪客"
1 寫:$_POST['message'] = "/kick test"

show: 訪客 踢了 test 一腳


2 寫:$_POST['message'] = "/kiss test"

show: /kiss test (取不到對應的$act_table的值,所以程式沒有做任何動作)


我覺得這個比起用迴圈來跑陣列還要來得有效率,而且也只會執行一次(最外圍部份),不會再將其他相符的部分也一起置換造成文章的錯亂

不知道各位對這個程式碼的意見如何呢?


最後由 涅魂 於 2006-05-28 9:24 am 編輯,總共編輯了 1 次。

¥飛天阿鳥¥
 
文章: 322
註冊時間: 2004-11-07 3:04 pm
來自: 水色的某一處     團體:變態團團員     團隊:烤鳥隊長

文章¥飛天阿鳥¥ » 2006-05-10 9:37 pm

這個程式碼~可以應該可以少一些流量吧~~
我最近都在存流量~不敢花太多流量~我怕我的wog掛掉阿=0=~

但是~~該給的評價還是要給~~飛吻一個=0=XD



簫哥
 
文章: 629
註冊時間: 2006-04-01 9:08 pm
來自: 戰略電玩
性別: 男生

文章簫哥 » 2006-05-10 9:43 pm

喔!這聊天室會在v3出現嗎?


NAS DS107e
簫哥電腦藝術工作室
wog4_ffa_x1(v4版本)
埋頭研發網頁角色扮演WebRPG,執行進度:版本更新。
ps.應允網友要求,v4版wog已經架設了= =!!


涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2006-05-10 9:48 pm

這個啊…只是我前幾天突發奇想寫出來玩的,跟V3版無關

我寫的聊天室功能跟new-typechobits寫的功能很類似

差別只在於…我寫的內容只有不到90行啊~~~(炸)

不過刪文的功能還沒弄上,所以這只能算是未完成品…(啊怎麼說到這個了 :roll: )


圖檔


回到 精華區

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 8 位訪客