廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 13181 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
StaR乂Night 會員卡
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[插件] return語句問題...
return FMRES_IGNORED
return PLUGIN_CONTINUE
return PLUGIN_HANDLED

這三個return分別是什麼意思...
除了這三個return    還有其他的return嗎   如果有....分別是什麼意思...


獻花 x0 回到頂端 [樓 主] From:沒有資料 | Posted:2013-03-29 22:14 |
mischna09
個人頭像
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎
頭銜:路人餅14ˋ(˙∀˙)ˊ路人餅14ˋ(˙∀˙)ˊ
特約版主
級別: 特約版主 該用戶目前不上站
版區: CS提問區
推文 x8 鮮花 x91
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

第一個好像是整個插件全部停止運作(不確定)
第二個是繼續執行這個fuction
第三個是停止繼續往下執行這個fuction的內容


獻花 x1 回到頂端 [1 樓] From:台灣固網股份有限公司 | Posted:2013-03-29 23:13 |
a7811311622 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎 優秀管理員勳章 社區建設獎
頭銜:我…在工作了…我…在工作了…
版主
級別: 版主 該用戶目前不上站
版區: CS提問區
推文 x771 鮮花 x2152
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 StaR乂Night 於 2013-03-29 22:14 發表的 return語句問題...: 到引言文
return FMRES_IGNORED
return PLUGIN_CONTINUE
return PLUGIN_HANDLED

這三個return分別是什麼意思...
除了這三個return    還有其他的return嗎   如果有....分別是什麼意思...
<amxconst.inc>
複製程式
#define PLUGIN_CONTINUE        0    /* Results returned by public functions */
#define PLUGIN_HANDLED        1    /* stop other plugins */
#define PLUGIN_HANDLED_MAIN    2    /* to use in client_command(), continue all plugins but stop the command */
這通常是用在<amxmodx.inc>的forward裡…

<fakemeta_const.inc>
複製程式
#define FMRES_IGNORED    1    // Calls target function, returns normal value
#define FMRES_HANDLED    2    // Tells metamod you did something, still calls target function and returns normal value
#define FMRES_OVERRIDE    3    // Supposed to still call the target function but return your value instead
                            // however this does not work properly with metamod; use supercede instead.
#define FMRES_SUPERCEDE    4    // Block the target call, and use your return value (if applicable)
這通常是用在<fakemeta.inc>的forward裡…

<ham_const.inc>
複製程式
#define HAM_IGNORED        1    /* Calls target function, returns normal value */
#define HAM_HANDLED        2    /* Tells the module you did something, still calls target function and returns normal value */
#define HAM_OVERRIDE    3    /* Still calls the target function, but returns whatever is set with SetHamReturn*() */
#define HAM_SUPERCEDE    4    /* Block the target call, and use your return value (if applicable) (Set with SetHamReturn*()) */
這通常是用在<hamsandwich.inc>的forward裡…

常用的也就那幾個…
複製程式
PLUGIN_CONTINUE
FMRES_IGNORED
HAM_IGNORED
這三個用在不同的forward…但是效果是一樣…
複製程式
PLUGIN_HANDLED
FMRES_SUPERCEDE
HAM_SUPERCEDE
這三個用在不同的forward…但是效果是一樣…

解釋起來好麻煩…讓別人說好了…


尚無簽名,歡迎 [新增個性化簽名]
獻花 x1 回到頂端 [2 樓] From:臺灣中華電信股份有限公司 | Posted:2013-03-29 23:15 |
觀眾甲
個人頭像
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x319 鮮花 x963
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

你要深奧的還是簡單的


獻花 x0 回到頂端 [3 樓] From:IANA | Posted:2013-03-29 23:45 |
StaR乂Night 會員卡
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 觀眾甲 於 2013-03-29 23:45 發表的 : 到引言文
你要深奧的還是簡單的

簡單的   大致意思就可以了


獻花 x0 回到頂端 [4 樓] From:沒有資料 | Posted:2013-03-30 10:48 |
a7811311622 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎 優秀管理員勳章 社區建設獎
頭銜:我…在工作了…我…在工作了…
版主
級別: 版主 該用戶目前不上站
版區: CS提問區
推文 x771 鮮花 x2152
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 StaR乂Night 於 2013-03-30 10:48 發表的 : 到引言文


簡單的   大致意思就可以了
以下這兩個的判斷條件和效果是一樣的
複製程式
public I_am_forward(id)
{
    if (is_user_alive(id))
    {
        client_print(id, print_chat, "a7811311622")
    }
}

