广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 5300 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为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)   下载次数:53


[ 此文章被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.023440 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言