广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 1057 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
11922911
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖
初露锋芒
级别: 初露锋芒 该用户目前上站
推文 x44 鲜花 x96
分享: 转寄此文章 Facebook Plurk Twitter 版主评分版主评分版主评分 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x2
[插件] 玩家 set_rendering 层级系统 API v0.1.1 (2024/6/19 更新)  (非OO插件)
原创文章
【插件资讯】

插件来源:原创
使用指令:没有
安装路径:addons/amxmodx/scripting

【插件介绍】



有没有曾经为 AMXX 的 set_rendering 而烦恼?
因为太多的插件同时在使用 set_rendering, 变得很难管理?

我针对以上这个问题写了一个 set_rendering 的管理系统

set_rendering 有什么情况下会发生冲突?

举个例子:
丧尸模式有冻结弹, 当你被冻结被会使用 set_rendering 为玩家加上一层像冰面的 浅蓝色光, 冻结解除后重设 rendering
你的丧尸有血性暴走, 使用时会为自身加上一层红色光, 暴走结束后重设 rendering
当以上两个情况一起发生时, 就会出现冲突
譬如 你正在暴走时 被冻结住, 然后在冻结完之前暴走就使用结束, 那就会出现 冻结的蓝色光提前消失的情况
另外一种情况就是一样正在暴走时被冻结住, 在你暴走未完结之前 冻结就解除了, 暴走的发光效果会提前消失, 正确的状况应该会是冻结解除后还是 红色光, 等到暴走真正结束后才消失
(当然这只是举个例, 因为可能你会写被冻结时就取消暴走的状态)
再来就是你的特殊感染者设定了身体发出基础绿色光, 如果你再碰到上面两种情况就会很麻烦

使用说明:
复制程式
// 加入新的 rendering 层级
// 前 5 个参数跟 set_rendering 差不多
// duration 是 这个发光的持续时间, 设 0.0 代表永久 直到下一次重生
// class 是 给这个层级一个名称, 若相同的名称已经存在 则改变该层级的 rendering 样式
// return 插入的 index
native render_push(id, fx, Float:color[3], mode, Float:amount, Float:duration=0.0, const class[]="");

复制程式
// 移除指定一个 rendering 层级
// id 是玩家
// pop_index 是 要移除的 index
// class 是 从玩家现在的 rendering 列表中寻找这个名称的层级再移除(找不到则不动作), 若class为空则使用pop_index
native render_pop(id, pop_index, const class[]="");

复制程式
// 移除所有层级
native render_clear(id);


这个 API 会自动在玩家重生时 移除所有层级
层级会根据 render_push 的先后决定层级的优先度
预设最多只能有 16 个层级, 如果想增加请修改 sma 里的 MAX_LAYERS


以下是针对以上说的情况而写的范例

首先, 设定特殊感染者的基础绿色光
在玩家成为特殊感染者时 加入以下代码:
复制程式
render_push(id, kRenderFxGlowShell, Float:{0.0, 255.0, 0.0}, kRenderNormal, 16.0, 0.0, "base");

冰弹冻结玩家时 加入以下代码:
以下假设冻结时间是 3 秒
复制程式
render_push(id, kRenderFxGlowShell, Float:{0.0, 200.0, 200.0}, kRenderNormal, 16.0, 3.0, "freeze");

玩家使用暴走时 加入以下代码:
以下假设暴走时间是 10 秒
复制程式
render_push(id, kRenderFxGlowShell, Float:{255.0, 0.0, 0.0}, kRenderNormal, 16.0, 10.0, "sprint");

在一些情况中, 你可能想提前或手动取消暴走效果, 可以使用以下代码:
复制程式
render_pop(id, -1, "sprint");


TODO (将会加入的功能):
让 render_push 可以指定层级的优先度


[此文章售价 1 雅币已有 0 人购买]
若发现会员采用欺骗的方法获取财富,请立刻举报,我们会对会员处以2-N倍的罚金,严重者封掉ID!



[ 此文章被11922911在2024-10-13 21:45重新编辑 ]

此文章被评分,最近评分记录
财富:500 (by amore12) | 理由: 辛苦了!!



YouTube: @holla16
献花 x4 回到顶端 [楼 主] From:香港没有资料 | Posted:2024-06-16 22:40 |
11922911
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖
初露锋芒
级别: 初露锋芒 该用户目前上站
推文 x44 鲜花 x96
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

2024/6/19 更新版本 v0.1.1
- 修正 index out of bounds 错误

附件已更新


YouTube: @holla16
献花 x0 回到顶端 [1 楼] From:香港没有资料 | Posted:2024-06-19 17:28 |

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