PHP- Kodu:
/*
*         Copyright © 2013 by Optimist
*            Tüm Yasal Hakları Saklıdır.
*
*                                                                               www.csplugin.com -> Optimist
*
*    Plugin Tanıtım: Bu Plugin Sayesinde Jailbreak mod'ta "ADMIN_KICK" yetkisi olan bir Admin'in Oyunu Zombi Mod'ta oynanmasını sağlıyor.
*
*    v1.1 = Gereksiz kodlar silindi böylece pluginde muhtemel kasmalar engellendi.
*    v1.2 = Zombi Sınıfları eklendi böylece ct'ler zombi türü seçebilecekler. // Bu özelliği yapmamda yardımcı olan CSmiLeFaCe 'e teşekkürler...
*
*/

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <colorchat>

#define PLUGIN "[JB]: Admin Zombi Mod"
#define VERSION "1.2"
#define AUTHOR "Optimist"

#define task_bilgi 672

#define OFFSET_PRIMARYWEAPON 116 

new bool:Zm_SilahDokunamama

new VIEW_ZOMBI[]        = "models/admin_zombi/v_zombi_el.mdl";
new 
PLAYER_ZOMBI[]        = "models/admin_zombi/p_zombi_el.mdl";
new 
zombihp[33];
new 
insanhp[33];
new 
SyncHudObj;
new 
yeni_nightvision;
new 
zombimod// herkes
new hudmesaji;
new 
zombisinifi;

// Hayalet zombi
new pSilentpAlphapRedpBluepGreen;

// Yarasa Fırlatan Zombi
const zclass_health 1800
const zclass_speed 190
const Float:zclass_gravity 1.0
const Float:zclass_knockback 1.0

new const SOUND_FIRE[] = "zombie_plague/zombi_banshee_pulling_fire.wav"
new const SOUND_BAT_HIT[] = "zombie_plague/zombi_banshee_laugh.wav"
new const SOUND_BAT_MISS[] = "zombie_plague/zombi_banshee_pulling_fail.wav"
new const MODEL_BAT[] = "models/zombie_plague/bat_witch.mdl"
new const BAT_CLASSNAME[] = "banchee_bat"
new spr_skull

const Float:banchee_skull_bat_speed 600.0
const Float:banchee_skull_bat_flytime 3.0
const Float:banchee_skull_bat_catch_time 3.0
const Float:banchee_skull_bat_catch_speed 100.0
const Float:bat_timewait 14.0

new g_stop[33]
new 
g_bat_time[33]
new 
g_bat_stat[33]
new 
g_bat_enemy[33]
new 
Float:g_temp_speed[33]

new 
g_maxplayers
new g_roundend

enum 
(+= 100)
{
    
TASK_BOT_USE_SKILL 2367,
    
TASK_REMOVE_STAT
}

#define ID_BOT_USE_SKILL (taskid - TASK_BOT_USE_SKILL)
#define ID_TASK_REMOVE_STAT (taskid - TASK_REMOVE_STAT)

public plugin_precache() {
    
SyncHudObj CreateHudSyncObj();
    
precache_model("models/player/zombi/zombi.mdl")
    
precache_sound("zombimod/zombi_siren.wav")
    
precache_sound("zombimod/zombi_mod_baslangic.wav");
    
precache_sound(SOUND_FIRE)
    
precache_sound(SOUND_BAT_HIT)
    
precache_sound(SOUND_BAT_MISS)
    
    
precache_model(MODEL_BAT)
    
    
spr_skull precache_model("sprites/ef_bat.spr")
    
    
precache_model(VIEW_ZOMBI);   
    
precache_model(PLAYER_ZOMBI);
}

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say /zombi","kont")    // Zombi Mod Başlatma Komutu
    
register_clcmd("say_team /zombi","kont")    // Zombi Mod Başlatma Komutu
    
register_clcmd("say /zm","kont")    // Zombi Mod Başlatma Komutu
    
register_clcmd("say_team /zm","kont")    // Zombi Mod Başlatma Komutu
    
register_clcmd("drop""cmd_bat")
    
    
register_logevent("YeniTur",2,"0=World triggered","1=Round_Start")
    
register_logevent("TurSonu"2"1=Round_End")
    
    
register_event("HLTV""YeniTurcuk""a""1=0""2=0")
    
register_event("DeathMsg""EventDeath""a")
    
