廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 9508 個閱讀者
 
<< 上頁  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.056693 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言