Raised This Month: $ Target: $400
 0% 

what problerum?? this coding???


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
lhrcap
Senior Member
Join Date: Dec 2006
Old 02-14-2007 , 07:02   what problerum?? this coding???
Reply With Quote #1

Welcome to the AMX Mod X 1.76-300 Compiler.Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team/home/groups/amxmodx/tmp3/phpJO4uzL.sma(214) : error 017: undefined symbol "register_forward"/home/groups/amxmodx/tmp3/phpJO4uzL.sma(214) : warning 215: expression has no effect/home/groups/amxmodx/tmp3/phpJO4uzL.sma(214) : error 001: expected token: ";", but found ")"/home/groups/amxmodx/tmp3/phpJO4uzL.sma(214) : error 029: invalid expression, assumed zero/home/groups/amxmodx/tmp3/phpJO4uzL.sma(214) : fatal error 107: too many error messages on one lineCompilation aborted.4 Errors.that is log compile error and this code plugins
Code:
/*
zombie mod 2.0.1
 by apophis ([email protected])commands:
 amx_zombies - toggles zombie mod. optional 1 or 0 to enable/disable.
 say /flashlight - serverside flashlight that others can see and is somewhat brighter
 say /zombies - tells how many zombies there are
 say /fixcontrols - fixes broken controls for zombies
cvars:
 amx_zombie_health - health of zombies. first zombie gets 2x health (default: 640)
 amx_zombie_speed - maxspeed of zombies. normal human maxspeed is 320.0 (default: 140.0)
 amx_zombie_mode - Status of zombie mod
 amx_zombie_hitzones - hitzones for zombies. (default: 7)
 amx_zombie_model - whether or not to change player to a zombie model when they turn undead. hitboxes can't be changed in cs so they aren't in the right places on the zombie model. (default: 1)
 amx_zombie_defaultnvg - sets whether to use green nvg for zombies or not and instead serverside nightvision that can flicker during lag (default: 1)
 amx_zombie_nvcolor - color of serverside nightvision for zombies in r g b format. only has effect when defaultnvg is 0 (default: 255 0 0)
 amx_zombie_specnvcolor - nightvision color for spectators. only has effect when specnv is 1 (default: 10 100 0)
 amx_zombie_randomspawn - random spawn locations (random locations are gathered in the first few s) (default: 1)
 amx_zombie_specnv - nightvision for spectators (default: 1)
 amx_zombie_custspecnv - custom colored server side spectator nightvision (default: 0)
 amx_zombie_lightning - sets lights to kind of be like lightning (default: 1)
 amx_zombie_brainvision - human players give off this ring thing to zombies (default: 0)
 amx_zombie_infecttime - time it takes for a person that's infected to turn into a zombie (default 0.1)
 amx_zombie_flashlight - toggles serverside flashlight (default: 1)
 amx_zombie_flashlightcolor - color of serverside flashlight in r g b format. only has effect when zombie_flashlight is 1 (default: 200 1 0)
 amx_zombie_vote - enables or disables vote_zombie say command (default: 1)
motd-type stuff:
 One person aandomly turns into a zombie near the start of the round
 Zombies get nightvision and humans don't
 The game is HUMANS vs ZOMBIES.
 The round ends when all the zombies are dead or everyone is a zombie
 Zombies cannot use weapons and humans can only use pistols/shotguns/SMGs*** THE RESTMENU PLUGIN MUST BE ENABLED TO RESTRICT NVGS FOR HUMANS ***
You should probably put this plugin before most other plugins
changes:
 2.0.1
 - remove fakemeta requirement (from some test stuff)
 2.0
 - make zombies show up as terrorists by request
 - added more messages by request
 - added amx_zombie_customspecnv to use custom server sided nightvision instead of regular nightvision for spectators
 - removed flashlights for zombies again
 - removes c4 when dropped
 - removes bomb site
 - added vote_zombie say command to start a vote, cvar amx_zombie_vote enables/disables vote
 1.6.11
 - increased buyzone
 - zombies have no knockback
 - changed flashlights
 1.6.10
 - fix for files in restriction menu
 - changed flashlight to PAS message
 - changed score stuff to broadcast message
 - added another check to see if zombies are living
 - fixed first zombie killing self
 - added message on team select
 - went back to old way of ending round
 1.6.9
 - changed some hitzone stuff
 - amx_zombie_flashlight cvar
 - changed some other round ending stuff and random zombie at start stuff
 - fixed blank say_team
 - changed ZombieMod cvar to show status of mod
 1.6.8
 - zombie brain vision (amx_zombie_brainvision) (kinda lame)
 - amx_zombie_infecttime cvar
 - fixed flashlight turning off
 - fixed c4 dropping
 1.6.7
 - fixed random zombie not being picked after no players on server
 - made people not turn into zombie after round over
 - fixed client command exploit
 - changed weapon handling
 - changed radar blocking
 1.6.6
 - made changing amx_zombie_mode cvar not break things
 - made it so zombie mod can still be on with less than 2 players
 1.6.5
 - only kills one person instead of an entire team
 1.6.4
 - made flashlight stay on after new round after turning into a zombie
 - sets zombies maxspeed more often
 - fixed some invalid entity stuff
 - defaulted amx_zombie_lightning to 1
 - made sure random spawns are on ground and not in sky/water
 - decreased zombie nv range
 - fixed deathmessages
 - added team damage again
 1.6.3
 - added amx_zombie_nvcolor and amx_zombie_specnvcolor cvars
 - renamed amx_zombie_nvg to amx_zombie_defaultnvg
 - increased random spawn distance
 - set decay on flashlight
 - added /fixcontrols
 - random spawn better detects crouching and swimming
 1.6.2
 - amx_zombie_lightning cvar
 - fixed nightvision
 1.6.1
 - amx_zombie_specnv cvar
 - only knives turn people into zombies
 1.6
 - random spawns
 1.5
 - amx_zombie_nvg cvar
 1.4
 - serverside red nightvision
 - message for disabling zombies when too few players
 - might have fixed health going to 0
 - spectators have yellow nightvision
 - amx_zombie_lights cvar
 1.3
 - amx_zombie_model cvar
 1.1
 - kills hostages on start
 - resets cvars to old values
 - amx_zombie_hitzones cvar
 1.0
 - first release
*/
#include <amxmodx>
#include <cstrike>
#include <amxmisc>
#include <engine>
#include <fun>#define MAX_SPAWNS 32
#define MAX_BUYZONES 10
#define MAX_BOMBSITES 10
new spriteBrainVision, gmsgTeamInfo, gmsgNVGToggle, gmsgRadar, zombie_enabled, lastlights, Float:old_buyzones[MAX_BUYZONES][3], old_buyzone_ent[MAX_BUYZONES]
new round_over,buy_zones[MAX_SPAWNS + MAX_SPAWNS], old_player_deathmatch_ent[MAX_SPAWNS], old_player_start_ent[MAX_SPAWNS], rand_set, randpos_max,Float:old_player_start[MAX_SPAWNS][3], Float:old_player_deathmatch[MAX_SPAWNS][3], Float:rand_pos[MAX_SPAWNS + MAX_SPAWNS][3], maxplayers, old_ff, old_roundtime, randzombie, gmsgSayText, gmsgDeathMsg, zombies[33], gmsgScoreInfo, flashlight[33]
new bombsites, Float:bsite_min[MAX_BOMBSITES][3], Float:bsite_max[MAX_BOMBSITES][3], Float:bsite_origin[MAX_BOMBSITES][3], vote_count[2]
#define sound_count 3
new zombie_sounds[sound_count][] = {"nihilanth/nil_alone.wav", "nihilanth/nil_comes.wav", "nihilanth/nil_slaves.wav"}
#define TE_DLIGHT 27#define ZOMBIE_MISS 2
new miss_zombie[ZOMBIE_MISS][] = {"zombie/claw_miss1.wav", "zombie/claw_miss2.wav" }#define ZOMBIE_HIT 3
new hit_zombie[ZOMBIE_HIT][] = {"zombie/claw_strike1.wav", "zombie/claw_strike2.wav","zombie/claw_strike3.wav" }#define ZOMBIE_PAIN 2
new pain_zombie[ZOMBIE_PAIN][] = {"zombie_swarm/zombie_pain1.wav", "zombie_swarm/zombie_pain2.wav" }
#if !defined CS_TEAM_T
#define pre20
#endif
new CsTeams:old_team[33]public plugin_init() {
 register_plugin("Zombie Mod", "2.0.1", "apophis")
        register_dictionary("zombie.txt")
 register_cvar("ZombieMod", "2.0", FCVAR_SERVER)
 set_cvar_string("ZombieMod", "2.0.1 (off)")
        register_concmd("amx_zombies", "toggle_zombies", ADMIN_LEVEL_A, "- toggles zombie mode")
 register_event("DeathMsg", "player_death", "a")
 register_event("Damage","event_damage","b","2!0","3=0","4!0")
 register_event("CurWeapon", "switch_weapon", "be", "1=1")
 register_event("Health", "do_health", "b")
 register_event("SendAudio", "end_round", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin", "2&%!MRAD_rounddraw")
 register_event("ResetHUD","spawn_event","be","1=1")
 register_event("HideWeapon","shield_check","b") 
 register_event("ShowMenu","team_select","b","4&Team_Select")
 register_event("StatusIcon", "c4_dropped", "be", "1=1", "1=2", "2=c4")
 register_event("Damage","event_damage_pain","be","2!0","3=0") 
 register_clcmd("say_team", "do_teamsay", 0)
 register_clcmd("say", "do_say", 0)
 register_clcmd("say vote_zombie", "zombie_vote", 0, "- starts a zombie vote")
 register_menucmd(register_menuid("Zombie Mode"),MENU_KEY_1|MENU_KEY_2,"voteCount")
  /*register_clcmd("cl_setautobuy","block")
  register_clcmd("cl_autobuy","block")
  register_clcmd("cl_setrebuy","block")
  register_clcmd("cl_rebuy","block")*/
 register_menucmd(register_menuid("#Buy", 1 ),511,"block_zombie")
 register_menucmd(register_menuid("BuyPistol", 1 ),511,"block_zombie")
 register_menucmd(register_menuid("BuyShotgun", 1 ),511,"block_zombie")
 register_menucmd(register_menuid("BuySub", 1 ),511,"block_zombie")
   register_menucmd(register_menuid("BuyRifle", 1),511,"block")
   register_menucmd(register_menuid("BuyMachine", 1),511,"block")
   register_menucmd(register_menuid("BuyItem", 1),511,"block_zombie")
 gmsgSayText = get_user_msgid("SayText")
 gmsgScoreInfo = get_user_msgid("ScoreInfo")
 gmsgDeathMsg = get_user_msgid("DeathMsg")
 gmsgRadar = get_user_msgid("Radar")
 gmsgTeamInfo = get_user_msgid("TeamInfo")
 gmsgNVGToggle = get_user_msgid("NVGToggle")
 register_cvar("amx_zombie_mode","0")
 register_cvar("amx_zombie_health","640")
 register_cvar("amx_zombie_speed","140.0")
 register_cvar("amx_zombie_defaultnvg","1")
 register_cvar("amx_zombie_randomspawn","1")
 register_cvar("amx_zombie_specnv","1")
 register_cvar("amx_zombie_customspecnv","0")
 register_cvar("amx_zombie_lightning","1")
 register_cvar("amx_zombie_nvcolor", "255 0 0")
 register_cvar("amx_zombie_flashlightcolor", "200 1 0")
 register_cvar("amx_zombie_specnvcolor", "10 100 0")
 register_cvar("amx_zombie_brainvision","0")
 register_cvar("amx_zombie_infecttime","0.1")
 register_cvar("amx_zombie_flashlight","1")
 register_cvar("amx_zombie_vote", "1")
 set_cvar_num("amx_zombie_mode",0)
 
 register_forward( FM_EmitSound, "fw_EmitSound" )
 
 set_msg_block(gmsgRadar,BLOCK_NOT)
 //set_user_hitzones(0, 0, 255)
 randpos_max = 0
 rand_set = 0
 randzombie = 0
 round_over = 0
 zombie_enabled = 0
 maxplayers = get_maxplayers()
        new i
 for (i = 0; i < 33; i++) {
  flashlight[i] = 0
  old_team[i] = CsTeams:0
 }
        for (i = 0; i < MAX_SPAWNS; i++) {
                old_player_deathmatch_ent[i] = 0
                old_player_deathmatch[i] = Float:{0.0,0.0,0.0}
                old_player_start_ent[i] = 0
                old_player_start[i] = Float:{0.0,0.0,0.0}
        }
        for (i = 0; i < (MAX_SPAWNS + MAX_SPAWNS); i++) {
  buy_zones[i] = 0
        }
        for (i = 0; i < MAX_BUYZONES; i++) {
                old_buyzone_ent[i] = 0
                old_buyzones[i] = Float:{0.0,0.0,0.0}
        }
 set_task(2.0, "check_zombies", 4578294)
 return PLUGIN_CONTINUE
}public voteCount(id, key) {
 if (get_cvar_num("amx_vote_answers")) {
  new name[32]
  get_user_name(id,name,31)
  client_print(0,print_chat,"%s voted %s", name, key ? "against" : "for")
 }
 ++vote_count[key]
 return PLUGIN_HANDLED
}
public vote_check() {
 new votes_num = vote_count[0] + vote_count[1]
 new ratio = votes_num ? floatround(get_cvar_float("amx_vote_ratio") * float(votes_num), floatround_ceil) : 1
 if (vote_count[0] > ratio) {
  client_print(0, print_chat, "* Voting successful (got ^"%d^") (needed ^"%d^")", vote_count[0], ratio)
  if (zombie_enabled == 1)
   zombie_off()
  else
   zombie_on()
 } else {
  client_print(0, print_chat, "* Voting failed (got ^"%d^") (needed ^"%d^")", vote_count[0], ratio)
 }
}public fake_nightvision(id, on)  {
 message_begin(MSG_ONE, gmsgNVGToggle, {0,0,0}, id) 
 write_byte(on) 
 message_end()
}public zombie_vote(id) {
 if (get_cvar_num("amx_zombie_vote") != 1) {
  client_print(id, print_chat,"* Zombie voting is disabled") 
  return PLUGIN_HANDLED 
 } 
 new Float:voting = get_cvar_float("amx_last_voting")
 if (voting > get_gametime()) { 
  client_print(id, print_chat,"* There is already a vote in progress") 
  return PLUGIN_HANDLED 
 } 
 if (voting && (voting + get_cvar_float("amx_vote_delay") > get_gametime()))  { 
  client_print(id,print_chat,"* Voting not allowed at this time") 
  return PLUGIN_HANDLED 
 }
   new authid[32],name[32]
   get_user_authid(id,authid,31)
   get_user_name(id,name,31) log_amx("Vote: ^"%s<%d><%s><>^" vote zombie",
      name,get_user_userid(id),authid)
 new activity = get_cvar_num("amx_show_activity")
 if (activity > 0) {
  switch (activity) {
   case 2: client_print(0,print_chat, "%s %s: vote zombies", (is_user_admin(id)?"ADMIN":"USER"), name)
   case 1: client_print(0,print_chat, "%s: vote zombies", (is_user_admin(id)?"ADMIN":"USER"), name)
  }
 } new Float:vote_time = get_cvar_float("amx_vote_time") + 2.0
 vote_count = {0, 0}
 new menu_msg[256]
 format(menu_msg, 255, "\y%s zombie mode ?\w^n^n1. Yes^n2. No", ((zombie_enabled == 1) ? "Disable" : "Enable"))
 show_menu(0, MENU_KEY_1|MENU_KEY_2, menu_msg, floatround(vote_time),"Zombie Mode")
 
 set_task(vote_time, "vote_check", 58924)
 set_cvar_float("amx_last_voting",  get_gametime() + vote_time )
 return PLUGIN_HANDLED
}public plugin_log(){
    new args = read_logargc()
    if (args == 2){
        new msg[32]
        read_logargv(1, msg, 31)
        if(msg[6] == 'S')
            new_round()
    }
}
public plugin_precache() {
 precache_model("models/player/zombie_good/zombie_good.mdl")
 precache_model("models/player/zombie_good1/zombie_good1.mdl")
 precache_model("models/player/zombie_good2/zombie_good2.mdl")
 precache_model("models/player/zombie_good3/zombie_good3.mdl")
 precache_model("models/player/zombie_good4/zombie_good4.mdl")
 precache_model("models/player/zombie_good5/zombie_good5.mdl")
 precache_model("models/player/zombie_good6/zombie_good6.mdl")
 precache_sound("scientist/c1a0_sci_catscream.wav")
 spriteBrainVision = precache_model("sprites/white.spr")
 for (new i = 0; i < sound_count; i++)
  precache_sound(zombie_sounds[i])
}
public team_select(id) {
 if (zombie_enabled != 1)
  return PLUGIN_CONTINUE
 client_print(id, print_chat, "%L",LANG_PLAYER, "zombie01")
 return PLUGIN_CONTINUE
}
public flashlight_on(id) {
        if ((zombie_enabled != 1) || !is_user_connected(id))
                return -1
 if ((flashlight[id] > 0) && is_valid_ent(flashlight[id])) 
  return flashlight[id] new ent = create_entity("light_spot")
 if (ent) {
  new Float:origin[3], Float:angles[3]
  entity_get_vector(id, EV_VEC_origin, origin)
  entity_get_vector(id, EV_VEC_angles, angles)
  DispatchKeyValue(ent, "classname", "light_spot")
  DispatchKeyValue(ent, "_cone2", "45")
  DispatchKeyValue(ent, "_cone", "30")
  DispatchKeyValue(ent, "pitch", "0")
  DispatchKeyValue(ent, "_fade", "1.4")
  DispatchKeyValue(ent, "angles", "0 0 0")
  DispatchKeyValue(ent, "origin", "0 0 0")
  new _light[16]
  get_cvar_string("amx_zombie_flashlightcolor", _light, 15)
  add(_light, 15, " 250")
  DispatchKeyValue(ent, "_light", "255 0 0 250")
  DispatchSpawn(ent)
  entity_set_vector(ent, EV_VEC_origin, origin)
  entity_set_vector(ent, EV_VEC_angles, angles) 
  flashlight[id] = ent
  return ent
 }
 return -1
}public flashlight_off(id) {
 if ((flashlight[id] > 0) && is_valid_ent(flashlight[id]))
  remove_entity(flashlight[id]) flashlight[id] = 0
 return 0
}public new_round() {
 if (zombie_enabled != 1)
                return PLUGIN_CONTINUE
 set_task(random_float(2.0, 15.0), "random_zombie")
 round_over = 0
 new ent, n_ent
 ent = find_ent_by_class(-1, "hostage_entity")
 while (ent > 0) {
  n_ent = find_ent_by_class(ent, "hostage_entity")
  entity_set_float(ent, EV_FL_health, -1.0)
  fakedamage(ent, "worldspawn", 10.0, 1)
  ent = n_ent
 }
 //set_user_hitzones(0, 0, 0)
 client_print(0, print_chat,"%L",LANG_PLAYER, "zombie02")
 return PLUGIN_CONTINUE
}
public c4_dropped(id) {
 if (zombie_enabled != 1)
  return PLUGIN_CONTINUE
 engclient_cmd(id, "drop", "weapon_c4")
 set_task(0.1, "delete_c4")
 return PLUGIN_CONTINUE
}
public delete_c4() {
 new ent = find_ent_by_class(-1, "weaponbox")
 while (ent > 0) {
  new model[33]
  entity_get_string(ent, EV_SZ_model, model, 32)
  if (equali(model, "models/w_backpack.mdl")) {
   remove_entity(ent)
   return PLUGIN_CONTINUE
  }
  ent = find_ent_by_class(ent, "weaponbox")
 }
 return PLUGIN_CONTINUE
}
public make_buyzone(Float:coords[3], pos) {
 new ent = create_entity("func_buyzone")
 if (ent) {
  buy_zones[pos] = ent
  DispatchKeyValue(ent, "classname", "func_buyzone")
  DispatchSpawn(ent)
  entity_set_size(ent, Float:{-30.0, -30.0, -30.0}, Float:{30.0, 30.0, 30.0})
  entity_set_string(ent, EV_SZ_classname, "func_buyzone")
  entity_set_origin(ent, coords)
 }
 return PLUGIN_CONTINUE
}
public remove_bombsites() {
 if (get_cvar_num("amx_zombie_mode") != 1)
                return PLUGIN_CONTINUE
 new bombsite_ents[MAX_BOMBSITES]
 new ent = find_ent_by_class(-1, "func_bomb_target")
 bombsites = 0
 while (ent > 0) {
  entity_get_vector(ent, EV_VEC_mins, bsite_min[bombsites])
  entity_get_vector(ent, EV_VEC_maxs, bsite_max[bombsites])
  entity_get_vector(ent, EV_VEC_origin, bsite_origin[bombsites])
  bombsites++
  bombsite_ents[bombsites] = ent
  if (bombsites >= MAX_BOMBSITES) break
  ent = find_ent_by_class(ent, "func_bomb_target")
 }
 for (new i = 0; i < bombsites; i++)
  remove_entity(bombsite_ents[i])
 return PLUGIN_CONTINUE
}
public replace_bombsites() {
 for (new i = 0; i < bombsites; i++) {
  new ent = create_entity("func_bomb_target")
  if (ent) {
   DispatchKeyValue(ent, "classname", "func_bomb_target")
   DispatchSpawn(ent)
   entity_set_size(ent, bsite_min[i], bsite_max[i])
   entity_set_string(ent, EV_SZ_classname, "func_bomb_target")
   entity_set_origin(ent, bsite_origin[i])
   for(new i2 = 0;i2 < 2;i2++)
    bsite_min[i][i2] = bsite_max[i][i2] = bsite_origin[i][i2] = 0.0
  }
 }
 bombsites = 0
 return PLUGIN_CONTINUE
}
public random_spawns() {
        if (get_cvar_num("amx_zombie_mode") != 1)
                return PLUGIN_CONTINUE        new ent
 new x = 0
 if (rand_set == 1) {
  for (new i = 0; i < (MAX_SPAWNS + MAX_SPAWNS); i++) {
                 if (buy_zones[i] > 0)
                         remove_entity(buy_zones[i])
                 buy_zones[i] = 0
         }
 } else {
         ent = find_ent_by_class(-1, "func_buyzone")
         while (ent > 0) {
                        entity_get_vector(ent, EV_VEC_origin, old_buyzones[x])
                        old_buyzone_ent[x] = ent
   entity_set_origin(ent, Float:{-9999.0, -9999.0, -9999.0})
   x++
   if (x <= MAX_BUYZONES) break;
   ent = find_ent_by_class(ent, "func_buyzone")
  }
  x = 0
 }
 ent = find_ent_by_class(-1, "info_player_deathmatch")
        while (ent > 0) {
  if (rand_set == 0) {
                 entity_get_vector(ent, EV_VEC_origin, old_player_deathmatch[x])
   old_player_deathmatch_ent[x] = ent
  }
  entity_set_origin(ent, rand_pos[x]) 
  make_buyzone(rand_pos[x], x)
  x++
                ent = find_ent_by_class(ent, "info_player_deathmatch")
  if (x > (MAX_SPAWNS - 1)) break;
        }
 new y = 0
 ent = find_ent_by_class(-1, "info_player_start")
        while (ent > 0) {
  if (rand_set == 0) {
                 entity_get_vector(ent, EV_VEC_origin, old_player_start[y])
   old_player_start_ent[y] = ent
  }
                entity_set_origin(ent, rand_pos[x+y])
  make_buyzone(rand_pos[x+y], x+y)
                y++
                ent = find_ent_by_class(ent, "info_player_start")
  if (y > (MAX_SPAWNS - 1)) break;
        } return PLUGIN_CONTINUE
}
public do_say(id) {
 if (get_cvar_num("amx_zombie_mode") != 1)
  return PLUGIN_CONTINUE new message[129]
 read_argv(1,message,128)
 if ((strlen(message) < 1) || equal(message,"") || equal(message,"["))
  return PLUGIN_CONTINUE if (equali(message, "/zombies")) {
  client_print(0, print_chat, "%L",LANG_PLAYER, "zombie03", zombie_count())
 } else if (equali(message, "/fl12312312312") && is_user_alive(id)) {
  if (flashlight[id] > 0)
                 flashlight[id] = 0
         else
                 flashlight[id] = 1  return PLUGIN_HANDLED
  }
 else if ((zombies[id] == 1) && (is_user_alive(id) == 1)) {
  if (equali(message, "/fixcontrols")) {
   fakedamage(id, "worldspawn", 2.6, 1)
  } else {
   new name[32]
   get_user_name(id,name,31)
   new player_count = get_playersnum()
   new players[32]
   get_players(players, player_count, "c")
 
   format(message, 127, "^2%L",LANG_PLAYER, "zombie04", name, message) 
   message_begin(MSG_ALL,gmsgSayText,{0,0,0},0)
   write_byte(id)
   write_string(message)
   message_end()
  }
  return PLUGIN_HANDLED
 }
 return PLUGIN_CONTINUE
}
public do_teamsay(id) {
        if (get_cvar_num("amx_zombie_mode") != 1)
                return PLUGIN_CONTINUE        new message[129]
        read_argv(1,message,128)
 if (strlen(message) < 1) return PLUGIN_HANDLED
        new name[32]
        get_user_name(id,name,31)
        new player_count = get_playersnum()
        new players[32]
        get_players(players, player_count, "c")        format(message, 127, "*TEAM*%s :    %s^n", name, message)
        for (new i = 0; i < player_count; i++) {
  if (zombies[players[i]] == zombies[id]) {
                        message_begin(MSG_ONE,gmsgSayText,{0,0,0},players[i])
                        write_byte(id)
                        write_string(message)
                        message_end()
  }
        }
        return PLUGIN_HANDLED
}public client_PreThink(id) {
        if (get_cvar_num("amx_zombie_mode") != 1)
  return new alive = is_user_alive(id)
 if ((alive == 1) && (zombies[id] == 1))
  set_user_maxspeed(id, get_cvar_float("amx_zombie_speed"))
 if ((get_cvar_num("amx_zombie_specnv") == 1) && (get_cvar_num("amx_zombie_customspecnv") == 1) && (alive == 0)) {
  new pos[3]
                get_user_origin(id, pos)                new tmpcvar[16]
                new r[4],g[4],b[4]
                get_cvar_string("amx_zombie_specnvcolor", tmpcvar, 15)
                if (parse(tmpcvar, r, 3, g, 3, b, 3) != 3) {
                        copy(r, 3, "0")
                        copy(g, 3, "200")
                        copy(b, 3, "0")
                }                message_begin(MSG_ONE, SVC_TEMPENTITY, {0,0,0}, id)
                write_byte(TE_DLIGHT)
                write_coord(pos[0])
                write_coord(pos[1])
                write_coord(pos[2])
                write_byte(110)
                write_byte(str_to_num(r))
                write_byte(str_to_num(g))
                write_byte(str_to_num(b))
                write_byte(5)
                write_byte(10)
                message_end()
 } else if ((get_cvar_num("amx_zombie_defaultnvg") == 0) && (zombies[id] == 1) && (alive == 1)) {
         new pos[3]
         get_user_origin(id, pos)
            
  new tmpcvar[16]
  new r[4],g[4],b[4]
  get_cvar_string("amx_zombie_nvcolor", tmpcvar, 15)
  if (parse(tmpcvar, r, 3, g, 3, b, 3) != 3) {
   copy(r, 3, "255")
   copy(g, 3, "0")
   copy(b, 3, "0")
  }  message_begin(MSG_ONE, SVC_TEMPENTITY, {0,0,0}, id)
            write_byte(TE_DLIGHT)
            write_coord(pos[0])
            write_coord(pos[1])
            write_coord(pos[2])
            write_byte(95)
            write_byte(str_to_num(r)) 
            write_byte(str_to_num(g))
            write_byte(str_to_num(b))
            write_byte(5)
            write_byte(10)
            message_end()
 } else if ((get_cvar_num("amx_zombie_flashlight") == 1) && (flashlight[id] > 0) && (zombies[id] == 0) && (alive == 1)) {
                /*new Float:origin[3], Float:angles[3]
                entity_get_vector(id, EV_VEC_origin, origin)
                entity_get_vector(id, EV_VEC_angles, angles)
                entity_set_vector(flashlight[id], EV_VEC_origin, origin)
                entity_set_vector(flashlight[id], EV_VEC_angles, angles)*/
                new aiming[3], pos[3], dist[3], maxv
                get_user_origin(id, aiming, 2)
                get_user_origin(id, pos)                dist[0] = abs(pos[0]-aiming[0])
                dist[1] = abs(pos[1]-aiming[1])
                dist[2] = abs(pos[2]-aiming[2])
                if (dist[0] > dist[1]) {
                        if (dist[0] > dist[2])
                                maxv = dist[0]
                        else
                                maxv = dist[2]
                } else if (dist[1] > dist[2])
                        maxv = dist[1]
                else
                        maxv = dist[2]
                maxv /= 800
                maxv += 8                new tmpcvar[16]
                new r[4],g[4],b[4]
                get_cvar_string("amx_zombie_flashlightcolor", tmpcvar, 15)
                if (parse(tmpcvar, r, 3, g, 3, b, 3) != 3) {
                        copy(r, 3, "200")
                        copy(g, 3, "1")
                        copy(b, 3, "0")
                } 
                message_begin(MSG_PAS,SVC_TEMPENTITY, aiming)
                write_byte(TE_DLIGHT)
                write_coord(aiming[0]) // x
                write_coord(aiming[1]) // y
                write_coord(aiming[2]) // z
                write_byte(maxv) // radius * 0.1
                write_byte(str_to_num(r)) // r
                write_byte(str_to_num(g)) // g
                write_byte(str_to_num(b)) // b
                write_byte(2) // life in time * 10
                write_byte(2) // decay * 0.1
                message_end()
        }
 return
}
public block(id) {
 if (get_cvar_num("amx_zombie_mode") == 1)
  return PLUGIN_HANDLED
 return PLUGIN_CONTINUE
}
public shield_check(id) {
 if ((get_cvar_num("amx_zombie_mode") != 1) || (zombies[id] != 1))
                return PLUGIN_CONTINUE
 new user = (read_data(0)) 
 new stat = (read_data(1)) 
 if (stat == 64)
  engclient_cmd(user, "drop", "weapon_shield") return PLUGIN_CONTINUE
}
public block_zombie(id) {
 if ((get_cvar_num("amx_zombie_mode") == 1) && (zombies[id] == 1))
                return PLUGIN_HANDLED
        return PLUGIN_CONTINUE
}
public add_frag(ids[]) {
 new killer = ids[0]
 new frags = get_user_frags(killer)
        frags += ids[1]
        set_user_frags(killer, frags)
        message_begin(MSG_BROADCAST,gmsgScoreInfo)
        write_byte(killer)
        write_short(frags)
        write_short(get_user_deaths(killer))
        write_short(0)
        write_short(get_user_team(killer))
        message_end()
}
public player_death() {
 if (get_cvar_num("amx_zombie_mode") != 1)
                return PLUGIN_CONTINUE
        new killer = read_data( 1 );
        new id = read_data( 2 );
 new killer_team = get_user_team(killer)
 new id_team = get_user_team(id) if ((killer != id) && (killer > 0) && (zombies[id] > 0) && (killer < 34) && (killer_team == id_team)) {
                new ids[2]
  ids[0] = killer
  ids[1] = 2
  set_task(0.1, "add_frag", 0, ids, 2)
 }
 if (zombies[id] == 1) {
  new ids[1]
  ids[0] = id
  set_task(0.2, "zombie_die", 0, ids, 1)
 }
 return PLUGIN_CONTINUE
}public zombie_die(ids[]) {
 entity_set_int(ids[0], EV_INT_sequence, 73)
 new origin[3]
 get_user_origin(ids[0], origin)
 origin[2] -= 30
 set_user_origin(ids[0], origin)
 remove_zombie(ids[0])
}
public remove_zombie(id) {
        zombies[id] = 0
        set_user_maxspeed(id, 320.0)
 fake_nightvision(id, 0)
 return PLUGIN_CONTINUE
}
public pfn_touch(ptr, ptd) {
 if (zombie_enabled != 1)
  return PLUGIN_CONTINUE
 if (ptd > 0 && ptd <= maxplayers && is_user_connected(ptd) && ptr > maxplayers) { 
  new model[32]
  new class[32]
  entity_get_string(ptr, EV_SZ_model, model, 31) 
  entity_get_string(ptr, EV_SZ_classname, class, 31)
  if ((equal(model, "models/w_", 9) || (containi(model, "shield") > -1)) && (zombies[ptd]==1)) {
   return PLUGIN_HANDLED
  } else if (equal(model, "models/w_backpack", 17)) {
   return PLUGIN_HANDLED
  } else if (equal(model, "models/w_scout", 14)||equal(model, "models/w_aug",12)||equal(model, "models/w_sg550",14)||
   equal(model, "models/w_galil",14)||equal(model, "models/w_famas",14)||equal(model, "models/w_awp",12)||
   equal(model, "models/w_m249",13)||equal(model, "models/w_m4a1",13)||equal(model, "models/w_g3gs1",14)||
   equal(model, "models/w_sg552",14)||equal(model, "models/w_ak47",13)) {
   return PLUGIN_HANDLED
  }
 }
 
 return PLUGIN_CONTINUE
}public toggle_zombies(id,level,cid){
   if (!cmd_access(id,level,cid,1))
        return PLUGIN_HANDLED
   new toggle = 2
   if (read_argc() > 1) {
        new arg[2]
        read_argv(1,arg,1)
        toggle = str_to_num(arg)
   }
   set_hudmessage(200, 100, 0, -1.0, 0.25, 0, 1.0, 5.0, 0.1, 0.2, 2)
   if ((get_cvar_num("amx_zombie_mode") == 0) && (toggle != 0)) {
 randzombie = 0
 zombie_on()
        console_print(id, "[AMXx] Zombie mode has been turned on")
        show_hudmessage(0, "%L",LANG_PLAYER, "zombie05")
   } else if ((get_cvar_num("amx_zombie_mode") == 1) && (toggle != 1)) {
 zombie_off()
        console_print(id, "[AMXx] Zombie mode has been turned off")
        show_hudmessage(0, "%L",LANG_PLAYER, "zombie06")
   }
   return PLUGIN_HANDLED
}
public zombie_on() {
 zombie_enabled = 1
 set_cvar_string("ZombieMod", "2.0.1 (on)")
        set_cvar_num("amx_zombie_mode", 1)
        old_ff = get_cvar_num("mp_friendlyfire")
        old_roundtime = get_cvar_num("mp_roundtime")
        set_cvar_num("mp_friendlyfire", 1)
        set_cvar_num("mp_roundtime", 4)
        set_msg_block(gmsgRadar,BLOCK_SET)
 set_lights("a")
        set_task(1.0, "check_brainvision", 23499432)
        set_task(1.3, "new_round")
        set_cvar_num("sv_restartround", 1)
 remove_bombsites()
 round_over = 0
 return PLUGIN_CONTINUE
}
public zombie_off() {
 set_lights("m")
 set_msg_block(gmsgRadar,BLOCK_NOT)
        //set_user_hitzones(0, 0, 255)
 set_cvar_num("amx_zombie_mode", 0)
 zombie_enabled = 0
 set_cvar_string("ZombieMod", "2.0.1 (off)")
 set_cvar_num("mp_friendlyfire", old_ff)
 set_cvar_num("mp_roundtime", old_roundtime)
 remove_task(23499432)
 new i
 if (get_cvar_num("amx_zombie_randomspawn") == 1) {
 for (i = 0; i < MAX_SPAWNS; i++) {
  if (old_player_deathmatch_ent[i] > 0) {
   entity_set_origin(old_player_deathmatch_ent[i], old_player_deathmatch[i])
   old_player_deathmatch_ent[i] = 0
   old_player_deathmatch[i] = Float:{0.0,0.0,0.0}
  }
                if (old_player_start_ent[i] > 0) {
                        entity_set_origin(old_player_start_ent[i], old_player_start[i])
   old_player_start_ent[i] = 0
   old_player_start[i] = Float:{0.0,0.0,0.0}
                }
 }
 for (i = 0; i < (MAX_SPAWNS + MAX_SPAWNS); i++) {
  if (buy_zones[i] > 0) {
   remove_entity(buy_zones[i])
   buy_zones[i] = 0
  }
 }
 for (i = 0; i < MAX_BUYZONES; i++) {
  if (old_buyzone_ent[i] > 0) {
   entity_set_origin(old_buyzone_ent[i], old_buyzones[i])
   old_buyzone_ent[i] = 0
   old_buyzones[i] = Float:{0.0,0.0,0.0}
  }
 }
 rand_set = 0
 }
 for (i = 1; i <= maxplayers; i++) { 
  if (zombies[i] > 0) zombies[i] = 0
  if (is_user_connected(i)) {
                 set_user_maxspeed(i, 320.0)
                 cs_reset_user_model(i)
   if (get_cvar_num("amx_zombie_defaultnvg") == 1)
    fake_nightvision(i, 0)
   if (get_user_health(i) > 100)
    set_user_health(i, 100)
                }
 }
 replace_bombsites()
 set_cvar_num("sv_restartround", 1)
 return PLUGIN_CONTINUE
}
 
public end_round() {
 if (zombie_enabled != 1) 
  return PLUGIN_CONTINUE
 randzombie = 0
 for (new i = 1; i <= maxplayers; i++) {
  if (is_user_connected(i)) {
   if (zombies[i] > 0) {
    remove_zombie(i)
   }
   if (old_team[i] > CsTeams:0) {
    cs_set_user_team(i, old_team[i])
    old_team[i] = CsTeams:0
   }
  }
 }
 if ((get_cvar_num("amx_zombie_randomspawn") == 1) && (randpos_max >= (MAX_SPAWNS + MAX_SPAWNS - 1))) {
  random_spawns()
  rand_set = 1
 }
 round_over = 1
 remove_task(87134833)
 return PLUGIN_CONTINUE
}public spawn_event(id) {
        if (get_cvar_num("amx_zombie_randomspawn") == 1) {
                new ids[1]
                ids[0] = id
                set_task(random_float(30.0, 40.0), "set_rand_pos", id + 183, ids, 1)
        }
 if (zombie_enabled != 1)
  return PLUGIN_CONTINUE if (zombies[id] == 1) {
  new ids[2]
  ids[0] = id
  ids[1] = 0
  set_task(0.1, "do_zombie", 0, ids, 2)
  return PLUGIN_HANDLED
 }
 round_over = 0
 cs_reset_user_model(id)
 return PLUGIN_CONTINUE
}
public set_rand_pos(ids[]) {
 new id = ids[0]
 if (is_user_alive(id) != 1)
  return PLUGIN_CONTINUE  new fl = entity_get_int(id, EV_INT_flags)
 if ((round_over == 0) && !(entity_get_int(id, EV_INT_button) & (IN_JUMP|IN_DUCK)) && (fl & FL_ONGROUND) && !(fl & FL_FLY) && !(fl & FL_DUCKING) && !(fl & FL_ONTRAIN) && !(fl & FL_INWATER) && (entity_get_int(id, EV_INT_bInDuck) == 0)) {
  new Float:origin[3]
  entity_get_vector(id, EV_VEC_origin, origin)
  new n_ent, class[32]
  new ent = find_ent_in_sphere(33, origin, 15.0)
  while (ent > 0) {
   n_ent = find_ent_in_sphere(ent, origin, 15.0)
   entity_get_string(ent, EV_SZ_classname, class, 31)
   if (containi(class, "door")!=-1 || containi(class, "rotating")!=-1 || containi(class, "ladder")!=-1 || containi(class, "breakable")!=-1) {
    set_task(random_float(10.0, 40.0), "set_rand_pos", id + 183, ids, 1)
    return PLUGIN_CONTINUE
   }
   ent = n_ent
  }
  for (new x = 0; x < (MAX_SPAWNS + MAX_SPAWNS); x++) {
   if ((floatabs(origin[0]-rand_pos[x][0]) < 30.0) && 
    (floatabs(origin[1]-rand_pos[x][1]) < 30.0) &&
    (floatabs(origin[2]-rand_pos[x][2]) < 30.0)) {
     set_task(random_float(10.0, 40.0), "set_rand_pos", id + 183, ids, 1)
     return PLUGIN_CONTINUE
   }
  }
  if (randpos_max < (MAX_SPAWNS + MAX_SPAWNS - 1)) {
   rand_pos[randpos_max] = origin
   randpos_max++
  } else {
   rand_pos[random_num(0, (MAX_SPAWNS + MAX_SPAWNS - 1))] = origin
  }
 }
 set_task(random_float(10.0, 40.0), "set_rand_pos", id + 183, ids, 1)
 return PLUGIN_CONTINUE
}
public switch_weapon(id) {
 if (zombie_enabled != 1) 
  return PLUGIN_CONTINUE new tclip, tammo 
 new weapon = get_user_weapon(id,tclip,tammo)
 if (zombies[id] == 1) {
  entity_set_string(id, EV_SZ_viewmodel, "")
         entity_set_string(id, EV_SZ_weaponmodel, "")
  if ((weapon > 0) && (weapon < 31) && (weapon != 2) && (weapon != CSW_KNIFE)) {
   new wstr[32]
   get_weaponname(weapon, wstr, 31)
   engclient_cmd(id, "drop", wstr)
   engclient_cmd(id, "weapon_knife")
  }
 } else if ((weapon == CSW_C4)||(weapon == CSW_SCOUT)||(weapon == CSW_AUG)||(weapon == CSW_SG550)||(weapon == CSW_GALIL)
  ||(weapon == CSW_FAMAS)||(weapon == CSW_AWP)||(weapon == CSW_M249)||(weapon == CSW_G3SG1)||(weapon == CSW_SCOUT)
  ||(weapon == CSW_SG552)) {
  new wstr[32]
  get_weaponname(weapon, wstr, 31)
  if (weapon == CSW_C4)
   engclient_cmd(id, "drop")
  else
   engclient_cmd(id, "drop", wstr)
 }
 return PLUGIN_CONTINUE
}
public weapon_string(w, str[]) {
 switch (w) {
  case CSW_P228: copy(str, 31, "p228")
  case CSW_SCOUT: copy(str, 31, "scout")
  case CSW_HEGRENADE: copy(str, 31, "hegrenade")
  case CSW_XM1014: copy(str, 31, "xm1014")
  case CSW_C4: copy(str, 31, "c4")
  case CSW_MAC10: copy(str, 31, "mac10")
  case CSW_AUG: copy(str, 31, "aug")
  case CSW_SMOKEGRENADE: copy(str, 31, "smokegrenade")
  case CSW_ELITE: copy(str, 31, "elite")
  case CSW_FIVESEVEN: copy(str, 31, "fiveseven")
  case CSW_UMP45: copy(str, 31, "ump45")
  case CSW_SG550: copy(str, 31, "sg550")
  case CSW_GALIL: copy(str, 31, "galil")
  case CSW_FAMAS: copy(str, 31, "famas")
  case CSW_USP: copy(str, 31, "usp")
  case CSW_GLOCK18: copy(str, 31, "glock18")
  case CSW_AWP: copy(str, 31, "awp")
  case CSW_MP5NAVY: copy(str, 31, "mp5navy")
  case CSW_M249: copy(str, 31, "m249")
  case CSW_M3: copy(str, 31, "m3")
  case CSW_M4A1: copy(str, 31, "m4a1")
  case CSW_TMP: copy(str, 31, "tmp")
  case CSW_G3SG1: copy(str, 31, "g3sg1")
  case CSW_FLASHBANG: copy(str, 31, "flashbang")
  case CSW_DEAGLE: copy(str, 31, "deagle")
  case CSW_SG552: copy(str, 31, "sg552")
  case CSW_AK47: copy(str, 31, "ak47")
  case CSW_KNIFE: copy(str, 31, "knife")
  case CSW_P90: copy(str, 31, "p90")
 }
}
public do_team_dmg(ids[]) {
 new tid = ids[0]
 new id = ids[1]
 if (!is_user_alive(tid))
                return PLUGIN_CONTINUE
 new tbody = ids[3]
 new weap = ids[4]
 new health = get_user_health(tid)
        health -= ids[2]
 if (health > 0) {
         set_user_health(tid, health)
 } else {
                message_begin(MSG_ALL, gmsgDeathMsg,{0,0,0},0)
                write_byte( id )
                write_byte( tid )
                if (tbody == HIT_HEAD) {
                        write_byte(1)
                } else {
                        write_byte(0)
                }
  new weapon_str[32]
  weapon_string(weap, weapon_str)
                write_string(weapon_str)
                message_end()  new fr = get_user_frags(id)+1
         message_begin(MSG_BROADCAST, gmsgScoreInfo)
         write_byte(id)
         write_short(fr)
         write_short(get_user_deaths(id))
         write_short(0)
         write_short(get_user_team(id))
         message_end()
  set_user_frags(id, fr)  new deaths = get_user_deaths(tid)+1
  message_begin(MSG_BROADCAST, gmsgScoreInfo)
         write_byte(tid)
         write_short(get_user_frags(tid))
         write_short(deaths)
         write_short(0)
         write_short(get_user_team(tid))
         message_end()
 
         cs_set_user_deaths(tid, deaths)
  set_msg_block(gmsgDeathMsg,BLOCK_SET)
         user_kill(tid,1)
  set_msg_block(gmsgDeathMsg,BLOCK_NOT)
 }
 return PLUGIN_CONTINUE
}
public do_health() {
 if (zombie_enabled != 1) 
  return PLUGIN_CONTINUE        new id = read_data(0)
        new health = read_data(1)
        if (zombies[id] == 1) {
                set_hudmessage( 255, 255, 255, -2.00, -2.00, 2, 0.05, 1000.0, 0.01, 3.0, 1);
                show_hudmessage(id, "    %L",LANG_PLAYER, "zombie07", health)
        }
 return PLUGIN_CONTINUE
}public event_damage() {
 if (zombie_enabled != 1) 
  return PLUGIN_CONTINUE
        new id = read_data(0)
 new damage = read_data(1)
        new attacker        if ((!id) || !is_user_connected(id))
                return PLUGIN_CONTINUE new weapon,body
 attacker = get_user_attacker(id,weapon,body)
 if ((!attacker) || (attacker == id))
  return PLUGIN_CONTINUE
 if ((zombies[attacker] == 1) && (weapon == CSW_HEGRENADE))
  return PLUGIN_CONTINUE
 if (zombies[attacker] != 1) {
  if (zombies[id] != 1) {
   set_user_health(id,get_user_health(id)+damage)
   return PLUGIN_CONTINUE
  } else {
   new ids[5]
   ids[0] = id
   ids[1] = attacker
   ids[2] = damage
   ids[3] = body
   ids[4] = weapon
   set_task(0.1, "do_team_dmg", 0, ids, 5)
  }
 }
 if (zombies[id] == 1) {
  entity_set_vector(id, EV_VEC_velocity, Float:{0.0, 0.0, 0.0})
  return PLUGIN_CONTINUE
 }
 new health = get_user_health(attacker)
 health += 15
 if (health < get_cvar_num("amx_zombie_health"))
  set_user_health(attacker, health)
 if ((id > 0) && (id < 34) && (zombies[id] == 0) && (weapon == CSW_KNIFE)) {
  zombies[id] = 2
  new ids[2] 
  ids[0] = id
  ids[1] = attacker
  set_task(get_cvar_float("amx_zombie_infecttime"), "start_zombie", 0, ids, 2)
  client_print(attacker, print_chat, "%L",LANG_PLAYER, "zombie08")
 } return PLUGIN_CONTINUE
}public start_zombie(ids[]) {
 new id = ids[0]
 new attacker = ids[1]
 if ((round_over == 1) || (is_user_alive(id) == 0) || (zombie_enabled != 1)) {
  zombies[id] = 0
  return PLUGIN_CONTINUE
 } if (zombies[id] == 2) {
                emit_sound(id, CHAN_VOICE, "scientist/c1a0_sci_catscream.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  set_user_health(id, 400)
  new frags = get_user_frags(id)
                frags -= 1
                set_user_frags(id, frags)
                message_begin(MSG_BROADCAST,gmsgScoreInfo)
                write_byte(id)
                write_short(frags)
                write_short(get_user_deaths(id))
                write_short(0)
                write_short(get_user_team(id))
                message_end()
 }
 else {
  new frags = get_user_frags(attacker)
  frags += 1
                set_user_frags(attacker, frags)
                message_begin(MSG_BROADCAST,gmsgScoreInfo)
                write_byte(attacker)
                write_short(frags)
                write_short(get_user_deaths(attacker))
                write_short(0)
                write_short(get_user_team(attacker))
                message_end()
  ids[1] = 0
  set_task(0.1, "do_zombie", 0, ids, 2)
 }
 return PLUGIN_CONTINUE
}public zombie_count() {
 new z = 0
        for (new i = 1; i <= maxplayers; i++)
                if (is_user_alive(i) && (zombies[i] > 0))
                        z++
 return z
}public client_disconnect(id) {
 if (zombie_enabled != 1) 
  return PLUGIN_CONTINUE
 zombies[id] = 0
 flashlight[id] = 0
 old_team[id] = CsTeams:0
 if (get_playersnum() == 0) {
  zombie_off()
  return PLUGIN_CONTINUE
 }
 if (randzombie!=id)
  return PLUGIN_CONTINUE
 if (zombie_count() == 0) { 
  randzombie = 0
  random_zombie()
 }
 return PLUGIN_CONTINUE
}
public client_connect(id) {
 if (zombie_enabled != 1) 
  return PLUGIN_CONTINUE
 zombies[id] = 0
 return PLUGIN_CONTINUE
}public send_team_msg(id, team) {
 message_begin(MSG_ALL, gmsgTeamInfo, {0,0,0}, 0)
 write_byte(id)
 write_string((team == 1) ? "TERRORIST" : "CT")
 message_end()
}public check_zombies() {
 if (get_cvar_num("amx_zombie_mode") != 1) {
  if (zombie_enabled == 1)
   zombie_off()
  set_task(1.0, "check_zombies", 4578294)
  return PLUGIN_CONTINUE
 } else if (zombie_enabled == 0) {
  randzombie = 0
  zombie_on()
  set_task(1.0, "check_zombies", 4578294)
  return PLUGIN_CONTINUE
 }
 if ((get_playersnum() < 2) || (round_over == 1)) {
  set_task(1.0, "check_zombies", 4578294)
  return PLUGIN_CONTINUE
 }
 new c = zombie_count()
 for (new x = 1; x <= maxplayers; x++) {
  if (is_user_alive(x)) {
   if (zombies[x] == 1) {
    set_user_maxspeed(x, get_cvar_float("amx_zombie_speed"))
    if (entity_get_int(x, EV_INT_effects) == 8)
     client_cmd(x, "impulse 100")
    if (random_num(0, 40) == 5) {
     emit_sound(x, CHAN_VOICE, zombie_sounds[random_num(1, sound_count-1)], 1.0, ATTN_NORM, 0, PITCH_NORM)
    }
    send_team_msg(x, 1)
   } else {
    send_team_msg(x, 2)
   }
  } else {
   if (zombies[x] > 0)
    zombies[x] = 0
   if ((is_user_connected(x) == 1) && (get_cvar_num("amx_zombie_specnv") == 1) && (get_cvar_num("amx_zombie_customspecnv") != 1))
    fake_nightvision(x, 1)
  }
 }
 if ((randzombie != 0) && (c == 0)) {
  randzombie = 0
  set_hudmessage(200, 100, 0, -1.0, 0.25, 0, 1.0, 5.0, 0.1, 0.2, 2)
  show_hudmessage(0, "%L",LANG_PLAYER, "zombie09")
  client_print(0, print_chat, "%L",LANG_PLAYER, "zombie10")
  finish_round(CsTeams:CS_TEAM_T)
 } else {
  new players[32],  i = 0
  get_players(players, i, "a")
  if (i == c) {
   randzombie = 0
   set_hudmessage(200, 100, 0, -1.0, 0.25, 0, 1.0, 5.0, 0.1, 0.2, 2)
   show_hudmessage(0, "%L",LANG_PLAYER, "zombie11")
   client_print(0, print_chat, "%L",LANG_PLAYER, "zombie12")
   finish_round(CsTeams:CS_TEAM_CT)
  }
 }
 if (get_cvar_num("amx_zombie_lightning") == 1) {
  if (random_num(0,7) == 1) {
                 lastlights = 1
                 new rand = random_num(1,5)
                 switch (rand) {
                         case 1: set_lights("bbbbbbcdbbbbbb")
                         case 2: set_lights("bbbbbbbgcdbbbbb")
                         case 3: set_lights("bbbbbdeffecbbbb")
                         case 4: set_lights("bbbbbbbbbbcccbbbbbbb")
                         case 5: set_lights("bbbbbbbbbbbbbbbbbb")
                 }
         } else if (lastlights == 1) {
                 lastlights = 0
                 set_lights("bbbbbbbbbbbbbbbcccbbbbbb")
         }
 } else {
  set_lights("a")
 }
 set_task(1.0, "check_zombies", 4578294)
 return PLUGIN_CONTINUE
}
public check_brainvision() {
        if ((get_cvar_num("amx_zombie_mode") != 1) || (get_cvar_num("amx_zombie_brainvision") != 1)) return PLUGIN_CONTINUE
        new b_players = 0
        new b_coord[32][3]
        for (new x = 1; x <= maxplayers; x++) {
                if (is_user_alive(x) && (zombies[x] == 0)) {
                        b_players++
                        get_user_origin(x, b_coord[x - 1])
                }
        }
        for (new x = 1; x <= maxplayers; x++) {
                if (is_user_alive(x) && (zombies[x] == 1)) {
   for (new m = 0; m < b_players; m++) {
                                message_begin(MSG_ONE,SVC_TEMPENTITY,b_coord[m],x)
                                write_byte(21)
                                write_coord(b_coord[m][0])       // x   center
                                write_coord(b_coord[m][1])       // y   position
                                write_coord(b_coord[m][2] + 16)  // z
                                write_coord(b_coord[m][0])       // x   axis and
                                write_coord(b_coord[m][1])       // y   radius
                                write_coord(b_coord[m][2] + 500) // z
                                write_short(spriteBrainVision) // sprite index
                                write_byte(0) // starting frame
                                write_byte(1) // frame rate in 0.1's
                                write_byte(8) // life in 0.1's
                                write_byte(5) // line width in 0.1's
                                write_byte(1) // noise amplitude in 0.01's
                                write_byte(111) // r
                                write_byte(0) // g
                                write_byte(0) // b
                                write_byte(200) // brightness
                                write_byte(0) // scroll speed in 0.1's
    message_end()
   }
                }
        }
 set_task(4.0, "check_brainvision", 23499432)
 return PLUGIN_CONTINUE
}
public finish_round(CsTeams:team) {
 if (round_over == 1) return PLUGIN_CONTINUE
 new players[32], i
 new z = 0
 new kill_players = 0
 new CsTeams:not_team = ((team == CS_TEAM_CT) ? CS_TEAM_T : CS_TEAM_CT)
        get_players(players, i, "b")
        for (new x = 0; x < i; x++) {
  new CsTeams:user_team = cs_get_user_team(players[x])
  if ((user_team == CS_TEAM_CT) || (user_team == CS_TEAM_T)) z++
                if (cs_get_user_team(players[x]) == not_team) {
                        old_team[players[x]] = not_team
                        cs_set_user_team(players[x], team)
   z = players[x]
                }
        }
 if (z == 0) kill_players = 1
 z = 0
 get_players(players, i, "a")
 set_msg_block(gmsgDeathMsg,BLOCK_SET)
 for (new x = 0; x < i; x++) {
  if (cs_get_user_team(players[x]) == team) {
   if (kill_players == 1) {
    user_kill(players[x],1)
   } else {
    old_team[players[x]] = team
    cs_set_user_team(players[x], not_team)
    z = players[x]
   }
  }
 }
 if ((z > 0) && (kill_players == 0)) {
  user_kill(z,1)
 }
 set_msg_block(gmsgDeathMsg,BLOCK_NOT)
 return PLUGIN_CONTINUE 
}public do_zombie(ids[]) {
        if ((zombie_enabled != 1) || !is_user_alive(ids[0]))
                return PLUGIN_CONTINUE new id = ids[0]
 zombies[id] = 1
 new sethealth = get_cvar_num("amx_zombie_health")
 entity_set_string(id, EV_SZ_viewmodel, "")
         entity_set_string(id, EV_SZ_weaponmodel, "")
 if (entity_get_int(id, EV_INT_effects) & 8) // EF_DIMLIGHT
  client_cmd(id, "impulse 100")
 cs_set_user_bpammo(id, CSW_HEGRENADE, 0)
 cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 0)
 cs_set_user_bpammo(id, CSW_FLASHBANG, 0)
 new wpns[32], weapon_name[32], num
 get_user_weapons(id, wpns, num)
 for (new i = 0; i < num; i++) {
  if (wpns[i] == CSW_KNIFE) continue;
  if (wpns[i] == CSW_C4) {
   engclient_cmd(id, "drop")
   engclient_cmd(id, "drop")
   engclient_cmd(id, "drop")
   
  } else {
   get_weaponname(wpns[i], weapon_name, 31)
   engclient_cmd(id, "drop", weapon_name)
  }
 }
 engclient_cmd(id, "weapon_knife")
 if (get_cvar_num("amx_zombie_defaultnvg") == 1) {
  fake_nightvision(id, 1)
  client_cmd(id, "nightvision")
 }
 new rand = random_num(0,6)         switch(rand)
         {
    case 0: cs_set_user_model(id,"zombie_good")
    case 1: cs_set_user_model(id,"zombie_good1")
    case 2: cs_set_user_model(id,"zombie_good2")
    case 3: cs_set_user_model(id,"zombie_good3")
    case 4: cs_set_user_model(id,"zombie_good4")
    case 5: cs_set_user_model(id,"zombie_good5")
    case 6: cs_set_user_model(id,"zombie_good6")
   
    
         } if (ids[1] == 1)
  set_user_health(id, sethealth * 5)
 else
         set_user_health(id, sethealth)
        set_user_maxspeed(id, 140.0)
 user_slap(id, 2, 1)
 //set_user_hitzones(0, id, get_cvar_num("amx_zombie_hitzones")) client_print(id, print_chat, "%L",LANG_PLAYER, "zombie13")
 return PLUGIN_CONTINUE
}
public random_zombie() {
        if ((zombie_enabled != 1) || (randzombie > 0))
                return PLUGIN_CONTINUE new players[32]
 new i = 0 get_players(players, i, "ac")
 if (i == 0) 
  return 0
 randzombie = players[random_num(0,i-1)]
 new ids[2]
 ids[0] = randzombie
 ids[1] = 1
 do_zombie(ids)
 
 return randzombie
}
public event_damage_pain(id)
{
 if (!is_user_alive(id) || !is_user_connected(id))
  return PLUGIN_CONTINUE
 
 if ( zombies[id] )
 {
  emit_sound(id, CHAN_VOICE, pain_zombie[random_num(0, ZOMBIE_PAIN - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)
 } 
 
 return PLUGIN_CONTINUE
}public fw_EmitSound( id, channel, sample[] ) {
 if (!is_user_alive(id) || !is_user_connected(id)) 
  return FMRES_IGNORED
 
 new temp[2], weapon = get_user_weapon( id, temp[0], temp[1] )
 
 if (weapon == CSW_KNIFE)
 {
  if (zombies[id])
  {
   if (equal(sample, "weapons/knife_hit1.wav")) 
   {
    emit_sound( id, CHAN_WEAPON, hit_zombie[random_num(0, ZOMBIE_HIT - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM )
    return FMRES_SUPERCEDE
   }
   else if (equal(sample, "weapons/knife_hit2.wav" ))
   {
    emit_sound( id, CHAN_WEAPON, hit_zombie[random_num(0, ZOMBIE_HIT - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM ) 
    return FMRES_SUPERCEDE
   }
   else if (equal(sample, "weapons/knife_hit3.wav" )) 
   {
    emit_sound( id, CHAN_WEAPON, hit_zombie[random_num(0, ZOMBIE_HIT - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM ) 
    return FMRES_SUPERCEDE
   }
   else if ( equal( sample, "weapons/knife_hit4.wav" ) ) 
   {
    emit_sound( id, CHAN_WEAPON, hit_zombie[random_num(0, ZOMBIE_HIT - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM )
    return FMRES_SUPERCEDE
   }
   else if ( equal( sample, "weapons/knife_stab.wav") ) 
   {
    emit_sound( id, CHAN_WEAPON, hit_zombie[random_num(0, ZOMBIE_HIT - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM ) 
    return FMRES_SUPERCEDE
   }
   else if ( equal( sample, "weapons/knife_slash1.wav") ) 
   {
    emit_sound( id, CHAN_WEAPON, miss_zombie[random_num(0, ZOMBIE_MISS - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM ) 
    return FMRES_SUPERCEDE
   }
   else if ( equal( sample, "weapons/knife_slash2.wav") ) 
   {
    emit_sound( id, CHAN_WEAPON, miss_zombie[random_num(0, ZOMBIE_MISS - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM ) 
    return FMRES_SUPERCEDE
   }
   else if ( equal( sample, "weapons/knife_hitwall1.wav") ) 
   {
    emit_sound( id, CHAN_WEAPON, miss_zombie[random_num(0, ZOMBIE_MISS - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM ) 
    return FMRES_SUPERCEDE
   }
  }
 }
 return FMRES_IGNORED
}
what's my problerum?> please help
lhrcap is offline
 


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 00:36.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode