廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 5635 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
龍心
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x2
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[插件] [兵種插件]四種兵種(新增醫療兵)  ((By EnDieS) )

圖 1.



【插件資訊】

插件來源:網路資源轉載提供會員參考
使用指令:自行修改編譯及參考http://bbs.mychat.tw/re...d=1004025
安裝路徑:自行修改編譯及參考http://bbs.mychat.tw/re...d=1004025

【插件介紹】

複製程式
new bool:g_job[33];
new bool:g_fast[33];
new bool:g_slow[33];
new bool:g_normal[33];
new bool:g_hp[33];
new bool:addhp[33];
new bool:ok[33];
new g_msg;
new g_beamSpr;
new job_name[5][0];


replace_all(String:string[], len, String:what[], String:with[])
{
    new pos = 0;
    new var1 = contain(string, what);
    pos = var1;
    if (var1 == -1)
    {
        return 0;
    }
    new total = 0;
    new with_len = strlen(with);
    new diff = strlen(what) - with_len;
    new total_len = strlen(string);
    new temp_pos = 0;
    while (replace(string[pos], len - pos, what, with))
    {
        pos = with_len + pos;
        total_len -= diff;
        if (pos >= total_len)
        {
            return total;
        }
        else
        {
            temp_pos = contain(string[pos], what);
            if (temp_pos == -1)
            {
                return total;
            }
            else
            {
                pos = temp_pos + pos;
                total++;
            }
            return total;
        }
        return total;
    }
    return total;
}


public __fatal_ham_error(Ham:id, HamError:err, String:reason[])
{
    !!! Removed Phi
    if (func != -1 && callfunc_begin_i(func, -1) == 1)
    {
        callfunc_push_int(id);
        callfunc_push_int(err);
        callfunc_push_str(reason, false);
        if (callfunc_end() == 1)
        {
            fail = 0;
        }
    }
    if (fail)
    {
        set_fail_state(reason);
    }
    return 0;
}


xs_vec_add(Float:in1[], Float:in2[], Float:out[])
{
    out[0] = in1[0] + in2[0];
    out[1] = in1[1] + in2[1];
    out[2] = in1[2] + in2[2];
    return 0;
}


xs_vec_mul_scalar(Float:vec[], Float:scalar, Float:out[])
{
    out[0] = vec[0] * scalar;
    out[1] = vec[1] * scalar;
    out[2] = vec[2] * scalar;
    return 0;
}


Menu_Setting(menu)
{
    menu_setprop(menu, 3, 40);
    menu_setprop(menu, 2, 80);
    menu_setprop(menu, 4, 120);
    return 0;
}


client_printc(id, String:string[])
{
    new msg[191];
    new players[32];
    new count = 1;
    format(msg, 190, string, 3);
    replace_all(msg, 190, "\g", "\4");
    replace_all(msg, 190, "\y", "\1");
    replace_all(msg, 190, "\t", "\3");
    if (id)
    {
        players[0] = id;
    }
    else
    {
        get_players(players, count, "ch", "");
    }
    new index = 0;
    new i = 0;
    while (i < count)
    {
        index = players[i];
        message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), 256, index);
        write_byte(index);
        write_string(msg);
        message_end();
        i++;
    }
    return 0;
}


public plugin_init()
{
    RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn", 1);
    register_clcmd("say /choose_job", "ChooseMenu", -1, "", -1);
    register_forward(FM_PlayerPreThink, "Player_PreThink", 0);
    return 0;
}


public plugin_precache()
{
    g_msg = CreateHudSyncObj(0);
    g_beamSpr = precache_model("sprites/zbeam4.spr");
    return 0;
}


public fw_PlayerSpawn(id)
{
    set_task(0.00, "Reload", id + 10000, "", 0, "", 0);
    client_printc(id, "\g[提示] \t如果未能選擇兵種,可打指令/choose_job來開啟選單。");
    client_printc(id, "\g[提示] \t當醫療兵瞄準隊友加血時,請不要到處跑,以免為醫療兵帶來煩惱。");
    new var1 = Heap_4;
    var1[0] = 3356;
    if (get_user_team(id, var1, 0) == 1)
    {
        set_user_rendering(id, 19, 255, 0, 0, 0, 15);
    }
    new var2 = Heap_4;
    var2[0] = 3356;
    if (get_user_team(id, var2, 0) == 2)
    {
        set_user_rendering(id, 19, 0, 0, 255, 0, 15);
    }
    return 0;
}


