Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
lười viết example nó thếMi làm thế cho mỗi mi sài thôi chứ ai sài được ngoài mi![]()



Phần hóc búa nhất của Zombie Scenario (hay Zombie AI như bạn nói) là code được các boss với skill riêng, nếu không có mấy con boss thì ZS cũng chẳng khác gì Zombie Plague :)
P/S : Không liên quan nhưng giờ mới để ý tên fpsforever này reg nick sớm hơn mình đúng 1 ngày
pb add : thêm bot
pb help : xem thêm các lệnh điều khiển khác của Podbot
pb killbots : giết hết BOT còn sống
pb menu : mở menu bot
pb radio 1/0 : bật/tắt khả năng dùng radio của BOT
...
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <hamsandwich>
#include <fun>
#include <fakemeta>
#include <zombieplague>
#include <fakemeta>
#include <nvault>
#define NO_MONEY "[BLG] Bạn vẫn thiếu AP để nâng cấp"
#define PREFIX_CHAT "VCB"
#define Done "[Đã Nâng Cấp]"
#define set_money zp_set_user_ammo_packs
#define get_money zp_get_user_ammo_packs
#define PLUGIN "Nang Cap 4"
#define VERSION "1.0"
#define AUTHOR "Zon"
new menu
enum _: Primary_Shop {
p90,
m3,
}
new const g_Shop[33][Primary_Shop];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /sz", "clcmd_menu4")
register_clcmd("/sz", "clcmd_menu4")
RegisterHam(Ham_Spawn, "player", "fwd_PlayerSpawn", 1);
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
}
public fwd_PlayerSpawn(id) {
if (!is_user_alive(id))
return;
}
public zp_user_infected_post(id, g_victim, g_attacker) {
menu_cancel(id)
}
public clcmd_menu4(id) {
skill_wpn(id)
return PLUGIN_HANDLED
}
public event_round_start(id)
{
if (g_Shop[id][m3] = 1)
{
give_item(id, "weapon_sg550")
}
return;
}
public skill_wpn(id) {
new buffer[512]
new szInfo[60]
formatex(szInfo, charsmax(szInfo), "\ySkill AP " )
menu = menu_create(szInfo, "b_weapon")
if (g_Shop[id][m3] == 1) {
formatex(buffer, charsmax(buffer), "\wM3 Supper %s", Done)
menu_additem(menu, buffer, "1")
} else if (get_money(id) >= 1) {
formatex(buffer, charsmax(buffer), "\wM3 Supper \y1 AP")
menu_additem(menu, buffer, "1")
} else if (get_money(id) <= 1) {
formatex(buffer, charsmax(buffer), "\dM3 Supper \y1 AP")
menu_additem(menu, buffer, "1")
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
public b_weapon(id, menu, item) {
if (item == MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[15], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data, 15, iName, 64, callback)
new key = str_to_num(data)
switch (key) {
case 1:
{
if (g_Shop[id][m3] == 1)
{
give_item(id, "weapon_sg550")
return PLUGIN_HANDLED
} else if (get_money(id) >= 1)
{
g_Shop[id][m3] = 1
give_item(id, "weapon_sg550")
return PLUGIN_HANDLED
} else if (get_money(id) <= 1)
{
client_print(id, print_center, NO_MONEY)
return PLUGIN_HANDLED
}
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
// ****************** Throwing Knives Setup ******************
//Toggles Throwing Knives on and off (default 0) ( 1 or 0 )
//amx_throwknives 1
//The amount of ammo to be given at roundstart (default 5) ( 1 or higher )
//amx_knifeammo 5
//Force at which knives are thrown (default 1200) ( 200 or higher )
//amx_knifetossforce 1200
//Maximum amount of knives allowed at once (default 10) ( amx_knifeammo or higher )
//amx_maxknifeammo 10
//Damage dealt on a knife hit (default 25) ( 1 or higher )
//amx_knifedmg 25
//Toggles knife dropping on death on and off (default 1) ( 1 or 0 )
//amx_dropknives 1
//Toggles autoswitching to knife when bind is pressed (default 1) ( 1 or 0 )
//amx_knifeautoswitch 1
//Toggles logging kill as "throwing_knife" or "knife" (default 0) (1 = throwing_knife, 0 = knife)
//amx_tknifelog 1