hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.23. 12:51



Jelenlévő felhasználók

Jelenleg 168 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 167 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Zombi Escape [VIP]
HozzászólásElküldve: 2013.04.06. 23:45 
Offline
Tud valamit

Csatlakozott: 2012.03.17. 23:32
Hozzászólások: 122
Megköszönt másnak: 3 alkalommal
Hali! Valaki ezt le tudná fordítani (csak az angol részt kell)
Lang nincs!
Ui.: "[amx_zombiebot]" helyett legyen az hogy "<<eb@>>"


Csatolmány:
amx_zombiebot.sma [41.7 KiB]
Letöltve 75 alkalommal.

_________________
Konfigolt szerverem:
[kozep]Kép[/kozep]

<<eb@>> Jailbreak : 94.199.183.212:27001


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Zombi Escape [VIP]
HozzászólásElküldve: 2013.04.07. 12:19 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2011.09.18. 13:01
Hozzászólások: 4271
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 514 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. /* amx_zombiebot */
  2.  
  3. /* Plugin by uPd4t3d Data */
  4. /* Use this plugin with my map "as_resident_evil" and Counter-Strike Condition Zero */
  5. /* This plugin is designed for as-maps only */
  6.  
  7. #include <amxmisc>
  8. #include <amxmodx>
  9. #include <cstrike>
  10. #include <engine>
  11. #include <fakemeta>
  12. #include <fun>
  13.  
  14. #define NO_TEAM 0
  15. #define TERRORIST 1
  16. #define COUNTERTERRORIST 2
  17. #define SPECTATOR 3
  18.  
  19. #define VERSION "0.93 [2010-04-12]"
  20.  
  21. /* Use this plugin only with this map(s)... */
  22. new zombie_maps[]="as_resident_evil,as_resident_evil_siege"
  23.  
  24. new team /* speichert welches Team */
  25. new bot /* speichert ob es ein Bot ist */
  26. new dog /* Wie viele Hunde */
  27. new name[32] /* speichert den Namen eines Spielers */
  28. new zombies=0 /* zählt die Anzahl der Zombies */
  29. new t_count=0 /* zählt Ts ohne Bots */
  30. new ct_count=0 /* zählt CTs ohne Bots */
  31. new player_count=1 /* Zeiger auf Player der geprüft werden soll */
  32. new ct_model_count=1 /* Zeiger auf das Model eines CT */
  33. new end_round_flag=1 /* Flag, ob Rundenende ist */
  34. new first_mdl[33] /* Flag, ob das erste Mal ein Model gesetzt wird */
  35. new need_change[33] /* speichert, ob das Model gewechselt werden muß */
  36. new mapname[32] /* speichert den Namen der Map */
  37. new Float:spawn_delay=3.0 /* Verzögerung beim spawnen */
  38. new is_vip=0 /* Variable um zu kucken, ob ein VIP lebt */
  39. new is_bot_vip=0 /* falls ein Bot sich verlaufen hat */
  40. new is_bot_dog[33] /* Der Bot ist ein Hund */
  41. new vip_safe=-1 /* wenn der VIP es geschafft hat */
  42. new vip_safetyzone[33] /* befindet sich der Spieler in der Safety-Zone */
  43. new can_spawn[33] /* speichert ob Spieler spawnen darf! */
  44. new config=0 /* speichert ob der Server konfiguriert wurde */
  45. new ct_level[33] /* Level CT */
  46. new ct_kill_count[33] /* zählt die Kills eines CTs im Level */
  47. new t_level[33] /* Level T */
  48. new t_death_count[33] /* zählt die Tode eines Ts im Level */
  49. new drop[33] /* Info, ob T Waffe weggeschmissen hat */
  50. new spec[33] /* Info, wie lange ein Spieler Spectator ist */
  51. new steam_count=0 /* Zeiger auf die nächste zu vergebene Position in der Steam-Liste */
  52. new steam_adr[40][20] /* Liste mit SteamIDs der Spieler */
  53. new steam_level[40] /* Level des Spielers zur SteamID */
  54. new steam_pos[33] /* Slot des Spielers, zeigt auf die Pos. der Steam-Liste */
  55. new msg_screen_fade
  56.  
  57. public plugin_init() {
  58. register_plugin("amx_zombiebot",VERSION,"uPd4t3d Data")
  59. register_cvar("amx_zombiebot_version",VERSION,FCVAR_SERVER)
  60. set_cvar_string("amx_zombiebot_version",VERSION)
  61. register_cvar("amx_zombiebot","12") /* Anzahl der Bots im T-Team */
  62. register_cvar("amx_zombiebot_debug","0") /* Debug- Infos */
  63. config=0 /* Server ist noch nicht konfiguriert */
  64. msg_screen_fade=get_user_msgid("ScreenFade")
  65. get_mapname(mapname,31)
  66. if (containi(zombie_maps,mapname) != -1) { /* ..nur bei Zombiemap */
  67. register_concmd("amx_zombiebot_level","set_level",ADMIN_VOTE,"- add level for an admin")
  68. register_concmd("amx_zombiebot_weapon","admin_weapon",ADMIN_VOTE,"- give admin weapons")
  69. register_logevent("start_round",2,"0=World triggered","1=Round_Start") /* ..wenn die Runde anfängt */
  70. register_logevent("end_round",2,"0=World triggered","1=Round_End") /* ..wenn die Runde zu Ende ist */
  71. register_event("CurWeapon","cur_weapon","be","1=1") /* ..wenn jemand eine Waffe wählt */
  72. register_event("ResetHUD","event_hud_reset","be") /* Aufruf je Spieler am Rundenstart */
  73. register_clcmd("jointeam","join_team") /* ..wenn jemand einem Team beitritt */
  74. register_forward(FM_ClientUserInfoChanged,"fw_info") /* Weiterleitung Info Changed */
  75. register_forward(FM_Touch,"fw_touch") /* wenn ein Spieler etwas berührt */
  76. register_forward(FM_PlayerPostThink,"change_models") /* Models ändern */
  77. register_forward(FM_SetClientKeyValue,"fw_SetClientKeyValue" ) /* Verhindern, dass die Engine Models zurück setzt */
  78. register_forward(FM_EmitSound,"fw_emitsound") /* Töne abändern */
  79. server_cmd("bot_quota 0") /* Alle CZ-Bots vom Server schmeißen */
  80. set_task(10.0,"server_config")
  81. }
  82. }
  83.  
  84. public set_level(id,level,cid){
  85. if (!cmd_access(id,level,cid,1)){
  86. return PLUGIN_HANDLED
  87. }
  88. if (get_user_team(id) == COUNTERTERRORIST) {
  89. if (ct_level[id] < 9) {
  90. ct_level[id]++
  91. client_cmd(id,"spk items/suitchargeok1")
  92. }
  93. }
  94. if (get_user_team(id) == TERRORIST) {
  95. if (t_level[id] < 9) {
  96. t_level[id]++
  97. client_cmd(id,"spk items/suitchargeok1")
  98. }
  99. }
  100. return PLUGIN_HANDLED
  101. }
  102.  
  103. public admin_weapon(id,level,cid){
  104. if (!cmd_access(id,level,cid,1)){
  105. return PLUGIN_HANDLED
  106. }
  107. if (is_user_alive(id) && is_user_connected(id)) {
  108. give_item(id,"weapon_m4a1")
  109. cs_set_user_bpammo(id,CSW_M4A1,250)
  110. give_item(id,"weapon_ak47")
  111. cs_set_user_bpammo(id,CSW_AK47,250)
  112. give_item(id,"weapon_deagle")
  113. cs_set_user_bpammo(id,CSW_DEAGLE,250)
  114. client_cmd(id,"spk items/suitchargeok1")
  115. }
  116. return PLUGIN_HANDLED
  117. }
  118.  
  119. public server_config() {
  120. server_cmd("bot_difficulty 3")
  121. server_cmd("bot_allow_grenades 0")
  122. server_cmd("bot_allow_machine_guns 0")
  123. server_cmd("bot_allow_pistols 0")
  124. server_cmd("bot_allow_rifles 0")
  125. server_cmd("bot_allow_rogues 0")
  126. server_cmd("bot_allow_shield 0")
  127. server_cmd("bot_allow_shotguns 0")
  128. server_cmd("bot_allow_snipers 0")
  129. server_cmd("bot_allow_sub_machine_guns 0")
  130. server_cmd("bot_chatter off")
  131. server_cmd("bot_join_team t")
  132. server_cmd("bot_walk 0")
  133. server_cmd("bot_zombie 0")
  134. server_cmd("bot_stop 0")
  135. server_cmd("bot_quota 2")
  136. set_cvar_num("mp_forcecamera",0)
  137. set_cvar_num("mp_forcechasecam",0)
  138. set_cvar_num("mp_limitteams",1)
  139. set_cvar_num("mp_autoteambalance",0)
  140. set_cvar_num("mp_flashlight",0)
  141. set_cvar_num("mp_freezetime",1)
  142. set_cvar_num("allow_spectators",1)
  143. set_cvar_num("decalfrequency",300)
  144. set_cvar_float("mp_roundtime",3.5)
  145. set_cvar_num("sv_allowdownload",0)
  146. set_cvar_num("sv_timeout",20)
  147. set_cvar_num("sv_maxspeed",400)
  148. set_cvar_num("sv_restartround",1)
  149. config=1 /* Server wurde konfiguriert */
  150. set_task(3.0,"check_death") /* Prüfung aktivieren */
  151. }
  152.  
  153. public plugin_precache() {
  154. get_mapname(mapname,31)
  155. if (containi(zombie_maps,mapname) != -1) { /* Precaches vermeiden, wenn keine Zombiemap */
  156. precache_model("models/player/zombiebot_1/zombiebot_1.mdl")
  157. precache_model("models/player/zombiebot_2/zombiebot_2.mdl")
  158. precache_model("models/player/zombiebot_3/zombiebot_3.mdl")
  159. precache_model("models/player/zombiebot_4/zombiebot_4.mdl")
  160. precache_model("models/player/zombiebot_5/zombiebot_5.mdl")
  161. precache_model("models/player/zombiebot_6/zombiebot_6.mdl")
  162. precache_model("models/player/zombiebot_7/zombiebot_7.mdl")
  163. precache_model("models/player/zombiebot_8/zombiebot_8.mdl")
  164. precache_model("models/player/zombiebot_9/zombiebot_9.mdl")
  165. precache_model("models/player/zombiebot_ct1/zombiebot_ct1.mdl")
  166. precache_model("models/player/zombiebot_ct2/zombiebot_ct2.mdl")
  167. precache_model("models/player/zombiebot_ct3/zombiebot_ct3.mdl")
  168. precache_model("models/player/zombiebot_ct4/zombiebot_ct4.mdl")
  169. precache_model("models/player/zombiebot_ct5/zombiebot_ct5.mdl")
  170. precache_model("models/player/zombiebot_ct6/zombiebot_ct6.mdl")
  171. precache_model("models/player/zombiebot_ct7/zombiebot_ct7.mdl")
  172. precache_model("models/player/zombiebot_ct8/zombiebot_ct8.mdl")
  173. precache_model("models/player/zombiebot_ct9/zombiebot_ct9.mdl")
  174. precache_model("models/player/zombiebot_ct10/zombiebot_ct10.mdl")
  175. precache_model("models/player/zombiebot_ct11/zombiebot_ct11.mdl")
  176. precache_model("models/player/zombiebot_ct12/zombiebot_ct12.mdl")
  177. precache_model("models/player/zombiebot_dog/zombiebot_dog.mdl")
  178. precache_model("models/player/zombiebot_vip/zombiebot_vip.mdl")
  179. precache_model("models/v_knife_zombie.mdl")
  180. precache_model("models/v_elite_zombiebot.mdl")
  181. precache_model("models/v_knife_zombiebot.mdl")
  182. precache_model("models/v_m249_zombiebot.mdl")
  183. precache_model("models/v_m3_zombiebot.mdl")
  184. precache_model("models/v_m4a1_zombiebot.mdl")
  185. precache_model("models/v_mp5_zombiebot.mdl")
  186. precache_model("models/v_tmp_zombiebot.mdl")
  187. precache_model("models/v_sg552_zombiebot.mdl")
  188. precache_model("models/v_usp_zombiebot.mdl")
  189. precache_sound("weapons/hammerback.wav")
  190. precache_sound("weapons/leftmagin.wav")
  191. precache_sound("weapons/leftmagout.wav")
  192. precache_sound("weapons/m249_boltpull.wav")
  193. precache_sound("weapons/m4a1_boltpull.wav")
  194. precache_sound("weapons/magbash.wav")
  195. precache_sound("weapons/ready.wav")
  196. precache_sound("weapons/rightmagin.wav")
  197. precache_sound("weapons/rightmagout.wav")
  198. precache_sound("weapons/sliderelease.wav")
  199. precache_sound("zombiebot/attention.wav") /* - 15 Sek nach dem Betreten des Servers */
  200. precache_sound("zombiebot/final_level.wav") /* - sofort beim Erreichen des Final Level */
  201. precache_sound("zombiebot/level_up.wav")
  202. precache_sound("zombiebot/one_level_down.wav")
  203. precache_sound("zombiebot/safetyzone.wav") /* - ca 2-5 Sek. nach dem Spawn gegenüber dem VIP */
  204. 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 */
  205. precache_sound("zombiebot/vip_assassinated.wav") /* - kurze Zeit nach nach dem der VIP getötet würde, für alle */
  206. precache_sound("zombiebot/vip_escaped.wav") /* - kurze Zeitnach dem der VIP gerettet wurde, für alle */
  207. precache_sound("zombiebot/you_lose_two_levels.wav") /* - kurze Zeit nach dem Tod eines CT, wenn er Level 9 hatte */
  208. precache_sound("zombiebot/zombie_attack1.wav")
  209. precache_sound("zombiebot/zombie_attack2.wav")
  210. precache_sound("zombiebot/zombie_die.wav")
  211. precache_sound("zombiebot/zombiedog_attack.wav")
  212. precache_sound("zombiebot/zombiedog_growl.wav")
  213. precache_sound("zombiebot/zombiedog_die.wav")
  214. }
  215. }
  216.  
  217. public client_putinserver(id) {
  218. get_mapname(mapname,31)
  219. if (containi(zombie_maps,mapname) != -1) {
  220. new i,adminlogfilename[256]
  221. set_task(15.0,"send_client_cmd",id)
  222. need_change[id]=1 /* Player braucht ein Model */
  223. first_mdl[id]=0
  224. ct_level[id]=1
  225. ct_kill_count[id]=0
  226. t_level[id]=1
  227. t_death_count[id]=0
  228. spec[id]=10
  229. if (is_user_bot(id) == 0) {
  230. new steam[20]
  231. get_user_authid(id,steam,19)
  232. for (i=0; i<40; i++) {
  233. if(contain(steam_adr[i],steam) != -1) {
  234. steam_pos[id]=i
  235. ct_level[id]=steam_level[i]
  236. t_level[id]=steam_level[i]
  237. get_time("L%Y%m%d.log",adminlogfilename,255)
  238. log_to_file(adminlogfilename,"[<<eb@>>] %s - Level: %d",steam_adr[i],steam_level[i])
  239. return
  240. }
  241. }
  242. steam_adr[steam_count]=steam
  243. steam_pos[id]=steam_count
  244. steam_level[steam_count]=1
  245. steam_count++
  246. if (steam_count > 39) {
  247. steam_count=0
  248. }
  249. }
  250. else {
  251. t_level[id]=random_num(3,9)
  252. }
  253. }
  254. }
  255.  
  256. public send_client_cmd(id) {
  257. if (is_user_bot(id) == 0) {
  258. client_cmd(id,"cl_dlmax 80") /* Soll das svc_bad Problem verbessern */
  259. client_cmd(id,"cl_minmodels 0") /* damit alle die neuen Models sehen */
  260. client_print(id,print_chat,"[<<eb@>>] Version %s - coded by uPd4t3d Data - visit www.respawnpoint.de",VERSION)
  261. client_cmd(id,"spk zombiebot/attention")
  262. }
  263. }
  264.  
  265. public client_damage(attacker,victim,damage,wpnindex,hitplace,TA) {
  266. if (config) {
  267. if (attacker != victim && TA == 0) {
  268. set_task(0.1,"fade",victim)
  269. }
  270. }
  271. }
  272.  
  273. public fade(id) {
  274. if (get_user_team(id) == COUNTERTERRORIST) {
  275. message_begin(MSG_ONE,msg_screen_fade,{0,0,0},id)
  276. write_short(8000) /* Duration */
  277. write_short(1000) /* Hold time */
  278. write_short(0) /* Fade type */
  279. write_byte(100) /* Red */
  280. write_byte(0) /* Green */
  281. write_byte(0) /* Blue */
  282. write_byte(248) /* Alpha */
  283. message_end()
  284. }
  285. }
  286.  
  287. public client_death(killer,id,wpnindex,hitplace,tk) {
  288. new is_final
  289. if (config) {
  290. if (tk != 1 && killer != id) { /* Kein Teamkill oder Suicid */
  291. if (get_user_team(killer) == COUNTERTERRORIST) { /* Killer ist CT, einen Level hinzu bei 2 Kills */
  292. if (cs_get_user_vip(killer) == 0 && is_bot_dog[id] == 0) { /* VIP soll nicht belohnt werden, kein Level für Hund! */
  293. ct_kill_count[killer]++
  294. if (ct_kill_count[killer] > 1) {
  295. ct_kill_count[killer]=0
  296. if (ct_level[killer] < 9) {
  297. ct_level[killer]++
  298. if (is_user_bot(killer) == 0) {
  299. steam_level[steam_pos[killer]]=ct_level[killer] /* Level in Abhängikkeit der SteamID speichern */
  300. set_hudmessage(255,255,255,-1.0,0.60,2,0.05,2.0,0.01,2.0,-1)
  301. if (ct_level[killer] == 9) {
  302. show_hudmessage(killer,"COUNTER-ZOMBIE FINAL LEVEL")
  303. set_task(2.0,"final_level_delay",killer)
  304. }
  305. else {
  306. show_hudmessage(killer,"COUNTER-ZOMBIE LEVEL %d",ct_level[killer])
  307. set_task(2.0,"level_up_delay",killer)
  308. }
  309. client_cmd(killer,"spk items/suitchargeok1")
  310. }
  311. }
  312. }
  313. }
  314. }
  315. if (get_user_team(killer) == TERRORIST) { /* Killer ist T, einen Level sofort hinzu */
  316. if (t_level[killer] < 9) {
  317. t_level[killer]++
  318. is_final=0
  319. if (t_level[killer] == 9) {
  320. set_task(10.0,"final_level_delay",killer)
  321. is_final=1
  322. }
  323. if (cs_get_user_vip(id) == 1 && t_level[killer] < 9) {
  324. t_level[killer]++
  325. if (is_user_bot(killer) == 0) {
  326. set_task(6.0,"two_level_delay",killer)
  327. }
  328. }
  329. else {
  330. if (is_final == 0) {
  331. set_task(2.0,"level_up_delay",killer)
  332. }
  333. }
  334. }
  335. t_death_count[killer]=0
  336. if (is_bot_dog[killer] == 0) {
  337. new hp=t_level[killer]
  338. hp=hp*50
  339. hp+=549
  340. set_user_health(killer,hp) /* HP nach Level auffrischen */
  341. }
  342. if (is_user_bot(killer) == 0) {
  343. steam_level[steam_pos[killer]]=t_level[killer] /* Level in Abhängikkeit der SteamID speichern */
  344. set_hudmessage(255,255,255,-1.0,0.60,2,0.05,2.0,0.01,2.0,-1)
  345. if (t_level[killer] == 9) {
  346. show_hudmessage(killer,"ZOMBIE FINAL LEVEL")
  347. }
  348. else {
  349. show_hudmessage(killer,"ZOMBIE LEVEL %d",t_level[killer])
  350. }
  351. client_cmd(killer,"spk items/suitchargeok1")
  352. }
  353. }
  354. if (get_user_team(id) == TERRORIST) { /* Opfer ist T, einen Level weg bei 3 Tode */
  355. if (is_bot_dog[id] == 0) {
  356. t_death_count[id]++
  357. if (t_death_count[id] > 2) {
  358. t_death_count[id]=0
  359. if (t_level[id] > 1) {
  360. t_level[id]--
  361. if (is_user_bot(id) == 0) {
  362. steam_level[steam_pos[id]]=t_level[id] /* Level in Abhängikkeit der SteamID speichern */
  363. set_hudmessage(255,255,255,-1.0,0.60,2,0.05,2.0,0.01,2.0,-1)
  364. show_hudmessage(id,"ZOMBIE LEVEL %d",t_level[id])
  365. client_cmd(id,"spk fvox/boop")
  366. set_task(2.0,"one_level_down_delay",id)
  367. }
  368. }
  369. }
  370. }
  371. }
  372. if(get_user_team(id) == COUNTERTERRORIST) { /* Opfer ist CT, einen Level sofort weg, außer es ist der VIP */
  373. if (cs_get_user_vip(id) == 0) {
  374. if (ct_level[id] > (3.5 + (t_count/2) )) { /* CTs bleiben die Level 1-3 + (Human Zombies / 2) */
  375. if (ct_level[id] == 9) {
  376. ct_level[id]--
  377. set_task(2.0,"lose_delay",id)
  378. }
  379. else {
  380. set_task(2.0,"one_level_down_delay",id)
  381. }
  382. ct_level[id]--
  383. if (is_user_bot(id) == 0) {
  384. steam_level[steam_pos[id]]=ct_level[id] /* Level in Abhängikkeit der SteamID speichern */
  385. set_hudmessage(255,255,255,-1.0,0.60,2,0.05,2.0,0.01,2.0,-1)
  386. show_hudmessage(id,"COUNTER-ZOMBIE LEVEL %d",ct_level[id])
  387. client_cmd(id,"spk fvox/boop")
  388. }
  389. }
  390. }
  391. else {
  392. set_task(2.0,"vip_assassinated_delay")
  393. }
  394. }
  395. }
  396. }
  397. }
  398.  
  399. public lose_delay(id) {
  400. client_cmd(id,"spk zombiebot/you_lose_two_levels")
  401. }
  402.  
  403. public vip_assassinated_delay() {
  404. client_cmd(0,"spk zombiebot/vip_assassinated")
  405. }
  406.  
  407. public two_level_delay(id) {
  408. steam_level[steam_pos[id]]=t_level[id] /* Level in Abhängikkeit der SteamID speichern */
  409. set_hudmessage(255,255,255,-1.0,0.65,2,0.05,2.0,0.01,2.0,-1)
  410. show_hudmessage(id,"Two level up for killing the V.I.P.")
  411. client_cmd(id,"spk zombiebot/two_level_up")
  412. }
  413.  
  414. public vip_escaped_delay() {
  415. client_cmd(0,"spk zombiebot/vip_escaped")
  416. }
  417.  
  418. public final_level_delay(id) {
  419. client_cmd(id,"spk zombiebot/final_level")
  420. }
  421.  
  422. public level_up_delay(id) {
  423. client_cmd(id,"spk zombiebot/level_up")
  424. }
  425.  
  426. public one_level_down_delay(id) {
  427. client_cmd(id,"spk zombiebot/one_level_down")
  428. }
  429.  
  430. public event_hud_reset(id) {
  431. cs_set_user_money(id,0) /* kein Geld jede Runde */
  432. spawn_delay=float(id)
  433. spawn_delay=spawn_delay/20.0
  434. spawn_delay+=1.5
  435. set_task(spawn_delay,"event_player_spawn",id) /* Spawn muß verzögert sein */
  436. if (vip_safe == 1) {
  437. if (get_user_team(id) == COUNTERTERRORIST) {
  438. if (ct_level[id] < 7) { /* die Letzten Level muss man sich schon verdienen */
  439. ct_level[id]++
  440. if (is_user_bot(id) == 0) {
  441. set_task(0.5,"vip_bonus",id)
  442. }
  443. }
  444. }
  445. }
  446. }
  447.  
  448. public vip_bonus(id) {
  449. steam_level[steam_pos[id]]=ct_level[id] /* Level in Abhängikkeit der SteamID speichern */
  450. set_hudmessage(255,255,255,-1.0,0.65,2,0.05,2.0,0.01,2.0,-1)
  451. show_hudmessage(id,"One level up for saved V.I.P.")
  452. client_cmd(id,"spk items/suitchargeok1")
  453. }
  454.  
  455. public event_player_spawn(id) {
  456. if (is_user_alive(id)) {
  457. if (get_user_team(id) == TERRORIST) {
  458. drop[id]=0
  459. set_user_footsteps(id,1) /* Schritte nicht hörbar */
  460. set_user_gravity(id,0.5) /* Gravity niedriger*/
  461. client_cmd(0,"spk roach/rch_walk")
  462. if (is_user_bot(id) == 0) {
  463. is_bot_dog[id]=0
  464. cs_set_user_armor(id,100,CS_ARMOR_VESTHELM) /* Helm und Weste */
  465. new hp=t_level[id]
  466. hp=hp*50
  467. hp+=549
  468. set_user_health(id,hp) /* mehr HP geben */
  469. set_hudmessage(255,255,255,-1.0,0.60,2,0.05,2.0,0.01,2.0,-1)
  470. if (t_level[id] == 9) {
  471. show_hudmessage(id,"ZOMBIE FINAL LEVEL - %d HP",hp)
  472. }
  473. else {
  474. show_hudmessage(id,"ZOMBIE LEVEL %d - %d HP",t_level[id],hp)
  475. }
  476. }
  477. else {
  478. if (dog > 0) {
  479. set_user_health(id,100) /* Hunde HPs */
  480. dog--
  481. set_pev(id,pev_maxspeed,400.0)
  482. set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,""))
  483. is_bot_dog[id]=1
  484. }
  485. else {
  486. cs_set_user_armor(id,100,CS_ARMOR_VESTHELM) /* Helm und Weste */
  487. new hp=t_level[id]
  488. hp=hp*50
  489. hp+=549
  490. set_user_health(id,hp) /* mehr HP geben */
  491. set_pev(id,pev_maxspeed,280.0)
  492. is_bot_dog[id]=0
  493. }
  494. }
  495. }
  496. else {
  497. if (get_user_team(id) == COUNTERTERRORIST) {
  498. is_bot_dog[id]=0
  499. vip_safetyzone[id]=0
  500. set_user_footsteps(id,0) /* Schritte hörbar */
  501. set_user_gravity(id,1.0) /* Gravity normal */
  502. switch(ct_level[id]) { /* auch dem VIP mehr Muni geben */
  503. case 1: cs_set_user_bpammo(id,CSW_USP,150)
  504. case 2: cs_set_user_bpammo(id,CSW_USP,200)
  505. case 3: cs_set_user_bpammo(id,CSW_USP,250)
  506. case 4: cs_set_user_bpammo(id,CSW_USP,250)
  507. case 5: cs_set_user_bpammo(id,CSW_USP,250)
  508. case 6: cs_set_user_bpammo(id,CSW_USP,250)
  509. case 7: cs_set_user_bpammo(id,CSW_USP,250)
  510. case 8: cs_set_user_bpammo(id,CSW_USP,250)
  511. case 9: cs_set_user_bpammo(id,CSW_USP,250)
  512. }
  513. set_user_health(id,100) /* HP setzen */
  514. set_hudmessage(255,255,255,-1.0,0.60,2,0.05,2.0,0.01,2.0,-1)
  515. if (ct_level[id] == 9) {
  516. show_hudmessage(id,"COUNTER-ZOMBIE FINAL LEVEL")
  517. }
  518. else {
  519. show_hudmessage(id,"COUNTER-ZOMBIE LEVEL %d",ct_level[id])
  520. }
  521. if (cs_get_user_vip(id) == 0) { /* wenn kein VIP, dann Waffen geben */
  522. cs_set_user_armor(id,100,CS_ARMOR_VESTHELM) /* Helm und Weste */
  523. set_pev(id,pev_maxspeed,220.0)
  524. if (is_user_bot(id) == 0) {
  525. set_task(0.2,"give_elite",id)
  526. }
  527. }
  528. else {
  529. set_pev(id,pev_maxspeed,220.0)
  530. if (vip_safe == 0) {
  531. client_cmd(id,"spk zombiebot/safetyzone") /* Dem VIP sagen, er soll in die Safety Zone */
  532. }
  533. }
  534. }
  535. }
  536. need_change[id]=1 /* Da der Player gerade gespawnt ist, braucht er evtl. ein neues Model */
  537. }
  538. }
  539.  
  540. public give_elite(id) {
  541. if (is_user_alive(id) && is_user_connected(id)) {
  542. switch(ct_level[id]) {
  543. case 1: {
  544. give_item(id,"weapon_elite")
  545. cs_set_user_bpammo(id,CSW_ELITE,150) /* 9mm */
  546. }
  547. case 2: {
  548. give_item(id,"weapon_elite")
  549. cs_set_user_bpammo(id,CSW_ELITE,200) /* 9mm */
  550. }
  551. case 3: {
  552. give_item(id,"weapon_elite")
  553. cs_set_user_bpammo(id,CSW_ELITE,250) /* 9mm */
  554. }
  555. case 4: {
  556. give_item(id,"weapon_elite")
  557. cs_set_user_bpammo(id,CSW_ELITE,250) /* 9mm */
  558. }
  559. case 5: {
  560. give_item(id,"weapon_elite")
  561. cs_set_user_bpammo(id,CSW_ELITE,250) /* 9mm */
  562. }
  563. case 6: {
  564. give_item(id,"weapon_elite")
  565. cs_set_user_bpammo(id,CSW_ELITE,250) /* 9mm */
  566. }
  567. case 7: {
  568. give_item(id,"weapon_elite")
  569. cs_set_user_bpammo(id,CSW_ELITE,250) /* 9mm */
  570. }
  571. case 8: give_item(id,"weapon_hegrenade")
  572. case 9: give_item(id,"weapon_hegrenade")
  573. }
  574. if (ct_level[id] > 1) {
  575. set_task(0.5,"give_tmp",id)
  576. }
  577. }
  578. }
  579.  
  580. public give_tmp(id) {
  581. if (is_user_alive(id) && is_user_connected(id)) {
  582. switch(ct_level[id]) {
  583. case 2: give_item(id,"weapon_tmp") /* 9mm */
  584. case 3: give_item(id,"weapon_tmp") /* 9mm */
  585. case 4: give_item(id,"weapon_tmp") /* 9mm */
  586. case 5: give_item(id,"weapon_tmp") /* 9mm */
  587. case 6: give_item(id,"weapon_tmp") /* 9mm */
  588. case 7: give_item(id,"weapon_tmp") /* 9mm */
  589. }
  590. if (ct_level[id] > 2) {
  591. set_task(0.5,"give_mp5",id)
  592. }
  593. }
  594. }
  595.  
  596. public give_mp5(id) {
  597. if (is_user_alive(id) && is_user_connected(id)) {
  598. switch(ct_level[id]) {
  599. case 3: give_item(id,"weapon_mp5navy") /* 9mm */
  600. case 4: give_item(id,"weapon_mp5navy") /* 9mm */
  601. case 5: give_item(id,"weapon_mp5navy") /* 9mm */
  602. case 6: give_item(id,"weapon_mp5navy") /* 9mm */
  603. case 7: give_item(id,"weapon_mp5navy") /* 9mm */
  604. }
  605. if (ct_level[id] > 3) {
  606. set_task(0.5,"give_m4a1",id)
  607. }
  608. }
  609. }
  610.  
  611. public give_m4a1(id) {
  612. if (is_user_alive(id) && is_user_connected(id)) {
  613. give_item(id,"weapon_m4a1") /* 556nato */
  614. switch(ct_level[id]) {
  615. case 4: cs_set_user_bpammo(id,CSW_M4A1,150) /* 556nato */
  616. case 5: cs_set_user_bpammo(id,CSW_M4A1,200) /* 556nato */
  617. case 6: cs_set_user_bpammo(id,CSW_M4A1,250) /* 556nato */
  618. case 7: cs_set_user_bpammo(id,CSW_M4A1,250) /* 556nato */
  619. case 8: cs_set_user_bpammo(id,CSW_M4A1,250) /* 556nato */
  620. case 9: cs_set_user_bpammo(id,CSW_M4A1,250) /* 556nato */
  621. }
  622. if (ct_level[id] > 4) {
  623. set_task(0.5,"give_m3",id)
  624. }
  625. }
  626. }
  627.  
  628. public give_m3(id) {
  629. if (is_user_alive(id) && is_user_connected(id)) {
  630. give_item(id,"weapon_m3")
  631. switch(ct_level[id]) {
  632. case 5: cs_set_user_bpammo(id,CSW_M3,30) /* 12gauge */
  633. case 6: cs_set_user_bpammo(id,CSW_M3,60) /* 12gauge */
  634. case 7: cs_set_user_bpammo(id,CSW_M3,90) /* 12gauge */
  635. case 8: cs_set_user_bpammo(id,CSW_M3,90) /* 12gauge */
  636. case 9: cs_set_user_bpammo(id,CSW_M3,90) /* 12gauge */
  637. }
  638. if (ct_level[id] > 5) {
  639. set_task(0.5,"give_sg552",id)
  640. }
  641. }
  642. }
  643.  
  644. public give_sg552(id) {
  645. if (is_user_alive(id) && is_user_connected(id)) {
  646. give_item(id,"weapon_sg552") /* 556nato */
  647. if (ct_level[id] > 8) {
  648. set_task(0.5,"give_m249",id)
  649. }
  650. }
  651. }
  652.  
  653. public give_m249(id) {
  654. if (is_user_alive(id) && is_user_connected(id)) {
  655. give_item(id,"weapon_m249")
  656. cs_set_user_bpammo(id,CSW_M249,150)
  657. }
  658. }
  659.  
  660. public fw_touch(touched,toucher) {
  661. if (!pev_valid(touched) || !is_user_connected(toucher)) {
  662. return FMRES_IGNORED
  663. }
  664. static classname[10]
  665. pev(touched,pev_classname,classname,9)
  666. if (classname[5] == 'v' && classname[6] == 'i') {
  667. vip_safetyzone[toucher]=1
  668. }
  669. if (classname[8] != 'x' && !(classname[0] == 'w' && classname[1] == 'e' && classname[2] == 'a') && !(classname[0] == 'a' && classname[1] == 'r' && classname[2] == 'm')) {
  670. return FMRES_IGNORED
  671. }
  672. static model[24]
  673. pev(touched,pev_model,model,23)
  674. if (get_user_team(toucher) == COUNTERTERRORIST) {
  675. if (model[9] == 'u') { /* usp */
  676. return FMRES_IGNORED
  677. }
  678. if (model[9] == 'e') { /* elite */
  679. return FMRES_IGNORED
  680. }
  681. if (model[9] == 't' && ct_level[toucher] > 1) { /* tmp */
  682. return FMRES_IGNORED
  683. }
  684. if (model[10] == 'p' && ct_level[toucher] > 2) { /* mp5 */
  685. return FMRES_IGNORED
  686. }
  687. if (model[10] == '4' && ct_level[toucher] > 3) { /* m4a1 */
  688. return FMRES_IGNORED
  689. }
  690. if (model[10] == '3' && ct_level[toucher] > 4) { /* m3 */
  691. return FMRES_IGNORED
  692. }
  693. if (model[9] == 's' && ct_level[toucher] > 5) { /* sg552 */
  694. return FMRES_IGNORED
  695. }
  696. if (model[10] == '2' && ct_level[toucher] > 8) { /* m249 */
  697. return FMRES_IGNORED
  698. }
  699. if (model[9] == 'h' && ct_level[toucher] > 7) { /* he */
  700. return FMRES_IGNORED
  701. }
  702. }
  703. return FMRES_SUPERCEDE
  704. }
  705.  
  706. public fw_info(id,buffer) {
  707. if (config && end_round_flag == 0) {
  708. return FMRES_SUPERCEDE
  709. }
  710. return FMRES_IGNORED
  711. }
  712.  
  713. public fw_SetClientKeyValue(id,const infobuffer[],const key[]) {
  714. if (equal(key,"model")) {
  715. if (first_mdl[id] == 1) {
  716. return FMRES_SUPERCEDE
  717. }
  718. else {
  719. first_mdl[id]=1
  720. }
  721. }
  722. return FMRES_IGNORED
  723. }
  724.  
  725. public fw_emitsound(id,channel,sound[]) {
  726. if (is_user_connected(id)) {
  727. if (get_user_team(id) == TERRORIST) {
  728. if (contain(sound,"player/die") != -1 || contain(sound,"player/death") != -1) {
  729. if (is_bot_dog[id] == 1) {
  730. emit_sound(id,CHAN_AUTO,"zombiebot/zombiedog_die.wav",1.0,ATTN_NORM,0,PITCH_NORM)
  731. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  732. client_print(0,print_chat,"[<<eb@>>] DEBUG: Emit sound zombiedog_die.wav")
  733. }
  734. return FMRES_SUPERCEDE
  735. }
  736. else {
  737. emit_sound(id,CHAN_AUTO,"zombiebot/zombie_die.wav",1.0,ATTN_NORM,0,PITCH_NORM)
  738. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  739. client_print(0,print_chat,"[<<eb@>>] DEBUG: Emit sound zombie_die.wav")
  740. }
  741. return FMRES_SUPERCEDE
  742. }
  743. }
  744. if (contain(sound,"weapons/knife_hit") != -1 || contain(sound,"weapons/knife_stab") != -1) {
  745. if (is_bot_dog[id] == 1) {
  746. new attack_snd=random_num(0,1)
  747. switch(attack_snd) {
  748. case 0: emit_sound(id,CHAN_AUTO,"zombiebot/zombiedog_attack.wav",1.0,ATTN_NORM,0,PITCH_NORM)
  749. case 1: emit_sound(id,CHAN_AUTO,"zombiebot/zombiedog_growl.wav",1.0,ATTN_NORM,0,PITCH_NORM)
  750. }
  751. return FMRES_SUPERCEDE
  752. }
  753. else {
  754. new attack_snd=random_num(0,1)
  755. switch(attack_snd) {
  756. case 0: emit_sound(id,CHAN_AUTO,"zombiebot/zombie_attack1.wav",1.0,ATTN_NORM,0,PITCH_NORM)
  757. case 1: emit_sound(id,CHAN_AUTO,"zombiebot/zombie_attack2.wav",1.0,ATTN_NORM,0,PITCH_NORM)
  758. }
  759. return FMRES_SUPERCEDE
  760. }
  761. }
  762. }
  763. }
  764. return FMRES_IGNORED
  765. }
  766.  
  767. public change_models(id) {
  768. if (is_user_alive(id)) {
  769. if (need_change[id] == 1 && end_round_flag == 0) {
  770. need_change[id]=0 /* Aenderungsanforderung ausschalten */
  771. client_cmd(id,"cl_minmodels 0") /* damit alle die neuen Models sehen */
  772. new mdl_name[16]
  773. new cur_mdl[16]
  774. new bot_name[20]
  775. if (get_user_team(id) == TERRORIST) { /* Model Zombie und Zombiehund*/
  776. new info=engfunc(EngFunc_GetInfoKeyBuffer,id)
  777. if (is_user_bot(id) == 1) {
  778. if (is_bot_dog[id] == 1) {
  779. format(bot_name,19,"Zombie[%d] Dog",id)
  780. info=engfunc(EngFunc_GetInfoKeyBuffer,id)
  781. engfunc(EngFunc_SetClientKeyValue,id,info,"name",bot_name)
  782. engfunc(EngFunc_InfoKeyValue,engfunc(EngFunc_GetInfoKeyBuffer,id),"model",cur_mdl,15)
  783. if (!equal(cur_mdl,"zombiebot_dog")) {
  784. engfunc(EngFunc_SetClientKeyValue,id,info,"model","zombiebot_dog") /* Model ändern */
  785. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  786. client_print(0,print_chat,"[<<eb@>>] DEBUG: Change model zombiedog for bot ID: %d",id)
  787. }
  788. }
  789. }
  790. else {
  791. format(bot_name,19,"Zombie[%d] Level %d",id,t_level[id])
  792. info=engfunc(EngFunc_GetInfoKeyBuffer,id)
  793. engfunc(EngFunc_SetClientKeyValue,id,info,"name",bot_name)
  794. format(mdl_name,15,"zombiebot_%d",t_level[id])
  795. engfunc(EngFunc_InfoKeyValue,engfunc(EngFunc_GetInfoKeyBuffer,id),"model",cur_mdl,15)
  796. if (!equal(cur_mdl,mdl_name)) {
  797. engfunc(EngFunc_SetClientKeyValue,id,info,"model",mdl_name)
  798. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  799. client_print(0,print_chat,"[<<eb@>>] DEBUG: Change model zombie for bot ID: %d",id)
  800. }
  801. }
  802. }
  803. }
  804. else {
  805. format(mdl_name,15,"zombiebot_%d",t_level[id])
  806. engfunc(EngFunc_InfoKeyValue,engfunc(EngFunc_GetInfoKeyBuffer,id),"model",cur_mdl,15)
  807. if (!equal(cur_mdl,mdl_name)) {
  808. engfunc(EngFunc_SetClientKeyValue,id,info,"model",mdl_name)
  809. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  810. client_print(0,print_chat,"[<<eb@>>] DEBUG: Change model zombie for player ID: %d",id)
  811. }
  812. }
  813. }
  814. set_pev(id,pev_weaponmodel,engfunc(EngFunc_AllocString,"")) /* Das Messer am Zombie wegnehmen */
  815. }
  816. else {
  817. if (get_user_team(id) == COUNTERTERRORIST) { /* Model VIP */
  818. if (cs_get_user_vip(id) == 1) {
  819. new info=engfunc(EngFunc_GetInfoKeyBuffer,id)
  820. engfunc(EngFunc_InfoKeyValue,engfunc(EngFunc_GetInfoKeyBuffer,id),"model",cur_mdl,15)
  821. if (!equal(cur_mdl,"zombiebot_vip")) {
  822. engfunc(EngFunc_SetClientKeyValue,id,info,"model","zombiebot_vip")
  823. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  824. client_print(0,print_chat,"[<<eb@>>] DEBUG: Change model V.I.P. for player ID: %d",id)
  825. }
  826. }
  827. if (is_user_bot(id) == 1) {
  828. info=engfunc(EngFunc_GetInfoKeyBuffer,id)
  829. engfunc(EngFunc_SetClientKeyValue,id,info,"name","V.I.P. is a stupid BOT!!!")
  830. set_hudmessage(255,0,0,-1.0,0.45,2,0.05,30.0,0.01,2.0,-1)
  831. show_hudmessage(0,"V.I.P. is a stupid BOT - no respawn for zombies - CT's have to kill ALL REMAINING ZOMBIES!")
  832. }
  833. }
  834. else { /* Model Counter Zombie */
  835. new info=engfunc(EngFunc_GetInfoKeyBuffer,id)
  836. engfunc(EngFunc_InfoKeyValue,engfunc(EngFunc_GetInfoKeyBuffer,id),"model",cur_mdl,15)
  837. if (contain(cur_mdl,"zombiebot_ct") == -1) {
  838. format(mdl_name,15,"zombiebot_ct%d",ct_model_count)
  839. engfunc(EngFunc_SetClientKeyValue,id,info,"model",mdl_name)
  840. ct_model_count++
  841. if (ct_model_count == 13) {
  842. ct_model_count=1
  843. }
  844. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  845. client_print(0,print_chat,"[<<eb@>>] DEBUG: Change model counter-zombie for player ID: %d",id)
  846. }
  847. }
  848. }
  849. }
  850. }
  851. }
  852. }
  853. return FMRES_IGNORED
  854. }
  855.  
  856. public join_team(id) {
  857. if (config) {
  858. if (get_user_team(id) == TERRORIST) {
  859. can_spawn[id]=0 /* frisch gejointer Spieler bekommt kein Respawn */
  860. }
  861. }
  862. }
  863.  
  864. public check_death() {
  865. new hp
  866. if (config) { /* erst nach Servereinstellungen */
  867. if (end_round_flag == 0) { /* nicht wärend Rundenende */
  868. is_vip++
  869. if (is_user_connected(player_count)) {
  870. if (get_user_team(player_count) == TERRORIST) {
  871. if (is_user_alive(player_count) == 0) {
  872. if (is_vip < 33 && can_spawn[player_count] == 1) { /* wenn es keinen VIP gibt, dann kein Respawn */
  873. set_task(1.0,"spawn_player",player_count)
  874. }
  875. }
  876. else {
  877. if (is_bot_dog[player_count] == 0) {
  878. hp=t_level[player_count]
  879. hp=hp*50
  880. hp+=549
  881. new tmp_hp=get_user_health(player_count)
  882. if (tmp_hp < hp) {
  883. tmp_hp+=125
  884. if (tmp_hp > hp) {
  885. tmp_hp=hp
  886. }
  887. set_user_health(player_count,tmp_hp) /* langsames Regenerieren des Ts */
  888. if (is_user_bot(player_count) == 0) {
  889. client_cmd(player_count,"spk items/medshot4")
  890. }
  891. }
  892. if (is_user_bot(player_count) == 0) {
  893. set_hudmessage(255,255,255,-1.0,0.55,2,0.05,2.0,0.01,2.0,-1)
  894. show_hudmessage(player_count,"You have %d HP",tmp_hp)
  895. }
  896. }
  897. }
  898. }
  899. else {
  900. if (get_user_team(player_count) == COUNTERTERRORIST && is_user_alive(player_count) == 1 && cs_get_user_vip(player_count)) {
  901. if (is_user_bot(player_count)) {
  902. is_vip=33 /* es gibt keinen reellen Spieler als VIP */
  903. }
  904. else {
  905. is_vip=0 /* es gibt einen VIP */
  906. }
  907. }
  908. }
  909. }
  910. player_count++
  911. if (player_count > 32) {
  912. player_count=1
  913. }
  914. set_task(0.3,"check_death") /* nächste Prüfung in ... Sekunden */
  915. }
  916. else {
  917. set_task(10.0,"check_death") /* nächste Prüfung in 10 Sekunden, da gerade Rundenende war */
  918. }
  919. }
  920. }
  921.  
  922. public spawn_player(id) {
  923. if (is_user_connected(id)) {
  924. if (get_user_team(id) == TERRORIST) {
  925. entity_set_int(id,EV_INT_deadflag,3)
  926. call_think(id)
  927. entity_set_int(id,EV_INT_iuser1,0)
  928. spawn(id) /* toten Terror wiederbeleben */
  929. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  930. get_user_name(id,name,31)
  931. client_print(0,print_chat,"[<<eb@>>] DEBUG: ^"%s^" is now alive!",name)
  932. }
  933. if (is_bot_dog[id] == 0) {
  934. new hp=t_level[id]
  935. hp=hp*50
  936. hp+=549
  937. set_user_health(id,hp) /* dem Auferweckten mehr HP geben */
  938. if (is_user_bot(id) == 0) { /* Auferstehung signalisieren */
  939. client_cmd(id,"spk buttons/blip2")
  940. set_hudmessage(255,255,255,-1.0,0.55,2,0.05,2.0,0.01,2.0,-1)
  941. show_hudmessage(id,"You have %d HP",hp)
  942. }
  943. }
  944. }
  945. }
  946. }
  947.  
  948. public end_round() {
  949. new i
  950. if (config) {
  951. end_round_flag=1 /* merken, Runde ist zu ende */
  952. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  953. client_print(0,print_chat,"[<<eb@>>] DEBUG: *** ROUND END ***")
  954. }
  955. zombies=0 /* Zombies in Summe */
  956. t_count=0 /* ...davon reale Spieler */
  957. ct_count=0 /* CTs in Summe */
  958. for (i=1; i<33; i++) { /* Loop Statistik erstellen */
  959. if (is_user_connected(i)) {
  960. if (get_user_team(i) == NO_TEAM || get_user_team(i) == SPECTATOR) {
  961. spec[i]--
  962. if (spec[i] == 0) {
  963. client_cmd(i,"disconnect") /* Spieler vom Server schmeißen, wenn zu lange im Spec */
  964. }
  965. client_print(i,print_chat,"[<<eb@>>] Please choose a Team!")
  966. }
  967. can_spawn[i]=1
  968. team=get_user_team(i)
  969. bot=is_user_bot(i)
  970. if (team == TERRORIST) {
  971. if (bot == 0) {
  972. t_count++
  973. zombies++
  974. }
  975. else {
  976. zombies++
  977. }
  978. }
  979. else {
  980. if (team == COUNTERTERRORIST && bot == 0) {
  981. if (cs_get_user_vip(i) == 1) {
  982. if (vip_safetyzone[i] == 1) {
  983. vip_safe=1
  984. client_print(0,print_chat,"[<<eb@>>] VIP escaped!")
  985. set_task(2.0,"vip_escaped_delay")
  986. if (ct_level[i] < 9) {
  987. ct_level[i]++ /* Der VIP hat es geschafft */
  988. client_cmd(i,"spk items/suitchargeok1")
  989. }
  990. }
  991. }
  992. ct_count++
  993. }
  994. else { /* verlaufenen Bot zu T schieben */
  995. if (team == COUNTERTERRORIST && bot == 1) {
  996. if (cs_get_user_vip(i) == 0) {
  997. cs_set_user_team(i,CS_TEAM_T,CS_T_TERROR)
  998. }
  999. else {
  1000. is_bot_vip=1 /* wir haben einen Bot als VIP */
  1001. }
  1002. }
  1003. }
  1004. }
  1005. }
  1006. }
  1007. if (ct_count >= get_cvar_num("amx_zombiebot")) {
  1008. set_cvar_num("mp_limitteams",1)
  1009. }
  1010. else {
  1011. if (zombies > ct_count) {
  1012. set_cvar_num("mp_limitteams",0)
  1013. }
  1014. }
  1015. for (i=1; i<33; i++) {
  1016. new shift=0
  1017. 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 */
  1018. if (is_user_connected(player_count)) {
  1019. 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) {
  1020. client_print(0,print_chat,"[<<eb@>>] Auto balance: Too many Counter-Zombies!")
  1021. client_print(player_count,print_chat,"[<<eb@>>] Auto balance: You are is a ZOMBIE now!")
  1022. cs_set_user_team(player_count,CS_TEAM_T,CS_T_TERROR)
  1023. shift=1
  1024. ct_count--
  1025. t_count++
  1026. zombies++
  1027. t_level[player_count]=ct_level[player_count]
  1028. if (ct_level[player_count] > 1) {
  1029. ct_level[player_count]--
  1030. }
  1031. t_death_count[player_count]=0
  1032. ct_kill_count[player_count]=0
  1033. }
  1034. }
  1035. }
  1036. else {
  1037. if (ct_count < t_count && ct_count > get_cvar_num("amx_zombiebot") && shift == 0) { /* schiebe Ts die zu viel sind rüber */
  1038. if (is_user_connected(player_count)) {
  1039. 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) {
  1040. client_print(0,print_chat,"[<<eb@>>] Auto balance: Too many Zombies!")
  1041. client_print(player_count,print_chat,"[<<eb@>>] Auto balance: You are a COUNTER-ZOMBIE now!")
  1042. can_spawn[player_count]=0 /* Der CT soll natürlich nicht mehr spawnen */
  1043. cs_set_user_team(player_count,CS_TEAM_CT,CS_CT_URBAN)
  1044. ct_count++
  1045. t_count--
  1046. zombies--
  1047. ct_level[player_count]=t_level[player_count]
  1048. if (t_level[player_count] > 1) {
  1049. t_level[player_count]--
  1050. }
  1051. t_death_count[player_count]=0
  1052. ct_kill_count[player_count]=0
  1053. }
  1054. }
  1055. }
  1056. else {
  1057. i=33
  1058. }
  1059. }
  1060. player_count++
  1061. if (player_count > 32) {
  1062. player_count=1
  1063. }
  1064. }
  1065. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  1066. client_print(0,print_chat,"[<<eb@>>] DEBUG: Server var. amx_zombiebot (max. amount of bot players) is set to %d",get_cvar_num("amx_zombiebot"))
  1067. client_print(0,print_chat,"[<<eb@>>] DEBUG: Calculation at round end: Zombies amount: %d (Human: %d) - Counter-Zombies: %d",zombies,t_count,ct_count)
  1068. }
  1069. new bonus_bots=0
  1070. if (ct_count <9) {
  1071. bonus_bots++
  1072. }
  1073. if (ct_count <7) {
  1074. bonus_bots++
  1075. }
  1076. if (ct_count <5) {
  1077. bonus_bots++
  1078. }
  1079. if (ct_count <3) {
  1080. bonus_bots++
  1081. }
  1082. bot=ct_count+bonus_bots
  1083. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  1084. client_print(0,print_chat,"[<<eb@>>] DEBUG: Counter-Zombis (%d) + %d = amount of new bot players (%d)",ct_count,bonus_bots,bot)
  1085. }
  1086. if (bot > get_cvar_num("amx_zombiebot")) {
  1087. bot=get_cvar_num("amx_zombiebot")
  1088. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  1089. client_print(0,print_chat,"[<<eb@>>] DEBUG: Cut amount of new bot players to Server var. amx_zombiebot (%d)",bot)
  1090. }
  1091. }
  1092. bot=bot-t_count
  1093. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  1094. client_print(0,print_chat,"[<<eb@>>] DEBUG: Subtract real zombie players (%d) from bots = %d",t_count,bot)
  1095. }
  1096. if (bot < 0) {
  1097. bot=0
  1098. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  1099. client_print(0,print_chat,"[<<eb@>>] DEBUG: There are too many real zombie players, set bots to 0")
  1100. }
  1101. }
  1102. dog=zombies-ct_count
  1103. dog=dog+(t_count*2)
  1104. if (dog < 3) {
  1105. dog=3
  1106. }
  1107. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  1108. client_print(0,print_chat,"[<<eb@>>] DEBUG: Make %d bots to zombie dogs",dog)
  1109. }
  1110. if (is_bot_vip == 0) { /* BOTS neu organisieren */
  1111. set_cvar_num("mp_freezetime",1)
  1112. server_cmd("bot_quota %d",bot)
  1113. }
  1114. else {
  1115. set_cvar_num("mp_freezetime",5)
  1116. is_bot_vip=0
  1117. server_cmd("bot_quota 0")
  1118. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  1119. client_print(0,print_chat,"[<<eb@>>] DEBUG: Set bot_quota 0, because the V.I.P. is a bot")
  1120. }
  1121. set_task(3.0,"add_bot_t",bot)
  1122. }
  1123. set_task(20.0,"server_info")
  1124. }
  1125. }
  1126.  
  1127. public add_bot_t(bot) {
  1128. server_cmd("bot_quota %d",bot)
  1129. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  1130. client_print(0,print_chat,"[<<eb@>>] DEBUG: Add new bots to server without V.I.P. as bot")
  1131. }
  1132. }
  1133.  
  1134. public server_info() {
  1135. client_print(0,print_chat,"[<<eb@>>] Attention! There are zombies on the server, and they are even stronger!")
  1136. }
  1137.  
  1138. public start_round() {
  1139. if (get_cvar_num("amx_zombiebot_debug") == 1) { /* DEBUG-INFO */
  1140. client_print(0,print_chat,"[<<eb@>>] DEBUG: *** ROUND START ***")
  1141. client_print(0,print_chat,"[<<eb@>>] DEBUG: Server var. amx_zombiebot_debug is set to 1")
  1142. }
  1143. if (config) {
  1144. set_task(0.2,"set_end_round_flag")
  1145. is_vip=0
  1146. }
  1147. }
  1148.  
  1149. public set_end_round_flag() {
  1150. vip_safe=0 /* Merker zurücksetzen */
  1151. end_round_flag=0 /* merken, Runde fängt an */
  1152. }
  1153.  
  1154. public cur_weapon(id) {
  1155. new clip,ammo
  1156. new vteam=get_user_team(id)
  1157. if(vteam == TERRORIST) {
  1158. if (drop[id] == 0) {
  1159. drop[id]=1
  1160. client_cmd(id,"weapon_glock18")
  1161. client_cmd(id,"drop")
  1162. }
  1163. client_cmd(id,"weapon_knife")
  1164. set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_knife_zombie.mdl"))
  1165. }
  1166. else {
  1167. if(vteam == COUNTERTERRORIST) {
  1168. new weapon=get_user_weapon(id,clip,ammo)
  1169. switch(weapon) {
  1170. case CSW_ELITE: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_elite_zombiebot.mdl"))
  1171. case CSW_KNIFE: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_knife_zombiebot.mdl"))
  1172. case CSW_M249: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_m249_zombiebot.mdl"))
  1173. case CSW_M3: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_m3_zombiebot.mdl"))
  1174. case CSW_M4A1: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_m4a1_zombiebot.mdl"))
  1175. case CSW_MP5NAVY: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_mp5_zombiebot.mdl"))
  1176. case CSW_TMP: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_tmp_zombiebot.mdl"))
  1177. case CSW_SG552: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_sg552_zombiebot.mdl"))
  1178. case CSW_USP: set_pev(id,pev_viewmodel,engfunc(EngFunc_AllocString,"models/v_usp_zombiebot.mdl"))
  1179. }
  1180. }
  1181. }
  1182. return PLUGIN_HANDLED
  1183. }
  1184.  

_________________
Idk. Csak ugy funbooo.
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Zombi Escape [VIP]
HozzászólásElküldve: 2013.04.07. 12:22 
Offline
Tud valamit

Csatlakozott: 2012.03.17. 23:32
Hozzászólások: 122
Megköszönt másnak: 3 alkalommal
Kösz! :D

_________________
Konfigolt szerverem:
[kozep]Kép[/kozep]

<<eb@>> Jailbreak : 94.199.183.212:27001


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole