Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* amx_zombiebot */
- /* Plugin by uPd4t3d Data */
- /* Use this plugin with my map "as_resident_evil" and Counter-Strike Condition Zero */
- /* This plugin is designed for as-maps only */
- #include <amxmisc>
- #include <amxmodx>
- #include <cstrike>
- #include <engine>
- #include <fakemeta>
- #include <fun>
- #define NO_TEAM 0
- #define TERRORIST 1
- #define COUNTERTERRORIST 2
- #define SPECTATOR 3
- #define VERSION "0.93 [2010-04-12]"
- /* Use this plugin only with this map(s)... */
- new team /* speichert welches Team */
- new bot /* speichert ob es ein Bot ist */
- new dog /* Wie viele Hunde */
- new name[32] /* speichert den Namen eines Spielers */
- new zombies=0 /* zählt die Anzahl der Zombies */
- new t_count=0 /* zählt Ts ohne Bots */
- new ct_count=0 /* zählt CTs ohne Bots */
- new player_count=1 /* Zeiger auf Player der geprüft werden soll */
- new ct_model_count=1 /* Zeiger auf das Model eines CT */
- new end_round_flag=1 /* Flag, ob Rundenende ist */
- new first_mdl[33] /* Flag, ob das erste Mal ein Model gesetzt wird */
- new need_change[33] /* speichert, ob das Model gewechselt werden muß */
- new mapname[32] /* speichert den Namen der Map */
- new Float:spawn_delay=3.0 /* Verzögerung beim spawnen */
- new is_vip=0 /* Variable um zu kucken, ob ein VIP lebt */
- new is_bot_vip=0 /* falls ein Bot sich verlaufen hat */
- new is_bot_dog[33] /* Der Bot ist ein Hund */
- new vip_safe=-1 /* wenn der VIP es geschafft hat */
- new vip_safetyzone[33] /* befindet sich der Spieler in der Safety-Zone */
- new can_spawn[33] /* speichert ob Spieler spawnen darf! */
- new config=0 /* speichert ob der Server konfiguriert wurde */
- new ct_level[33] /* Level CT */
- new ct_kill_count[33] /* zählt die Kills eines CTs im Level */
- new t_level[33] /* Level T */
- new t_death_count[33] /* zählt die Tode eines Ts im Level */
- new drop[33] /* Info, ob T Waffe weggeschmissen hat */
- new spec[33] /* Info, wie lange ein Spieler Spectator ist */
- new steam_count=0 /* Zeiger auf die nächste zu vergebene Position in der Steam-Liste */
- new steam_adr[40][20] /* Liste mit SteamIDs der Spieler */
- new steam_level[40] /* Level des Spielers zur SteamID */
- new steam_pos[33] /* Slot des Spielers, zeigt auf die Pos. der Steam-Liste */
- new msg_screen_fade
- public plugin_init() {
- register_plugin("amx_zombiebot",VERSION,"uPd4t3d Data")
- register_cvar("amx_zombiebot_version",VERSION,FCVAR_SERVER)
- set_cvar_string("amx_zombiebot_version",VERSION)
- register_cvar("amx_zombiebot","12") /* Anzahl der Bots im T-Team */
- register_cvar("amx_zombiebot_debug","0") /* Debug- Infos */
- config=0 /* Server ist noch nicht konfiguriert */
- msg_screen_fade=get_user_msgid("ScreenFade")
- get_mapname(mapname,31)
- /* ..nur bei Zombiemap */
- register_concmd("amx_zombiebot_level","set_level",ADMIN_VOTE,"- add level for an admin")
- register_concmd("amx_zombiebot_weapon","admin_weapon",ADMIN_VOTE,"- give admin weapons")
- register_logevent("start_round",2,"0=World triggered","1=Round_Start") /* ..wenn die Runde anfängt */
- register_logevent("end_round",2,"0=World triggered","1=Round_End") /* ..wenn die Runde zu Ende ist */
- register_event("CurWeapon","cur_weapon","be","1=1") /* ..wenn jemand eine Waffe wählt */
- register_event("ResetHUD","event_hud_reset","be") /* Aufruf je Spieler am Rundenstart */
- register_clcmd("jointeam","join_team") /* ..wenn jemand einem Team beitritt */
- register_forward(FM_ClientUserInfoChanged,"fw_info") /* Weiterleitung Info Changed */
- register_forward(FM_Touch,"fw_touch") /* wenn ein Spieler etwas berührt */
- register_forward(FM_PlayerPostThink,"change_models") /* Models ändern */
- register_forward(FM_SetClientKeyValue,"fw_SetClientKeyValue" ) /* Verhindern, dass die Engine Models zurück setzt */
- register_forward(FM_EmitSound,"fw_emitsound") /* Töne abändern */
- server_cmd("bot_quota 5") /* Alle CZ-Bots vom Server schmeißen */
- set_task(10.0,"server_config")
- }
- public set_level(id,level,cid){
- if (!cmd_access(id,level,cid,1)){
- return PLUGIN_HANDLED
- }
- if (get_user_team(id) == COUNTERTERRORIST) {
- if (ct_level[id] < 9) {
- ct_level[id]++
- client_cmd(id,"spk items/suitchargeok1")
- }
- }
- if (get_user_team(id) == TERRORIST) {
- if (t_level[id] < 9) {
- t_level[id]++
- client_cmd(id,"spk items/suitchargeok1")
- }
- }
- return PLUGIN_HANDLED
- }
- public admin_weapon(id,level,cid){
- if (!cmd_access(id,level,cid,1)){
- return PLUGIN_HANDLED
- }
- if (is_user_alive(id) && is_user_connected(id)) {
- give_item(id,"weapon_m4a1")
- cs_set_user_bpammo(id,CSW_M4A1,250)
- give_item(id,"weapon_ak47")
- cs_set_user_bpammo(id,CSW_AK47,250)
- give_item(id,"weapon_deagle")
- cs_set_user_bpammo(id,CSW_DEAGLE,250)
- client_cmd(id,"spk items/suitchargeok1")
- }
- return PLUGIN_HANDLED
- }
- public server_config() {
- server_cmd("bot_difficulty 3")
- server_cmd("bot_allow_grenades 0")
- server_cmd("bot_allow_machine_guns 0")
- server_cmd("bot_allow_pistols 0")
- server_cmd("bot_allow_rifles 0")
- server_cmd("bot_allow_rogues 0")
- server_cmd("bot_allow_shield 0")
- server_cmd("bot_allow_shotguns 0")
- server_cmd("bot_allow_snipers 0")
- server_cmd("bot_allow_sub_machine_guns 0")
- server_cmd("bot_chatter off")
- server_cmd("bot_join_team t")
- server_cmd("bot_walk 0")
- server_cmd("bot_zombie 0")
- server_cmd("bot_stop 0")
- server_cmd("bot_quota 5")
- set_cvar_num("mp_forcecamera",0)
- set_cvar_num("mp_forcechasecam",0)
- set_cvar_num("mp_limitteams",1)
- set_cvar_num("mp_autoteambalance",0)
- set_cvar_num("mp_flashlight",0)
- set_cvar_num("mp_freezetime",1)
- set_cvar_num("allow_spectators",1)
- set_cvar_num("decalfrequency",300)
- set_cvar_float("mp_roundtime",3.5)
- set_cvar_num("sv_allowdownload",0)
- set_cvar_num("sv_timeout",20)
- set_cvar_num("sv_maxspeed",400)
- set_cvar_num("sv_restartround",1)
- config=1 /* Server wurde konfiguriert */
- set_task(3.0,"check_death") /* Prüfung aktivieren */
- }
- public plugin_precache() {
- get_mapname(mapname,31)
- /* Precaches vermeiden, wenn keine Zombiemap */
- precache_model("models/player/zombiebot_1/zombiebot_1.mdl")
- precache_model("models/player/zombiebot_2/zombiebot_2.mdl")
- precache_model("models/player/zombiebot_3/zombiebot_3.mdl")
- precache_model("models/player/zombiebot_4/zombiebot_4.mdl")
- precache_model("models/player/zombiebot_5/zombiebot_5.mdl")
- precache_model("models/player/zombiebot_6/zombiebot_6.mdl")
- precache_model("models/player/zombiebot_7/zombiebot_7.mdl")
- precache_model("models/player/zombiebot_8/zombiebot_8.mdl")
- precache_model("models/player/zombiebot_9/zombiebot_9.mdl")
- precache_model("models/player/zombiebot_ct1/zombiebot_ct1.mdl")
- precache_model("models/player/zombiebot_ct2/zombiebot_ct2.mdl")
- precache_model("models/player/zombiebot_ct3/zombiebot_ct3.mdl")
- precache_model("models/player/zombiebot_ct4/zombiebot_ct4.mdl")
- precache_model("models/player/zombiebot_ct5/zombiebot_ct5.mdl")
- precache_model("models/player/zombiebot_ct6/zombiebot_ct6.mdl")
- precache_model("models/player/zombiebot_ct7/zombiebot_ct7.mdl")
- precache_model("models/player/zombiebot_ct8/zombiebot_ct8.mdl")
- precache_model("models/player/zombiebot_ct9/zombiebot_ct9.mdl")
- precache_model("models/player/zombiebot_ct10/zombiebot_ct10.mdl")
- precache_model("models/player/zombiebot_ct11/zombiebot_ct11.mdl")
- precache_model("models/player/zombiebot_ct12/zombiebot_ct12.mdl")
- precache_model("models/player/zombiebot_dog/zombiebot_dog.mdl")
- precache_model("models/player/zombiebot_vip/zombiebot_vip.mdl")
- precache_model("models/v_knife_zombie.mdl")
- precache_model("models/v_elite_zombiebot.mdl")
- precache_model("models/v_knife_zombiebot.mdl")
- precache_model("models/v_m249_zombiebot.mdl")
- precache_model("models/v_m3_zombiebot.mdl")
- precache_model("models/v_m4a1_zombiebot.mdl")
- precache_model("models/v_mp5_zombiebot.mdl")
- precache_model("models/v_tmp_zombiebot.mdl")
- precache_model("models/v_sg552_zombiebot.mdl")
- precache_model("models/v_usp_zombiebot.mdl")
- precache_sound("weapons/hammerback.wav")
- precache_sound("weapons/leftmagin.wav")
- precache_sound("weapons/leftmagout.wav")
- precache_sound("weapons/m249_boltpull.wav")
- precache_sound("weapons/m4a1_boltpull.wav")
- precache_sound("weapons/magbash.wav")
- precache_sound("weapons/ready.wav")
- precache_sound("weapons/rightmagin.wav")
- precache_sound("weapons/rightmagout.wav")
- precache_sound("weapons/sliderelease.wav")
- precache_sound("zombiebot/attention.wav") /* - 15 Sek nach dem Betreten des Servers */
- precache_sound("zombiebot/final_level.wav") /* - sofort beim Erreichen des Final Level */
- precache_sound("zombiebot/level_up.wav")
- precache_sound("zombiebot/one_level_down.wav")
- precache_sound("zombiebot/safetyzone.wav") /* - ca 2-5 Sek. nach dem Spawn gegenüber dem VIP */
- precache_sound("zombiebot/two_level_up.wav") /* - kurze Zeit nach dem Kill des VIP oder sofort beim Spawn für CTs wenn der VIP durchgebracht wurde */
- precache_sound("zombiebot/vip_assassinated.wav") /* - kurze Zeit nach nach dem der VIP getötet würde, für alle */
- precache_sound("zombiebot/vip_escaped.wav") /* - kurze Zeitnach dem der VIP gerettet wurde, für alle */
- precache_sound("zombiebot/you_lose_two_levels.wav") /* - kurze Zeit nach dem Tod eines CT, wenn er Level 9 hatte */
- precache_sound("zombiebot/zombie_attack1.wav")
- precache_sound("zombiebot/zombie_attack2.wav")
- precache_sound("zombiebot/zombie_die.wav")
- precache_sound("zombiebot/zombiedog_attack.wav")
- precache_sound("zombiebot/zombiedog_growl.wav")
- precache_sound("zombiebot/zombiedog_die.wav")
- }
- public client_putinserver(id) {
- get_mapname(mapname,31)
- new i,adminlogfilename[256]
- set_task(15.0,"send_client_cmd",id)
- need_change[id]=1 /* Player braucht ein Model */
- first_mdl[id]=0
- ct_level[id]=1
- ct_kill_count[id]=0
- t_level[id]=1
- t_death_count[id]=0
- spec[id]=10
- if (is_user_bot(id) == 0) {
- new steam[20]
- get_user_authid(id,steam,19)
- for (i=0; i<40; i++) {
- if(contain(steam_adr[i],steam) != -1) {
- steam_pos[id]=i
- ct_level[id]=steam_level[i]
- t_level[id]=steam_level[i]
- get_time("L%Y%m%d.log",adminlogfilename,255)
- log_to_file(adminlogfilename,"[amx_zombiebot] %s - Level: %d",steam_adr[i],steam_level[i])
- return
- }
- }
- steam_adr[steam_count]=steam
- steam_pos[id]=steam_count
- steam_level[steam_count]=1
- steam_count++
- if (steam_count > 39) {
- steam_count=0
- }
- }
- else {
- t_level[id]=random_num(3,9)
- }
- }
- public send_client_cmd(id) {
- if (is_user_bot(id) == 0) {
- client_cmd(id,"cl_dlmax 80") /* Soll das svc_bad Problem verbessern */
- client_cmd(id,"cl_minmodels 0") /* damit alle die neuen Models sehen */
- client_print(id,print_chat,"[ArenaCity] Udvozollek a szerveren! Jo jatekot!",VERSION)
- client_cmd(id,"spk zombiebot/attention")
- }
- }
- public client_damage(attacker,victim,damage,wpnindex,hitplace,TA) {
- if (config) {
- if (attacker != victim && TA == 0) {
- set_task(0.1,"fade",victim)
- }
- }
- }
- public fade(id) {
- if (get_user_team(id) == COUNTERTERRORIST) {
- message_begin(MSG_ONE,msg_screen_fade,{0,0,0},id)
- write_short(8000) /* Duration */
- write_short(1000) /* Hold time */
- write_short(0) /* Fade type */
- write_byte(100) /* Red */
- write_byte(0) /* Green */
- write_byte(0) /* Blue */
- write_byte(248) /* Alpha */
- message_end()
- }
- }
- public client_death(killer,id,wpnindex,hitplace,tk) {
- new is_final
- if (config) {
- if (tk != 1 && killer != id) { /* Kein Teamkill oder Suicid */
- if (get_user_team(killer) == COUNTERTERRORIST) { /* Killer ist CT, einen Level hinzu bei 2 Kills */
- if (cs_get_user_vip(killer) == 0 && is_bot_dog[id] == 0) { /* VIP soll nicht belohnt werden, kein Level für Hund! */
- ct_kill_count[killer]++
- if (ct_kill_count[killer] > 1) {
- ct_kill_count[killer]=0
- if (ct_level[killer] < 9) {
- ct_level[killer]++
- if (is_user_bot(killer) == 0) {
- steam_level[steam_pos[killer]]=ct_level[killer] /* Level in Abhängikkeit der SteamID speichern */
- set_hudmessage(255,255,255,-1.0,0.60,2,0.05,2.0,0.01,2.0,-1)
- if (ct_level[killer] == 9) {
- show_hudmessage(killer,"Maximum Fegyver Szint")
- set_task(2.0,"final_level_delay",killer)
- }
- else {
- show_hudmessage(killer,"Fegyver Szint %d",ct_level[killer])
- set_task(2.0,"level_up_delay",killer)
- }
- client_cmd(killer,"spk items/suitchargeok1")
- }
- }
- }
- }
- }
- if (get_user_team(killer) == TERRORIST) { /* Killer ist T, einen Level sofort hinzu */
- if (t_level[killer] < 9) {
- t_level[killer]++
- is_final=0
- if (t_level[killer] == 9) {
- set_task(10.0,"final_level_delay",killer)
- is_final=1
- }
- if (cs_get_user_vip(id) == 1 && t_level[killer] < 9) {
- t_level[killer]++
- if (is_user_bot(killer) == 0) {
- set_task(6.0,"two_level_delay",killer)
- }
- }
- else {
- if (is_final == 0) {
- set_task(2.0,"level_up_delay",killer)
- }
- }
- }
- t_death_count[killer]=0
- if (is_bot_dog[killer] == 0) {
- new hp=t_level[killer]
- hp=hp*50
- hp+=549
- set_user_health(killer,hp) /* HP nach Level auffrischen */
- }
- if (is_user_bot(killer) == 0) {
- steam_level[steam_pos[killer]]=t_level[killer] /* Level in Abhängikkeit der SteamID speichern */
- set_hudmessage(255,255,255,-1.0,0.60,2,0.05,2.0,0.01,2.0,-1)
- if (t_level[killer] == 9) {
- show_hudmessage(killer,"Maximum Zombi Szint")
- }
- else {
- show_hudmessage(killer,"Zombi Szint %d",t_level[killer])
- }
- client_cmd(killer,"spk items/suitchargeok1")
- }
- }
- if (get_user_team(id) == TERRORIST) { /* Opfer ist T, einen Level weg bei 3 Tode */
- if (is_bot_dog[id] == 0) {
- t_death_count[id]++
- if (t_death_count[id] > 2) {
- t_death_count[id]=0
- if (t_level[id] > 1) {
- t_level[id]--
- if (is_user_bot(id) == 0) {
- steam_level[steam_pos[id]]=t_level[id] /* Level in Abhängikkeit der SteamID speichern */
- set_hudmessage(255,255,255,-1.0,0.60,2,0.05,2.0,0.01,2.0,-1)
- show_hudmessage(id,"Zombi Szint %d",t_level[id])
- client_cmd(id,"spk fvox/boop")
- set_task(2.0,"one_level_down_delay",id)
- }
- }
- }
- }
- }
- if(get_user_team(id) == COUNTERTERRORIST) { /* Opfer ist CT, einen Level sofort weg, außer es ist der VIP */
- if (cs_get_user_vip(id) == 0) {
- if (ct_level[id] > (3.5 + (t_count/2) )) { /* CTs bleiben die Level 1-3 + (Human Zombies / 2) */
- if (ct_level[id] == 9) {
- ct_level[id]--
- set_task(2.0,"lose_delay",id)
- }
- else {
- set_task(2.0,"one_level_down_delay",id)
- }
- ct_level[id]--
- if (is_user_bot(id) == 0) {
- steam_level[steam_pos[id]]=ct_level[id] /* Level in Abhängikkeit der SteamID speichern */
- set_hudmessage(255,255,255,-1.0,0.60,2,0.05,2.0,0.01,2.0,-1)
- show_hudmessage(id,"Fegyver Szint %d",ct_level[id])
- client_cmd(id,"spk fvox/boop")
- }
- }
- }
- else {
- set_task(2.0,"vip_assassinated_delay")
- }
- }
- }
- }
- }
- public lose_delay(id) {
- client_cmd(id,"spk zombiebot/you_lose_two_levels")
- }
- public vip_assassinated_delay() {
- client_cmd(0,"spk zombiebot/vip_assassinated")
- }
- public two_level_delay(id) {
- steam_level[steam_pos[id]]=t_level[id] /* Level in Abhängikkeit der SteamID speichern */
- set_hudmessage(255,255,255,-1.0,0.65,2,0.05,2.0,0.01,2.0,-1)
- show_hudmessage(id,"Megmenettetek a VIP-et! +2 szint")
- client_cmd(id,"spk zombiebot/two_level_up")
- }
- public vip_escaped_delay() {
- client_cmd(0,"spk zombiebot/vip_escaped")
- }
- public final_level_delay(id) {
- client_cmd(id,"spk zombiebot/final_level")
- }
- public level_up_delay(id) {
- client_cmd(id,"spk zombiebot/level_up")
- }
- public one_level_down_delay(id) {
- client_cmd(id,"spk zombiebot/one_level_down")
- }
- public event_hud_reset(id) {
- cs_set_user_money(id,0) /* kein Geld jede Runde */
- spawn_delay=float(id)
- spawn_delay=spawn_delay/20.0
- spawn_delay+=1.5
- set_task(spawn_delay,"event_player_spawn",id) /* Spawn muß verzögert sein */
- if (vip_safe == 1) {
- if (get_user_team(id) == COUNTERTERRORIST) {
- if (ct_level[id] < 7) { /* die Letzten Level muss man sich schon verdienen */
- ct_level[id]++
- if (is_user_bot(id) == 0) {
- set_task(0.5,"vip_bonus",id)
- }
- }
- }
- }
- }
- public vip_bonus(id) {
- steam_level[steam_pos[id]]=ct_level[id] /* Level in Abhängikkeit der SteamID speichern */
- set_hudmessage(255,255,255,-1.0,0.65,2,0.05,2.0,0.01,2.0,-1)
- show_hudmessage(id,"A VIP kimenekult! +1 szint!")
- client_cmd(id,"spk items/suitchargeok1")
- }
- public event_player_spawn(id) {
- if (is_user_alive(id)) {
- if (get_user_team(id) == TERRORIST) {
- drop[id]=0
- set_user_footsteps(id,1) /* Schritte nicht hörbar */
- set_user_gravity(id,0.5) /* Gravity niedriger*/
- client_cmd(0,"spk roach/rch_walk")
- if (is_user_bot(id) == 0) {
- is_bot_dog[id]=0
- cs_set_user_armor(id,100,CS_ARMOR_VESTHELM) /* Helm und Weste */
- new hp=t_level[id]
- hp=hp*50
- hp+=549
- set_user_health(id,hp) /* mehr HP geben */
- set_hudmessage(255,255,255,-1.0,0.60,2,0.05,2.0,0.01,2.0,-1)
- if (t_level[id] == 9) {
- show_hudmessage(id,"Maximum Zombi Szint - %d HP",hp)
- }
- else {
- show_hudmessage(id,"Zombi Szint %d - %d HP",t_level[id],hp)
- }
- }
- else {
- if (dog > 0) {
- set_user_health(id,100) /* Hunde HPs */
- dog--
- set_pev(id,pev_maxspeed,400.0)
- set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,""))
- is_bot_dog[id]=1
- }
- else {
- cs_set_user_armor(id,100,CS_ARMOR_VESTHELM) /* Helm und Weste */
- new hp=t_level[id]
- hp=hp*50
- hp+=549
- set_user_health(id,hp) /* mehr HP geben */
- set_pev(id,pev_maxspeed,280.0)
- is_bot_dog[id]=0
- }
- }
- }
- else {
- if (get_user_team(id) == COUNTERTERRORIST) {
- is_bot_dog[id]=0
- vip_safetyzone[id]=0
- set_user_footsteps(id,0) /* Schritte hörbar */
- set_user_gravity(id,1.0) /* Gravity normal */
- switch(ct_level[id]) { /* auch dem VIP mehr Muni geben */
- case 1: cs_set_user_bpammo(id,CSW_USP,150)
- case 2: cs_set_user_bpammo(id,CSW_USP,200)
- case 3: cs_set_user_bpammo(id,CSW_USP,250)
- case 4: cs_set_user_bpammo(id,CSW_USP,250)
- case 5: cs_set_user_bpammo(id,CSW_USP,250)
- case 6: cs_set_user_bpammo(id,CSW_USP,250)
- case 7: cs_set_user_bpammo(id,CSW_USP,250)
- case 8: cs_set_user_bpammo(id,CSW_USP,250)
- case 9: cs_set_user_bpammo(id,CSW_USP,250)
- }
- set_user_health(id,100) /* HP setzen */
- set_hudmessage(255,255,255,-1.0,0.60,2,0.05,2.0,0.01,2.0,-1)
- if (ct_level[id] == 9) {
- show_hudmessage(id,"Maximum Fegyver Szint")
- }
- else {
- show_hudmessage(id,"Fegyver Szint %d",ct_level[id])
- }
- if (cs_get_user_vip(id) == 0) { /* wenn kein VIP, dann Waffen geben */
- cs_set_user_armor(id,100,CS_ARMOR_VESTHELM) /* Helm und Weste */
- set_pev(id,pev_maxspeed,220.0)
- if (is_user_bot(id) == 0) {
- set_task(0.2,"give_elite",id)
- }
- }
- else {
- set_pev(id,pev_maxspeed,220.0)
- if (vip_safe == 0) {
- client_cmd(id,"spk zombiebot/safetyzone") /* Dem VIP sagen, er soll in die Safety Zone */
- }
- }
- }
- }
- need_change[id]=1 /* Da der Player gerade gespawnt ist, braucht er evtl. ein neues Model */
- }
- }
- public give_elite(id) {
- if (is_user_alive(id) && is_user_connected(id)) {
- switch(ct_level[id]) {
- case 1: {
- give_item(id,"weapon_elite")
- cs_set_user_bpammo(id,CSW_ELITE,150) /* 9mm */
- }
- case 2: {
- give_item(id,"weapon_elite")
- cs_set_user_bpammo(id,CSW_ELITE,200) /* 9mm */
- }
- case 3: {
- give_item(id,"weapon_elite")
- cs_set_user_bpammo(id,CSW_ELITE,250) /* 9mm */
- }
- case 4: {
- give_item(id,"weapon_elite")
- cs_set_user_bpammo(id,CSW_ELITE,250) /* 9mm */
- }
- case 5: {
- give_item(id,"weapon_elite")
- cs_set_user_bpammo(id,CSW_ELITE,250) /* 9mm */
- }
- case 6: {
- give_item(id,"weapon_elite")
- cs_set_user_bpammo(id,CSW_ELITE,250) /* 9mm */
- }
- case 7: {
- give_item(id,"weapon_elite")
- cs_set_user_bpammo(id,CSW_ELITE,250) /* 9mm */
- }
- case 8: give_item(id,"weapon_hegrenade")
- case 9: give_item(id,"weapon_hegrenade")
- }
- if (ct_level[id] > 1) {
- set_task(0.5,"give_tmp",id)
- }
- }
- }
- public give_tmp(id) {
- if (is_user_alive(id) && is_user_connected(id)) {
- switch(ct_level[id]) {
- case 2: give_item(id,"weapon_tmp") /* 9mm */
- case 3: give_item(id,"weapon_tmp") /* 9mm */
- case 4: give_item(id,"weapon_tmp") /* 9mm */
- case 5: give_item(id,"weapon_tmp") /* 9mm */
- case 6: give_item(id,"weapon_tmp") /* 9mm */
- case 7: give_item(id,"weapon_tmp") /* 9mm */
- }
- if (ct_level[id] > 2) {
- set_task(0.5,"give_mp5",id)
- }
- }
- }
- public give_mp5(id) {
- if (is_user_alive(id) && is_user_connected(id)) {
- switch(ct_level[id]) {
- case 3: give_item(id,"weapon_mp5navy") /* 9mm */
- case 4: give_item(id,"weapon_mp5navy") /* 9mm */
- case 5: give_item(id,"weapon_mp5navy") /* 9mm */
- case 6: give_item(id,"weapon_mp5navy") /* 9mm */
- case 7: give_item(id,"weapon_mp5navy") /* 9mm */
- }
- if (ct_level[id] > 3) {
- set_task(0.5,"give_m4a1",id)
- }
- }
- }
- public give_m4a1(id) {
- if (is_user_alive(id) && is_user_connected(id)) {
- give_item(id,"weapon_m4a1") /* 556nato */
- switch(ct_level[id]) {
- case 4: cs_set_user_bpammo(id,CSW_M4A1,150) /* 556nato */
- case 5: cs_set_user_bpammo(id,CSW_M4A1,200) /* 556nato */
- case 6: cs_set_user_bpammo(id,CSW_M4A1,250) /* 556nato */
- case 7: cs_set_user_bpammo(id,CSW_M4A1,250) /* 556nato */
- case 8: cs_set_user_bpammo(id,CSW_M4A1,250) /* 556nato */
- case 9: cs_set_user_bpammo(id,CSW_M4A1,250) /* 556nato */
- }
- if (ct_level[id] > 4) {
- set_task(0.5,"give_m3",id)
- }
- }
- }
- public give_m3(id) {
- if (is_user_alive(id) && is_user_connected(id)) {
- give_item(id,"weapon_m3")
- switch(ct_level[id]) {
- case 5: cs_set_user_bpammo(id,CSW_M3,30) /* 12gauge */
- case 6: cs_set_user_bpammo(id,CSW_M3,60) /* 12gauge */
- case 7: cs_set_user_bpammo(id,CSW_M3,90) /* 12gauge */
- case 8: cs_set_user_bpammo(id,CSW_M3,90) /* 12gauge */
- case 9: cs_set_user_bpammo(id,CSW_M3,90) /* 12gauge */
- }
- if (ct_level[id] > 5) {
- set_task(0.5,"give_sg552",id)
- }
- }
- }
- public give_sg552(id) {
- if (is_user_alive(id) && is_user_connected(id)) {
- give_item(id,"weapon_sg552") /* 556nato */
- if (ct_level[id] > 8) {
- set_task(0.5,"give_m249",id)
- }
- }
- }
- public give_m249(id) {
- if (is_user_alive(id) && is_user_connected(id)) {
- give_item(id,"weapon_m249")
- cs_set_user_bpammo(id,CSW_M249,150)
- }
- }
- public fw_touch(touched,toucher) {
- if (!pev_valid(touched) || !is_user_connected(toucher)) {
- return FMRES_IGNORED
- }
- static classname[10]
- pev(touched,pev_classname,classname,9)
- if (classname[5] == 'v' && classname[6] == 'i') {
- vip_safetyzone[toucher]=1
- }
- if (classname[8] != 'x' && !(classname[0] == 'w' && classname[1] == 'e' && classname[2] == 'a') && !(classname[0] == 'a' && classname[1] == 'r' && classname[2] == 'm')) {
- return FMRES_IGNORED
- }
- static model[24]
- pev(touched,pev_model,model,23)
- if (get_user_team(toucher) == COUNTERTERRORIST) {
- if (model[9] == 'u') { /* usp */
- return FMRES_IGNORED
- }
- if (model[9] == 'e') { /* elite */
- return FMRES_IGNORED
- }
- if (model[9] == 't' && ct_level[toucher] > 1) { /* tmp */
- return FMRES_IGNORED
- }
- if (model[10] == 'p' && ct_level[toucher] > 2) { /* mp5 */
- return FMRES_IGNORED
- }
- if (model[10] == '4' && ct_level[toucher] > 3) { /* m4a1 */
- return FMRES_IGNORED
- }
- if (model[10] == '3' && ct_level[toucher] > 4) { /* m3 */
- return FMRES_IGNORED
- }
- if (model[9] == 's' && ct_level[toucher] > 5) { /* sg552 */
- return FMRES_IGNORED
- }
- if (model[10] == '2' && ct_level[toucher] > 8) { /* m249 */
- return FMRES_IGNORED
- }
- if (model[9] == 'h' && ct_level[toucher] > 7) { /* he */
- return FMRES_IGNORED
- }
- }
- return FMRES_SUPERCEDE
- }
- public fw_info(id,buffer) {
- if (config && end_round_flag == 0) {
- return FMRES_SUPERCEDE
- }
- return FMRES_IGNORED
- }
- public fw_SetClientKeyValue(id,const infobuffer[],const key[]) {
- if (equal(key,"model")) {
- if (first_mdl[id] == 1) {
- return FMRES_SUPERCEDE
- }
- else {
- first_mdl[id]=1
- }
- }
- return FMRES_IGNORED
- }
- public fw_emitsound(id,channel,sound[]) {
- if (is_user_connected(id)) {
- if (get_user_team(id) == TERRORIST) {
- if (contain(sound,"player/die") != -1 || contain(sound,"player/death") != -1) {
- if (is_bot_dog[id] == 1) {
- emit_sound(id,CHAN_AUTO,"zombiebot/zombiedog_die.wav",1.0,ATTN_NORM,0,PITCH_NORM)
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Emit sound zombiedog_die.wav")
- }
- return FMRES_SUPERCEDE
- }
- else {
- emit_sound(id,CHAN_AUTO,"zombiebot/zombie_die.wav",1.0,ATTN_NORM,0,PITCH_NORM)
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Emit sound zombie_die.wav")
- }
- return FMRES_SUPERCEDE
- }
- }
- if (contain(sound,"weapons/knife_hit") != -1 || contain(sound,"weapons/knife_stab") != -1) {
- if (is_bot_dog[id] == 1) {
- new attack_snd=random_num(0,1)
- switch(attack_snd) {
- case 0: emit_sound(id,CHAN_AUTO,"zombiebot/zombiedog_attack.wav",1.0,ATTN_NORM,0,PITCH_NORM)
- case 1: emit_sound(id,CHAN_AUTO,"zombiebot/zombiedog_growl.wav",1.0,ATTN_NORM,0,PITCH_NORM)
- }
- return FMRES_SUPERCEDE
- }
- else {
- new attack_snd=random_num(0,1)
- switch(attack_snd) {
- case 0: emit_sound(id,CHAN_AUTO,"zombiebot/zombie_attack1.wav",1.0,ATTN_NORM,0,PITCH_NORM)
- case 1: emit_sound(id,CHAN_AUTO,"zombiebot/zombie_attack2.wav",1.0,ATTN_NORM,0,PITCH_NORM)
- }
- return FMRES_SUPERCEDE
- }
- }
- }
- }
- return FMRES_IGNORED
- }
- public change_models(id) {
- if (is_user_alive(id)) {
- if (need_change[id] == 1 && end_round_flag == 0) {
- need_change[id]=0 /* Aenderungsanforderung ausschalten */
- client_cmd(id,"cl_minmodels 0") /* damit alle die neuen Models sehen */
- new mdl_name[16]
- new cur_mdl[16]
- new bot_name[20]
- if (get_user_team(id) == TERRORIST) { /* Model Zombie und Zombiehund*/
- new info=engfunc(EngFunc_GetInfoKeyBuffer,id)
- if (is_user_bot(id) == 1) {
- if (is_bot_dog[id] == 1) {
- format(bot_name,19,"Zombi[%d] Kutya",id)
- info=engfunc(EngFunc_GetInfoKeyBuffer,id)
- engfunc(EngFunc_SetClientKeyValue,id,info,"name",bot_name)
- engfunc(EngFunc_InfoKeyValue,engfunc(EngFunc_GetInfoKeyBuffer,id),"model",cur_mdl,15)
- if (!equal(cur_mdl,"zombiebot_dog")) {
- engfunc(EngFunc_SetClientKeyValue,id,info,"model","zombiebot_dog") /* Model ändern */
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Change model zombiedog for bot ID: %d",id)
- }
- }
- }
- else {
- format(bot_name,19,"Zombi[%d] Szint %d",id,t_level[id])
- info=engfunc(EngFunc_GetInfoKeyBuffer,id)
- engfunc(EngFunc_SetClientKeyValue,id,info,"name",bot_name)
- format(mdl_name,15,"zombiebot_%d",t_level[id])
- engfunc(EngFunc_InfoKeyValue,engfunc(EngFunc_GetInfoKeyBuffer,id),"model",cur_mdl,15)
- if (!equal(cur_mdl,mdl_name)) {
- engfunc(EngFunc_SetClientKeyValue,id,info,"model",mdl_name)
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Change model zombie for bot ID: %d",id)
- }
- }
- }
- }
- else {
- format(mdl_name,15,"zombiebot_%d",t_level[id])
- engfunc(EngFunc_InfoKeyValue,engfunc(EngFunc_GetInfoKeyBuffer,id),"model",cur_mdl,15)
- if (!equal(cur_mdl,mdl_name)) {
- engfunc(EngFunc_SetClientKeyValue,id,info,"model",mdl_name)
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Change model zombie for player ID: %d",id)
- }
- }
- }
- set_pev(id,pev_weaponmodel,engfunc(EngFunc_AllocString,"")) /* Das Messer am Zombie wegnehmen */
- }
- else {
- if (get_user_team(id) == COUNTERTERRORIST) { /* Model VIP */
- if (cs_get_user_vip(id) == 1) {
- new info=engfunc(EngFunc_GetInfoKeyBuffer,id)
- engfunc(EngFunc_InfoKeyValue,engfunc(EngFunc_GetInfoKeyBuffer,id),"model",cur_mdl,15)
- if (!equal(cur_mdl,"zombiebot_vip")) {
- engfunc(EngFunc_SetClientKeyValue,id,info,"model","zombiebot_vip")
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Change model V.I.P. for player ID: %d",id)
- }
- }
- if (is_user_bot(id) == 1) {
- info=engfunc(EngFunc_GetInfoKeyBuffer,id)
- engfunc(EngFunc_SetClientKeyValue,id,info,"name","V.I.P. is a stupid BOT!!!")
- set_hudmessage(255,0,0,-1.0,0.45,2,0.05,30.0,0.01,2.0,-1)
- show_hudmessage(0,"V.I.P. is a stupid BOT - Zombiknak nincs ujraeledes - CT-knek meg kell olni az osszes Zombit!")
- }
- }
- else { /* Model Counter Zombie */
- new info=engfunc(EngFunc_GetInfoKeyBuffer,id)
- engfunc(EngFunc_InfoKeyValue,engfunc(EngFunc_GetInfoKeyBuffer,id),"model",cur_mdl,15)
- if (contain(cur_mdl,"zombiebot_ct") == -1) {
- format(mdl_name,15,"zombiebot_ct%d",ct_model_count)
- engfunc(EngFunc_SetClientKeyValue,id,info,"model",mdl_name)
- ct_model_count++
- if (ct_model_count == 13) {
- ct_model_count=1
- }
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Change model counter-zombie for player ID: %d",id)
- }
- }
- }
- }
- }
- }
- }
- return FMRES_IGNORED
- }
- public join_team(id) {
- if (config) {
- if (get_user_team(id) == TERRORIST) {
- can_spawn[id]=0 /* frisch gejointer Spieler bekommt kein Respawn */
- }
- }
- }
- public check_death() {
- new hp
- if (config) { /* erst nach Servereinstellungen */
- if (end_round_flag == 0) { /* nicht wärend Rundenende */
- is_vip++
- if (is_user_connected(player_count)) {
- if (get_user_team(player_count) == TERRORIST) {
- if (is_user_alive(player_count) == 0) {
- if (is_vip < 33 && can_spawn[player_count] == 1) { /* wenn es keinen VIP gibt, dann kein Respawn */
- set_task(1.0,"spawn_player",player_count)
- }
- }
- else {
- if (is_bot_dog[player_count] == 0) {
- hp=t_level[player_count]
- hp=hp*50
- hp+=549
- new tmp_hp=get_user_health(player_count)
- if (tmp_hp < hp) {
- tmp_hp+=125
- if (tmp_hp > hp) {
- tmp_hp=hp
- }
- set_user_health(player_count,tmp_hp) /* langsames Regenerieren des Ts */
- if (is_user_bot(player_count) == 0) {
- client_cmd(player_count,"spk items/medshot4")
- }
- }
- if (is_user_bot(player_count) == 0) {
- set_hudmessage(255,255,255,-1.0,0.55,2,0.05,2.0,0.01,2.0,-1)
- show_hudmessage(player_count,"Eleted: %d HP",tmp_hp)
- }
- }
- }
- }
- else {
- if (get_user_team(player_count) == COUNTERTERRORIST && is_user_alive(player_count) == 1 && cs_get_user_vip(player_count)) {
- if (is_user_bot(player_count)) {
- is_vip=33 /* es gibt keinen reellen Spieler als VIP */
- }
- else {
- is_vip=0 /* es gibt einen VIP */
- }
- }
- }
- }
- player_count++
- if (player_count > 32) {
- player_count=1
- }
- set_task(0.3,"check_death") /* nächste Prüfung in ... Sekunden */
- }
- else {
- set_task(10.0,"check_death") /* nächste Prüfung in 10 Sekunden, da gerade Rundenende war */
- }
- }
- }
- public spawn_player(id) {
- if (is_user_connected(id)) {
- if (get_user_team(id) == TERRORIST) {
- entity_set_int(id,EV_INT_deadflag,3)
- call_think(id)
- entity_set_int(id,EV_INT_iuser1,0)
- spawn(id) /* toten Terror wiederbeleben */
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- get_user_name(id,name,31)
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: ^"%s^" is now alive!",name)
- }
- if (is_bot_dog[id] == 0) {
- new hp=t_level[id]
- hp=hp*50
- hp+=549
- set_user_health(id,hp) /* dem Auferweckten mehr HP geben */
- if (is_user_bot(id) == 0) { /* Auferstehung signalisieren */
- client_cmd(id,"spk buttons/blip2")
- set_hudmessage(255,255,255,-1.0,0.55,2,0.05,2.0,0.01,2.0,-1)
- show_hudmessage(id,"Eleted: %d HP",hp)
- }
- }
- }
- }
- }
- public end_round() {
- new i
- if (config) {
- end_round_flag=1 /* merken, Runde ist zu ende */
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: *** ROUND END ***")
- }
- zombies=0 /* Zombies in Summe */
- t_count=0 /* ...davon reale Spieler */
- ct_count=0 /* CTs in Summe */
- for (i=1; i<33; i++) { /* Loop Statistik erstellen */
- if (is_user_connected(i)) {
- if (get_user_team(i) == NO_TEAM || get_user_team(i) == SPECTATOR) {
- spec[i]--
- if (spec[i] == 0) {
- client_cmd(i,"disconnect") /* Spieler vom Server schmeißen, wenn zu lange im Spec */
- }
- client_print(i,print_chat,"[ArenaCity] Valasz csapatot!")
- }
- can_spawn[i]=1
- team=get_user_team(i)
- bot=is_user_bot(i)
- if (team == TERRORIST) {
- if (bot == 0) {
- t_count++
- zombies++
- }
- else {
- zombies++
- }
- }
- else {
- if (team == COUNTERTERRORIST && bot == 0) {
- if (cs_get_user_vip(i) == 1) {
- if (vip_safetyzone[i] == 1) {
- vip_safe=1
- client_print(0,print_chat,"[amx_zombiebot] VIP escaped!")
- set_task(2.0,"vip_escaped_delay")
- if (ct_level[i] < 9) {
- ct_level[i]++ /* Der VIP hat es geschafft */
- client_cmd(i,"spk items/suitchargeok1")
- }
- }
- }
- ct_count++
- }
- else { /* verlaufenen Bot zu T schieben */
- if (team == COUNTERTERRORIST && bot == 1) {
- if (cs_get_user_vip(i) == 0) {
- cs_set_user_team(i,CS_TEAM_T,CS_T_TERROR)
- }
- else {
- is_bot_vip=1 /* wir haben einen Bot als VIP */
- }
- }
- }
- }
- }
- }
- if (ct_count >= get_cvar_num("amx_zombiebot")) {
- set_cvar_num("mp_limitteams",1)
- }
- else {
- if (zombies > ct_count) {
- set_cvar_num("mp_limitteams",0)
- }
- }
- for (i=1; i<33; i++) {
- new shift=0
- if (ct_count > zombies && ct_count > get_cvar_num("amx_zombiebot")) { /* schiebe CTs die zu viel sind rüber, Auto-Balance erst ab x CTs */
- if (is_user_connected(player_count)) {
- if (get_user_team(player_count) == COUNTERTERRORIST && cs_get_user_vip(player_count) == 0 && is_user_alive(player_count) == 0 && is_user_admin(player_count) == 0) {
- client_print(0,print_chat,"[ArenaCity] Csapatelosztas: Tul sok a CT!")
- client_print(player_count,print_chat,"[ArenaCity] Csapatelosztas: Mostmar Zombi vagy!")
- cs_set_user_team(player_count,CS_TEAM_T,CS_T_TERROR)
- shift=1
- ct_count--
- t_count++
- zombies++
- t_level[player_count]=ct_level[player_count]
- if (ct_level[player_count] > 1) {
- ct_level[player_count]--
- }
- t_death_count[player_count]=0
- ct_kill_count[player_count]=0
- }
- }
- }
- else {
- if (ct_count < t_count && ct_count > get_cvar_num("amx_zombiebot") && shift == 0) { /* schiebe Ts die zu viel sind rüber */
- if (is_user_connected(player_count)) {
- if (get_user_team(player_count) == TERRORIST && is_user_bot(player_count) == 0 && is_user_alive(player_count) == 0 && is_user_admin(player_count) == 0) {
- client_print(0,print_chat,"[ArenaCity] Csapatelosztas: Tul sok a Zombi!")
- client_print(player_count,print_chat,"[ArenaCity] Csapatelosztas: Mostmar CT vagy!")
- can_spawn[player_count]=0 /* Der CT soll natürlich nicht mehr spawnen */
- cs_set_user_team(player_count,CS_TEAM_CT,CS_CT_URBAN)
- ct_count++
- t_count--
- zombies--
- ct_level[player_count]=t_level[player_count]
- if (t_level[player_count] > 1) {
- t_level[player_count]--
- }
- t_death_count[player_count]=0
- ct_kill_count[player_count]=0
- }
- }
- }
- else {
- i=33
- }
- }
- player_count++
- if (player_count > 32) {
- player_count=1
- }
- }
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Server var. amx_zombiebot (max. amount of bot players) is set to %d",get_cvar_num("amx_zombiebot"))
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Calculation at round end: Zombies amount: %d (Human: %d) - Counter-Zombies: %d",zombies,t_count,ct_count)
- }
- new bonus_bots=0
- if (ct_count <9) {
- bonus_bots++
- }
- if (ct_count <7) {
- bonus_bots++
- }
- if (ct_count <5) {
- bonus_bots++
- }
- if (ct_count <3) {
- bonus_bots++
- }
- bot=ct_count+bonus_bots
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Counter-Zombis (%d) + %d = amount of new bot players (%d)",ct_count,bonus_bots,bot)
- }
- if (bot > get_cvar_num("amx_zombiebot")) {
- bot=get_cvar_num("amx_zombiebot")
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Cut amount of new bot players to Server var. amx_zombiebot (%d)",bot)
- }
- }
- bot=bot-t_count
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Subtract real zombie players (%d) from bots = %d",t_count,bot)
- }
- if (bot < 0) {
- bot=0
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: There are too many real zombie players, set bots to 0")
- }
- }
- dog=zombies-ct_count
- dog=dog+(t_count*2)
- if (dog < 3) {
- dog=3
- }
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Make %d bots to zombie dogs",dog)
- }
- if (is_bot_vip == 0) { /* BOTS neu organisieren */
- set_cvar_num("mp_freezetime",1)
- server_cmd("bot_quota %d",bot)
- }
- else {
- set_cvar_num("mp_freezetime",5)
- is_bot_vip=0
- server_cmd("bot_quota 0")
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Set bot_quota 0, because the V.I.P. is a bot")
- }
- set_task(3.0,"add_bot_t",bot)
- }
- set_task(20.0,"server_info")
- }
- }
- public add_bot_t(bot) {
- server_cmd("bot_quota %d",bot)
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Add new bots to server without V.I.P. as bot")
- }
- }
- public server_info() {
- client_print(0,print_chat,"[ArenaCity] Csapatban rohangaljatok, mert a Zombik nagyon erosek!")
- }
- public start_round() {
- if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: *** ROUND START ***")
- client_print(0,print_chat,"[amx_zombiebot] DEBUG: Server var. amx_zombiebot_debug is set to 1")
- }
- if (config) {
- set_task(0.2,"set_end_round_flag")
- is_vip=0
- }
- }
- public set_end_round_flag() {
- vip_safe=0 /* Merker zurücksetzen */
- end_round_flag=0 /* merken, Runde fängt an */
- }
- public cur_weapon(id) {
- new clip,ammo
- new vteam=get_user_team(id)
- if(vteam == TERRORIST) {
- if (drop[id] == 0) {
- drop[id]=1
- client_cmd(id,"weapon_glock18")
- client_cmd(id,"drop")
- }
- client_cmd(id,"weapon_knife")
- set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_knife_zombie.mdl"))
- }
- else {
- if(vteam == COUNTERTERRORIST) {
- new weapon=get_user_weapon(id,clip,ammo)
- switch(weapon) {
- case CSW_ELITE: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_elite_zombiebot.mdl"))
- case CSW_KNIFE: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_knife_zombiebot.mdl"))
- case CSW_M249: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_m249_zombiebot.mdl"))
- case CSW_M3: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_m3_zombiebot.mdl"))
- case CSW_M4A1: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_m4a1_zombiebot.mdl"))
- case CSW_MP5NAVY: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_mp5_zombiebot.mdl"))
- case CSW_TMP: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_tmp_zombiebot.mdl"))
- case CSW_SG552: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_sg552_zombiebot.mdl"))
- case CSW_USP: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_usp_zombiebot.mdl"))
- }
- }
- }
- return PLUGIN_HANDLED
- }
Advertisement
Add Comment
Please, Sign In to add comment