public Reload(id)
{
    id += -10000;
    strip_user_weapons(id);
    give_item(id, "weapon_knife");
    g_job[id] = 0;
    g_fast[id] = 0;
    g_slow[id] = 0;
    g_normal[id] = 1;
    ChooseMenu(id);
    return 0;
}


public Player_PreThink(id)
{
    if (!is_user_connected(id))
    {
        return 1;
    }
    if (!is_user_alive(id))
    {
        return 1;
    }
    static button;
    button = pev(id, pev_button);
    new target = 0;
    new len = 0;
    get_user_aiming(id, target, len, 9999);
    new name[32];
    get_user_name(target, name, 31);
    new player1[3];
    new player2[3];
    get_user_origin(id, player1, 0);
    get_user_origin(id, player2, 3);
    new distance = get_distance(player1, player2);
    if (g_hp[id][0][0])
    {
        if (distance < 201)
        {
            if (is_user_connected(target) && is_user_alive(target))
            {
                new var4 = Heap_4;
                var4[0] = 3356;
                if (get_user_team(id, var4, 0) == 1)
                {
                    new var5 = Heap_4;
                    var5[0] = 3356;
                    if (get_user_team(target, var5, 0) == 1)
                    {
                        set_hudmessage(0, 255, 255, -1.00, 0.55, 0, 1.00, 0.50, 0.10, 0.20, -1);
                        ShowSyncHudMsg(id, g_msg, 3416, name, get_user_health(target));
                        if (button & 32)
                        {
                            if (100 > get_user_health(target))
                            {
                                if (!addhp[id][0][0])
                                {
                                    addhp[id] = 1;
                                    set_task(0.20, "addhp_F", id + 10000, "", 0, "", 0);
                                    static Float:origin2[3];
                                    static Float:origin1[3];
                                    fm_get_aim_vector(id, 40, origin1, origin2);
                                    new var6 = origin1[2];
                                    new var2;
                                    if (pev(id, pev_flags) & 16384)
                                    {
                                        var2 = 3.00/*1077936128*/;
                                    }
                                    else
                                    {
                                        var2 = -7.00/*-1059061760*/;
                                    }
                                    var6 = var6[0] + var2;
                                    show_tracer_effect(origin1, origin2);
                                }
                            }
                        }
                    }
                }
                new var7 = Heap_4;
                var7[0] = 3356;
                if (get_user_team(id, var7, 0) == 2)
                {
                    new var8 = Heap_4;
                    var8[0] = 3356;
                    if (get_user_team(target, var8, 0) == 2)
                    {
                        set_hudmessage(0, 255, 255, -1.00, 0.55, 0, 1.00, 0.50, 0.10, 0.20, -1);
                        ShowSyncHudMsg(id, g_msg, 3576, name, get_user_health(target));
                        if (button & 32)
                        {
                            if (100 > get_user_health(target))
                            {
                                if (!addhp[id][0][0])
                                {
                                    addhp[id] = 1;
                                    set_task(0.20, "addhp_F", id + 10000, "", 0, "", 0);
                                    static Float:origin2[3];
                                    static Float:origin1[3];
                                    fm_get_aim_vector(id, 40, origin1, origin2);
                                    new var9 = origin1[2];
                                    new var3;
                                    if (pev(id, pev_flags) & 16384)
                                    {
                                        var3 = 3.00/*1077936128*/;
                                    }
                                    else
                                    {
                                        var3 = -7.00/*-1059061760*/;
                                    }
                                    var9 = var9[0] + var3;
                                    show_tracer_effect(origin1, origin2);
                                    ok[id] = 1;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    if (g_hp[id][0][0])
    {
        set_user_maxspeed(id, 300.00);
    }
    if (g_fast[id][0][0])
    {
        set_user_maxspeed(id, 300.00);
    }
    if (g_normal[id][0][0])
    {
        set_user_maxspeed(id, 250.00);
    }
    if (g_slow[id][0][0])
    {
        set_user_maxspeed(id, 200.00);
    }
    return 1;
}


public addhp_F(id)
{
    id += -10000;
    new target = 0;
    new len = 0;
    get_user_aiming(id, target, len, 9999);
    ok[id] = 0;
    new var1 = Heap_4;
    var1[0] = 3356;
    if (get_user_team(id, var1, 0) == 1)
    {
        new var2 = Heap_4;
        var2[0] = 3356;
        if (get_user_team(target, var2, 0) == 1)
        {
            if (get_user_health(target) == 99)
            {
                set_user_health(target, get_user_health(target) + 1);
            }
            set_user_health(target, get_user_health(target) + 2);
        }
    }
    new var3 = Heap_4;
    var3[0] = 3356;
    if (get_user_team(id, var3, 0) == 2)
    {
        if (get_user_health(target) == 99)
        {
            set_user_health(target, get_user_health(target) + 1);
        }
        set_user_health(target, get_user_health(target) + 2);
    }
    addhp[id] = 0;
    return 0;
}


fm_get_aim_vector(index, forward_distance, Float:forward_origin[3], Float:view_end_origin[3])
{
    new Float:start[3];
    new Float:view_ofs[3];
    pev(index, pev_origin, start);
    pev(index, pev_view_ofs, view_ofs);
    xs_vec_add(start, view_ofs, start);
    new Float:vector[3];
    new Float:temp[3];
    pev(index, pev_v_angle, vector);
    engfunc(EngFunc_MakeVectors, vector);
    global_get(glb_v_forward, vector);
    xs_vec_mul_scalar(vector, float(forward_distance), temp);
    xs_vec_add(start, temp, forward_origin);
    new Float:dest[3];
    xs_vec_mul_scalar(vector, 9999.00, temp);
    xs_vec_add(start, temp, dest);
    engfunc(EngFunc_TraceLine, start, dest, 0, index, 0);
    get_tr2(0, TR_vecEndPos, view_end_origin);
    return 1;
}


show_tracer_effect(Float:start_point[3], Float:end_point[3])
{
    message_begin(MSG_BROADCAST, SVC_TEMPENTITY, 256, 0);
    write_byte(0);
    engfunc(EngFunc_WriteCoord, start_point);
    engfunc(EngFunc_WriteCoord, start_point[1]);
    engfunc(EngFunc_WriteCoord, start_point[2]);
    engfunc(EngFunc_WriteCoord, end_point);
    engfunc(EngFunc_WriteCoord, end_point[1]);
    engfunc(EngFunc_WriteCoord, end_point[2]);
    write_short(g_beamSpr);
    write_byte(0);
    write_byte(1);
    write_byte(10);
    write_byte(10);
    write_byte(0);
    write_byte(0);
    write_byte(245);
    write_byte(255);
    write_byte(255);
    write_byte(0);
    message_end();
    return 0;
}


public ChooseMenu(id)
{
    if (g_job[id][0][0])
    {
        client_printc(id, "\g[兵種系統] \t你已經選擇了兵種。");
        return 1;
    }
    new menu = menu_create(3924, "ChooseMenu_Handler", 0);
    new i = 0;
    while (i < 5)
    {
        menu_additem(menu, job_name[i][0][0], "", 0, -1);
        i++;
    }
    Menu_Setting(menu);
    menu_display(id, menu, 0);
    return 1;
}


public ChooseMenu_Handler(id, menu, item)
{
    if (item == -3)
    {
        menu_destroy(menu);
        return 1;
    }
    switch (item)
    {
        case 0:
        {
            give_item(id, "weapon_mp5navy");
            cs_set_user_bpammo(id, CSW_MP5NAVY, 120);
            g_job[id] = 1;
            g_fast[id] = 1;
            g_normal[id] = 0;
        }
        case 1:
        {
            give_item(id, "weapon_ak47");
            cs_set_user_bpammo(id, CSW_AK47, 90);
            g_job[id] = 1;
        }
        case 2:
        {
            give_item(id, "weapon_m4a1");
            cs_set_user_bpammo(id, CSW_M4A1, 90);
            g_job[id] = 1;
        }
        case 3:
        {
            give_item(id, "weapon_awp");
            cs_set_user_bpammo(id, CSW_AWP, 30);
            g_job[id] = 1;
            g_slow[id] = 1;
            g_normal[id] = 0;
        }
        case 4:
        {
            give_item(id, "weapon_knife");
            g_job[id] = 1;
            g_hp[id] = 1;
            g_normal[id] = 0;
            client_printc(id, "\g[兵種系統] \t你已經選擇了醫療兵,瞄準隊友按 E 回復血量(上限100血)。");
        }
        default:
        {
        }
    }
    return 1;
}





獻花 x0 回到頂端 [樓 主] From:香港特別行政區 | Posted:2017-09-15 11:30 |
csisgoodgame
個人頭像
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎
頭銜:комплекс.комплекс.
特約版主
級別: 特約版主 該用戶目前不上站
版區: CS模組區, CS教學區, 英雄聯盟LOL
推文 x159 鮮花 x516
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

所以你修改了哪裡?
這個東西是不能編譯成功的,發文前先看好自己的文章到底完不完整。


獻花 x1 回到頂端 [1 樓] From:臺灣教育部 | Posted:2017-10-19 19:15 |
龍心
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x2
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

志在供大家參考不開源插件的寫法,何況已經註明需要自行修改方編譯,插件來源於網路資源轉載提供會員參考,回覆前先看清楚文章內容。


獻花 x0 回到頂端 [2 樓] From:香港特別行政區 | Posted:2017-10-19 20:19 |
zxzyman 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x40 鮮花 x144
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片





原文未提供SMA

而他提供必分寫法

[backcolor=rgb(247,]所以之前是我誤會他了




[ 此文章被zxzyman在2017-11-03 21:11重新編輯 ]


UWC3NG 終極魔獸-次世代 (繁體中文版)
     -按此連結-   

獻花 x1 回到頂端 [3 樓] From:臺灣中嘉寬頻股份有限公司 | Posted:2017-10-29 11:34 |
龍心
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x2
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 zxzyman 於 2017-10-29 11:34 發表的 : 到引言文
 

原文無公開插件原碼 
而你找到或自己寫出原碼並且重新發一篇新的文章這是可行的
但你至少也用自己的敘述方式去說明插件內容吧...
不是Copy主題
.......


由於所有內容基本一樣,再作描述實屬多此一舉,故只提供原作主題連結。
關於下方的指控,我發文前已經查清作者並沒有提供源碼。不作搜證便作出無理指控的行為極不負責任。表情


獻花 x1 回到頂端 [4 樓] From:香港特別行政區 | Posted:2017-10-31 02:23 |
zxzyman 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x40 鮮花 x144
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 龍心 於 2017-10-31 02:23 發表的 : 到引言文

由於所有內容基本一樣,再作描述實屬多此一舉,故只提供原作主題連結。
     

 

———————————————————————


真心建議內文說明「原文沒提供Sma,而你的文有Sma的部分寫法」


換上實際的圖片,這樣保證沒人會誤會你。


好了⋯⋯   我也很多事  管太多了  畢竟這是你個人風格我不能多管⋯  



表情        








[ 此文章被zxzyman在2017-11-03 21:20重新編輯 ]


UWC3NG 終極魔獸-次世代 (繁體中文版)
     -按此連結-   

獻花 x1 回到頂端 [5 樓] From:臺灣中嘉寬頻股份有限公司 | Posted:2017-10-31 16:31 |
龍心
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x2
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 zxzyman 於 2017-10-31 16:31 發表的 : 到引言文



對⋯   認同你說的 ,
原文沒Sma 你引用他原文做連結 發新的一篇有供Sma是可行的

.......
難道你對自己發的文也沒印象?兩個附件皆只有zp_addon_dtcm2.amxx 一個檔案表情


獻花 x0 回到頂端 [6 樓] From:香港特別行政區 | Posted:2017-10-31 20:37 |

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