广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 2000 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
八云の橙猫 手机 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x18 鲜花 x90
分享: 转寄此文章 Facebook Plurk Twitter 版主评分版主评分版主评分 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x2
[插件] 第三方队伍系统 更新v1.01  (推荐用于各类型PVE模式)
【插件资讯】

插件来源:原创
使用指令:sma编译成amxx放入plugins资料夹

安装路径:.sma - 放入scripting .inc - 放入include

【插件介绍】

复制程式
主楼 -- 插件介绍
一楼 -- INC介绍
二楼 -- 实例说明

【编写与测试环境】
Amx mod X 1.10
1.8.3以后都可以运行,如运作不顺利推荐更新至Amx mod X 1.9版本


【使用模块】
<amxmodx>
<fakemeta>
<nvault>
使用请务必确认模块版本为最新或支援使用的版本




从古至今可能各位有看过不同类型伺服器有推出第三方组队功能
常见的类似于魔王、Biohazard、Zombie Riot 等等的PVE型对抗伺服器
本插件提供API功能可以让你在各类型插件中呼叫Native达成类似
共享经验、共享自订掉落物、共享队伍情报... 等等功能



使用的是传统menu写法(抱歉我觉得新式menu真的好难用)


请注意:本插件适用于对AMXX Pawn编写有一定程度了解的中阶级玩家使用


本人不负责教学延伸功能、如不会使用Native呼叫等等,那该插件对你来说只是一个普通显示组队功能的插件


【介绍】


起始如没有任何队伍时,选单会显示这样



来创建一个队伍吧! 接着会得到以下样式,系统会告诉你创建队伍成功,也会广播给所有玩家知道你创建了队伍,细项等等逐步解释队长功能



<队伍资讯>
介面中会显示哪些玩家在你的队伍,以及基本资讯
请忽略职业显示,这是我的第三方插件,您也可以在这里加入自订想显示的情报(需修改SMA)



假设有队员时,我们可以选择一个队员进行操作,此处您也可以自行修改SMA加入不同功能

可以选择踢出该队员,或者委任他成为新的队长



<解散队伍>
解散当前队伍,需要是队长才可以进行,解散后所有队员都会被移出队伍


<邀请入队>
邀请当前没有所属队伍的队员进入队伍
SMA内可以自行增加判断筛选过滤的条件



收到邀请时,会如下图显示倒数

接受后,就会进到队长的所属队伍内


离开队伍时,队伍会自动将空栏位整理并向上方堆叠剩余的队员

<重新命名队伍>
选择后,会看到左上角跳出讯息框可以输入新的队伍名称
你也可以开启控制台 输入 TeamName "名称" 达成改变成中文队名的效果






<队伍控制项>
此处也可以透过SMA自由修改加入您想新增的设定
插件内有使用nvault的保存功能,会记忆玩家的设定
(分享掉落物只是Sample、没有实际功能)




只提供SMA与INC
50威望

如有错误请将plugins.ini中的amxx后方输入 debug
提供异常行数与情况回报给我修复

INC介绍将于一楼说明
----------------------

** Ver 1.01
- 修正找寻队伍时,如该队伍队长中途离线导致选择队伍console有报错的讯息

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

威望要 50 以上才可以下载附件,您目前威望不足,请勿购买


[ 此文章被八云の橙猫在2023-11-24 10:31重新编辑 ]

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



献花 x5 回到顶端 [楼 主] From:台湾中华电信股份有限公司 | Posted:2023-11-18 04:01 |
八云の橙猫 手机 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x18 鲜花 x90
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

<INC内容说明>

队伍控制使用enum,您可以增加其他自订命名的控制组数名称
需要同步在sma内新增对应的中文叙述
复制程式
enum _:MAX_TEAM_SETTING
{
 JOIN_TYPE = 0,
 SHARE_DROPS
}

复制程式
/**
 * 显示队伍主要选单
 *
 * @noreturn  
 */
native show_team_menu(id);

复制程式
/**
 * 确认玩家是否存在队伍中
 *
 * @return 1 有队伍
 * 0 没有队伍
 */
native get_user_has_team(id);

复制程式
/**
 * 检查两位玩家是否存于同队伍中
 *
 * @param id 比较对象1
 * @param target  比较对象2
 *
 *
 * @return -1 比较对象1不在队伍内
 * -2 比较对象2不在队伍内
 * -3 比较对象有一方出现错误
 * 1  同队伍
 * 0  不同队伍
 */
