Alıntı JDM Nickli Üyeden Alıntı Mesajı göster
Bunu deneyin;

PHP- Kodu:
/* ====================================================
Name: Deimos Zombie
Type: Zombie Class
Desc: Press +Attack2 to Drop Human Weapon
Edit: Dias Leon
This zombie class made by Petr & 5c0r.
==================================================== */
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <basebuilder>
#include <fun>
#include <hamsandwich>
#include <fakemeta_util>


#define PLUGIN "[Basebuilder] ZClass: Deimos Zombie"
#define VERSION "1.1"
#define AUTHOR "Petr+5cor"


new const zclass_name[] = { "Deimos Zombie" }
new const 
zclass_info[] = { "Press +Attack2 to Drop Human Weapon" }
new const 
zclass_model[] = { "csplague_zm" }
new const 
zclass_clawmodel[] = { "v_knife_deimos1.mdl" }
const 
zclass_health 3000
const zclass_speed 240
const Float:zclass_gravity 1.0
const Float:zclass_knockback 0.25


new beamSprdeimos_spr
new const deimos_sound[] = "zombie_plague/deimos_skill_hit.wav"


//Cvars
new pcvar_distance
new cvar_cooldown // Cooldown when dropped the weapon of human


new g_deimos


new g_maxplayers
new is_cooldown[33] = 0
new bool:g_cd[33]
new 
cvar_nemesis


#define PRIMARY_WEAPONS_BIT_SUM ((1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)) // You can allways add more 


public plugin_precache()
{
    
g_deimos zp_register_zombie_class(zclass_namezclass_infozclass_modelzclass_clawmodelzclass_healthzclass_speedzclass_gravityzclass_knockback)
    
beamSpr precache_model("sprites/lgtning.spr")
    
deimos_spr precache_model("sprites/deimosexp.spr")
    
precache_sound(deimos_sound)
}


public 
plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
pcvar_distance register_cvar "bb_deimos_distance""1000" )
    
cvar_cooldown register_cvar("bb_deimos_shot_cooldown","45")
    
cvar_nemesis register_cvar("bb_deimos_nemesis""1")
    
g_maxplayers get_maxplayers()
    
register_logevent("roundStart"2"1=Round_Start")
    
register_forward(FM_CmdStart"fwd_cmd_start")
    
RegisterHam(Ham_Spawn,"player","fw_PlayerSpawn_Post",1)
}
public 
fw_PlayerSpawn_Post(id)
{
    
// Not alive...
    
if(!is_user_alive(id))
        return 
HAM_IGNORED
    
if(cvar_nemesis == 1)
    {
        if(
zp_get_user_zombie_class(id) == g_deimos && bb_is_user_zombie(id))
        {
            
g_cd[id] = true
        
}
        } else {
        if(
zp_get_user_zombie_class(id) == g_deimos && bb_is_user_zombie(id))
        {
            
g_cd[id] = true
        
}    
    }
    
    return 
HAM_IGNORED
}  


public 
fwd_cmd_start(iduc_handleseed
{
    if(
cvar_nemesis == 1)
    {
        if (!
is_user_alive(id) || !bb_is_user_zombie(id) || g_cd[id] )
            return 
FMRES_IGNORED
        
} else {
        if (!
is_user_alive(id) || !bb_is_user_zombie(id) || g_cd[id] )
            return 
FMRES_IGNORED
    
}
    
    if (
zp_get_user_zombie_class(id) != g_deimos)
        return 
FMRES_IGNORED
    
    
static buttons
    buttons 
get_uc(uc_handleUC_Buttons)
    
    if(
buttons IN_ATTACK2) {
        
drop_weapon(id)
        
g_cd[id] = true
    
}
    
    
buttons &= ~IN_ATTACK2
    set_uc
(uc_handleUC_Buttonsbuttons)
    
    return 
FMRES_HANDLED
}


drop_weapon(id)
{
    new 
targetbody
    
static Float:start[3]
    static 
Float:aim[3]
    
    
pev(idpev_originstart)
    
fm_get_aim_origin(idaim)
    
    
start[2] += 16.0// raise
    
aim[2] += 16.0// raise
    
get_user_aiming idtargetbodypcvar_distance )
    
    if( 
is_user_alivetarget ) && !bb_is_user_zombietarget ) )
    {    
        
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY)
        
write_byte(TE_EXPLOSION)
        
engfunc(EngFunc_WriteCoordaim[0])
        
engfunc(EngFunc_WriteCoordaim[1])
        
engfunc(EngFunc_WriteCoordaim[2])
        
write_short(deimos_spr)
        
write_byte(10)
        
write_byte(30)
        
write_byte(4)
        
message_end()
        
        
emit_sound(idCHAN_WEAPONdeimos_soundVOL_NORMATTN_NORM0PITCH_NORM)
        
        
drop(target)
    }    
    
    
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
    
write_byte(0)
    
engfunc(EngFunc_WriteCoord,start[0]);
    
engfunc(EngFunc_WriteCoord,start[1]);
    
engfunc(EngFunc_WriteCoord,start[2]);
    
engfunc(EngFunc_WriteCoord,aim[0]);
    
engfunc(EngFunc_WriteCoord,aim[1]);
    
engfunc(EngFunc_WriteCoord,aim[2]);
    
write_short(beamSpr); // sprite index
    
write_byte(0); // start frame
    
write_byte(30); // frame rate in 0.1's
    
write_byte(10); // life in 0.1's
    
write_byte(100); // line width in 0.1's
    
write_byte(10); // noise amplititude in 0.01's
    
write_byte(200); // red
    
write_byte(200); // green
    
write_byte(0); // blue
    
write_byte(100); // brightness
    
write_byte(50); // scroll speed in 0.1's
    
message_end();
    
set_taskget_pcvar_float(cvar_cooldown), "reset_cooldown2"id );
}

public 
reset_cooldown2(id)
{
    
g_cd[id] = false
    client_print
idprint_chat"[Deimos Zombie] Now. You can use your Ability. Press +Attack2" )
}

public 
roundStart()
{
    for (new 
1<= g_maxplayersi++)
    {
        
is_cooldown[i] = 0
        remove_task
(i)
    }
}
stock drop(id
{
    new 
weapons[32], num
    get_user_weapons
(idweaponsnum)
    for (new 
0numi++) {
        if (
PRIMARY_WEAPONS_BIT_SUM & (1<<weapons[i])) 
        {
            static 
wname[32]
            
get_weaponname(weapons[i], wnamesizeof wname 1)
            
engclient_cmd(id"drop"wname)
        }
    }
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1254\\ deff0\\ deflang1055{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/ 
zm modelini fln bizmi koyucaz ?