广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 9535 个阅读者
 
<< 上页  1   2   3   4  >>(共 4 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
11922911
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x44 鲜花 x96
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

没有深入研究过这
这是我的方法,
可能不是最好但应该能够解决问题.
复制程式
new g_msgStatusText
new g_szStatusText[33][32]
new bool:g_bShow[33]

public plugin_init()
{
       register_event( "StatusText", "Event_StatusText", "b" )
       g_msgStatusText = get_user_msgid( "StatusText" )
}

public Event_StatusText( id )
{
       read_data( 2, g_szStatusText[id], 31 )
}

public client_PreThink( id )
{
       if( aim at entity )
       { 
              if( !g_bShow[id] )
              {
                     message_begin( MSG_ONE_UNRELIABLE, g_msgStatusText, .player=id )
                     write_byte( 0 )
                     write_string( "aifmwirmrinqawro" )
                     message_end()

                     g_bShow[id] = true
              }
       }
       else if( g_bShow[id] )
       {
              message_begin( MSG_ONE_UNRELIABLE, g_msgStatusText, .player=id )
              write_byte( 0 )
              write_string( g_szStatusText[id] )
              message_end()

              g_bShow[id] = false
       }
}



YouTube: @holla16
献花 x0 回到顶端 [30 楼] From:未知地址 | Posted:2013-06-30 10:22 |
a7811311622 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 优秀管理员勋章 社区建设奖
头衔:我…在工作了…我…在工作了…
版主
级别: 版主 该用户目前不上站
版区: CS提问区
推文 x771 鲜花 x2152
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 11922911 于 2013-06-30 10:22 发表的 : 到引言文
没有深入研究过这
这是我的方法,
可能不是最好但应该能够解决问题.
.......
因为这篇讨论的瞄准对象不是「同队」玩家…所以就算不用这写法也可行的…
我是这样写的:
复制程式
public client_PostThink(id)
{
    static bool:get_target[33], enemy, body
    get_user_aiming(id, enemy, body)
    if(is_user_alive(id) && enemy)
    {
        if (pev(id, pev_button) & IN_USE)
        {
            message_begin(MSG_ONE,get_user_msgid("StatusText"),_,id)
            write_byte(0)
            write_string("Test!!!")
            message_end()
            get_target[id] = true
        }
    }
    else
    {
        if(get_target[id])
        {
            message_begin(MSG_ONE,get_user_msgid("StatusText"),_,id)
            write_byte(0)
            write_string("")
            message_end()
            get_target[id] = false
        }
    }
}
测试在人质这种物件ID > 32 的对象后再瞄准玩家也不会吃掉原本的 StatusText …


尚无签名,欢迎 [新增个性化签名]
献花 x0 回到顶端 [31 楼] From:台湾中华电信股份有限公司 | Posted:2013-06-30 11:35 |
11922911
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x44 鲜花 x96
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

这篇讨论的瞄准对象亦不是人质
当你把对象换成其他物体就会出现问题


YouTube: @holla16
献花 x0 回到顶端 [32 楼] From:未知地址 | Posted:2013-06-30 14:00 |
a7811311622 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 优秀管理员勋章 社区建设奖
头衔:我…在工作了…我…在工作了…
版主
级别: 版主 该用户目前不上站
版区: CS提问区
推文 x771 鲜花 x2152
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 11922911 于 2013-06-30 14:00 发表的 : 到引言文
这篇讨论的瞄准对象亦不是人质
当你把对象换成其他物体就会出现问题
测试完了…
你那程式码应该是比较方便的了…
刚刚找了篇相关的文章:http://forums.alliedmods.net...php?t=206455
会出问题的原因在 m_SbarString0 这东西…
后来就这样改:
复制程式
stock set_pdata_char(ent, charbased_offset, value, intbase_linuxdiff = 5)
{
    value &= 0xFF;
    new int_offset_value = get_pdata_int(ent, charbased_offset / 4, intbase_linuxdiff);
    new bit_decal = (charbased_offset % 4) * 8;
    int_offset_value &= ~(0xFF<<bit_decal); // clear byte
    int_offset_value |= value<<bit_decal;
    set_pdata_int(ent, charbased_offset / 4, int_offset_value, intbase_linuxdiff);
    return 1;
}

public client_PostThink(id)
{
    static bool:get_target[33], enemy, body, classname[32]
    get_user_aiming(id, enemy, body)
    pev(enemy, pev_classname, classname, 31)
    if(is_user_alive(id) && enemy && equal(classname, "nst_npc"))
    {
        message_begin(MSG_ONE,get_user_msgid("StatusText"),_,id)
        write_byte(0)
        write_string("Test!!!")
        message_end()
        set_pdata_char(id, 1804, 32, 5) // 指向敌人时的数值
        get_target[id] = true
    }
    else
    {
        if(get_target[id])
        {
            message_begin(MSG_ONE,get_user_msgid("StatusText"),_,id)
            write_byte(0)
            write_string("")
            message_end()
            set_pdata_char(id, 1804, 32, 5) // 指向敌人时的数值
            get_target[id] = false
        }
    }
}
原理就是让系统以为我指到的物件是敌人…这样瞄回队友时会让 StatusText 记得更新…
虽然成功了…不过我觉得为了一个物件用了<fakemeta>这么做实在有够蠢…||= =

话说…只是为了显示物件的血量…用显示在画面中央的 TextMsg 也可以啊…
用了 StatusText 还有一堆问题…


尚无签名,欢迎 [新增个性化签名]
献花 x0 回到顶端 [33 楼] From:台湾中华电信股份有限公司 | Posted:2013-06-30 18:00 |
11922911
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x44 鲜花 x96
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 a7811311622 于 2013-06-30 18:00 发表的 : 到引言文

测试完了…
你那程式码应该是比较方便的了…
刚刚找了篇相关的文章:http://forums.alliedmods.net...php?t=206455
会出问题的原因在 m_SbarString0 这东西…
.......
我也是找到这篇文章, 但是没有仔细看那些C++代码


YouTube: @holla16
献花 x0 回到顶端 [34 楼] From:未知地址 | Posted:2013-06-30 19:43 |
sb369456
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x4 鲜花 x15
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
Re:模组的血量
就好比是僵尸把..里面有血量设定


amxx          
献花 x0 回到顶端 [35 楼] From:没有资料 | Posted:2013-07-06 20:52 |

<< 上页  1   2   3   4  >>(共 4 页)
首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.052848 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言