native get_user_same_team(id, target);

复制程式
/**
 * 检查该队伍编号是否存在成员
 *
 * @param team_num 队伍编号
 *
 * @return 1 有成员
 *   0 无成员
 */
native get_team_has_member(team_num);

复制程式
/**
 * 取得对象的队伍编号
 *
 * @param id 客户端编号
 *
 * @return  -1 没有队伍 
 */
native get_team_num(id);


复制程式
/**
 * 取得指定队伍编号内的指定栏位队友id
 *
 * @param team_num 队伍编号
 * @param slot 栏位编号
 *
 * @return -1 队伍编号超出指定范围
 *  -2 栏位超出指定范围
 */
native get_team_member(team_num, slot);

复制程式
/**
 * 取得与指定对象相同队伍编号栏位的客户端id
 *
 * @note 与 get_team_member 不同的是,这个会直接找寻指定对象存在队伍id,可以用来更快
 *   判断一些处理
 *
 * @param id 客户端id
 * @param slot 需要搜寻的栏位
 * 
 * @return -1 队伍编号超出指定范围
 *  -2 栏位超出指定范围
 */
native get_same_team_member(id, slot);

复制程式
/**
 * 取得对象的队伍成员数量
 *
 * @param id 客户端id
 *
 * @return -1 队伍编号超出指定范围
 */
native get_team_member_counts(id);



复制程式
/**
 * 取得队伍控制设定的参数
 *
 * @param id  客户端id
 * @param setting  设定类别(参照 enum _:MAX_TEAM_SETTING)
 *
 * @return 对象未连接或设定项目不存在时会回传0,关闭也会回传0,如有效则会回传其他参数设定数字
 */
native get_team_setting(id, setting);


[ 此文章被八云の橙猫在2023-11-18 04:43重新编辑 ]

此文章被评分,最近评分记录
威望:5 (by amore12) | 理由:


献花 x1 回到顶端 [1 楼] From:台湾中华电信股份有限公司 | Posted:2023-11-18 04:02 |
八云の橙猫 手机 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x18 鲜花 x90
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

虽然文章说不负责延伸教学
但还是提供一下应用实例讲解一下INC效果


此处是组队分配经验值的写法,可以参考看看就好


复制程式
new g_storge_exp[MAX_TEAMS] //新增全域变数储存队伍内的经验值
//team const的INC内已经定义MAX_TEAMS的最大队伍值,故include后可以直接呼叫做使用
...


复制程式
...

//此处可放在自订的击杀判断内

if(get_team_num(id) != -1) //判断玩家所存队伍为有效队伍时
    g_storge_exp[get_team_num(id)] += floatround(exp_amount * 0.1) //往全域变数内储存10%的经验值
...


复制程式
//延续上一段

static i //频繁呼叫所以我们定义静数做使用,减少插件重复创建变数又将他移除


for(i = 0; i < MAX_TEAMS; i++)
{
    if(!get_team_has_member(i) || !g_storge_exp[i]) //如果队伍不存在玩家(空队伍) 或者储存经验槽为空 跳过
        continue;
    static a //此处同样以静数运作
    for(a = 0; a < MAX_TEAMATES; a++)
    {
        static user; user = get_team_member(i, a) //回圈会每次将对应队伍i以及其队员a带入值给user
        if(get_team_member_counts(user) < 2) //我判断队伍中少于2人的情况则不会给他经验值
            break;
        if(!user) // user不存在则跳过
            continue;
        give_user_exp(user, g_storge_exp[i]) //给每个user经验值
        client_print_color(user, print_team_blue, "^4[LEVEL] ^3因组队额外获得 ^4%d 经验值 ", g_storge_exp[i])
    }
    g_storge_exp[i] = 0 //队友全部都分配到经验值后,记得将变数清空,否则会无限累积
}...


[ 此文章被八云の橙猫在2023-11-18 21:25重新编辑 ]


献花 x0 回到顶端 [2 楼] From:台湾中华电信股份有限公司 | Posted:2023-11-18 04:18 |
[NiGhT]-妖
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x6 鲜花 x28
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

太利害了 表情


献花 x0 回到顶端 [3 楼] From:香港城市电讯 | Posted:2023-11-20 00:29 |
cyxnzb 会员卡
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x6
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

很不错的东西,要是能够对接网页,然后做成战队系统的话很棒 表情


献花 x0 回到顶端 [4 楼] From:未知地址 | Posted:2024-01-19 13:29 |

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