廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 762 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
八云の橙貓 手機 會員卡
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x2 鮮花 x73
分享: 轉寄此文章 Facebook Plurk Twitter 版主評分版主評分版主評分 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x1
[插件] 第三方隊伍系統 更新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 雅幣已有 5 人購買]
若發現會員採用欺騙的方法獲取財富,請立刻舉報,我們會對會員處以2-N倍的罰金,嚴重者封掉ID!

威望要 50 以上才可以下載附件,您目前威望不足,請勿購買


[ 此文章被八云の橙貓在2023-11-24 10:31重新編輯 ]

此文章被評分,最近評分記錄
財富:500 (by amore12) | 理由: 辛苦了!!



獻花 x4 回到頂端 [樓 主] From:臺灣中華電信股份有限公司 | Posted:2023-11-18 04:01 |
八云の橙貓 手機 會員卡
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x2 鮮花 x73
分享: 轉寄此文章 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 |
八云の橙貓 手機 會員卡
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x2 鮮花 x73
分享: 轉寄此文章 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.021643 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言