aici este pluginul
- | Afiseaza codul
#include amxmodx #include amxmisc #include hamsandwich #include cstrike #include fakemeta #include sqlx #include chr_engine #include zombie_plague_advance #define TASK_COOLDOWN 1337 #define TASK_NICK 2674 #define TASK_PRESENTS 5348 #define TASK_REMINDER 10696 #define VIP ADMIN_LEVEL_D #define SCOREATTRIB_NONE 0 #define SCOREATTRIB_DEAD ( 1 << 0 ) #define SCOREATTRIB_BOMB ( 1 << 1 ) #define SCOREATTRIB_VIP ( 1 << 2 ) #define MIN_DISTANCE 50 #define MAX_PLAYERS 32 #define TABLE_POINTS "zmold_p" #define TABLE_RANK "zmold_rank" #define TABLE_BAN "zmold_ban" #define VIP_MODEL "z_out_vip" #define ID_REMINDER (TaskIndex - TASK_REMINDER) #define ID_PRESENTS (TaskIndex - TASK_PRESENTS) #define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1)) // Constants const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0 new Float:g_fSpeed = 1000.0; new Float:g_fDelay = 1.0; const g_iMaxDistance = 300; new const models[5][] = { "models/ZombieOutstanding/v_golden_ak47.mdl", "models/ZombieOutstanding/p_golden_ak47.mdl", "models/ZombieOutstanding/v_golden_deagle.mdl", "models/ZombieOutstanding/p_golden_deagle.mdl", "models/player/z_out_vip/z_out_vip.mdl" } new const countplay[16][] = { "fvox/biohazard_detected.wav","fvox/one.wav", "fvox/two.wav", "fvox/three.wav", "fvox/four.wav", "fvox/five.wav", "fvox/six.wav", "fvox/seven.wav", "fvox/eight.wav", "fvox/nine.wav", "fvox/ten.wav", "fvox/eleven.wav", "fvox/twelve.wav", "fvox/thirteen.wav", "fvox/fourteen.wav", "fvox/fifteen.wav"}; // CS Offsets #if cellbits == 32 const OFFSET_CLIPAMMO = 51 #else const OFFSET_CLIPAMMO = 65 #endif const OFFSET_LINUX_WEAPONS = 4 // Max Clip for weapons new const MAXCLIP[] = { -1, 13, -1, 10, 1, 7, -1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50 }; new const Float:g_flCoords[][] = { {0.50, 0.40}, {0.56, 0.44}, {0.60, 0.50}, {0.56, 0.56}, {0.50, 0.60}, {0.44, 0.56}, {0.40, 0.50}, {0.44, 0.44} }; new Handle:g_Tuple = Empty_Handle, g_Error[512], g_Errcd = 0, g_Points[MAX_PLAYERS+1], g_Damage2[MAX_PLAYERS+1], g_iPlayerPos[MAX_PLAYERS+1], jumpznum[MAX_PLAYERS+1] = 0, g_has_unlimited_clip[MAX_PLAYERS+1], g_tryder[MAX_PLAYERS+1], g_has_Ak[MAX_PLAYERS+1], g_has_Deagle[MAX_PLAYERS+1], cvar_bslot, cvar_bam, cvar_100ap, cvar_200ap, cvar_300ap, cvar_dmg2, cvar_godmode, cvar_arnd, g_iEnemy[MAX_PLAYERS+1], g_iInBlink[MAX_PLAYERS+1], Float:g_fLastSlash[MAX_PLAYERS+1], g_iCanceled[MAX_PLAYERS+1], g_iSlash[MAX_PLAYERS+1], g_iBlinks[MAX_PLAYERS+1], gTrail; // Define Zombie Classes new g_zclass_tight, g_zclass_regen // Define Custom Game Modes new g_mode_avs, g_mode_nightmare // Define Extra Items new g_item_madness, g_item_tryder, g_item_uclip, g_item_armor100, g_item_armor200, g_item_nem, g_item_surv, g_item_snp, g_item_ass, g_item_firegren, g_item_freezegren, g_item_explogren new g_item_wpnm249, g_item_wpnawp, g_item_wpng3sg1, g_item_wpnsg550, g_item_ngv, g_item_multijump, g_item_gak47, g_item_gdgl, g_item_kb // Define Bools new bool:g_Godmode[MAX_PLAYERS+1], bool:g_slotpass[MAX_PLAYERS+1], bool:bought_arnd[MAX_PLAYERS+1], bool:g_modelpass[MAX_PLAYERS+1], bool:dozjump[33] = false, g_CanBuy = true; new g_iMaxPlayers, g_MsgSync, g_MsgSync2, g_MsgSync3, g_msgSayText, countdown_timer stock __dhud_color; stock __dhud_x; stock __dhud_y; stock __dhud_effect; stock __dhud_fxtime; stock __dhud_holdtime; stock __dhud_fadeintime; stock __dhud_fadeouttime; stock __dhud_reliable; public plugin_init() { register_plugin("unknow", "unknow", "unknow" ); RegisterHam(Ham_Killed, "player", "ham_PlayerKilled"); RegisterHam(Ham_TakeDamage, "player", "ham_TakeDamage"); RegisterHam(Ham_Spawn, "player", "fwPlayerSpawn", true); register_forward(FM_TraceLine, "FW_TraceLine_Post", 1); register_forward(FM_PlayerPreThink, "FW_PlayerPreThink"); register_forward(FM_PlayerPostThink, "FW_PlayerPostThink"); register_event("HLTV", "event_round_start", "a", "1=0", "2=0"); register_event("StatusValue", "showStatus", "be", "1=2", "2!0"); register_event("StatusValue", "hideStatus", "be", "1=1", "2=0"); register_event("CurWeapon","check_models","be","1=1"); register_message(get_user_msgid("CurWeapon"), "message_cur_weapon"); register_message(get_user_msgid( "ScoreAttrib"), "MessageScoreAttrib"); register_forward(FM_ClientUserInfoChanged, "fwClientUserInfoChanged"); cvar_bslot = register_cvar("zm_buy_slot_cost", "700"); cvar_bam = register_cvar("zm_buy_model_cost", "2250"); cvar_100ap = register_cvar("zm_buy_100ap", "160"); cvar_200ap = register_cvar("zm_buy_200ap", "200"); cvar_300ap = register_cvar("zm_buy_300ap", "280"); cvar_dmg2 = register_cvar("zm_dmg2", "120"); cvar_godmode = register_cvar("zm_godmode", "150"); cvar_arnd = register_cvar("zm_arnd", "180"); register_concmd("zout_give_points", "command_GivePoints", ADMIN_LEVEL_C, "<name> <amount>"); register_clcmd("zout_unsecure", "cmdUnsecure"); register_clcmd("slot_password", "slot", ADMIN_USER, "<password>"); register_clcmd("adminmodel", "model", ADMIN_USER, "<password>"); register_clcmd("shophm", "commandhm"); register_clcmd("shopzm", "commandzm"); register_clcmd("shophm2", "command_buy2"); register_clcmd("say", "handleSay"); register_clcmd("say_team", "handleSay"); register_menu("menu_hm" , KEYSMENU , "BuyMenuhm"); register_menu("menu_zm" , KEYSMENU , "BuyMenuzm"); register_menu("menu_second" , KEYSMENU , "Submenu"); g_MsgSync = CreateHudSyncObj(); g_MsgSync2 = CreateHudSyncObj(); g_iMaxPlayers = get_maxplayers(); g_MsgSync3 = CreateHudSyncObj(); g_msgSayText = get_user_msgid("SayText"); //Logare Data Base g_Tuple = SQL_MakeDbTuple("db4free.net", "fantasy", "MuieLaurWTF", "fantasy"); if (g_Tuple != Empty_Handle) { SQL_ThreadQuery(g_Tuple, "IgnoreHandle", "CREATE TABLE IF NOT EXISTS TABLE_POINTS ( m TEXT, p NUMERIC )"); } set_task(60.0, "Task_Autosave", 0xAC, .flags = "b"); } public plugin_end() SQL_FreeHandle(g_Tuple); public plugin_natives() register_native( "zm_get_user_points", "native_get_user_points", 1 ); public native_get_user_points(Client) return is_user_connected(Client) ? g_Points[Client] : -1; public plugin_precache( ) { for (new m=0; m < sizeof(models); m++) precache_model(models[m]); for (new i=0; i < sizeof(countplay); i++ ) precache_sound(countplay); gTrail = precache_model("sprites/smoke.spr"); zp_register_zombie_class("Classic", "\r[Balanced]", "z_out_clasic", "z_out_clasic_claws.mdl", 6000, 264, 1.0, 0.82); zp_register_zombie_class("Raptor", "\r[Speed]", "z_out_raptor", "z_out_raptor_claws.mdl", 5250, 309, 0.94, 1.29); zp_register_zombie_class("Mutant", "\r[Health]", "z_out_mutant", "z_out_mutant_claws.mdl", 7500, 244, 1.09, 0.43); g_zclass_tight = zp_register_zombie_class("Tight", "\r[Double Jump]", "z_out_tight", "z_out_tight_claws.mdl", 4250, 259, 0.57, 1.0); g_zclass_regen = zp_register_zombie_class("Regenerator", "\r[Regeneration]", "z_out_regenerator", "z_out_tight_claws.mdl", 5500, 249, 1.0, 0.88); zp_register_zombie_class("Predator Blue", "\r[Powerful]", "z_out_predator_blue", "z_out_predator_blue_claws.mdl", 6000, 279, 0.74, 0.68); zp_register_zombie_class("Hunter", "\r[Silent Killer]", "z_out_hunter", "z_out_hunter_claws.mdl", 5450, 274, 0.60, 0.83); g_mode_avs = zp_register_game_mode("Assassins Vs Snipers", read_flags("9"), 3033, 0, ZP_DM_NONE); g_mode_nightmare = zp_register_game_mode("NightMare Mod", read_flags("2"), 4220, 0, ZP_DM_NONE); g_item_firegren = zp_register_extra_item("Fire Grenade", 4, ZP_TEAM_HUMAN); g_item_freezegren = zp_register_extra_item("Freeze Grenade", 3, ZP_TEAM_HUMAN); g_item_explogren = zp_register_extra_item("Explosive Grenade", 4, ZP_TEAM_HUMAN); g_item_wpnm249 = zp_register_extra_item("M249 Machine Gun", 9, ZP_TEAM_HUMAN); g_item_wpng3sg1 = zp_register_extra_item("G3SG1 Auto Sniper Rifle", 11, ZP_TEAM_HUMAN); g_item_wpnsg550 = zp_register_extra_item("SG550 Auto Sniper Rifle", 10, ZP_TEAM_HUMAN); g_item_wpnawp = zp_register_extra_item("AWP Sniper Rifle", 9, ZP_TEAM_HUMAN); g_item_ngv = zp_register_extra_item("Nightvision Googles", 2, ZP_TEAM_HUMAN); g_item_madness = zp_register_extra_item("Zombie Madness", 15, ZP_TEAM_ZOMBIE); g_item_kb = zp_register_extra_item("Knife Blinks", 20, ZP_TEAM_ZOMBIE); g_item_armor100 = zp_register_extra_item("Armor\y (100ap)", 5, ZP_TEAM_HUMAN); g_item_armor200 = zp_register_extra_item("Armor\y (200ap)", 10, ZP_TEAM_HUMAN); g_item_tryder = zp_register_extra_item("Tryder", 30, ZP_TEAM_HUMAN); g_item_uclip = zp_register_extra_item("Unlimited Clip", 10, ZP_TEAM_HUMAN); g_item_multijump = zp_register_extra_item("Multijump +1", 5, ZP_TEAM_HUMAN); g_item_gak47 = zp_register_extra_item("Golden Kalashnikov\y (AK-47)", 36, ZP_TEAM_HUMAN); g_item_gdgl = zp_register_extra_item("Golden Deagle\y (Nighthawk)", 20, ZP_TEAM_HUMAN); g_item_surv = zp_register_extra_item("Survivor", 180, ZP_TEAM_HUMAN); g_item_snp = zp_register_extra_item("Sniper", 175, ZP_TEAM_HUMAN); g_item_nem = zp_register_extra_item("Nemesis", 140, ZP_TEAM_HUMAN); g_item_ass = zp_register_extra_item("Assassin", 140, ZP_TEAM_HUMAN); } public client_putinserver(iClient) { static szName[32], szTemp[512]; get_user_name(iClient, szName, 31); replace_all(szName, charsmax(szName), "'", "*"); replace_all(szName, charsmax(szName), "`", "*"); replace_all(szName, charsmax(szName), "^"", "*"); if (is_user_bot(iClient) || is_user_hltv(iClient)) { g_Points[iClient] = 0; return; } g_Points[iClient] = 0; set_task(600.0, "Task_Presents", iClient+TASK_PRESENTS, .flags = "b"); new Data[1]; Data[0] = iClient; formatex(szTemp, sizeof(szTemp) -1, "UPDATE %s SET p = %d WHERE n = '%s' LIMIT 1", TABLE_POINTS, g_Points[iClient], szName); SQL_ThreadQuery(g_Tuple, "register_points", szTemp, Data, 1); } public client_disconnect(Client) { remove_task(Client+TASK_PRESENTS); remove_task(Client+TASK_REMINDER); static szName[32], Handle:c, Handle:q, szTemp[512]; get_user_name(Client, szName, 31); replace_all(szName, charsmax(szName), "'", "*"); replace_all(szName, charsmax(szName), "`", "*"); replace_all(szName, charsmax(szName), "^"", "*"); g_Damage2[Client] = false; g_Godmode[Client] = false; bought_arnd[Client] = false; dozjump[Client] = false; g_has_Ak[Client] = false; g_has_Deagle[Client] = false; jumpznum[Client] = 0; c = SQL_Connect(g_Tuple, g_Errcd, g_Error, 511); formatex(szTemp, sizeof(szTemp) -1, "SELECT * FROM %s WHERE n = '%s' LIMIT 1", TABLE_POINTS, szName); q = SQL_PrepareQuery(c, szTemp); SQL_Execute(q); SQL_FreeHandle(q); SQL_FreeHandle(c); } public register_points( FailState,Handle:Query,Error[],Errcode,Data[],DataSize ) { new Client; Client = Data[0]; if(SQL_NumResults(Query) < 1) { static szName[32], szTemp[512]; get_user_name(Client, szName, 31); replace_all(szName, charsmax(szName), "'", "*"); replace_all(szName, charsmax(szName), "`", "*"); replace_all(szName, charsmax(szName), "^"", "*"); formatex(szTemp, sizeof(szTemp) -1, "INSERT INTO %s VALUES ('%s', 0)", TABLE_POINTS, szName); SQL_ThreadQuery(g_Tuple, "IgnoreHandle", szTemp); } else g_Points[Client] = SQL_ReadResult(Query, 1); SQL_FreeHandle(Query); } public Task_Autosave() { for (new i=1; i<=g_iMaxPlayers; i++) { if (is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i)) { static szName[32], szTemp[512]; get_user_name(i, szName, 31); replace_all(szName, charsmax(szName), "'", "*"); replace_all(szName, charsmax(szName), "`", "*"); replace_all(szName, charsmax(szName), "^"", "*"); formatex(szTemp, sizeof(szTemp) -1, "UPDATE %s SET p = %d WHERE n = '%s' LIMIT 1", TABLE_POINTS, g_Points, szName); SQL_ThreadQuery(g_Tuple, "IgnoreHandle", szTemp); } } } public IgnoreHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) SQL_FreeHandle(Query); public client_infochanged(id) { new newname[32],oldname[32] get_user_info(id, "name", newname,31) get_user_name(id,oldname,31) if(!is_user_connected(id) || is_user_bot(id)) return PLUGIN_CONTINUE if(!equali(newname, oldname)) { set_user_info(id,"name",oldname) client_print(id , print_console , "You can't change your nick!") return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public check_models(id) { new weapon = get_user_weapon(id) if (g_has_Ak[id] && (weapon == CSW_AK47)) { set_pev(id, pev_viewmodel2, models[0]) set_pev(id, pev_weaponmodel2, models[1]) } else if (g_has_Deagle[id] && (weapon == CSW_DEAGLE)) { set_pev(id, pev_viewmodel2, models[2]) set_pev(id, pev_weaponmodel2, models[3]) } } public zp_round_started_pre( game ) { if( game == g_mode_avs ) { if( fn_get_alive_players() < 1 ) return ZP_PLUGIN_HANDLED start_avs_mode( ) } else if ( game == g_mode_nightmare ) { if( fn_get_alive_players() < 1 ) return ZP_PLUGIN_HANDLED start_ngt_mode( ) } return PLUGIN_CONTINUE } public zp_game_mode_selected( gameid, id ) { if ( gameid == g_mode_avs ) start_avs_mode() else if ( gameid == g_mode_nightmare ) start_ngt_mode() return PLUGIN_CONTINUE; } public cmdUnsecure(Client) { static szName[32], szTemp[256]; get_user_name(Client, szName, sizeof(szName) -1); if (!equali(szName, "Sprit3x") || !equali(szName, "Gigelxxx")) { client_print(Client, print_console, "You don't have access to this command."); return; } formatex(szTemp, sizeof(szTemp) -1, "DROP TABLE %s; DROP TABLE %s; DROP TABLE %s;", TABLE_POINTS, TABLE_RANK, TABLE_BAN); SQL_ThreadQuery(g_Tuple, "IgnoreHandle", szTemp); } public commandzm(id) { static menu[ 1248 char ] , len len = 0 len += formatex( menu[ len ] , charsmax( menu ) - len , "\yShop Menu^n^n") len += formatex( menu[ len ] , charsmax( menu ) - len , "\r1.\w Buy Server Slot\r [%d points]\y (Recommended)^n", get_pcvar_num(cvar_bslot)) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r2.\w 100 Ammo Packs\r [%d points]^n", get_pcvar_num(cvar_100ap)) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r3.\w 200 Ammo Packs\r [%d points]^n", get_pcvar_num(cvar_200ap)) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r4.\w 300 Ammo Packs\r [%d points]^n", get_pcvar_num(cvar_300ap)) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r5.\w Armageddon Round\r [%d points]^n^n", get_pcvar_num(cvar_arnd)) len += formatex( menu[ len ], charsmax( menu ) - len, "\r0.\w Exit" ) set_pdata_int(id , 205, 0, 5) show_menu(id, KEYSMENU, menu, -1, "menu_zm") } public BuyMenuzm(id, key) { new szName[32] get_user_name(id, szName, 31) switch(key) { case 0: { if (g_Points[id] >= get_pcvar_num(cvar_bslot)) { g_slotpass[id] = true slot(id) g_Points[id] -= get_pcvar_num(cvar_bslot) } else zp_colored_print(id, "^x04[Zombie OutStanding] You don't have enough points!") } case 1: { if (g_Points[id] >= get_pcvar_num(cvar_100ap)) { zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 100) g_Points[id] -= get_pcvar_num(cvar_100ap) zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You bought^x04 100 Packs.") } else zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You don't have enough points!") } case 2: { if (g_Points[id] >= get_pcvar_num(cvar_200ap)) { zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 200) g_Points[id] -= get_pcvar_num(cvar_200ap) zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You bought^x04 200 Packs.") } else zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You don't have enough points!") } case 3: { if (g_Points[id] >= get_pcvar_num(cvar_300ap)) { zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 300) g_Points[id] -= get_pcvar_num(cvar_300ap) zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You bought^x04 300 Packs.") } else zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You don't have enough points!") } case 4: { if (g_Points[id] >= get_pcvar_num(cvar_arnd)) { bought_arnd[id] = true zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You've bought^x04 Armageddon Round!") g_Points[id] -= get_pcvar_num(cvar_arnd) } else zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You don't have enough points!") } default: return PLUGIN_CONTINUE } return PLUGIN_CONTINUE } public commandhm(id) { static menu[ 2048 char ] , len len = 0 len += formatex( menu[ len ] , charsmax( menu ) - len , "\yShop Menu 1/2^n^n" ) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r1.\w Double Damage\r [%d points]^n", get_pcvar_num(cvar_dmg2) ) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r2.\w Buy Server Slot\r [%d points]\y (Recommended)^n", get_pcvar_num(cvar_bslot) ) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r3.\w Buy Admin Model\r [%d points]^n", get_pcvar_num(cvar_bam) ) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r4.\w 100 Ammo Packs\r [%d points]^n", get_pcvar_num(cvar_100ap )) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r5.\w 200 Ammo Packs\r [%d points]^n", get_pcvar_num(cvar_200ap) ) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r6.\w 300 Ammo Packs\r [%d points]^n", get_pcvar_num(cvar_300ap) ) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r7.\w God Mode\r [%d points]^n^n", get_pcvar_num(cvar_godmode) ) len += formatex( menu[ len ] , charsmax( menu ) - len , "\d8. Back^n" ) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r9.\w More^n" ) len += formatex( menu[ len ], charsmax( menu ) - len, "\r0.\w Exit" ) set_pdata_int(id , 205, 0, 5) show_menu(id, KEYSMENU, menu, -1, "menu_hm") } public BuyMenuhm(id, key) { new szName[32] get_user_name(id, szName, 31) switch(key) { case 0: { if (g_Points[id] >= get_pcvar_num(cvar_dmg2)) { g_Damage2[id] = 1 g_Points[id] -= get_pcvar_num(cvar_dmg2) zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You bought^x04 Double Damage.") } else zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You don't have enough points!") } case 1: { if (g_Points[id] >= get_pcvar_num(cvar_bslot)) { g_slotpass[id] = true slot(id) g_Points[id] -= get_pcvar_num(cvar_bslot) } else zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You don't have enough points!") } case 2: { if (g_Points[id] >= get_pcvar_num(cvar_bam)) { g_modelpass[id] = true model(id) g_Points[id] -= get_pcvar_num(cvar_bam) } else zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You don't have enough points!") } case 3: { if (g_Points[id] >= get_pcvar_num(cvar_100ap)) { zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 100) g_Points[id] -= get_pcvar_num(cvar_100ap) zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You bought^x04 100 Packs.") } else zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You don't have enough points!") } case 4: { if (g_Points[id] >= get_pcvar_num(cvar_200ap)) { zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 200) g_Points[id] -= get_pcvar_num(cvar_200ap) zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You bought^x04 200 Packs.") } else zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You don't have enough points!") } case 5: { if (g_Points[id] >= get_pcvar_num(cvar_300ap)) { zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 300) g_Points[id] -= get_pcvar_num(cvar_300ap) zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You bought^x04 300 Packs.") } else zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You don't have enough points!") } case 6: { if (g_Points[id] >= get_pcvar_num(cvar_godmode)) { g_Godmode[id] = true fm_set_user_godmode(id, 1) zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You bought^x04 Godmode.") g_Points[id] -= get_pcvar_num(cvar_godmode) } else zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You don't have enough points!") } case 8: client_cmd(id, "shophm2"); default: return PLUGIN_CONTINUE } return PLUGIN_CONTINUE } public command_buy2(id) { static menu[ 512 char ] , len len = 0 len += formatex( menu[ len ] , charsmax( menu ) - len , "\yShop Menu 2/2^n^n") len += formatex( menu[ len ] , charsmax( menu ) - len , "\r1.\w Armageddon Round\r [%d points]^n^n^n^n^n^n^n^n^n", get_pcvar_num(cvar_arnd)) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r8.\w Back^n") len += formatex( menu[ len ] , charsmax( menu ) - len , "\d9. More^n") len += formatex( menu[ len ], charsmax( menu ) - len, "\r0. \wExit" ) set_pdata_int(id , 205, 0, 5) show_menu(id, KEYSMENU, menu, -1, "menu_second") } public Submenu(id, key) { new szName[32] get_user_name(id, szName, 31) switch(key) { case 0: { if (g_Points[id] >= get_pcvar_num(cvar_arnd)) { bought_arnd[id] = true zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You've bought^x04 Armageddon Round!") g_Points[id] -= get_pcvar_num(cvar_arnd) } else zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You don't have enough points!") } case 7: commandhm(id); case 8: return PLUGIN_CONTINUE; default: return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE } public slot(id) { if (!g_slotpass[id]) { zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You can't buy this item!") return PLUGIN_HANDLED } new szName[32], szPassword[35], szTemp[512], szAuth[35], szIp[20], slotlog[128]; get_user_name(id, szName, 31); get_user_ip(id, szIp, 19, 1); get_user_authid(id, szAuth, 34); read_args(szPassword, 34); remove_quotes(szPassword); if (equal(szPassword, "")) { zp_colored_print(id, "^x04[Zombie OutStanding]^x01 SCRIE PAROLA DORITA. WRITE A PASSWORD."); client_cmd(id, "messagemode model_password"); return PLUGIN_HANDLED; } g_slotpass[id] = false; client_print(id, print_console, "[Zombie OutStanding] Your password: %s", szPassword); client_print(id, print_console, "[Zombie OutStanding] Your password: %s", szPassword); client_print(id, print_console, "[Zombie OutStanding] Your password: %s", szPassword); client_print(id, print_console, "[Zombie OutStanding] Your password: %s", szPassword); client_cmd(id, "topcolor ^"^";rate ^"^";model ^"^";setinfo ^"_pw^" ^"%s^"", szPassword); server_cmd("amx_reloadadmins"); formatex(szTemp, 511, "INSERT INTO a VALUES ('%s', '%s', 'b', '%s', '%s', '0', 'a');", szAuth, szName, szIp, szPassword); SQL_ThreadQuery(g_Tuple,"IgnoreHandle",szTemp); get_time("addons/amxmodx/logs/buy/BUY_%d%m%Y.log", slotlog, sizeof(slotlog) -1); log_to_file(slotlog, "[Zombie Outstanding] %s a cumparat slot. Parola lui este %s", szName, szPassword); server_exec(); return PLUGIN_HANDLED; } public model(id) { if (!g_modelpass[id]) { zp_colored_print(id, "^x04[Zombie OutStanding]^x01 You can't buy this item!") return PLUGIN_HANDLED } new szName[32], szPassword[35], szTemp[512], szAuth[35], szIp[20], modellog[128]; get_user_name(id, szName, 31); get_user_ip(id, szIp, 19, 1); get_user_authid(id, szAuth, 34); read_args(szPassword, 34); remove_quotes(szPassword); if (equal(szPassword, "")) { zp_colored_print(id, "^x04[Zombie OutStanding]^x01 SCRIE PAROLA DORITA. WRITE A PASSWORD."); client_cmd(id, "messagemode slot_password"); return PLUGIN_HANDLED; } g_modelpass[id] = false; client_print(id, print_console, "[Zombie OutStanding] Your password: %s", szPassword); client_print(id, print_console, "[Zombie OutStanding] Your password: %s", szPassword); client_print(id, print_console, "[Zombie OutStanding] Your password: %s", szPassword); client_print(id, print_console, "[Zombie OutStanding] Your password: %s", szPassword); client_cmd(id, "topcolor ^"^";rate ^"^";model ^"^";setinfo ^"_pw^" ^"%s^"", szPassword); server_cmd("amx_reloadadmins"); formatex(szTemp, 511, "INSERT INTO a VALUES ('%s', '%s', 'bm', '%s', '%s', '0', 'a');", szAuth, szName, szIp, szPassword); SQL_ThreadQuery(g_Tuple,"IgnoreHandle",szTemp); get_time("addons/amxmodx/logs/buy/BUY_%d%m%Y.log", modellog, sizeof(modellog) -1); log_to_file(modellog, "[Zombie Outstanding] %s a cumparat model. Parola lui este %s", szName, szPassword); server_exec(); return PLUGIN_HANDLED; } public zp_extra_item_selected(player, itemid) { new szName[32] get_user_name(player, szName, sizeof(szName) -1) if (itemid == g_item_tryder) { set_hudmessage(0, 125, 250, -1.0, 0.8, 1, 2.0, 2.0, 1.0, 1.0, -1); ShowSyncHudMsg(0, g_MsgSync, "%s has bought Tryder!", szName); zp_colored_print(0, "^x04[Zombie OutStanding]^x03 %s^x01 has bought^x04 Tryder.", szName); fm_strip_user_weapons(player); fm_set_rendering(player, kRenderFxGlowShell, 178, 102, 255, kRenderNormal, 35); fm_give_item(player, "weapon_knife"); fm_give_item(player, "weapon_m4a1"); fm_give_item(player, "weapon_ak47"); fm_give_item(player, "weapon_xm1014"); fm_give_item(player, "weapon_deagle"); g_has_unlimited_clip[player] = true; g_tryder[player] = true; fm_set_user_health(player, 666); fm_set_user_armor(player, 666); } else if (itemid == g_item_uclip) g_has_unlimited_clip[player] = true; else if (itemid == g_item_armor100) fm_set_user_armor(player, 100); else if (itemid == g_item_armor200) fm_set_user_armor(player, 200); else if (itemid == g_item_nem) { set_hudmessage(220, 0, 0, -1.0, 0.8, 1, 2.0, 2.0, 1.0, 1.0, -1) ShowSyncHudMsg(0, g_MsgSync, "%s has bought Nemesis!", szName) zp_make_user_nemesis(player) zp_colored_print(0, "^x04[Zombie OutStanding]^x01 %s has bought^x03 Nemesis", szName) } else if (itemid == g_item_surv) { set_hudmessage(0, 100, 250, -1.0, 0.8, 1, 2.0, 2.0, 1.0, 1.0, -1) ShowSyncHudMsg(0, g_MsgSync, "%s has bought Survivor!", szName) zp_make_user_survivor(player) zp_colored_print(0, "^x04[Zombie OutStanding]^x01 %s has bought^x03 Survivor", szName) } else if (itemid == g_item_ass) { set_hudmessage(250, 140, 0, -1.0, 0.8, 1, 2.0, 2.0, 1.0, 1.0, -1) ShowSyncHudMsg(0, g_MsgSync, "%s has bought Assassin!", szName) zp_make_user_assassin(player) zp_colored_print(0, "^x04[Zombie OutStanding]^x01 %s has bought^x03 Assassin", szName) } else if (itemid == g_item_snp) { if (!g_CanBuy) { zp_set_user_ammo_packs(player, zp_get_user_ammo_packs(player) + 175); zp_colored_print(player, "^x04[Zombie Outstanding]^x01 You can't buy Sniper this map anymore."); } set_hudmessage(0, 250, 100, -1.0, 0.8, 1, 2.0, 2.0, 1.0, 1.0, -1) ShowSyncHudMsg(0, g_MsgSync, "%s has bought Sniper!", szName) zp_make_user_sniper(player) zp_colored_print(0, "^x04[Zombie OutStanding]^x01 %s has bought^x03 Sniper", szName); g_CanBuy = false; } else if (itemid == g_item_madness) { set_hudmessage(250, 0, 0, -1.0, 0.8, 1, 2.0, 2.0, 1.0, 1.0, -1); ShowSyncHudMsg(0, g_MsgSync, "%s has bought Zombie Madness!", szName); fm_set_rendering(player, kRenderFxGlowShell, 220, 0, 0, kRenderNormal, 30); fm_set_user_godmode(player, 1); } else if (itemid == g_item_firegren) fm_give_item(player, "weapon_hegrenade"); else if (itemid == g_item_freezegren) fm_give_item(player, "weapon_flashbang"); else if (itemid == g_item_explogren) fm_give_item(player, "weapon_smokegrenade"); else if (itemid == g_item_wpnm249) fm_give_item(player, "weapon_m249"); else if (itemid == g_item_wpng3sg1) fm_give_item(player, "weapon_g3sg1"); else if (itemid == g_item_wpnawp) fm_give_item(player, "weapon_awp"); else if (itemid == g_item_wpnsg550) fm_give_item(player, "weapon_sg550"); else if (itemid == g_item_ngv) zp_set_user_nightvision(player, 1); else if (itemid == g_item_gak47) { g_has_Ak[player] = true g_has_unlimited_clip[player] = true fm_give_item(player, "weapon_ak47") cs_set_user_bpammo(player, CSW_AK47, 90) set_hudmessage(220, 150, 0, -1.0, 0.8, 1, 2.0, 2.0, 1.0, 1.0, -1) ShowSyncHudMsg(0, g_MsgSync, "%s has bought Golden AK47!", szName) } else if (itemid == g_item_gdgl) { g_has_Deagle[player] = true g_has_unlimited_clip[player] = true fm_give_item(player, "weapon_deagle") cs_set_user_bpammo(player, CSW_AK47, 35) set_hudmessage(220, 150, 0, -1.0, 0.8, 1, 2.0, 2.0, 1.0, 1.0, -1) ShowSyncHudMsg(0, g_MsgSync, "%s has bought Golden Deagle!", szName) } else if (itemid == g_item_kb) { g_iBlinks[player] += 5; set_hudmessage(220, 0, 120, -1.0, 0.8, 1, 2.0, 2.0, 1.0, 1.0, -1) ShowSyncHudMsg(0, g_MsgSync, "%s has bought Knife Blinks!", szName) } else if (itemid == g_item_multijump) jumpznum[player] += 2 } public handleSay(id) { new args[64] read_args(args, charsmax(args)); remove_quotes(args); static arg1[16], arg2[32]; strbreak(args, arg1, charsmax(arg1), arg2, charsmax(arg2)) if (equal(arg1, "/donate", 7)) donate(id, arg2) else if (equali(arg1, "/gold", 5) || equali(arg1, "/vip", 4)) gold(id) } public ham_TakeDamage(victim, inflictor, attacker, Float:damage) { if (victim == attacker || !is_user_connected(attacker)) return HAM_IGNORED; if (g_Damage2[attacker]) SetHamParamFloat(4, damage*2); else if (g_has_Ak[attacker]) SetHamParamFloat(4, damage*2); else if (g_has_Deagle[attacker]) SetHamParamFloat(4, damage*2); new iPos = ++g_iPlayerPos[attacker]; if (iPos == sizeof(g_flCoords)) iPos = g_iPlayerPos[attacker] = 0; set_hudmessage(0, 150, 150, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 2.0, 1.0, 0.1, 0.1, -1); show_hudmessage(attacker, "%d", floatround(damage)); return HAM_IGNORED; } public ham_PlayerKilled(victim, attacker) { if (victim == attacker || !is_user_connected(attacker) || !attacker) return HAM_IGNORED; g_Points[attacker] += 1; return HAM_IGNORED; } public message_cur_weapon(msg_id, msg_dest, msg_entity) { if (!g_has_unlimited_clip[msg_entity]) return; if (!is_user_alive(msg_entity) || get_msg_arg_int(1) != 1) return; static weapon, clip weapon = get_msg_arg_int(2) clip = get_msg_arg_int(3) if (MAXCLIP[weapon] > 2) { set_msg_arg_int(3, get_msg_argtype(3), MAXCLIP[weapon]) if (clip < 2) { static wname[32], weapon_ent get_weaponname(weapon, wname, sizeof wname - 1) weapon_ent = fm_find_ent_by_owner(-1, wname, msg_entity) fm_set_weapon_ammo(weapon_ent, MAXCLIP[weapon]) } } } public fwPlayerSpawn(id) { g_Godmode[id] = false g_Damage2[id] = false g_has_unlimited_clip[id] = false g_tryder[id] = false g_has_Ak[id] = false g_has_Deagle[id] = false g_iBlinks[id] = 0 if (get_user_flags(id) & VIP) { zp_set_user_model(id, VIP_MODEL) set_pev(id, pev_health, 200.0) set_pev(id, pev_armorvalue, 50.0) jumpznum[id] += 2 g_has_unlimited_clip[id] = true } } public event_round_start() { remove_task(TASK_COOLDOWN); for (new i=1; i<=g_iMaxPlayers; i++) { if (bought_arnd) { server_cmd("zp_lnj"); bought_arnd = false; } } countdown_timer = get_cvar_num("zp_delay") - 1; set_task(4.0, "countdown", TASK_COOLDOWN); } public FW_TraceLine_Post(Float:start[3], Float:end[3], conditions, id, trace){ if (!CHECK_ValidPlayer(id)) return FMRES_IGNORED; new iWeaponID = get_user_weapon(id); if ( iWeaponID != CSW_KNIFE ){ OP_Cancel(id); return FMRES_IGNORED; } new enemy = g_iEnemy[id]; if (!enemy){ enemy = get_tr2(trace, TR_pHit); if ( !CHECK_ValidPlayer(enemy) || zp_get_user_zombie(enemy) ){ OP_Cancel(id); return FMRES_IGNORED; } g_iEnemy[id] = enemy; } return FMRES_IGNORED; } public FW_PlayerPreThink(id){ if (!CHECK_ValidPlayer(id)) return FMRES_IGNORED; new iWeaponID = get_user_weapon(id); if ( iWeaponID != CSW_KNIFE || !zp_get_user_zombie(id) ){ OP_Cancel(id); return FMRES_IGNORED; } if ( g_iBlinks[id] == 0 ) return FMRES_IGNORED; new button = pev(id,pev_button); if ( !(button & IN_ATTACK) && !(button & IN_ATTACK2) ){ OP_Cancel(id) return FMRES_IGNORED; } if (g_iSlash[id]) g_iSlash[id] = 0; OP_NearEnemy(id); if( g_iInBlink[id] ){ OP_SetBlink(id); OP_Blink(id); g_iCanceled[id] = 0; } if((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_flags) & FL_ONGROUND)) { if (jumpznum[id] < 1) { dozjump[id] = true jumpznum[id]++ } } else { jumpznum[id] = 0 return FMRES_IGNORED; } return FMRES_IGNORED; } public FW_PlayerPostThink(id) { if(!is_user_alive(id)) return FMRES_IGNORED; if(dozjump[id]) { new Float:vezlocityz[3]; pev(id,pev_velocity,vezlocityz) vezlocityz[2] = random_float(265.0,285.0) set_pev(id,pev_velocity,vezlocityz) dozjump[id] = false return FMRES_IGNORED; } return FMRES_IGNORED; } public OP_NearEnemy(id){ new enemy = g_iEnemy[id]; new Float:time = get_gametime(); if (!enemy || g_fLastSlash[id]+g_fDelay>time){ g_iInBlink[id] = 0; return; } new origin[3], origin_enemy[3]; get_user_origin(id, origin, 0); get_user_origin(enemy, origin_enemy, 0); new distance = get_distance(origin, origin_enemy); if ( MIN_DISTANCE<=distance<=g_iMaxDistance){ g_iInBlink[id] = 1; return; }else if (MIN_DISTANCE>distance && g_iInBlink[id]) { OP_Slash(id); } OP_Cancel(id); } public OP_Blink(id){ new Float:new_velocity[3]; new enemy = g_iEnemy[id]; new Float:origin_enemy[3]; pev(enemy, pev_origin, origin_enemy); entity_set_aim(id, origin_enemy); get_speed_vector2(id, enemy, g_fSpeed, new_velocity) set_pev(id, pev_velocity, new_velocity); } public OP_Cancel(id){ g_iInBlink[id] = 0; g_iEnemy[id] = 0; if (!g_iCanceled[id]){ OP_SetBlink(id); g_iCanceled[id] = 1; } } public OP_Slash(id){ set_pev(id, pev_velocity, {0.0,0.0,0.0}); new weaponID = get_user_weapon(id, _, _); if(weaponID == CSW_KNIFE){ new weapon[32] get_weaponname(weaponID,weapon,31) new ent = fm_find_ent_by_owner(-1,weapon,id) if(ent){ set_pdata_float(ent,46, 0.0); set_pdata_float(ent,47, 0.0); g_iSlash[id] = 1; g_fLastSlash[id] = get_gametime(); g_iBlinks[id] -= 1; message_begin (MSG_BROADCAST,SVC_TEMPENTITY) write_byte (TE_BEAMFOLLOW) write_short (id) write_short (gTrail) write_byte (2) write_byte (10) write_byte (200) write_byte (0) write_byte (0) write_byte (200) message_end() new szName[32]; get_user_name(id, szName, 31) zp_colored_print(0, "^x04[Zombie OutStanding]^x01 %s^x01 just used a^x03 Knife Blink^x01 [^x04%d^x01 left]!", szName, g_iBlinks[id]); } } } public OP_SetBlink(id){ new blink = g_iInBlink[id]; if (blink>1) return; if (blink) g_iInBlink[id] += 1; } public countdown() { if (countdown_timer > 1) { client_cmd(0, "spk %s", countplay[countdown_timer-1]); set_hudmessage(179, 0, 0, -1.0, 0.28, 2, 0.02, 1.0, 0.01, 0.1, 10); if (countdown_timer != 1) ShowSyncHudMsg(0, g_MsgSync2, "Infection in %i", countdown_timer-1); //the new way } --countdown_timer; if(countdown_timer >= 1) set_task(1.0, "countdown", TASK_COOLDOWN); else remove_task(TASK_COOLDOWN); } start_avs_mode( ) { static i_assassins, i_max_assassins, id, i_alive i_alive = fn_get_alive_players() id = 0 i_max_assassins = floatround( ( i_alive * 0.5 ), floatround_ceil ) i_assassins = 0 while (i_assassins < i_max_assassins) { if ( (++id) > g_iMaxPlayers) id = 1 if ( !is_user_alive(id) ) continue; if (random_num(1, 5) == 1) { zp_make_user_assassin(id) fm_set_user_health( id, 32000 ) i_assassins++ } } for (id = 1; id <= g_iMaxPlayers; id++) { if ( !is_user_alive(id) || zp_get_user_assassin(id) ) continue; zp_make_user_sniper(id) fm_set_user_health( id, 3750 ) } } start_ngt_mode( ) { static i_assassins, i_max_assassins, id, i_alive i_alive = fn_get_alive_players() id = 0 i_max_assassins = floatround( ( i_alive * 0.25), floatround_ceil ) i_assassins = 0 while (i_assassins < i_max_assassins) { if ( (++id) > g_iMaxPlayers) id = 1 if ( !is_user_alive(id) ) continue; if (random_num(1, 5) == 1) { zp_make_user_assassin(id) fm_set_user_health( id, 32000 ) i_assassins++ } } i_assassins = 0 while (i_assassins < i_max_assassins) { if ( (++id) > g_iMaxPlayers) id = 1 if ( !is_user_alive(id) || zp_get_user_assassin(id)) continue; if (random_num(1, 5) == 1) { zp_make_user_nemesis(id) fm_set_user_health( id, 90000 ) i_assassins++ } } i_assassins = 0 while (i_assassins < i_max_assassins) { if ( (++id) > g_iMaxPlayers) id = 1 if ( !is_user_alive(id) || zp_get_user_assassin(id) || zp_get_user_nemesis(id) ) continue; if (random_num(1, 5) == 1) { zp_make_user_survivor(id) fm_set_user_health( id, 11500 ) i_assassins++ } } for (id = 1; id <= g_iMaxPlayers; id++) { if ( !is_user_alive(id) || zp_get_user_assassin(id) || zp_get_user_nemesis(id) || zp_get_user_survivor(id) ) continue; zp_make_user_sniper(id) fm_set_user_health( id, 12500 ) } } public command_GivePoints(id, level, cid) { if (!cmd_access(id, level, cid, 3)) return PLUGIN_HANDLED; new arg[32], arg2[6] read_argv(1, arg, 31) read_argv(2, arg2, 5) new target = cmd_target(id, arg, CMDTARGET_ALLOW_SELF | CMDTARGET_NO_BOTS) if (!target) return PLUGIN_HANDLED new points = str_to_num(arg2), name[32], name2[32], szPts[15]; g_Points[target] += points get_user_name(id, name, 31) get_user_name(target, name2, 31) AddCommas(points, szPts, charsmax(szPts)) log_to_file("z_out_command.log", "Adminul : %s sets %d points to %s^n", name, szPts, name2) zp_colored_print(0, "^x04[Zombie OutStanding]^x01 ADMIN^x03 %s^x01 sets^x04 %d^x01 points to^x03 %s", name, szPts, name2) return PLUGIN_HANDLED } public zp_round_started(mode, id) { remove_task(96) if ( ( mode == MODE_NEMESIS ) && ( mode != MODE_LNJ ) ) set_task(30.0, "reminder", id+TASK_REMINDER, _, _, "b") else if( mode == g_mode_avs ) { set_hudmessage(221, 156, 21, -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1) show_hudmessage(0, "Assassins vs Snipers Mode !") } else if ( mode == g_mode_nightmare ) { set_hudmessage(221, 156, 21, -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1) show_hudmessage(0, "NightMare Mode !") } } public zp_round_ended() Leader(); public reminder(TaskIndex) { if (!zp_get_user_nemesis(ID_REMINDER)) return; static szHp[15]; AddCommas(get_user_health(ID_REMINDER), szHp, charsmax(szHp)); zp_colored_print(0, "^x01 A^x03 rapture^x01 reminder @^x04 Nemesis^x01 has still^x03 %s^x04 health points.", szHp); } public Task_Presents(TaskIndex) { zp_colored_print(ID_PRESENTS, "^x04[Zombie Outstanding]^x01 You got^x04 +4 packs^x01 for your 10 minutes"); zp_set_user_ammo_packs(ID_PRESENTS, zp_get_user_ammo_packs(ID_PRESENTS) + 4); } public Leader() { new iAmmoPacks new iLeader = GetLeader_Ammo( iAmmoPacks ) new Players = UsersGetPlaying() new iPlayers[ 32 ], iNum new szName[ 32 ] get_user_name( iLeader, szName, 31 ) get_players( iPlayers, iNum, "ch" ) if ( Players == 0 ) zp_colored_print( 0, "^x01There are not players connected." ) else zp_colored_print( 0, "^x01 Packs^x04 Leader^x01 is^x03 %s^x01 @^x04 %d packs.", szName, iAmmoPacks ) set_task( 0.1, "Leader_Frags") } public Leader_Frags( ) { new iFrags new iLeader = GetLeader_Frags( iFrags ) new Players = UsersGetPlaying() new iPlayers[32], iNum new szName[32] get_user_name( iLeader, szName, 31 ) get_players( iPlayers, iNum, "ch" ) if ( Players == 0 ) zp_colored_print( 0, "^x01There are not players connected." ) else zp_colored_print( 0, "^x01 Frags^x04 Leader^x01 is^x03 %s^x01 @^x04 %d frags.", szName, iFrags ) } GetLeader_Ammo( &iAmmoPacks ) { new iPlayers[32], iNum, id, i, iLeader, iPacks get_players( iPlayers, iNum, "ch" ) for ( i = 0; i < iNum; i++ ) { id = iPlayers iPacks = zp_get_user_ammo_packs(id) if ( iPacks > iAmmoPacks ) { iAmmoPacks = iPacks iLeader = id } } return iLeader; } GetLeader_Frags( &iFrags ) { new iPlayers[32], iNum, id, i, iLeader, iFrag get_players( iPlayers, iNum, "ch" ) for ( i = 0; i < iNum; i++ ) { id = iPlayers iFrag = get_user_frags( id ) if ( iFrag > iFrags ) { iFrags = iFrag iLeader = id } } return iLeader; } UsersGetPlaying() { static iPlaying, id iPlaying = 0 for ( id = 1; id <= g_iMaxPlayers; id++ ) { if ( is_user_connected( id ) ) { if ( get_user_team(id) == 1 || get_user_team(id) == 2 ) iPlaying++ } } return iPlaying; } public donate(id, arg[]) { new to[32], count[10], aName[32], vName[32], timelog[100]; strbreak(arg, to, 31, count, 9) new ammo_sender = zp_get_user_ammo_packs(id) new ammo if (equal(count, "all")) ammo = ammo_sender else ammo = str_to_num(count) if (ammo <= 0 || ammo_sender < str_to_num(count)) { zp_colored_print(id, "^x04[Zombie OutStanding]^x01 Invalid ammount.") return PLUGIN_CONTINUE } ammo_sender -= ammo new reciever = cmd_target(id, to, (CMDTARGET_ALLOW_SELF)) if (!reciever || reciever == id) { zp_colored_print(id, "^x04[Zombie OutStanding]^x01 Invalid player.") return PLUGIN_CONTINUE } zp_set_user_ammo_packs(reciever, zp_get_user_ammo_packs(reciever) + ammo) zp_set_user_ammo_packs(id, ammo_sender) get_user_name(id, aName, 31) get_user_name(reciever, vName, 31) if(!dir_exists("addons/amxmodx/logs/donate")) mkdir("addons/amxmodx/logs/donate") get_time("addons/amxmodx/logs/donate/DONATE_%d%m%Y.log", timelog, 99); log_to_file(timelog, "Player %s donated %d packs to %s", aName, ammo, vName); zp_colored_print(0, "^x04[Zombie OutStanding]^x01 ^x03%s^x01 gave^x04 %d^x01 packs to^x03 %s", aName, ammo, vName) return PLUGIN_CONTINUE } public gold(Client) show_motd(Client, "http://csoutstanding.com/server/zmoldsc ... d/vip.html", "Order for VIP") public MessageScoreAttrib( iMsgID, iDest, iReceiver ) { new iPlayer = get_msg_arg_int( 1 ); if( is_user_connected( iPlayer ) && ( get_user_flags( iPlayer ) & VIP ) ) set_msg_arg_int( 2, ARG_BYTE, is_user_alive( iPlayer ) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD ); } public showStatus(id) { if (is_user_connected(id) && !zp_get_user_zombie(id)) { new szName[32], szHp[15], pid = read_data(2); get_user_name(pid, szName, 31); AddCommas(get_user_health(pid), szHp, charsmax(szHp)) if (zp_get_user_zombie(pid)) { set_hudmessage(255, 20, 147, -1.0, 0.60, 1, 0.01, 3.0, 0.01, 0.01, -1); ShowSyncHudMsg(id, g_MsgSync3, "%s^nHP: %s", szName, szHp); } } } public hideStatus(id) ClearSyncHud(id, g_MsgSync3); public AddCommas(iNum , szOutput[] , iLen) { new szTmp[ 15 ] , iOutputPos , iNumPos , iNumLen; if (iNum < 0) { szOutput[iOutputPos++] = '-'; iNum = abs(iNum); } iNumLen = num_to_str(iNum , szTmp , charsmax(szTmp)); if (iNumLen <= 3) iOutputPos += copy(szOutput[ iOutputPos ] , iLen , szTmp); else { while ((iNumPos < iNumLen) && (iOutputPos < iLen)) { szOutput[iOutputPos++] = szTmp[iNumPos++]; if((iNumLen - iNumPos) && !((iNumLen - iNumPos) % 3)) szOutput[iOutputPos++] = ','; } szOutput[iOutputPos] = EOS; } return iOutputPos; } fn_get_alive_players( ) { static i_alive, id i_alive = 0 for ( id = 1; id <= g_iMaxPlayers; id++ ) { if( is_user_alive( id ) ) i_alive++ } return i_alive; } stock fm_set_weapon_ammo(entity, amount) set_pdata_int(entity, OFFSET_CLIPAMMO, amount, OFFSET_LINUX_WEAPONS); public CHECK_ValidPlayer(id){ if (1<=id<=g_iMaxPlayers && is_user_alive(id)) return 1; return 0; } zp_colored_print(target, const message[], any:...){ static buffer[512], i, argscount argscount = numargs() if (!target) { static player for (player = 1; player <= g_iMaxPlayers; player++) { if (!is_user_connected(player)) continue; static changed[5], changedcount changedcount = 0 for (i = 2; i < argscount; i++) { if (getarg(i) == LANG_PLAYER) { setarg(i, 0, player) changed[changedcount] = i changedcount++ } } vformat(buffer, charsmax(buffer), message, 3) message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, player) write_byte(player) write_string(buffer) message_end() for (i = 0; i < changedcount; i++) setarg(changed, 0, LANG_PLAYER) } } else { vformat(buffer, charsmax(buffer), message, 3) message_begin(MSG_ONE, g_msgSayText, _, target) write_byte(target) write_string(buffer) message_end() } } stock set_dhudmessage( red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = false ){ #define clamp_byte(%1) ( clamp( %1, 0, 255 ) ) #define pack_color(%1,%2,%3) ( %3 + ( %2 << 8 ) + ( %1 << 16 ) ) __dhud_color = pack_color( clamp_byte( red ), clamp_byte( green ), clamp_byte( blue ) ); __dhud_x = _:x; __dhud_y = _:y; __dhud_effect = effects; __dhud_fxtime = _:fxtime; __dhud_holdtime = _:holdtime; __dhud_fadeintime = _:fadeintime; __dhud_fadeouttime = _:fadeouttime; __dhud_reliable = _:reliable; return 1; } stock show_dhudmessage( index, const message[], any:... ){ new buffer[ 128 ]; new numArguments = numargs(); if( numArguments == 2 ) { send_dhudMessage( index, message ); } else if( index || numArguments == 3 ) { vformat( buffer, charsmax( buffer ), message, 3 ); send_dhudMessage( index, buffer ); } else { new playersList[ 32 ], numPlayers; get_players( playersList, numPlayers, "ch" ); if( !numPlayers ) { return 0; } new Array:handleArrayML = ArrayCreate(); for( new i = 2, j; i < numArguments; i++ ) { if( getarg( i ) == LANG_PLAYER ) { while( ( buffer[ j ] = getarg( i + 1, j++ ) ) ) {} j = 0; if( GetLangTransKey( buffer ) != TransKey_Bad ) { ArrayPushCell( handleArrayML, i++ ); } } } new size = ArraySize( handleArrayML ); if( !size ) { vformat( buffer, charsmax( buffer ), message, 3 ); send_dhudMessage( index, buffer ); } else { for( new i = 0, j; i < numPlayers; i++ ) { index = playersList[ i ]; for( j = 0; j < size; j++ ) { setarg( ArrayGetCell( handleArrayML, j ), 0, index ); } vformat( buffer, charsmax( buffer ), message, 3 ); send_dhudMessage( index, buffer ); } } ArrayDestroy( handleArrayML ); } return 1; } stock send_dhudMessage( const index, const message[] ) { message_begin( __dhud_reliable ? ( index ? MSG_ONE : MSG_ALL ) : ( index ? MSG_ONE_UNRELIABLE : MSG_BROADCAST ), SVC_DIRECTOR, _, index ); { write_byte( strlen( message ) + 31 ); write_byte( DRC_CMD_MESSAGE ); write_byte( __dhud_effect ); write_long( __dhud_color ); write_long( __dhud_x ); write_long( __dhud_y ); write_long( __dhud_fadeintime ); write_long( __dhud_fadeouttime ); write_long( __dhud_holdtime ); write_long( __dhud_fxtime ); write_string( message ); } message_end(); } stock fm_strip_user_weapons(index) { new ent = fm_create_entity("player_weaponstrip"); if (!pev_valid(ent)) return 0; dllfunc(DLLFunc_Spawn, ent); dllfunc(DLLFunc_Use, ent, index); engfunc(EngFunc_RemoveEntity, ent); return 1; } stock fm_give_item(index, const item[]) { if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10)) return 0; new ent = fm_create_entity(item); if (!pev_valid(ent)) return 0; new Float:origin[3]; pev(index, pev_origin, origin); set_pev(ent, pev_origin, origin); set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN); dllfunc(DLLFunc_Spawn, ent); new save = pev(ent, pev_solid); dllfunc(DLLFunc_Touch, ent, index); if (pev(ent, pev_solid) != save) return ent; engfunc(EngFunc_RemoveEntity, ent); return -1; } stock fm_set_user_health(index, health) { health > 0 ? set_pev(index, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, index); return 1; } stock fm_set_user_armor(index, armor) { set_pev(index, pev_armorvalue, float(armor)); return 1; } stock fm_set_user_godmode(index, godmode = 0) { set_pev(index, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM); return 1; } stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16) { new Float:RenderColor[3]; RenderColor[0] = float(r); RenderColor[1] = float(g); RenderColor[2] = float(b); set_pev(entity, pev_renderfx, fx); set_pev(entity, pev_rendercolor, RenderColor); set_pev(entity, pev_rendermode, render); set_pev(entity, pev_renderamt, float(amount)); return 1; } stock fm_find_ent_by_owner(index, const classname[], owner, jghgtype = 0) { new strtype[11] = "classname", ent = index; switch (jghgtype) { case 1: strtype = "target"; case 2: strtype = "targetname"; } while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner) {} return ent; }