register_logevent("logevent_round_end"2"1=Round_End")
    
    
register_forward(FM_AddToFullPack"fw_addtofullpack"1);
    
register_forward(FM_PlayerPreThink,"fw_PlayerPreThink")
    
    
RegisterHam(Ham_Spawn"player""OyuncuDogunca"1)
    
RegisterHam(Ham_Touch"weaponbox""SilahDokunulmaz")
    
RegisterHam(Ham_Touch"armoury_entity""SilahDokunulmaz")
    
RegisterHam(Ham_Touch"weapon_shield""SilahDokunulmaz")
    
RegisterHam(Ham_Touch,"info_target","EntityTouchPost",1)
    
RegisterHam(Ham_Think,"info_target","EntityThink")
    
RegisterHam(Ham_TakeDamage"player""fw_takedamage");
    
    
pSilent get_cvar_pointer("zp_zombie_silent")
    
pAlpha register_cvar("zp_ghost_invisibility""1")
    
pRed register_cvar("zp_ghost_glow_red""0")
    
pGreen register_cvar("zp_ghost_glow_green""0")
    
pBlue  register_cvar("zp_ghost_glow_blue",  "10")
    
zombisinifi 1
    hudmesaji 
CreateHudSyncObj()
    
yeni_nightvision get_user_msgid"NVGToggle" );
    
g_maxplayers get_maxplayers()
}

public 
YeniTur(id) {
    
kontrol(id);
    
kontrol2(id);
}

public 
kontrol(id) {
    if(
zombimod == 1) {
        for(new 
133i++) { 
            if(
is_user_connected(i) && is_user_alive(i) && get_user_team(i) == 2) {
                
set_user_health(i,100);
                
strip_user_weapons(i)
                
give_item(i,"weapon_knife")
                
give_item(i,"weapon_ak47")
                
give_item(i,"weapon_m4a1")
                
give_item(i,"weapon_deagle")
                
give_item(i,"weapon_awp")
                
give_item(i,"weapon_hegrenade")
                
give_item(i,"weapon_m249")
                
cs_set_user_bpammo(i,CSW_AK47,90)
                
cs_set_user_bpammo(i,CSW_AWP,90)
                
cs_set_user_bpammo(i,CSW_M4A1,90)
                
cs_set_user_bpammo(i,CSW_DEAGLE,37)    
                
cs_set_user_bpammo(i,CSW_M249,200)
                
                
cs_reset_user_model(i)
            }
            if(
is_user_connected(i) && is_user_alive(i) && get_user_team(i) == 1) {
                
set_user_health(i,100);
                
strip_user_weapons(i)
                
give_item(i,"weapon_knife")
            }
            
zombimod 0
        }
        
set_lights("#OFF")
    }
}

public 
kontrol2(id) {
    if(
zombimod == 1) {
        for(new 
133i++) { 
            if(
is_user_connected(i) && is_user_alive(i) && get_user_team(i) == 1) {
                
set_user_health(i,100);
                
strip_user_weapons(i)
                
give_item(i,"weapon_knife")
                
give_item(i,"weapon_ak47")
                
give_item(i,"weapon_m4a1")
                
give_item(i,"weapon_deagle")
                
give_item(i,"weapon_awp")
                
give_item(i,"weapon_hegrenade")
                
give_item(i,"weapon_m249")
                
cs_set_user_bpammo(i,CSW_AK47,90)
                
cs_set_user_bpammo(i,CSW_AWP,90)
                
cs_set_user_bpammo(i,CSW_M4A1,90)
                
cs_set_user_bpammo(i,CSW_DEAGLE,37)    
                
cs_set_user_bpammo(i,CSW_M249,200)
                
                
cs_reset_user_model(i)
            }
            if(
is_user_connected(i) && is_user_alive(i) && get_user_team(i) == 2) {
                
set_user_health(i,100);
                
strip_user_weapons(i)
                
give_item(i,"weapon_knife")
            }
            
zombimod 0
        }
        
set_lights("#OFF")
    }
}

public 
kont(id) {
    if(
get_user_team(id) == 2) {
        if(
get_user_flags(id) & ADMIN_KICK) {
            
zombihp[id] = 5000;
            
insanhp[id] = 150;
            
zm_menu(id)
        }
        else  
        {  
            
ColorChat(id,NORMAL,"^4[Zombi Mod]:^1 Sadece ^4Admin^1'ler Bu Komutu Kullanabilir!") ; 
        }
    }
}

public 
zm_menu(id) {
    
    new 
hostname[64]
    
get_cvar_string("hostname",hostname,63)
    
    new 
menuMenuz[512
    
formatex(Menuzcharsmax(Menuz), "\y%s^n\w[JB]: Admin Zombi Mod",hostname
    
menu menu_create(Menuz"zm_menu_devam")
    
    
formatex(Menuzcharsmax(Menuz), "\wZombi HP Arttir \y[ + ]"
    
menu_additem(menuMenuz"1"
    
formatex(Menuzcharsmax(Menuz), "\wZombi HP Azalt \b[ - ]"
    
menu_additem(menuMenuz"2")
    
formatex(Menuzcharsmax(Menuz), "\wInsan HP Arttir \y[ + ]"
    
menu_additem(menuMenuz"3"
    
formatex(Menuzcharsmax(Menuz), "\wInsan HP Azalt \b[ - ]"
    
menu_additem(menuMenuz"4")
    
formatex(Menuzcharsmax(Menuz), "\wZombi Oyunu \rBaslat")
    
menu_additem(menuMenuz"5")
    if(
zombisinifi == 1) {
        
formatex(Menuzcharsmax(Menuz), "\wZombi Sinifi \r[Normal Zombi]"
        
menu_additem(menuMenuz"7")
    }
    else if(
zombisinifi == 2) {
        
formatex(Menuzcharsmax(Menuz), "\wZombi Sinifi \r[Hayalet Zombi]"
        
menu_additem(menuMenuz"7")
    }
    else if(
zombisinifi == 3) {
        
formatex(Menuzcharsmax(Menuz), "\wZombi Sinifi \r[Yarasa Firlatan Zombi]"
        
menu_additem(menuMenuz"7")
    }
    
formatex(Menuzcharsmax(Menuz), "\wZombi Oyunu \yDurdur^n^n\yZombi HP \b[ %i ] \w- \yInsan HP \b[ %i ]",zombihp[id],insanhp[id])
    
menu_additem(menuMenuz"6")
    
    
formatex(Menuzcharsmax(Menuz), "\yCikis"
    
menu_setprop(menu,MPROP_EXITNAME,Menuz
    
    
menu_display(idmenu0
    
    return 
PLUGIN_HANDLED;
}

public 
zm_menu_devam(idmenuitem) { 
    
    if (
item == MENU_EXIT
    { 
        
menu_destroy(menu
        
        return 
PLUGIN_CONTINUE 
    

    
    new 
data[6], iName[64
    new 
accesscallback 
    menu_item_getinfo
(menuitemaccessdata,5iName63callback
    
    new 
key str_to_num(data
    
    switch(
key)
    {
        case 
1: {
            if(
zombihp[id] > 4999) {
                
zombihp[id] += 1000;
            } 
            
zm_menu(id);
        }
        case 
2: {
            if(
zombihp[id] > 5999) {
                
zombihp[id] -= 1000;
            }
            
zm_menu(id);
        }
        case 
3: {
            if(
insanhp[id] > 49) {
                
insanhp[id] += 50;
            } 
            
zm_menu(id);
        }
        case 
4: {
            if(
insanhp[id] > 99) {
                
insanhp[id] -= 50;
            }
            
zm_menu(id);
        }
        case 
5
        {
            for(new 
133i++) 
            { 
                if(
is_user_connected(i) && is_user_alive(i) && get_user_team(i) == 2
                {
                    
strip_user_weapons(i)
                    
give_item(i,"weapon_knife")
                    
cs_set_user_model(i,"zombi")
                    
client_cmd(i,"spk zombimod/zombi_mod_baslangic");
                    
Zm_SilahDokunamama true
                    set_pev
(ipev_viewmodel2VIEW_ZOMBI);
                    
set_pev(ipev_weaponmodel2PLAYER_ZOMBI);
                    if (
zombisinifi == 1) {
                        
set_user_health(i,zombihp[id]);
                        
set_user_gnvision(i1)
                    }
                    else if(
zombisinifi == 2) {
                        
set_user_health(i,zombihp[id] - 1009);
                        
set_user_gnvision(i0)
                    }
                    else if(
zombisinifi == 3) {
                        
set_user_health(i,zombihp[id] + 2000);
                        
set_user_gnvision(i0)
                    }
                }
                if(
is_user_connected(i) && is_user_alive(i) && get_user_team(i) == 1
                {
                    
set_user_health(i,insanhp[id]);
                    
give_item(i,"weapon_ak47")
                    
give_item(i,"weapon_m4a1")
                    
give_item(i,"weapon_deagle")
                    
give_item(i,"weapon_awp")
                    
give_item(i,"weapon_hegrenade")
                    
give_item(i,"weapon_m249")
                    
cs_set_user_bpammo(i,CSW_AK47,1000)
                    
cs_set_user_bpammo(i,CSW_AWP,1000)
                    
cs_set_user_bpammo(i,CSW_M4A1,1000)
                    
cs_set_user_bpammo(i,CSW_DEAGLE,1000)    
                    
cs_set_user_bpammo(i,CSW_M249,1000)
                    
                    
set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), -1.00.320.55.0)
                    
ShowSyncHudMsg(0hudmesaji"= Zombi Istilasi Basladi. = ")
                    
                    for (new 
1<= 32i++)
                        if(
is_user_connected(i) && get_user_team(i) == 1)
                            
client_cmd(i,"spk zombimod/zombi_siren");
                    }
                
zombimod 1;
            }
            
set_lights("b")
            
        }
        case 
6: {
            for(new 
133i++) 
            { 
                if(
is_user_connected(i) && is_user_alive(i) && get_user_team(i) == 2
                {
                    
set_user_health(i,100);
                    
strip_user_weapons(i)
                    
give_item(i,"weapon_knife")
                    
give_item(i,"weapon_deagle")
                    
give_item(i,"weapon_m4a1")
                    
give_item(i,"weapon_ak47")
                    
cs_set_user_bpammo(i,CSW_DEAGLE,90)
                    
cs_set_user_bpammo(i,CSW_M4A1,90)
                    
cs_set_user_bpammo(i,CSW_AK47,90)
                    
cs_reset_user_model(i)
                    
set_user_gnvision(i0)
                }
                if(
is_user_connected(i) && is_user_alive(i) && get_user_team(i) == 1
                {
                    
set_user_health(i,100);
                    
strip_user_weapons(i)
                    
give_item(i,"weapon_knife")
                }
                
zombimod 0
            }
            
set_lights("#OFF")
            
set_task(1.0,"hud",id+task_bilgi)
        }
        case 
7: {
            if(
zombisinifi == 1){
                
zombisinifi 2
                zm_menu
(id)
            }
            else if(
zombisinifi == 2){
                
zombisinifi 3
                zm_menu
(id)
            }
            else if(
zombisinifi == 3){
                
zombisinifi 1
                zm_menu
(id)
            }
        }
    }
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;
}

public 
hud(id) {
    if(
zombimod == 1) {
        
id-= task_bilgi
        set_task
(1.5"hud"id+task_bilgi);
        
        
set_hudmessage(025500.010.2106.012.0)
        
ShowSyncHudMsg(idSyncHudObj,"Zombi Oyunu Kapatildi^n^nZombi HP [ %i ]^nInsan HP [ %i ]",zombihp[id],insanhp[id])
    }
}

public 
OyuncuDogunca(id) { 
    if (
is_user_alive(id)) 
    {
        if(
get_user_team(id) == 1)  
        {
            
strip_user_weapons(id)
            
give_item(id"weapon_knife")
        }
        if(
get_user_team(id) == 2)
        {
            
Zm_SilahDokunamama false
            strip_user_weapons
(id)
            
cs_reset_user_model(id)
            
give_item(id"weapon_knife")
            
give_item(id"weapon_usp")
            
cs_set_user_bpammo(idCSW_USP,90)
        }
    }
    
set_lights("#OFF")
}

public 
TurSonu(id) {
    
set_lights("#OFF")
    
    
cs_reset_user_model(id)
    
strip_user_weapons(id)
    
give_item(id"weapon_knife")
    
set_user_gnvision(id0)
}

public 
SilahDokunulmaz(weaponid)
{
    if (
is_user_alive(id) && Zm_SilahDokunamama)
    {
        return 
HAM_SUPERCEDE       
    
}     
    return 
HAM_IGNORED     
}

/*########################################################### Hayalet zombi ###########################################################*/
public fw_addtofullpack(es_handle,e,ent,host,hostflags,player,pSet)
{
    if( !
is_user_alive(ent) || !is_user_alive(host) || get_user_team(ent) == )
        return 
FMRES_IGNORED;
    
    if( 
zombimod == &&  zombisinifi == && get_user_team(ent) == 2)
    {
        static 
color[3];
        
color[0] = get_pcvar_num(pRed);
        
color[1] = get_pcvar_num(pGreen);
        
color[2] = get_pcvar_num(pBlue);
        
set_es(es_handle,ES_RenderMode,kRenderTransAlpha);
        
set_es(es_handle,ES_RenderAmt,get_pcvar_num(pAlpha));
        
set_es(es_handle,ES_RenderFx,kRenderFxGlowShell);
        
set_es(es_handle,ES_RenderColor,color);
    }
    
    return 
FMRES_IGNORED;
}

public 
fw_takedamage(victiminflictorattackerFloat:damagedamage_type)
{
    if ( (
damage_type DMG_FALL) && zombimod == && get_user_team(victim) == && zombisinifi == 2)
        
SetHamParamFloat(40.0);  
}

/*########################################################### Yarasa Fırlatan Zombi ###########################################################*/
public client_putinserver(id)
{
    
reset_value_player(id)
}

public 
client_disconnect(id)
{
    
reset_value_player(id)
}

public 
YeniTurcuk()
{
    
g_roundend 0
    
    
for(new id 1id <= g_maxplayersid++)
    {
        if (!
is_user_connected(id)) continue;
        
        
reset_value_player(id)
    }
}

public 
logevent_round_end()
{
    
g_roundend 1
}

public 
EventDeath()
{
    new 
id read_data(2)
    
    
reset_value_player(id)
}

public 
zp_user_infected_post(id)
{
    
reset_value_player(id)
    
    if(
get_user_team(id) == 2) return;
    
    if(
zombisinifi == 3)
    {
        if(
is_user_bot(id))
        {
            
set_task(random_float(5.0,15.0), "bot_use_skill"id+TASK_BOT_USE_SKILL)
            return
        }
        
        
ColorChat(id,NORMAL,"^x04[Yarasa Firlatan Zombi]:^x01 Yarasa Firlatan Zombi Oldun.^x04 Artik Yarasa Firlatma^x01 Özelligin Var.^x04 %.1f ^x01saniyede bir ^x04G ^x01tusuna basarak firlatabilirsin."bat_timewait)
    }
}

public 
cmd_bat(id)
{    
    if(!
is_user_alive(id) || !get_user_team(id) == || g_roundend) return PLUGIN_CONTINUE
    
    
if(zombisinifi == && !g_bat_time[id])
    {
        
g_bat_time[id] = 1
        
        set_task
(bat_timewait,"clear_stat",id+TASK_REMOVE_STAT)
        
        new 
ent engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target"))
        
        if(!
pev_valid(ent)) return PLUGIN_HANDLED
        
        
new Float:vecAngle[3],Float:vecOrigin[3],Float:vecVelocity[3],Float:vecForward[3]
        
fm_get_user_startpos(id,5.0,2.0,-1.0,vecOrigin)
        
pev(id,pev_angles,vecAngle)
        
        
engfunc(EngFunc_MakeVectors,vecAngle)
        
global_get(glb_v_forward,vecForward)
        
        
velocity_by_aim(id,floatround(banchee_skull_bat_speed),vecVelocity)
        
        
set_pev(ent,pev_origin,vecOrigin)
        
set_pev(ent,pev_angles,vecAngle)
        
set_pev(ent,pev_classname,BAT_CLASSNAME)
        
set_pev(ent,pev_movetype,MOVETYPE_FLY)
        
set_pev(ent,pev_solid,SOLID_BBOX)
        
engfunc(EngFunc_SetSize,ent,{-20.0,-15.0,-8.0},{20.0,15.0,8.0})
        
        
engfunc(EngFunc_SetModel,ent,MODEL_BAT)
        
set_pev(ent,pev_animtime,get_gametime())
        
set_pev(ent,pev_framerate,1.0)
        
set_pev(ent,pev_owner,id)
        
set_pev(ent,pev_velocity,vecVelocity)
        
set_pev(ent,pev_nextthink,get_gametime()+banchee_skull_bat_flytime)
        
emit_sound(entCHAN_WEAPONSOUND_FIRE1.0ATTN_NORM0PITCH_NORM)
        
        
g_stop[id] = ent
        
        PlayWeaponAnimation
(id2)
        
pev(idpev_maxspeedg_temp_speed[id])
        
set_pev(id,pev_maxspeed,0.1)
        
        return 
PLUGIN_HANDLED
    
}
    
    return 
PLUGIN_CONTINUE
}

public 
fw_PlayerPreThink(id)
{    
    if(!
is_user_alive(id)) return FMRES_IGNORED
    
if ( zombimod == ) {
        if(
g_bat_stat[id])
        {
            new 
owner g_bat_enemy[id], Float:ownerorigin[3]
            
pev(owner,pev_origin,ownerorigin)
            static 
Float:vec[3]
            
aim_at_origin(id,ownerorigin,vec)
            
engfunc(EngFunc_MakeVectorsvec)
            
global_get(glb_v_forwardvec)
            
vec[0] *= banchee_skull_bat_catch_speed
            vec
[1] *= banchee_skull_bat_catch_speed
            vec
[2] = 0.0
            set_pev
(id,pev_velocity,vec)
        }
        return 
FMRES_IGNORED
    
}
    if ( 
zombimod == && zombisinifi == ){
        
set_pev(idpev_flTimeStepSound999)
    }
    return 
PLUGIN_CONTINUE
}

public 
EntityThink(ent)
{
    if(!
pev_valid(ent)) return HAM_IGNORED
    
    
new classname[32]
    
pev(ent,pev_classname,classname,31)
    
    if(
equal(classname,BAT_CLASSNAME))
    {
        static 
Float:origin[3];
        
pev(ent,pev_origin,origin);
        
        
message_begin(MSG_BROADCAST,SVC_TEMPENTITY); 
        
write_byte(TE_EXPLOSION); // TE_EXPLOSION
        
write_coord(floatround(origin[0])); // origin x
        
write_coord(floatround(origin[1])); // origin y
        
write_coord(floatround(origin[2])); // origin z
        
write_short(spr_skull); // sprites
        
write_byte(40); // scale in 0.1's
        
write_byte(30); // framerate
        
write_byte(14); // flags 
        
message_end(); // message end
        
        
emit_sound(entCHAN_WEAPONSOUND_BAT_MISS1.0ATTN_NORM0PITCH_NORM)
        
        new 
owner pev(entpev_owner)
        
g_stop[owner] = 0
        set_pev
(owner,pev_maxspeed,g_temp_speed[owner])
        
        
engfunc(EngFunc_RemoveEntity,ent)
    }
    
    return 
HAM_IGNORED
}

public 
EntityTouchPost(ent,ptd)
{
    if(!
pev_valid(ent)) return HAM_IGNORED
    
    
new classname[32]
    
pev(ent,pev_classname,classname,31)
    
    if(
equal(classname,BAT_CLASSNAME))
    {
        if(!
pev_valid(ptd))
        {
            static 
Float:origin[3];
            
pev(ent,pev_origin,origin);
            
            
message_begin(MSG_BROADCAST,SVC_TEMPENTITY); 
            
write_byte(TE_EXPLOSION); // TE_EXPLOSION
            
write_coord(floatround(origin[0])); // origin x
            
write_coord(floatround(origin[1])); // origin y
            
write_coord(floatround(origin[2])); // origin z
            
write_short(spr_skull); // sprites
            
write_byte(40); // scale in 0.1's
            
write_byte(30); // framerate
            
write_byte(14); // flags 
            
message_end(); // message end
            
            
emit_sound(entCHAN_WEAPONSOUND_BAT_MISS1.0ATTN_NORM0PITCH_NORM)
            
            new 
owner pev(entpev_owner)
            
g_stop[owner] = 0
            set_pev
(owner,pev_maxspeed,g_temp_speed[owner])
            
            
engfunc(EngFunc_RemoveEntity,ent)
            
            return 
HAM_IGNORED
        
}
        
        new 
owner pev(ent,pev_owner)
        
        if(
ptd && ptd <= g_maxplayers && is_user_alive(ptd) && ptd != owner)
        {
            
g_bat_enemy[ptd] = owner
            
            set_pev
(ent,pev_nextthink,get_gametime()+banchee_skull_bat_catch_time)
            
set_task(banchee_skull_bat_catch_time,"clear_stat2",ptd+TASK_REMOVE_STAT)
            
set_pev(ent,pev_movetype,MOVETYPE_FOLLOW)
            
set_pev(ent,pev_aiment,ptd)
            
            
emit_sound(ownerCHAN_VOICESOUND_BAT_HIT1.0ATTN_NORM0PITCH_NORM)
            
            
g_bat_stat[ptd] = 1
        
}
    }
    
    return 
HAM_IGNORED
}

public 
clear_stat(taskid)
{
    new 
id ID_TASK_REMOVE_STAT
    
    g_bat_stat
[id] = 0
    g_bat_time
[id] = 0
    
    ColorChat
(id,NORMAL,"^x04[Yarasa Firlatan Zombi]:^x01 Ozelligin Geri Geldi.^x01Tekrardan^x04 Yarasa^x01 Firlatabilirsin.")
}

public 
clear_stat2(idx)
{
    new 
id idx-TASK_REMOVE_STAT
    
    g_bat_enemy
[id] = 0
    g_bat_stat
[id] = 0
}

public 
bot_use_skill(taskid)
{
    new 
id ID_BOT_USE_SKILL
    
    
if (!is_user_alive(id)) return;
    
    
cmd_bat(id)
    
    
set_task(random_float(5.0,15.0), "bot_use_skill"id+TASK_BOT_USE_SKILL)
}

fm_get_user_startpos(id,Float:forw,Float:right,Float:up,Float:vStart[])
{
    new 
Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
    
    
pev(idpev_originvOrigin)
    
pev(idpev_v_anglevAngle)
    
    
engfunc(EngFunc_MakeVectorsvAngle)
    
    
global_get(glb_v_forwardvForward)
    
global_get(glb_v_rightvRight)
    
global_get(glb_v_upvUp)
    
    
vStart[0] = vOrigin[0] + vForward[0] * forw vRight[0] * right vUp[0] * up
    vStart
[1] = vOrigin[1] + vForward[1] * forw vRight[1] * right vUp[1] * up
    vStart
[2] = vOrigin[2] + vForward[2] * forw vRight[2] * right vUp[2] * up
}

aim_at_origin(idFloat:target[3], Float:angles[3])
{
    static 
Float:vec[3]
    
pev(id,pev_origin,vec)
    
vec[0] = target[0] - vec[0]
    
vec[1] = target[1] - vec[1]
    
vec[2] = target[2] - vec[2]
    
engfunc(EngFunc_VecToAngles,vec,angles)
    
angles[0] *= -1.0
    angles
[2] = 0.0
}

PlayWeaponAnimation(idanimation)
{
    
set_pev(idpev_weaponanimanimation)
    
message_begin(MSG_ONESVC_WEAPONANIM, {000}, id)
    
write_byte(animation)
    
write_byte(pev(idpev_body))
    
message_end()
}

reset_value_player(id)
{
    
g_stop[id] = 0
    g_bat_time
[id] = 0
    g_bat_stat
[id] = 0
    g_bat_enemy
[id] = 0
    
    remove_task
(id+TASK_BOT_USE_SKILL)
    
remove_task(id+TASK_REMOVE_STAT)
}

/*########################################################### Yarasa Fırlatan Zombi Son ###########################################################*/

/*
public fog(bool:on)    
{
if (on)
{
message_begin(MSG_ALL,get_user_msgid("Fog"),{0,0,0},0)
write_byte(random_num(180,244))  // Kırmızı
write_byte(1)  // Yeşil
write_byte(5)  // Mavi
write_byte(7) // SD
write_byte(40)  // ED
write_byte(10)   // D1
write_byte(0)  // D2
message_end()
}
else
{
message_begin(MSG_ALL,get_user_msgid("Fog"),{0,0,0},0)
write_byte(0)  // Kırmızı
write_byte(0)  // Yeşil
write_byte(0)  // Mavi
write_byte(0) // SD
write_byte(0)  // ED
write_byte(0)   // D1
write_byte(0)  // D2
message_end()
}
}
*/

// Yeni Nightvision
set_user_gnvision(idtoggle)
{
    
message_begin(MSG_ONEyeni_nightvision_id)
    
write_byte(toggle)
    
message_end()

Bu pluginde CT zombi oyununu başlatınca ve yarasa atan zombi sınıfı seçiliyse T de yarasa atan zombi özellikleri alıyor ( G ile yarasa atma ) ayrıca oyunu kapatınca bile CT ve T yarasa atabiliyor bunları önlemek mümkünmü ?
2. sorumsa menü kullanırken başına /w /r gibi renk ibaresi koyuyoruz bunlar nelerle sınırlıdır /w /r /y /g gibi daha varsa nelerdir ?