廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 5720 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
ryoson
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x13
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[插件] [ZP] 仿 CSO 殭屍回血
這是我參考 zdt 大的回血插件的
第一次發教學 對amxx又不怎麼認識
可能會有錯 但是我做出來是可以回血的...

==========================================================

1. 打開想要增加回復效果殭屍的 sma 檔

2. 在最上加入:
#include <fakemeta_util>
#include <fun>

3. 在 public plugin_init() 上面加入:
new cvar_regain_hp
new stay[33]
new const zombie_heal[] = "zombie_plague/zombi_heal.wav" // 殭屍回復音效

4. 在 public plugin_init() 中加入:
cvar_regain_hp = register_cvar("zp_regain_hp", "200") // 每秒回復的血量
register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")

5. 在 public plugin_precache() 中加入:
precache_sound(zombie_heal)

6. 在SMA底部加入:
public fw_PlayerPreThink(id)
{
    if (!is_user_alive(id) || !zp_get_user_zombie(id))
        return FMRES_IGNORED;
   
    static speed
    speed = fm_get_speed(id)
   
    if (speed == 0.0)
    {
        if (!stay[id])
        {
            stay[id] = true
            set_task(5.0, "regain", id) // 停止多少秒開始回復
        }
    }
    else
    {
        if (stay[id])
        {
            stay[id] = false
            remove_task(id)
        }
    }
    return FMRES_IGNORED;
}

public regain(id)
{
    if (zp_get_user_zombie(id) && is_user_alive(id) && stay[id] && (pev(id, pev_health) < zp_get_zombie_maxhealth(id)) && (pev(id, pev_health) <= (zp_get_zombie_maxhealth(id) - get_pcvar_num(cvar_regain_hp))))
    {
          set_pev(id, pev_health, (pev(id, pev_health) * 1.0 + get_pcvar_num(cvar_regain_hp)))
          engfunc(EngFunc_EmitSound, id, CHAN_ITEM, zombie_heal, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
          set_task(1.0, "regain", id)
    }
    else if (zp_get_user_zombie(id) && is_user_alive(id) && stay[id] && (pev(id, pev_health) >= (zp_get_zombie_maxhealth(id) - get_pcvar_num(cvar_regain_hp)) && (pev(id, pev_health) < zp_get_zombie_maxhealth(id))))
    {
          set_user_health(id, zp_get_zombie_maxhealth(id))
          engfunc(EngFunc_EmitSound, id, CHAN_ITEM, zombie_heal, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
    }
}

回復音效是 C$O 的就不發了
如想回復者附近的人也聽到他回血的音效就更改 CHAN_ITEM CHAN_VOICE)
如沒有 fakemeta_util.inc 就下載附件... 放到 amxmodx/scripting/include


本帖包含附件
zip fakemeta_util.rar   (2022-06-09 14:19 / 7 KB)   下載次數:54


[ 此文章被ryoson在2011-09-26 19:35重新編輯 ]



獻花 x0 回到頂端 [樓 主] From:未知地址 | Posted:2011-09-26 17:27 |
i-c0112
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x6 鮮花 x194
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

應該還少了這3個
複製程式
#include <amxmodx>
#include <fun>
#include <zombieplague>
還有這條件應該也是多餘的
複製程式
zp_get_user_zombie_class(id) == g_zclass_light

感覺就像是直接複製別人sma的內容而成的 表情


獻花 x0 回到頂端 [1 樓] From:臺灣中華電信股份有限公司 | Posted:2011-09-26 18:56 |
ryoson
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x13
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 i-c0112 於 2011-09-26 18:56 發表的 : 到引言文
應該還少了這3個
複製程式
#include <amxmodx>
#include <fun>
#include <zombieplague>
還有這條件應該也是多餘的
複製程式
zp_get_user_zombie_class(id) == g_zclass_light

感覺就像是直接複製別人sma的內容而成的 表情
<zombieplague> <--- 這個不會沒有吧 -_-"
差不多吧 /.\
改殭屍的sma應該可以更易判斷進化等血量上限


獻花 x0 回到頂端 [2 樓] From:未知地址 | Posted:2011-09-26 19:34 |
fouury 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x9 鮮花 x101
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

只用maxhealth還是會有血量誤差的表情

簡單的方法是設個變數

利用zp的forward

在被感染為殭屍時用get_user_health取得血量

再讓 取得的血量 = 變數

把maxhealth換成變數即可

不過這只用於純感染0.0 如果用甚麼怒氣指數或重生等等的是絕對不行的= =""
--
對了.

你有沒有考慮到被攻擊也不能回血的設定??

用takedamage來判斷傷害較簡單0.0

還有
複製程式
#include <amxmodx> 
#include <fun> 
#include <zombieplague>
插件中少了讀取這三個inc就無法轉檔= =

你應該趕快將這些內容補充到你的教學才是....


按這裡檢視影片,登入論壇可以直接觀看
BLACK OPS 2 - MOB OF THE DEAD
決勝時刻 黑色行動2 殭屍78毛 就是這樣了
獻花 x0 回到頂端 [3 樓] From:IANA | Posted:2011-09-26 21:28 |
ryoson
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x13
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 fouury 於 2011-09-26 21:28 發表的 : 到引言文
只用maxhealth還是會有血量誤差的表情

簡單的方法是設個變數

利用zp的forward

在被感染為殭屍時用get_user_health取得血量

再讓 取得的血量 = 變數

把maxhealth換成變數即可

不過這只用於純感染0.0 如果用甚麼怒氣指數或重生等等的是絕對不行的= =""
--
對了.

你有沒有考慮到被攻擊也不能回血的設定??

用takedamage來判斷傷害較簡單0.0

還有
複製程式
#include <amxmodx> 
#include <fun> 
#include <zombieplague>
插件中少了讀取這三個inc就無法轉檔= =

你應該趕快將這些內容補充到你的教學才是....
#include <amxmodx>
#include <zombieplague>
^
這2個不是一定有的嗎-0-

其實我打算用這方法加進可以進化的殭屍


獻花 x0 回到頂端 [4 樓] From:未知地址 | Posted:2011-09-26 22:44 |
hanxuan2121
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x3 鮮花 x11
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
Re:[ZP] 仿 CSO 僵尸回血
其实那3个INC不用+了,僵尸的SMA里本身就有了。


獻花 x0 回到頂端 [5 樓] From:未知地址 | Posted:2011-09-27 13:30 |
cs_library
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x5 鮮花 x8
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

希望能用在bb上面,我收下嚕
謝謝A___A


盜文,即是 "垃圾" 不如的傢伙.. :)
拒絕 "Amxx" 反邊 Sma 那這樣以後就沒人想發Amxx ...
因為根本沒有保障啊!!
獻花 x0 回到頂端 [6 樓] From:臺灣中華電信股份有限公司 | Posted:2011-09-27 15:07 |
fouury 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x9 鮮花 x101
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 ryoson 於 2011-09-26 22:44 發表的 : 到引言文

#include <amxmodx>
#include <zombieplague>
^
這2個不是一定有的嗎-0-

其實我打算用這方法加進可以進化的殭屍

喔~   抱歉....0.0

我看成是要做成獨立的插件了= =|||


按這裡檢視影片,登入論壇可以直接觀看
BLACK OPS 2 - MOB OF THE DEAD
決勝時刻 黑色行動2 殭屍78毛 就是這樣了
獻花 x0 回到頂端 [7 樓] From:IANA | Posted:2011-09-27 21:15 |
kenzen
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x8
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

不知道能不能用這個做出新的殭屍類型


獻花 x0 回到頂端 [8 樓] From:臺灣中華電信股份有限公司 | Posted:2021-05-15 11:02 |

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