廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 9938 個閱讀者
 
<<   1   2  下頁 >>(共 2 頁)
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
牙京
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x148 鮮花 x155
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x3
[插件] register_event註冊事件函數解說
register_event是AMX的註冊事件語句,簡單來說就是在特定事件發生的時候調用某個函數,來達到自己特定的目的。比如說,我們想在每局開始的時候,給每名玩家發一把M4(我比較喜歡M4),就可以用到register_event語句。下面我們來看一個具體的例子,Bread會結合這個例子來具體講解。

register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")

這是一個典型的註冊事件語句,register_event至少應包含4個參數,分別是事件Event、函數Function、標誌位 Flag以及判斷條件Condition,而其中的判斷條件可以是多條並列。它的作用則是在事件Event出現的時候,先判斷是否符合Flag標誌位的標準,然後判斷此事件消息是否符合condition的條件,若兩者都通過則自動調用Function函數。.....-_-...難理解的話就先不要理解,下面我們來一一對參數進行講解。第一個參數Event是事件常量,比如說常見的"SendAudio","TextMsg"等等,具體的事件列表你可以在遊戲中由控制台敲入"meta game"(大小寫敏感)來獲得。第二個參數,Function,則需要由用戶自己定義。我們來舉個簡單的例子:

register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")
在這條語句中,Event是"SendAudio",也就是發送聲音的事件。第二個參數,"t_win"則是由用戶自己定義的。整條語句的作用就是在T方獲勝的時候調用t_win這個函數。

再來看第三個參數,標誌位flag,用來標識事件類型。只有事件出現時符合其所規定的類型,函數才會被調用。它也是個常量,具體的賦值如下:

"a" 表示是全局事件,比如說開局,某方勝利等等,這種消息人人都可以看到,因此是全局信息
"b" 表示是發送給某個個體的事件,比如說某人被對方擊中等等
"c" 表示此信息重複發送給其他玩家,而對這個個體只發送一遍。這個解釋起來有點麻煩,你這樣理解好了。某個事件發送給你之後,會重複發給其他玩家,但即便如此,自定義函數也只會被調用一次。
"d" 表示此事件信息只發送給死亡玩家
"e" 表示此事件只發送給活著的玩家

對於我們的例子來說,SendAudio顯然是全局事件。再來看下面這個經典的例子::

register_event("TextMsg","setSpecMode","bd")

後面的參數先不要管,第三個參數用的是"bd",也就是說,只有事件"TextMsg"被發送給一個單獨的玩家,並且此玩家已經死亡的時候,"setSpecMode"才會被調用。

下面再來看最重要的部分,判斷條件:

在此之前,我們要清楚事件消息的發送格式,HL引擎在發送事件消息的時候,會在事件名之後跟上幾個參數,用來表達具體的信息。當然參數個數和類型會根據事件的不同而有所變化。在我們的這個例子中,"SendAudio"的參數共有兩個,第一個是sound mode,也就是聲音格式,第二個是聲音標識,為字符串型。
而判斷條件所要比對的,就是這幾個參數的信息。首先,每個條件在開頭要寫上一個數字,用來表示要比對的參數序列。再回到開頭的例子:
"2&%!MRAD_terwin"

則表示要比對的是"SendAudio"第二個參數,聲音標識。然後,我們要介紹幾個邏輯符號。
"&" 表示包含關係,比如說"2&Bread",則表示若第二個參數中包含"Bread"則條件成立
"=" 表示完全相符,比如說"2=Bread",則表示第二個參數必須是"Bread",條件才成立
表示不包含,比如說"4!Bread",則表示第四個參數中不得包含"Bread",這樣條件才成立
">"和"<" 和代數意義相同,比如說"3>15"則表示第3個參數必須大於15才行

這樣一來,"2&%!MRAD_terwin"的意思就不言而喻了。它要做的就是比對聲音標識中是否含有"%!MRAD_terwin"這個字符串。說到這裡,就廢話多說幾句。事件"SendAudio"顧名思義是向客戶端發送聲音的,而第二個參數則表示發送的聲音類型,比如說此例中的"%!MRAD_terwin"表示T方獲勝,還有"=%!MRAD_ctwin"(表示CT方勝利),"=%!MRAD_rounddraw"(表示平局)。相信大家對這些聲音都不會陌生。

register_event()語句因其獨特的作用,幾乎在每個知名插件中都能找到它的身影。我記憶猶深的是比賽插件playoff投票無效的BUG,就是由於使用"TeamScore"事件的時候考慮不夠周全.總之這個語句很有用就是了,嘿嘿...多看幾個經典的插件,慢慢就會靈活掌握的。

根據Bread之前的感覺來說,剛接觸register_event的時候,最頭疼的就是各個事件的具體參數,以及各個參數的意義。雖然"meta game"能把事件都調出來..卻看不到參數。有鑒於此,Bread在附件中為大家準備了簡單的事件列表,其中有比較詳盡的參數分析,經常用到的事件也都包括在內了。對了,忘了說,這份事件列表是從官方得來的,作者已經無從考證..無論如何...謝謝作者的辛勤勞動

轉自c7



獻花 x0 回到頂端 [樓 主] From:香港 | Posted:2009-04-28 23:24 |
s922197 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x67 鮮花 x251
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

畢竟整理這些資料是需要時間的
而且對不會的人很有幫助喔 表情


新RC:25369787歡迎來聽歌、放歌、聊天^^ (2012/08/25)
獻花 x0 回到頂端 [1 樓] From:臺灣 | Posted:2009-04-29 06:48 |
夜魂
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎
路人甲
級別: 路人甲 該用戶目前不上站
推文 x200 鮮花 x519
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

對阿 對於新手幫助很大


我退出數位了 我會請我朋友持續幫我發世紀帝國 我熱愛世紀帝國 數位讓我太傷心了

指定接班人(不是cs的) ""夜夢魂"
獻花 x0 回到頂端 [2 樓] From:臺灣 | Posted:2009-08-26 18:37 |
tocade 手機
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x34 鮮花 x25
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

我初學這些東西
不管怎樣
總是能知道多點相關函數用法總是有幫助的


每次遇到装B的人,
      哥总是默默的低下头,
          不是哥的修养好,
                  是哥在找砖头!
獻花 x0 回到頂端 [3 樓] From:台灣凱擘 | Posted:2010-03-25 18:49 |
oscarbox2001 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x48 鮮花 x297
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

看到文章發布時間
頓時感到驚訝
竟然過了那麼久我才發現這篇文章
對我幫助很大~!


獻花 x0 回到頂端 [4 樓] From:臺灣中華電信 | Posted:2010-03-25 19:15 |
tony987852
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x42 鮮花 x140
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

判斷條件Condition.......好難運用...


獻花 x0 回到頂端 [5 樓] From:未知地址 | Posted:2010-03-25 20:52 |
T.o.n..y
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x0 鮮花 x1031
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

嗯嗯!!詳細的教學!!感謝分享!


獻花 x0 回到頂端 [6 樓] From:臺灣台固媒體股份有限公司 | Posted:2011-06-05 01:23 |
HoJai
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x53 鮮花 x93
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

這個教學真的很實用..
但我也不太明白..
不過感謝分享!


獻花 x0 回到頂端 [7 樓] From:美國 | Posted:2012-07-06 10:28 |
killer200
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x6
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

感謝大大分享
這對我很有幫助^^


My name is killer200~~~~~~~~~~~~
獻花 x0 回到頂端 [8 樓] From:香港 | Posted:2012-07-09 13:39 |
qiaoqiao520
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

有点懂了,谢谢大大。。


獻花 x0 回到頂端 [9 樓] From:未知地址 | Posted:2013-05-20 20:44 |

<<   1   2  下頁 >>(共 2 頁)
首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.087724 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言