public I_am_forward_too(id)
{
    if (!is_user_alive(id))
        retuen FMRES_IGNORED
    
    client_print(id, print_chat, "a7811311622")
    
    retuen FMRES_IGNORED // 如果這個forward裡面有回傳值(retuen XXX)就一定要加這行
}
但是使用retuen FMRES_IGNORED程式的排列順序就非常重要…
例如
複製程式
public I_am_forward_too(id)
{

    if (is_user_alive(id))
        retuen FMRES_IGNORED // 當程式跑到這裡…下面的內容都會被無視…
    
    if (!is_user_alive(id))
        retuen FMRES_IGNORED // 既然上面的條件說「如果是死人」…那你下面內容何必管他死活?
    
    client_print(id, print_chat, "a7811311622") // 所以這句話不會顯示
    
    retuen FMRES_IGNORED
}
可是IF條件就比較不會有順序問題
複製程式
public I_am_forward(id)
{
    if (!is_user_alive(id))
    {
        // 隨便寫…
    }
    if (is_user_alive(id))
    {
        client_print(id, print_chat, "a7811311622") // 上面的死人部分和這邊無關…這句話正常顯示…
    }
}
如果你覺得IF用起來比較不會出問題就先用IF…只是會寫插件的通常對那越寫越長的內容看不順眼…

HAM_SUPERCEDE和其他差不多效果的是用來取消原本會發生的事件…
例如下面這個是傷害與受傷的事件…
複製程式
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
    if (is_user_alive(id))
        return HAM_SUPERCEDE
    
    return HAM_IGNORED
}
用了HAM_SUPERCEDE後滿足IF條件的傷害都會被無效化…


[ 此文章被a7811311622在2013-03-31 15:20重新編輯 ]


尚無簽名,歡迎 [新增個性化簽名]
獻花 x1 回到頂端 [5 樓] From:臺灣中華電信股份有限公司 | Posted:2013-03-31 15:12 |
弒血
個人頭像
個人文章 個人相簿 個人日記 個人地圖
社區建設獎 特殊貢獻獎 創作大師獎
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x108 鮮花 x240
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 a7811311622 於 2013-03-31 15:12 發表的 : 到引言文

以下這兩個的判斷條件和效果是一樣的
[code]public I_am_forward(id)
{
.......



A78大能問你嗎


如果
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
    if (is_user_alive(id))
        return HAM_SUPERCEDE
   
    return HAM_IGNORED
}
if (is_user_alive(id)) return HAM_SUPERCEDE
判斷(活著的...) 返回無效整個PUBLIC
return HAM_IGNORED的作用何在?
難道說是等沒有活著時..返回關閉整個PUBLIC嗎?我的推算是這樣,有錯請指導我。
我對return的觀念不是很理解



目前傳授教學&有興趣者可以問我
BOT瞄準攻擊NPC&模仿事件觸發計算出場&新增地圖重生位置等等
已修復entity的attachment錯誤問題,開始嘗試寫出各種npc_boss成品
按這裡檢視影片,登入論壇可以直接觀看
按這裡檢視影片,登入論壇可以直接觀看
按這裡檢視影片,登入論壇可以直接觀看
按這裡檢視影片,登入論壇可以直接觀看
獻花 x0 回到頂端 [6 樓] From:臺灣中華電信股份有限公司 | Posted:2013-04-01 05:17 |
a7811311622 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎 優秀管理員勳章 社區建設獎
頭銜:我…在工作了…我…在工作了…
版主
級別: 版主 該用戶目前不上站
版區: CS提問區
推文 x771 鮮花 x2152
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 s8720419 於 2013-04-01 05:17 發表的 : 到引言文


A78大能問你嗎

如果
.......
你應該知道 switch 吧?
複製程式
    switch (num)
    {
        case 1: // num == 1 return XXX
        case 2: // num == 2 return XXX
        case 3: // num == 3 return XXX
        default: // num != 1 && num != 2 && num != 3 return XXX
    }
最後一行的 return 用意和 default 差不多…
就是為了「不滿足以上所有條件」而給的最終回傳值…


尚無簽名,歡迎 [新增個性化簽名]
獻花 x0 回到頂端 [7 樓] From:臺灣中華電信股份有限公司 | Posted:2013-04-01 09:29 |
弒血
個人頭像
個人文章 個人相簿 個人日記 個人地圖
社區建設獎 特殊貢獻獎 創作大師獎
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x108 鮮花 x240
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 a7811311622 於 2013-04-01 09:29 發表的 : 到引言文

你應該知道 switch 吧?
複製程式
    switch (num)
    {
        case 1: // num == 1 return XXX
        case 2: // num == 2 return XXX
        case 3: // num == 3 return XXX
        default: // num != 1 && num != 2 && num != 3 return XXX
    }
最後一行的 return 用意和 default 差不多…
就是為了「不滿足以上所有條件」而給的最終回傳值…



喔喔~大致上了解了
全部的條件都沒有成立時
會回傳給PUBLIC就對了
大致上的意思是說,沒有事件發生的意思..



目前傳授教學&有興趣者可以問我
BOT瞄準攻擊NPC&模仿事件觸發計算出場&新增地圖重生位置等等
已修復entity的attachment錯誤問題,開始嘗試寫出各種npc_boss成品
按這裡檢視影片,登入論壇可以直接觀看
按這裡檢視影片,登入論壇可以直接觀看
按這裡檢視影片,登入論壇可以直接觀看
按這裡檢視影片,登入論壇可以直接觀看
獻花 x0 回到頂端 [8 樓] From:臺灣中華電信股份有限公司 | Posted:2013-04-01 19:34 |
qiaoqiao520
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

又学到了点东西,可是没几天又要忘记了,哎


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

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