广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 13170 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为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.063750 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言