RSSy MYGO.pl Opublikowano Styczeń 18, 2022 o 19:27 RSSy Udostępnij Opublikowano Styczeń 18, 2022 o 19:27 this plugin is for base builder 6.5 by Tirant. original one is made by Tirant i used his plugin and added new zombies + powers. plugin is not fully written by me i combined codes from other plugins and made this. there might be some unnecessary parts in it but it works fine 0 error. hers some description of the updated classes first 3 class is normal ( classic fast jumper ) they have not special powers 4th class tanker have 300 armor he glow blue while he have armor when he get 0 armor left his glow dissapear 5th class hair it have invisibility for first 20 seconds when it gets respawned. (not completly invisible but very hard to see) 6th class frost can freeze builder when you aim builder and use mouse2 button when builder is frozen he cant shoot or move freeze duration is 3.7 sec and ability cooldown 30 sec ( you can use it in every 30 sec) this cvars can be changed 7th class alien it can regenerate hp when it get damage it regenerates 40hp/sec max regeneration = 2000hp while regenerating he glow green 8th class hunter it have 4000hp and activates godmode for 1.6 sec when it get 1000hp damage in total 3 times = 4.8 sec godmode while he have godmode he glow orange 9th class prohunter it have shield with 250 armor points while he have shield he glow white he wont take damage until he have shield active shield duration is 30 sec you can destroy shield by shooting when shield is deactivated zm take normal damage shield = 250 armor points when armor hits 0 points shield is deactivated PHP Code: /*================================================================================ ----------------------------------- -*- [BB] Default Zombie Classes -*- ----------------------------------- ~~~~~~~~~~~~~~~ - Description - ~~~~~~~~~~~~~~~ This plugin adds the default zombie classes from Zombie Plague into Base Builder. All credit belongs to MeRcyLeZZ. All classes have been balanced, but feel free to edit them if you are not satisfied. ================================================================================*/ #include <amxmodx> #include <engine> #include <fakemeta> #include <basebuilder> #include <hamsandwich> #include <fun> #include <cstrike> #include <fakemeta_util> #define is_user_frozen(%1) bFrozen[%1] /*================================================================================ [Plugin Customization] =================================================================================*/ // Classic Zombie Attributes new const zclass1_name[] = { "Classic Zombie" } new const zclass1_info[] = { "\r| \dNo Power \r(Free)" } new const zclass1_model[] = { "classicpk" } new const zclass1_clawmodel[] = { "v_classicpk" } const zclass1_health = 3500 const zclass1_speed = 280 const Float:zclass1_gravity = 0.85 const zclass1_adminflags = ADMIN_ALL // Fast Zombie Attributes new const zclass2_name[] = { "Fast Zombie" } new const zclass2_info[] = { "\r| \dNo Power \r(Free)" } new const zclass2_model[] = { "fastpk" } new const zclass2_clawmodel[] = { "v_fastpk" } const zclass2_health = 2400 const zclass2_speed = 420 const Float:zclass2_gravity = 1.0 const zclass2_adminflags = ADMIN_ALL // Jumper Zombie Attributes new const zclass3_name[] = { "Jumper Zombie" } new const zclass3_info[] = { "\r| \dNo Power \r(Free)" } new const zclass3_model[] = { "jumperpk" } new const zclass3_clawmodel[] = { "v_jumperpk" } const zclass3_health = 3000 const zclass3_speed = 260 const Float:zclass3_gravity = 0.5 const zclass3_adminflags = ADMIN_ALL // Tanker Zombie Attributes new const zclass4_name[] = { "Tanker Zombie" } new const zclass4_info[] = { "\r| \yTank Armor \r(Free)" } new const zclass4_model[] = { "tankerpk" } new const zclass4_clawmodel[] = { "v_tankerpk" } const zclass4_health = 4200 const zclass4_speed = 220 const Float:zclass4_gravity = 1.0 const zclass4_adminflags = ADMIN_ALL // Jockey Zombie Attributes new const zclass5_name[] = { "Hair Zombie" } new const zclass5_info[] = { "\r| \yInvisible \r(VIP)" } new const zclass5_model[] = { "hairpk" } new const zclass5_clawmodel[] = { "v_hairpk" } const zclass5_health = 3800 const zclass5_speed = 270 const Float:zclass5_gravity = 0.7 const zclass5_adminflags = ADMIN_LEVEL_H // Agent-1 Zombie Attributes new const zclass6_name[] = { "Frost Zombie" } new const zclass6_info[] = { "\r| \yFreeze CT \r(Test Admin)" } new const zclass6_model[] = { "frostpk" } new const zclass6_clawmodel[] = { "v_frostpk" } const zclass6_health = 3500 const zclass6_speed = 320 const Float:zclass6_gravity = 1.0 const zclass6_adminflags = ADMIN_VOTE // Agent-2 Zombie Attributes new const zclass7_name[] = { "Alien Zombie" } new const zclass7_info[] = { "\r| \yRegenerator \r(Admin)" } new const zclass7_model[] = { "alienpk2" } new const zclass7_clawmodel[] = { "v_prohunterpk" } const zclass7_health = 2000 const zclass7_speed = 440 const Float:zclass7_gravity = 0.5 const zclass7_adminflags = ADMIN_KICK // Lysing Zombie Attributes new const zclass8_name[] = { "Hunter Zombie" } new const zclass8_info[] = { "\r| \yInvincible \r(Full Admin)" } new const zclass8_model[] = { "hunterpk" } new const zclass8_clawmodel[] = { "v_hunterpk" } const zclass8_health = 4000 const zclass8_speed = 285 const Float:zclass8_gravity = 0.9 const zclass8_adminflags = ADMIN_BAN // Wolf Zombie Attributes new const zclass9_name[] = { "ProHunter Zombie" } new const zclass9_info[] = { "\r| \yShield \r(Head Admin)" } new const zclass9_model[] = { "spiderpk" } new const zclass9_clawmodel[] = { "v_spiderpk" } const zclass9_health = 4500 const zclass9_speed = 265 const Float:zclass9_gravity = 0.6 const zclass9_adminflags = ADMIN_CFG #define HUNTER 1 #define REGENERATOR 25 #define TANK_ARMOR 300 /*============================================================================*/ new beamSpr, freezer_spr new pcvar_distance new cvar_cooldown new pcvar_freeze new g_zclass_tanker new g_zclass_alien new g_zclass_hunter new g_freezer new g_hair new g_spider new g_maxplayers new is_cooldown[33] = 0 new bool:g_cd[33] new cvar_nemesis new Countdown[33] new bool:bFrozen[33] new Float:iAngles[33][3] const iVictim = 2 // Zombie Classes MUST be registered on plugin_precache public plugin_precache() { register_plugin("[BB] Default Zombie Classes", "6.5", "Tirant") beamSpr = precache_model("sprites/lgtning.spr") freezer_spr = precache_model("sprites/freezer_exp.spr") // Register all classes bb_register_zombie_class(zclass1_name, zclass1_info, zclass1_model, zclass1_clawmodel, zclass1_health, zclass1_speed, zclass1_gravity, 0.0, zclass1_adminflags) bb_register_zombie_class(zclass2_name, zclass2_info, zclass2_model, zclass2_clawmodel, zclass2_health, zclass2_speed, zclass2_gravity, 0.0, zclass2_adminflags) bb_register_zombie_class(zclass3_name, zclass3_info, zclass3_model, zclass3_clawmodel, zclass3_health, zclass3_speed, zclass3_gravity, 0.0, zclass3_adminflags) g_zclass_tanker = bb_register_zombie_class(zclass4_name, zclass4_info, zclass4_model, zclass4_clawmodel, zclass4_health, zclass4_speed, zclass4_gravity, 0.0, zclass4_adminflags) g_hair = bb_register_zombie_class(zclass5_name, zclass5_info, zclass5_model, zclass5_clawmodel, zclass5_health, zclass5_speed, zclass5_gravity, 0.0, zclass5_adminflags) g_freezer = bb_register_zombie_class(zclass6_name, zclass6_info, zclass6_model, zclass6_clawmodel, zclass6_health, zclass6_speed, zclass6_gravity, 0.0, zclass6_adminflags) g_zclass_alien = bb_register_zombie_class(zclass7_name, zclass7_info, zclass7_model, zclass7_clawmodel, zclass7_health, zclass7_speed, zclass7_gravity, 0.0, zclass7_adminflags) g_zclass_hunter = bb_register_zombie_class(zclass8_name, zclass8_info, zclass8_model, zclass8_clawmodel, zclass8_health, zclass8_speed, zclass8_gravity, 0.0, zclass8_adminflags) g_spider = bb_register_zombie_class(zclass9_name, zclass9_info, zclass9_model, zclass9_clawmodel, zclass9_health, zclass9_speed, zclass9_gravity, 0.0, zclass9_adminflags) } #if defined REGENERATOR public plugin_init() { RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post2", 1) RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post", 1) RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post3", 1) RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post5", 1) RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post6", 1) pcvar_distance = register_cvar ( "bb_frost_distancex", "1000" ) cvar_cooldown = register_cvar("bb_frost_shot_cooldownx","30.0") pcvar_freeze = register_cvar( "bb_frost_freeze_time", "3.7" ) cvar_nemesis = register_cvar("bb_frost_nemesisx", "1") g_maxplayers = get_maxplayers() register_logevent("roundStart", 2, "1=Round_Start") register_forward(FM_CmdStart, "fwd_cmd_start") RegisterHam(Ham_Spawn,"player","fw_PlayerSpawn_Post",1) RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post4", 1) register_event( "DeathMsg" , "eventDeathMsg" , "a" ); register_logevent( "eventRoundEnd" , 2 , "1=Round_End" ); } public ham_PlayerSpawn_Post6(id) { if (!is_user_alive(id)) return ; if (bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_spider) { remove_task(id), give_item(id, "item_assaultsuit"), set_user_armor(id, 250), set_user_rendering(id,kRenderFxGlowShell,255,255,255,kRenderNormal,25), set_task(0.02, "regen2", id, .flags = "b"), set_task(0.1, "destroy", id, .flags = "b"), set_task(30.0, "destroy2", id, .flags = "b") } } public regen2(id) { if(bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_spider) set_user_health(id, 4500) } public destroy(id) { if(bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_spider && get_user_armor(id) < 1) remove_task(id), set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25) } public destroy2(id) { if(bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_spider) set_user_armor(id, 0) } public ham_PlayerSpawn_Post2(id) { if (!is_user_alive(id)) return ; if (bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_alien) { remove_task(id), set_task(0.5, "regen", id, .flags = "b") } } public regen(id) { if(bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_alien && get_user_health(id) < 2000) set_user_health(id, get_user_health(id) + 20), set_user_rendering(id,kRenderFxGlowShell,0,255,0,kRenderNormal,25) if(bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_alien && get_user_health(id) > 1999) set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25) } #endif #if defined HUNTER public ham_PlayerSpawn_Post3(id) { if (!is_user_alive(id)) return ; if (bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_hunter) { remove_task(id), set_task(0.1, "godmode", id, .flags = "b") } } public godmode(id) { if(bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_hunter && get_user_health(id) < 3000) remove_task(id), set_user_godmode(id, 1), set_user_rendering(id,kRenderFxGlowShell,255,150,38,kRenderNormal,25), set_task(0.1, "godmode2", id, .flags = "b"), set_task(1.6, "rgodmode", id) } public godmode2(id) { if(bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_hunter && get_user_health(id) < 2000) remove_task(id), set_user_godmode(id, 1), set_user_rendering(id,kRenderFxGlowShell,255,150,38,kRenderNormal,25), set_task(0.1, "godmode3", id, .flags = "b"), set_task(1.6, "rgodmode", id) } public godmode3(id) { if(bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_hunter && get_user_health(id) < 1000) remove_task(id), set_user_godmode(id, 1), set_user_rendering(id,kRenderFxGlowShell,255,150,38,kRenderNormal,25), set_task(1.6, "rgodmode", id) } public rgodmode(id) { if(bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_hunter) set_user_godmode(id, 0), set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25) } #endif public fw_PlayerSpawn_Post(id) { // Not alive... if(!is_user_alive(id)) return HAM_IGNORED if(cvar_nemesis == 1) { if(bb_get_user_zombie_class(id) == g_freezer && bb_is_user_zombie(id)) { g_cd[id] = true } } else { if(bb_get_user_zombie_class(id) == g_freezer && bb_is_user_zombie(id)) { g_cd[id] = true } } return HAM_IGNORED } public fwd_cmd_start(id, uc_handle, seed) { if(cvar_nemesis == 1) { if (!is_user_alive(id) || !bb_is_user_zombie(id) || g_cd[id] ) return FMRES_IGNORED } else { if (!is_user_alive(id) || !bb_is_user_zombie(id) || g_cd[id] ) return FMRES_IGNORED } if (bb_get_user_zombie_class(id) != g_freezer) return FMRES_IGNORED static buttons buttons = get_uc(uc_handle, UC_Buttons) if(buttons & IN_ATTACK2) { cmd_freez(id) g_cd[id] = true } buttons &= ~IN_ATTACK2 set_uc(uc_handle, UC_Buttons, buttons) return FMRES_HANDLED } cmd_freez(id) { new target, body static Float:start[3] static Float:aim[3] pev(id, pev_origin, start) fm_get_aim_origin(id, aim) start[2] += 16.0; // raise aim[2] += 16.0; // raise get_user_aiming ( id, target, body, pcvar_distance ) if( is_user_alive( target ) && !bb_is_user_zombie( target )) { message_begin(MSG_BROADCAST ,SVC_TEMPENTITY) write_byte(TE_EXPLOSION) engfunc(EngFunc_WriteCoord, aim[0]) engfunc(EngFunc_WriteCoord, aim[1]) engfunc(EngFunc_WriteCoord, aim[2]) write_short(freezer_spr) write_byte(10) write_byte(30) write_byte(4) message_end() Freeze(target) set_task( get_pcvar_float( pcvar_freeze ), "UnFreeze", target ) } message_begin(MSG_BROADCAST,SVC_TEMPENTITY) write_byte(0) engfunc(EngFunc_WriteCoord,start[0]); engfunc(EngFunc_WriteCoord,start[1]); engfunc(EngFunc_WriteCoord,start[2]); engfunc(EngFunc_WriteCoord,aim[0]); engfunc(EngFunc_WriteCoord,aim[1]); engfunc(EngFunc_WriteCoord,aim[2]); write_short(beamSpr); // sprite index write_byte(0); // start frame write_byte(10); // frame rate in 0.1's write_byte(10); // life in 0.1's write_byte(100); // line width in 0.1's write_byte(4); // noise amplititude in 0.01's write_byte(100); // red write_byte(149); // green write_byte(237); // blue write_byte(100); // brightness write_byte(50); // scroll speed in 0.1's message_end(); set_task( get_pcvar_float( cvar_cooldown ), "reset_cooldown2", id ); set_task( 1.0, "CountDown1", id, _, _, "a",Countdown [ id ] ); Countdown [ id ] = get_pcvar_num( cvar_cooldown ) } public ham_PlayerSpawn_Post4(id, infector) { if (bb_get_user_zombie_class(id) == g_freezer) { is_cooldown[id] = 0 g_cd[id] = false } } public reset_cooldown2(id) { g_cd[id] = false } public zp_user_humanized_post(id) { remove_task(id) is_cooldown[id] = 0 } public roundStart() { for (new i = 1; i <= g_maxplayers; i++) { Countdown [ i ] = get_pcvar_num( cvar_cooldown ) is_cooldown[i] = 0 remove_task(i) } } stock Freeze(id) { new iFlags = pev( id , pev_flags ); if( ~iFlags & FL_FROZEN ) { set_pev( id , pev_flags , iFlags | FL_FROZEN ); pev( id , pev_v_angle , iAngles[ id ] ); set_user_rendering( id , kRenderFxGlowShell , 0 , 100 , 200 , kRenderNormal , 16 ); } bFrozen[ id ] = true; } public eventDeathMsg( ) { UnFreeze( read_data( iVictim ) ); } public eventRoundEnd( ) { new iPlayers[ 32 ] , iNum , i , id; get_players( iPlayers , iNum , "a" ); for( i = 0; i < iNum; i++ ) { id = iPlayers[ i ]; if( is_user_frozen( id ) ) { UnFreeze( id ); } } } public UnFreeze(id) { new frozenCount = 0; bFrozen[ id ] = false; new iFlags = pev( id , pev_flags ) ; if( iFlags & FL_FROZEN ) { set_pev( id , pev_flags , iFlags & ~FL_FROZEN ) ; set_user_rendering( id , kRenderFxNone , 0 , 0 , 0 , kRenderNormal , 0 ); new iPlayers[ 32 ] , iNum , i , tid; get_players( iPlayers , iNum , "a" ); for( i = 0; i < iNum; i++ ) { tid = iPlayers[ i ]; if( is_user_frozen( tid ) ) { frozenCount++; } } } } public CountDown1(id) { if(is_valid_ent(id) && is_user_alive(id) && bb_get_user_zombie_class(id) == g_freezer && bb_is_user_zombie(id)) { Countdown [ id ] = Countdown [ id ] - 1; set_hudmessage(251, 165, 87, -1.0, 0.9, 0, 12.0, 12.0, 0.1, 0.2, 4) show_hudmessage(id, "[ Freeze Ability Cooldown: %d ]",Countdown [ id ]) }else{ remove_task(id) } } #if defined TANK_ARMOR public ham_PlayerSpawn_Post(id) { if (!is_user_alive(id)) return ; if (bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_tanker) { remove_task(id), give_item(id, "item_assaultsuit"), cs_set_user_armor(id, 300, CS_ARMOR_VESTHELM), set_user_rendering(id,kRenderFxGlowShell,0,230,230,kRenderNormal,25), set_task(0.1, "armor", id, .flags = "b") } } #endif public armor(id) { if (bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_tanker && get_user_armor(id) < 1) remove_task(id), set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25) } public ham_PlayerSpawn_Post5(id) { if (!is_user_alive(id)) return ; if (bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_hair) { remove_task(id), fm_set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransTexture, 5), set_task(20.0, "visible", id) } } public visible(id) { fm_set_user_rendering(id, kRenderFxNone, 255, 255, 255, kRenderTransTexture, 255) } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par } */ Attached Files Get Plugin or Get Source (bb_class_en.sma - 16.1 KB) Przeczytaj cały wpis Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi