廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 3262 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
奇蹟。零 會員卡
個人頭像
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎
小人物
級別: 小人物 該用戶目前不上站
推文 x201 鮮花 x159
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[1.6] 請問一下zp_extra_item的問題...
我剛做了一個extra_item(如下)
可是不知如何改變它的攻擊力,射擊速度和子彈量...
請問我該如何改呢?

#include <amxmodx>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

//////////////////////////////////////////////////////////////////////////////
// Customizations ////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

new const model_vmg3[] = "models/zombie_plague/v_mg3.mdl" /* Weapon Model */

new const g_mg3_cost = 30 /* Item Cost */

//////////////////////////////////////////////////////////////////////////////
// Customizations Ends Here :D ///////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

#define is_valid_player(%1) (1 <= %1 <= g_maxplayers)

new g_mg3, g_maxplayers, big_explode, g_deathmsg
new bool:g_bHasmg3[33]
new cvar_enable, cvar_kill, cvar_remove_hltv, cvar_enable2, cvar_explode, cvar_particles, cvar_blood

public plugin_init()
{
    // Register the Plugin
    register_plugin("[ZP] Extra Item: MG3", "0.1", "Survivor-ST|MakingGroup")
   
    // Variables
    g_maxplayers = get_maxplayers()
    g_deathmsg = get_user_msgid("DeathMsg")
    g_mg3 = zp_register_extra_item("MG3", g_mg3_cost, ZP_TEAM_HUMAN)
   
    // Cvars
    cvar_enable = register_cvar("zp_mg3_enable", "1")
    cvar_kill = register_cvar("zp_mg3_ap_for_kill", "2")
    cvar_remove_hltv = register_cvar("zp_mg3_roundstart_remove", "0")
    cvar_enable2 = register_cvar("zp_mg3_block_delay_buy", "0")
   
    // Special Efects Cvars
    cvar_explode = register_cvar("zp_mg3_explode", "1")
    cvar_blood = register_cvar("zp_mg3_bloodspurt", "1")
    cvar_particles = register_cvar("zp_mg3_particles", "1")
   
    // Events: HamSandwich
    RegisterHam(Ham_TakeDamage, "player", "fw_mg3_damage")
    RegisterHam(Ham_Killed, "player", "fw_player_killed")
    RegisterHam(Ham_Spawn, "player", "fw_player_spawn", 1)
   
    // Events: Normal HL1 Events
    register_event("CurWeapon", "mg3_model", "be", "1=1", "2=18")
}

public plugin_precache()
{
    engfunc(EngFunc_PrecacheModel, model_vmg3)
    engfunc(EngFunc_PrecacheSound, "ambience/particle_suck2.wav")
    big_explode = engfunc(EngFunc_PrecacheModel, "sprites/fexplo.spr")
}

public fw_player_spawn(id)
{
    if (g_bHasmg3[id] && get_pcvar_num(cvar_remove_hltv))
    {
        g_bHasmg3[id] = false
        fm_strip_user_gun(id, 18)
    }
}

public client_putinserver(id)
    g_bHasmg3[id] = false;

public client_disconnect(id)
    g_bHasmg3[id] = false;

public fw_player_killed(victim, attacker, shouldgib)
{
    if(g_bHasmg3[victim])
    {
        client_print(victim, print_center, "[mg3] Power Off")
        g_bHasmg3[victim] = false
    }
}

public fw_mg3_damage(victim, inflictor, attacker, Float:damage, damage_bits)
{   
    if(!zp_get_user_zombie(victim))
        return;
       
    if(!is_valid_player(attacker))
        return;
       
    new clip, ammo, wpnid = get_user_weapon(attacker, clip, ammo)
   
    if (g_bHasmg3[attacker] && wpnid == CSW_M249)
    {
        new origin[3]
        get_user_origin(victim, origin)
       
        // player fades..
        set_user_rendering(victim, kRenderFxFadeSlow, 255, 255, 255, kRenderTransColor, 4);
       
        // beeeg explody!
        if(get_pcvar_num(cvar_explode))
        {
            message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
            write_byte(TE_EXPLOSION)   
            write_coord(origin[0])
            write_coord(origin[1])
            write_coord(origin[2]+128)
            write_short(big_explode)    // big explosion
            write_byte(40)            // scale in 0.1's
            write_byte(12)            // frame rate
            write_byte(TE_EXPLFLAG_NONE)   
            message_end()
        }

        // do turn down that awful racket..to be replaced by a blood spurt!
        if(get_pcvar_num(cvar_blood))
        {
            message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
            write_byte(TE_LAVASPLASH)
            write_coord(origin[0])
            write_coord(origin[1])
            write_coord(origin[2]-26)
            message_end()
        }
       
        // particle suck
        if(get_pcvar_num(cvar_particles))
        {
            message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
            write_byte(TE_IMPLOSION)
            write_coord(origin[0])
            write_coord(origin[1])
            write_coord(origin[2])
            write_byte(200)
            write_byte(40)
            write_byte(45)
            message_end()
            emit_sound(victim, CHAN_WEAPON, "ambience/particle_suck2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
            emit_sound(victim, CHAN_VOICE, "ambience/particle_suck2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
        }
       
        // Setting damage to 0 for some bugs
        SetHamParamFloat(4, 0.0);
       
        // kill victim
        user_silentkill(victim)
       
        message_begin(MSG_ALL, g_deathmsg,{0,0,0},0 )
        write_byte(attacker)
        write_byte(victim)
        write_byte(0)
        write_string("m249")
        message_end()
       
        // Save Hummiliation
        new namea[24],namev[24],authida[20],authidv[20],teama[8],teamv[8]
       
        // Info On Attacker
        get_user_name(attacker,namea,23)
        get_user_team(attacker,teama,7)
        get_user_authid(attacker,authida,19)
        new attackerid = get_user_userid(attacker)
       
        // Info On Victim
        get_user_name(victim,namev,23)
        get_user_team(victim,teamv,7)
        get_user_authid(victim,authidv,19)
        new victimid = get_user_userid(victim)
       
        // Log This Kill
       log_message("^"%s<%d><%s><%s>^" killed^"%s<%d><%s><%s>^" with ^"mg3^"", namea, attackerid,authida, teama, namev, victimid, authidv, teamv)
       
        // for some reason this doesn't update in the hud until the next round.. whatever.
        if (get_user_team(attacker) != get_user_team(victim))
        {
            set_user_frags(attacker, get_user_frags(attacker) + 1)
            new killap = get_pcvar_num(cvar_kill)
            new getap = zp_get_user_ammo_packs(attacker)
            zp_set_user_ammo_packs(attacker, getap + killap)
            client_print(attacker, print_center, "[mg3] Enemy Killed. +%d Ammopacks", killap)
        }
    }
}

public zp_extra_item_selected(id, item)
{
    if (item == g_mg3)
    {
        if(get_pcvar_num(cvar_enable))
        {
            if(get_pcvar_num(cvar_enable2))
            {
                if (!zp_has_round_started())
                {
                    client_print(id, print_chat, "[ZP] You must wait until the round starts")
                    zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + g_mg3_cost)
                   
                    return;
                }
            }
            if(g_bHasmg3[id])
            {
                client_print(id, print_chat, "[ZP] You already have a mg3")
                zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + g_mg3_cost)
                   
                return;
            }
           
            // Var's
            g_bHasmg3[id] = true
           
            // mg3
            give_item(id, "weapon_m249")
            give_item(id, "ammo_556natobox")
            give_item(id, "ammo_556natobox")
            give_item(id, "ammo_556natobox")
           
            // Msgs
            client_print(id, print_chat, "[ZP] You now have a mg3. Shooting at a Zombie, it is annihilated")
            client_print(id, print_center, "[mg3] Power On. Seek and Destroy")
           
            // Setting Models
            put_models(id)
        }
        else
        {
            client_print(id, print_chat, "[ZP] This Item has been Disabled")
            zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + g_mg3_cost)
           
            return;
        }
    }
}

public mg3_model(id)
{   
    // Not alive
    if (!is_user_alive(id))
        return;
   
    if (!g_bHasmg3[id])
        return;
   
    new clip, ammo, wpnid = get_user_weapon(id, clip, ammo)
   
    if (wpnid == CSW_M249 && g_bHasmg3[id])
    {
        set_pev(id, pev_viewmodel2, model_vmg3)
    }
}

public zp_user_infected_post(id)
{
    if(g_bHasmg3[id])
    {
        g_bHasmg3[id] = false
    }
}

public put_models(id)
{
    if(!g_bHasmg3[id])
        return;
   
    if (get_user_weapon(id) == CSW_M249)
    {
        mg3_model(id)
    }
    else
    {
        engclient_cmd(id, "weapon_m249")
        mg3_model(id)
    }
}
   
// Stock: fm_strip_user_gun (taked from fakemeta_util)
stock bool:fm_strip_user_gun(index, wid = 0, const wname[] = "")
{
    new ent_class[32];
    if (!wid && wname[0])
        copy(ent_class, sizeof ent_class - 1, wname);
    else
    {
        new weapon = wid, clip, ammo;
        if (!weapon && !(weapon = get_user_weapon(index, clip, ammo)))
            return false;
       
        get_weaponname(weapon, ent_class, sizeof ent_class - 1);
    }
   
    new ent_weap = fm_find_ent_by_owner(-1, ent_class, index);
    if (!ent_weap)
        return false;
   
    engclient_cmd(index, "drop", ent_class);
   
    new ent_box = pev(ent_weap, pev_owner);
    if (!ent_box || ent_box == index)
        return false;
   
    dllfunc(DLLFunc_Think, ent_box);
   
    return true;
}

// Stock: fm_find_ent_by_owner (taked from fakemeta_util)
stock fm_find_ent_by_owner(index, const classname[], owner, jghgtype = 0)
{
    new strtype[11] = "classname", ent = index;
    switch (jghgtype)
    {
        case 1: strtype = "target";
            case 2: strtype = "targetname";
        }
   
    while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner) {}
   
    return ent;
}

-------------------------------------------------------------------------------------------------------------------------------------------
先感謝各位幫忙!"


[ 此文章被奇蹟。零在2010-05-27 23:54重新編輯 ]




已發槍模的帖子不再補載點了
破了的話就私訊給載點吧
獻花 x0 回到頂端 [樓 主] From:歐洲 | Posted:2009-08-23 15:29 |
cam5023157 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x5 鮮花 x74
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

不懂 表情


獻花 x0 回到頂端 [1 樓] From:臺灣中華電信HINET | Posted:2009-08-23 18:50 |
stu90409 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
頭銜:MyChat槍模研究團隊MyChat槍模研究團隊
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x691 鮮花 x332
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

在amxx.cfg新增一些字即可...你講的不詳細所以我不知道應該在裡面增加啥


懷念火線特戰隊




獻花 x0 回到頂端 [2 樓] From:歐洲 | Posted:2009-08-30 14:19 |
a7811311622 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎 優秀管理員勳章 社區建設獎
頭銜:我…在工作了…我…在工作了…
版主
級別: 版主 該用戶目前不上站
版區: CS提問區
推文 x771 鮮花 x2152
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

這內容寫的是用M249的槍枝內容為MG3的基礎,所以內容完全沒扯到
大大說的「攻擊力,射擊速度和子彈量」,要改就變成要找插件改M249。


尚無簽名,歡迎 [新增個性化簽名]
獻花 x0 回到頂端 [3 樓] From:未知地址 | Posted:2009-09-13 14:52 |
suyuan6
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x11
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

extra_item,这个我没用过


獻花 x0 回到頂端 [4 樓] From:江蘇 | Posted:2010-05-28 20:53 |
弒血
個人頭像
個人文章 個人相簿 個人日記 個人地圖
社區建設獎 特殊貢獻獎 創作大師獎
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x108 鮮花 x240
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

這要找專家看才行,畢竟很多都是不懂得寫插件的 表情



目前傳授教學&有興趣者可以問我
BOT瞄準攻擊NPC&模仿事件觸發計算出場&新增地圖重生位置等等
已修復entity的attachment錯誤問題,開始嘗試寫出各種npc_boss成品
按這裡檢視影片,登入論壇可以直接觀看
按這裡檢視影片,登入論壇可以直接觀看
按這裡檢視影片,登入論壇可以直接觀看
按這裡檢視影片,登入論壇可以直接觀看
獻花 x0 回到頂端 [5 樓] From:台灣中華電信 | Posted:2010-06-05 12:35 |

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