Descriere :[/b] : Acest plugin face ca cel care se connecteaza pe server sa ii apara un meniu care il intreaba daca Cunoaste Regulamentul . Pluginul are 3 variante : 1. Nu il cunosc [Apare un motd] 2. Il cunosc deja [Te lasa sa joci] 3. Nu vreau sa il citesc [Kick cu reason]
Autor :[/color] : sPuF? ak Askhanar
Sma :
- Reguli Info | Afiseaza codul
#include <amxmodx> #pragma semicolon 1 #define PLUGIN "Plugin nou" #define VERSION "1.0" #define TASK_TIME 15.0 new const MENU_NAME[ ] = "\y Cunosti regulamentul serverului \r?"; new const KICK_REASON[ ] = "Ai face bine sa citesti regulile , altfel nu ai ce cauta pe server !"; new const MOTD_FILE[ ] = "addons/amxmodx/configs/reguli.txt"; public plugin_init( ) register_plugin( PLUGIN, VERSION, "Askhanar" ); public client_connect( id ) { if( is_user_bot( id ) || is_user_hltv( id ) ) return 1; set_task( TASK_TIME, "AdvertizePlayer", id + 112233 ); return 0; } public client_disconnect( id ) { if( is_user_bot( id ) || is_user_hltv( id ) ) return 1; remove_task( id + 112233 ); return 0; } public AdvertizePlayer( id ) { id -= 112233; if( !is_user_connected( id ) ) return 1; ShowAdvertizeMenu( id , 0 ); return 0; } public ShowAdvertizeMenu( id, page ) { new menu = menu_create( MENU_NAME, "ShowAdvertizeMenuHandler" ); menu_additem( menu, "Nu , nu cunosc regulile", "1", 0 ); menu_additem( menu, "Da , cunosc deja regulile", "2", 0 ); menu_additem( menu, "Nu vreau sa le citesc", "3", 0 ); menu_setprop( menu, MPROP_EXITNAME, "" ); menu_display( id, menu, page ); } public ShowAdvertizeMenuHandler( id, menu, item ) { if( item == MENU_EXIT ) { ShowAdvertizeMenu( id, 0 ); return 1; } new data[ 6 ], iName[ 64 ]; new iaccess, callback; menu_item_getinfo( menu, item, iaccess, data, 5, iName, 63, callback ); new key = str_to_num( data ); switch( key ) { case 1: show_motd( id, MOTD_FILE ); case 2: return 1; case 3: server_cmd( "kick #%i ^"%s^"", get_user_userid( id ), KICK_REASON ); } return 0; }
Clase Zombie
Descriere :[/b] : Acest plugin este unul cu rase pentru Zombie : 1. Schelete 2. Asistenta Zombie 3. Moartea 4. Caine Extraterestru 5. Razboinic de Gheata 6. Dragon [Admin] 7. Zombie Distrugator [Vip]
Autor :[/color] : Tirant + DanTe's update
Sma :
- Rase Zombie | Afiseaza codul
#include <amxmodx> #include <basebuilder> #include <hamsandwich> #include <fun> #include <cstrike> /*================================================================================ [Plugin Customization] =================================================================================*/ // Classic Zombie Attributes new const zclass1_name[] = { "Scheleton" } new const zclass1_info[] = { "=Echilibrat=" } new const zclass1_model[] = { "v_schelete" } new const zclass1_clawmodel[] = { "v_m_schelete" } const zclass1_health = 9000 const zclass1_speed = 260 const Float:zclass1_gravity = 1.0 const zclass1_adminflags = ADMIN_ALL // Fast Zombie Attributes new const zclass2_name[] = { "Asistenta Zombie" } new const zclass2_info[] = { "HP-- SP++" } new const zclass2_model[] = { "nurse" } new const zclass2_clawmodel[] = { "nurse_knife" } const zclass2_health = 6500 const zclass2_speed = 328 const Float:zclass2_gravity = 1.0 const zclass2_adminflags = ADMIN_ALL // Jumper Zombie Attributes new const zclass3_name[] = { "Moartea" } new const zclass3_info[] = { "HP- GR+" } new const zclass3_model[] = { "v_sat" } new const zclass3_clawmodel[] = { "v_m_sat" } const zclass3_health = 7200 const zclass3_speed = 285 const Float:zclass3_gravity = 0.5 const zclass3_adminflags = ADMIN_ALL // Alien Dog Zombie Attributes new const zclass4_name[] = { "Caine Extraterestru" } new const zclass4_info[] = { "HP-- GR++ SP++" } new const zclass4_model[] = { "dog" } new const zclass4_clawmodel[] = { "dogg" } const zclass4_health = 4200 const zclass4_speed = 390 const Float:zclass4_gravity = 0.3 const zclass4_adminflags = ADMIN_ALL // Tanker Zombie Attributes new const zclass5_name[] = { "Razboinic de Gheata" } new const zclass5_info[] = { "HP++ SP-" } new const zclass5_model[] = { "v_frost" } new const zclass5_clawmodel[] = { "v_m_frost" } const zclass5_health = 11500 const zclass5_speed = 210 const Float:zclass5_gravity = 1.0 const zclass5_adminflags = ADMIN_ALL #define TANK_ARMOR 200 // Cioara Zombie Attributes new const zclass6_name[] = { "Dragon Zburator" } new const zclass6_info[] = { "HP--- SP+ GR +++" } new const zclass6_model[] = { "v_dragon" } new const zclass6_clawmodel[] = { "v_m_dragon" } const zclass6_health = 3000 const zclass6_speed = 390 const Float:zclass6_gravity = 0.155 const zclass6_adminflags = ADMIN_MAP // Vip Zombie Attributes new const zclass7_name[] = { "Zombie Distrugator" } new const zclass7_info[] = { "HP+++ SP++ GR+" } new const zclass7_model[] = { "new_viaipi" } new const zclass7_clawmodel[] = { "n_m_vip" } const zclass7_health = 13000 const zclass7_speed = 328 const Float:zclass7_gravity = 0.4 const zclass7_adminflags = ADMIN_IMMUNITY /*============================================================================*/ new g_zclass_tanker // Zombie Classes MUST be registered on plugin_precache public plugin_precache() { register_plugin("[BB] Clase Zombalai", "Basebuilder v6.9", "Tirant + DanTe's update") // 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) bb_register_zombie_class(zclass4_name, zclass4_info, zclass4_model, zclass4_clawmodel, zclass4_health, zclass4_speed, zclass4_gravity, 0.0, zclass4_adminflags) g_zclass_tanker = bb_register_zombie_class(zclass5_name, zclass5_info, zclass5_model, zclass5_clawmodel, zclass5_health, zclass5_speed, zclass5_gravity, 0.0, zclass5_adminflags) bb_register_zombie_class(zclass6_name, zclass6_info, zclass6_model, zclass6_clawmodel, zclass6_health, zclass6_speed, zclass6_gravity, 0.0, zclass6_adminflags) bb_register_zombie_class(zclass7_name, zclass7_info, zclass7_model, zclass7_clawmodel, zclass7_health, zclass7_speed, zclass7_gravity, 0.0, zclass7_adminflags) } #if defined TANK_ARMOR public plugin_init() { RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post", 1) } 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) { give_item(id, "item_assaultsuit"); cs_set_user_armor(id, TANK_ARMOR, CS_ARMOR_VESTHELM); } } #endif
Meniu Vip
Descriere :[/b] : Acest plugin face ca atunci cand scri /vmenu sa iti apara un meniu cu diferite arme / puteri / arme cu puteri care poti sa iti alegi odata pe runda
Autor :[/color] : anti-talent
Sma :
- | Afiseaza codul
#pragma semicolon 1 #include <amxmodx> #include <amxmisc> #include <cstrike> #include <engine> #include <fun> #include <hamsandwich> #include <fakemeta> #include <vault> #define ADMIN_BBVIP ADMIN_IMMUNITY // Define the Plugin Version new const VERSION[] = { "1.0" }; // PREFIX new const PREFIX[] = { "!g[ BB.NumeServer.Ro ]!n" }; new const g_szKnifeBModel[] = "models/cutit_nebun.mdl"; new const g_szKnifeWModel[] = "models/cutit_nebun2.mdl"; new const g_szAk47Model[] = "models/dragonu_ak_47.mdl"; new const g_szDeagleModel[] = "models/deagleu.mdl"; new VipUsed[33]; new HasSpeed; new bool:g_bHasKnifeB[33]; new bool:g_bHasKnifeW[33]; new bool:g_bHasAk47[33]; new bool:g_bHasDeagle[33]; new Float:fast_speed = 400.0; new Float:normal_speed = 250.0; //new g_pVisiblity; new mpd,/* mkb,*/ mhb; new maxplayers; public plugin_init() { register_plugin("BaseBuilder: VIP Menu", VERSION, "anti-talent"); RegisterHam(Ham_Spawn, "player", "FwdHamSpawn_Post", 1); RegisterHam(Ham_Item_PreFrame, "player", "FwdPreFrame_Post", 1); RegisterHam(Ham_TakeDamage, "player", "FwdPlayerDamage"); //RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1); register_event("CurWeapon","event_curweapon","be","1=1"); register_clcmd("say vmenu", "cmdVmenu"); register_clcmd("say /vmenu", "cmdVmenu"); register_clcmd("say_team vmenu", "cmdVmenu"); register_clcmd("say_team /vmenu", "cmdVmenu"); register_clcmd("say /sagasgasf", "cmdBuyvip"); register_clcmd("say sagasgas", "cmdBuyvip"); register_clcmd("say_team sagasgafs", "cmdBuyvip"); register_clcmd("say_team /sagasfgsa", "cmdBuyvip"); register_clcmd("say /safasgas", "cmdPreturi"); register_clcmd("say_team /gassae", "cmdPreturi"); //g_pVisiblity = register_cvar( "km_invis", "200" ); // 255 = clearly visible set_task(480.0, "kmodmsg", 0, _, _, "b"); mpd = register_cvar("money_per_damage","3"); //mkb = register_cvar("money_kill_bonus","200"); mhb = register_cvar("money_hs_bonus","500"); register_event("Damage","Damage","b"); maxplayers = get_maxplayers(); // Ham TakeDamage register_forward( FM_CmdStart, "fw_CmdStart" ); //RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1); } public Damage(id) { new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint); if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id) if (get_user_flags(attacker) & ADMIN_IMMUNITY) { new money = read_data(2) * get_pcvar_num(mpd); if(hitpoint==1) money += get_pcvar_num(mhb); cs_set_user_money(attacker,cs_get_user_money(attacker) + money); } } public FwdPlayerDamage(victim, inflictor, attacker, Float:damage, damagebits) { if(inflictor == attacker && attacker != victim && g_bHasKnifeB[ attacker ] && is_user_alive(attacker) && get_user_weapon(attacker) == CSW_KNIFE ) { SetHamParamFloat(4, damage * 3.0); } if(inflictor == attacker && attacker != victim && g_bHasAk47[ attacker ] && is_user_alive(attacker) && get_user_weapon(attacker) == CSW_AK47 ) { SetHamParamFloat(4, damage * 3.0); } if(inflictor == attacker && attacker != victim && g_bHasDeagle[ attacker ] && is_user_alive(attacker) && get_user_weapon(attacker) == CSW_DEAGLE ) { SetHamParamFloat(4, damage * 4.0); } } public plugin_precache() { precache_model(g_szKnifeBModel); precache_model(g_szAk47Model); precache_model(g_szKnifeWModel); precache_model(g_szDeagleModel); } public event_curweapon(id) { if(g_bHasKnifeB[id] && read_data(2) == CSW_KNIFE) { set_pev(id, pev_viewmodel2, g_szKnifeBModel); set_user_gravity(id, 0.5); } if(g_bHasAk47[id] && read_data(2) == CSW_AK47) { set_pev(id, pev_viewmodel2, g_szAk47Model); } if(g_bHasDeagle[id] && read_data(2) == CSW_DEAGLE) { set_pev(id, pev_viewmodel2, g_szDeagleModel); } } public FwdPreFrame_Post(id) { if(!is_user_alive(id)) { return PLUGIN_HANDLED; } if(!HasSpeed) { return PLUGIN_HANDLED; } else if(HasSpeed) { set_user_maxspeed(id, fast_speed); } return PLUGIN_HANDLED; } public FwdHamSpawn_Post(id) { if (!is_user_alive(id)) return PLUGIN_CONTINUE; HasSpeed = false; VipUsed[id] = false; g_bHasKnifeB[id] = false; g_bHasKnifeW[id] = false; g_bHasAk47[id] = false; g_bHasDeagle[id] = false; set_user_maxspeed(id, normal_speed); set_user_rendering( id, _, 0, 0, 0, _, 0 ); return PLUGIN_CONTINUE; } public cmdVmenu(id) { if(!(get_user_flags(id) & ADMIN_BBVIP)) { client_printc(id, "%s Doar !gVIPurile !tau acces la !gMeniul de vip", PREFIX); return PLUGIN_HANDLED; } if(VipUsed[id]) { client_printc(id, "%s Ti-ai luat deja ceva din !gMeniul de VIP!n in aceasta runda. !tAsteapta pana runda viitoare sa iti mai iei inca un item", PREFIX); return PLUGIN_HANDLED; } switch(cs_get_user_team(id)) { case CS_TEAM_T: VipTMenu(id); case CS_TEAM_CT: VipCTMenu(id); } return PLUGIN_HANDLED; } public VipCTMenu(id) { new menu = menu_create("\yMeniu De ViP:^n\r", "VipCTMenu_handler"); menu_additem(menu, "\w+150HP si +100Armor", "1", 0); menu_additem(menu, "\wViteza", "2", 0); menu_additem(menu, "\wM249 si Deagle", "3", 0); menu_additem(menu, "\wRevive", "4", 0); menu_additem(menu, "\wSG550", "5", 0); menu_additem(menu, "\wG3SG1", "6", 0); menu_additem(menu, "\wAK 47 Auriu", "7", 0); menu_additem(menu, "\wDeagle Nebun", "8", 0); menu_additem(menu, "\wAWP cu 600 dmg", "9", 0); menu_display(id, menu); } public VipCTMenu_handler(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); new key = str_to_num(data); switch(key) { case 1: { set_user_health(id, get_user_health(id) + 150); set_user_armor(id, get_user_armor(id) + 100); VipUsed[id] = true; client_printc(id, "%s Tocmai ai primit !g150HP!n si !g100Armor!n", PREFIX); } case 2: { VipUsed[id] = true; HasSpeed = true; set_user_maxspeed(id, fast_speed); client_printc(id, "%s Tocmai ai primit !gViteza", PREFIX); } case 3: { give_item(id, "weapon_m249"); give_item(id, "weapon_deagle"); cs_set_user_bpammo(id, CSW_M249, 200); cs_set_user_bpammo(id, CSW_DEAGLE, 100); VipUsed[id] = true; client_printc(id, "%s Tocmai ai primit un !gM249!n si un !gDeagle!n", PREFIX); } case 4: { ExecuteHamB(Ham_CS_RoundRespawn, id); VipUsed[id] = true; client_printc(id, "%s Ai fost !gReinviat", PREFIX); } case 5: { give_item(id, "weapon_sg550"); cs_set_user_bpammo(id, CSW_SG550, 200); VipUsed[id] = true; client_printc(id, "%s Tocmai ai primit un !gSG550", PREFIX); } case 6: { give_item(id, "weapon_g3sg1"); cs_set_user_bpammo(id, CSW_G3SG1, 200); VipUsed[id] = true; client_printc(id, "%s Tocmai ai primit un !gG3SG1", PREFIX); } case 7: { give_item(id, "weapon_ak47"); cs_set_user_bpammo(id, CSW_AK47, 200); set_pev(id, pev_viewmodel2, "models/dragonu_ak_47.mdl"); g_bHasAk47[id] = true; VipUsed[id] = true; client_printc(id, "%s Tocmai ai primit un !gAK-47 Auriu", PREFIX); } case 8: { give_item(id, "weapon_deagle"); cs_set_user_bpammo(id, CSW_DEAGLE, 200); set_pev(id, pev_viewmodel2, "models/deagleu.mdl"); g_bHasDeagle[id] = true; VipUsed[id] = true; client_printc(id, "%s Tocmai ai primit un !gDeagle Nebun", PREFIX); } case 9: { give_item(id, "weapon_awp"); cs_set_user_bpammo(id, CSW_AWP, 200); VipUsed[id] = true; client_printc(id, "%s Tocmai ai primit un !gAWP", PREFIX); } } menu_destroy(menu); return PLUGIN_HANDLED; } public VipTMenu(id) { new menu = menu_create("\yMeniu De ViP:^n\r", "VipTMenu_handler"); menu_additem(menu, "\wViteza", "1", 0); menu_additem(menu, "\w+5000Hp si +5000Armor", "2", 0); menu_additem(menu, "\wCutit Nebun 1", "3", 0); menu_additem(menu, "\wCutit Nebun 2", "4", 0); menu_display(id, menu); } public VipTMenu_handler(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); new key = str_to_num(data); switch(key) { case 1: { VipUsed[id] = true; HasSpeed = true; set_user_maxspeed(id, fast_speed); client_printc(id, "%s Tocmai ai primit !gViteza", PREFIX); } case 2: { set_user_health(id, get_user_health(id) + 5000); set_user_armor(id, get_user_armor(id) + 5000); VipUsed[id] = true; client_printc(id, "%s Tocmai ai primit !g5000 HP!n si !g5000 Armura!n", PREFIX); } case 3: { set_user_health(id, get_user_health(id) + 2000); set_user_armor(id, get_user_armor(id) + 2000); set_user_maxspeed(id, fast_speed); HasSpeed = true; set_pev(id, pev_viewmodel2, "models/cutit_nebun.mdl"); g_bHasKnifeB[id] = true; VipUsed[id] = true; client_printc(id, "%s Tocmai ai primit !tViata !nsi un !gCutit Nebun", PREFIX); } case 4: { set_user_health(id, get_user_health(id) + 2500); set_user_armor(id, get_user_armor(id) + 2500); set_user_maxspeed(id, fast_speed); HasSpeed = true; set_pev(id, pev_viewmodel2, "models/cutit_nebun2.mdl"); g_bHasKnifeW[id] = true; set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 125); VipUsed[id] = true; client_printc(id, "%s Tocmai ai primit !tViata !nsi un !gCutit Nebun", PREFIX); } } menu_destroy(menu); return PLUGIN_HANDLED; } public cmdBuyvip(id) { show_motd(id, "vip.txt", "VIP"); } public PrintText(id) { client_print(id, print_chat, "!t[BB.GoDpLaY.Ro] !gPentru a cumpara !tVIP !gadauga id-ul !gKinderbueno_cs ."); } public cmdPreturi(id) { show_motd(id, "preturi.txt", "PRETURI"); client_printc(id, "!t[BB.GoDpLaY.Ro] !tPentru a vedea beneficiile !gVIP-ului !ntasteaza in chat !t/privilegii ."); } // Colour Chat stock client_printc(const id, const input[], any:...) { new count = 1, players[32]; static msg[191]; vformat(msg, 190, input, 3); replace_all(msg, 190, "!g", "^x04"); // Green Color replace_all(msg, 190, "!n", "^x01"); // Default Color replace_all(msg, 190, "!t", "^x03"); // Team Color if (id) players[0] = id; else get_players(players, count, "ch"); for (new i = 0; i < count; i++) { if (is_user_connected(players)) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players); write_byte(players); write_string(msg); message_end(); } } }
Health Bar
Descriere :[/b] : Acest plugin arata tutoror jucatoriilor deasupra capului o bara care arata cat de multa viata au / mai au
Autor :[/color] : Bboy Grun
Sma :
- | Afiseaza codul
#include < amxmodx > #include < cstrike > #include < fakemeta > #include < hamsandwich > #define VERSION "3.0" new const HEALTH_BAR_MODEL[ ] = "sprites/barenoize.spr"; new g_playerBar[ 33 ], g_isAlive[ 33 ], CsTeams: g_playerTeam[ 33 ], g_playerBot[ 33 ], g_playerMaxHealth[ 33 ], g_showHB[ 33 ]; new pcvarBotSupport, pcvarShowMode, pcvarSpec, cvarSpec, cvarShowMode, cvarBotSupport; new g_maxPlayers, fwShowMode, botRegistered, msg_SayText; new g_botQuotaPointer; public plugin_init( ) { register_plugin( "Health Bar", VERSION, "Bboy Grun" ); register_cvar( "Health_Bars", VERSION, FCVAR_SERVER | FCVAR_SPONLY ); set_cvar_string( "Health_Bars", VERSION ); register_event( "HLTV", "evNewRound", "a", "1=0", "2=0" ); register_event( "DeathMsg", "evDeathMsg", "a" ); register_event( "Health", "evHealth", "be" ); RegisterHam( Ham_Spawn, "player", "fwHamSpawn", true ); register_clcmd( "say hb", "hbHandle" ); register_clcmd( "say /hb", "hbHandle" ); pcvarShowMode = register_cvar( "health_ShowMode", "2" ); pcvarBotSupport = register_cvar( "health_BotSupport", "1" ); pcvarSpec = register_cvar( "health_ShowToSpectators", "1" ); g_maxPlayers = get_maxplayers( ); msg_SayText = get_user_msgid( "SayText" ); g_botQuotaPointer = get_cvar_pointer( "bot_quota" ); new playerBar, allocString = engfunc( EngFunc_AllocString, "env_sprite" ); for( new id = 1; id <= g_maxPlayers; id ++ ) { g_playerBar[ id ] = engfunc( EngFunc_CreateNamedEntity, allocString ); playerBar = g_playerBar[ id ]; if( pev_valid( playerBar ) ) { set_pev( playerBar, pev_scale, 0.1 ); engfunc( EngFunc_SetModel, playerBar, HEALTH_BAR_MODEL ); } } evNewRound( ); } public plugin_init_bots( id ) { RegisterHamFromEntity( Ham_Spawn, id, "fwHamSpawn", 1 ); fwHamSpawn( id ); } public plugin_precache( ) { precache_model( HEALTH_BAR_MODEL ); } public client_putinserver( id ) { g_isAlive[ id ] = 0; g_playerTeam[ id ] = CS_TEAM_SPECTATOR; g_playerBot[ id ] = is_user_bot( id ); g_playerMaxHealth[ id ] = 0; g_showHB[ id ] = true; if( cvarBotSupport && !botRegistered && g_playerBot[ id ] && g_botQuotaPointer ) { set_task( 0.4, "plugin_init_bots", id ); botRegistered = 1; } } public client_disconnect( id ) { g_isAlive[ id ] = 0; g_playerTeam[ id ] = CS_TEAM_UNASSIGNED; g_playerBot[ id ] = 0; g_playerMaxHealth[ id ] = 0; g_showHB[ id ] = false; } public hbHandle( id ) // [ ^4 = GREEN ] [ ^3 = Team Color ] [ ^1 = client con_color value ] { g_showHB[ id ] = !g_showHB[ id ]; message_begin( MSG_ONE_UNRELIABLE, msg_SayText, .player = id ); write_byte( id ); write_string ( g_showHB[ id ] ? "^4[ HEALTH BARS ]^3 Enabled for you^1 ! Write /hb to^4 disable^1 it" : "^4[ HEALTH BARS ]^3 Disabled for you^1 ! Write /hb to^4 enable^1 it" ); message_end( ); } public fwAddToFullPack( es, e, ent, host, host_flags, player, p_set ) { if( !player && !g_playerBot[ host ] && ( g_isAlive[ host ] || cvarSpec ) && g_showHB[ host ] ) { new user; for( user = g_maxPlayers; user > 0; -- user ) { if( g_playerBar[ user ] == ent ) { if( user != host && g_isAlive[ user ] && ( !g_playerBot[ user ] || cvarBotSupport ) && ( cvarShowMode == 2 || g_playerTeam[ host ] == g_playerTeam[ user ] ) ) { new Float: playerOrigin[ 3 ]; pev( user, pev_origin, playerOrigin ); playerOrigin[ 2 ] += 30.0; set_es( es, ES_Origin, playerOrigin ); } else { set_es( es, ES_Effects, EF_NODRAW ); } break; } } } } public fwHamSpawn( id ) { if( cvarShowMode && is_user_alive( id ) ) { new Float: playerOrigin[ 3 ]; pev( id, pev_origin, playerOrigin ); g_isAlive[ id ] = 1; g_playerTeam[ id ] = cs_get_user_team( id ); engfunc( EngFunc_SetOrigin, g_playerBar[ id ], playerOrigin ); evHealth( id ); } } public evDeathMsg( ) { new id = read_data( 2 ); g_isAlive[ id ] = 0; g_playerTeam[ id ] = cs_get_user_team( id ); g_playerMaxHealth[ id ] = 0; } public evHealth( id ) { new hp = get_user_health( id ); if( g_playerMaxHealth[ id ] < hp ) { g_playerMaxHealth[ id ] = hp; set_pev( g_playerBar[ id ], pev_frame, 99.0 ); } else { set_pev( g_playerBar[ id ], pev_frame, 0.0 + ( ( ( hp - 1 ) * 100 ) / g_playerMaxHealth[ id ] ) ); } } public evNewRound( ) { cvarShowMode = get_pcvar_num( pcvarShowMode ); cvarSpec = get_pcvar_num( pcvarSpec ); new valueBotSupport = get_pcvar_num( pcvarBotSupport ); if( cvarShowMode > 0 ) { if( !fwShowMode ) { fwShowMode = register_forward( FM_AddToFullPack, "fwAddToFullPack", true ); for( new id = 1; id <= g_maxPlayers; set_pev( g_playerBar[ id ++ ], pev_effects, 0 ) ) { } } } else { if( fwShowMode ) { unregister_forward( FM_AddToFullPack, fwShowMode, true ); fwShowMode = 0; for( new id = 1; id <= g_maxPlayers; set_pev( g_playerBar[ id ++ ], pev_effects, EF_NODRAW ) ) { } } } if( valueBotSupport && !botRegistered ) { for( new id = 1; id <= g_maxPlayers; id ++ ) { if( g_playerBot[ id ] ) { plugin_init_bots( id ); botRegistered = 1; break; } } } cvarBotSupport = valueBotSupport; }
Parasuta + Aripi
Descriere :[/b] : Acest plugin este cel de parasuta , dar imbunatatit , anume , modelul este schimbat , in loc de parasuta sunt aripi , iar daca ati observat atunci cand folosesti parasuta normala si ai gravity , acesta revine la normal [800] acest plugin face sa ai aceeasi gravitatie
Autor :[/color] : xxx + e t n a d (dar nu prea mult)
Sma :
- | Afiseaza codul
/********************************************************************************/ #include <amxmodx> #include <amxmisc> #include <engine> #include <cstrike> #include <fun> #define PLUGIN "AMX Parachute" #define VERSION "1.5" #define AUTHOR "xxx" #define PARACHUTE_LEVEL ADMIN_KICK /********************************************************************************/ new bool:has_parachute[33] new para_ent[33] new gCStrike = 0 new pDetach new pFallSpeed new pEnabled new pCost new pPayback /********************************************************************************/ public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) pEnabled = register_cvar("sv_parachute", "1" ) pFallSpeed = register_cvar("parachute_fallspeed", "100") pDetach = register_cvar("parachute_detach", "1") if (cstrike_running()) gCStrike = true if (gCStrike) { pCost = register_cvar("parachute_cost", "0") pPayback = register_cvar("parachute_payback", "75") register_concmd("parachute", "admin_give_parachute", PARACHUTE_LEVEL, "<nick, #userid or @team>" ) } register_clcmd("say", "HandleSay") register_clcmd("say_team", "HandleSay") register_clcmd("", "HandleSay") register_event("ResetHUD", "newSpawn", "be") register_event("DeathMsg", "death_event", "a") new cvarString[256], shortName[16] copy(shortName,15,"chute") register_cvar("jtp10181","",FCVAR_SERVER|FCVAR_SPONLY) get_cvar_string("jtp10181",cvarString,255) if (strlen(cvarString) == 0) { formatex(cvarString,255,shortName) set_cvar_string("jtp10181",cvarString) } else if (contain(cvarString,shortName) == -1) { format(cvarString,255,"%s,%s",cvarString, shortName) set_cvar_string("jtp10181",cvarString) } } /********************************************************************************/ public plugin_natives() { set_module_filter("module_filter") set_native_filter("native_filter") } /********************************************************************************/ public module_filter(const module[]) { if (!cstrike_running() && equali(module, "cstrike")) { return PLUGIN_HANDLED } return PLUGIN_CONTINUE } /********************************************************************************/ public native_filter(const name[], index, trap) { if (!trap) return PLUGIN_HANDLED return PLUGIN_CONTINUE } /********************************************************************************/ public plugin_precache() { precache_model("models/param.mdl") } /********************************************************************************/ public client_connect(id) { parachute_reset(id) } /********************************************************************************/ public client_disconnect(id) { parachute_reset(id) } /********************************************************************************/ public death_event() { new id = read_data(2) parachute_reset(id) } /********************************************************************************/ parachute_reset(id) { if(para_ent[id] > 0) { if (is_valid_ent(para_ent[id])) { remove_entity(para_ent[id]) } } } /********************************************************************************/ public newSpawn(id) { if(para_ent[id] > 0) { remove_entity(para_ent[id]) para_ent[id] = 0 } if (!gCStrike || access(id,PARACHUTE_LEVEL) || get_pcvar_num(pCost) <= 0) { has_parachute[id] = true } } /********************************************************************************/ public HandleSay(id) { if(!is_user_connected(id)) return PLUGIN_CONTINUE new args[128] read_args(args, 127) remove_quotes(args) if (gCStrike) { if (equali(args, "buy_parachute")) { buy_parachute(id) return PLUGIN_HANDLED } else if (equali(args, "sell_parachute")) { sell_parachute(id) return PLUGIN_HANDLED } else if (containi(args, "give_parachute") == 0) { give_parachute(id,args[15]) return PLUGIN_HANDLED } } if (containi(args, "parachute") != -1) { if (gCStrike) client_print(id, print_chat, "[AMXX] Parachute commands: buy_parachute, sell_parachute, give_parachute") } return PLUGIN_CONTINUE } /********************************************************************************/ public buy_parachute(id) { if (!gCStrike) return PLUGIN_CONTINUE if (!is_user_connected(id)) return PLUGIN_CONTINUE if (!get_pcvar_num(pEnabled)) { return PLUGIN_HANDLED } if (has_parachute[id]) { return PLUGIN_HANDLED } new money = cs_get_user_money(id) new cost = get_pcvar_num(pCost) if (money < cost) { return PLUGIN_HANDLED } cs_set_user_money(id, money - cost) has_parachute[id] = true return PLUGIN_HANDLED } /********************************************************************************/ public sell_parachute(id) { if (!gCStrike) return PLUGIN_CONTINUE if (!is_user_connected(id)) return PLUGIN_CONTINUE if (!get_pcvar_num(pEnabled)) { return PLUGIN_HANDLED } if (!has_parachute[id]) { return PLUGIN_HANDLED } if (access(id,PARACHUTE_LEVEL)) { return PLUGIN_HANDLED } parachute_reset(id) new money = cs_get_user_money(id) new cost = get_pcvar_num(pCost) new sellamt = floatround(cost * (get_pcvar_num(pPayback) / 100.0)) cs_set_user_money(id, money + sellamt) return PLUGIN_CONTINUE } /********************************************************************************/ public give_parachute(id,args[]) { if (!gCStrike) return PLUGIN_CONTINUE if (!is_user_connected(id)) return PLUGIN_CONTINUE if (!get_pcvar_num(pEnabled)) { return PLUGIN_HANDLED } if (!has_parachute[id]) { return PLUGIN_HANDLED } new player = cmd_target(id, args, 4) if (!player) return PLUGIN_HANDLED new id_name[32], pl_name[32] get_user_name(id, id_name, 31) get_user_name(player, pl_name, 31) if(has_parachute[player]) { return PLUGIN_HANDLED } parachute_reset(id) has_parachute[player] = true return PLUGIN_HANDLED } /********************************************************************************/ public admin_give_parachute(id, level, cid) { if (!gCStrike) return PLUGIN_CONTINUE if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED if (!get_pcvar_num(pEnabled)) { client_print(id, print_chat, "[AMXX] Parachute plugin is disabled") return PLUGIN_HANDLED } new arg[32], name[32], name2[32], authid[35], authid2[35] read_argv(1,arg,31) get_user_name(id,name,31) get_user_authid(id,authid,34) if (arg[0]=='@'){ new players[32], inum if (equali("T",arg[1])) copy(arg[1],31,"TERRORIST") if (equali("ALL",arg[1])) get_players(players,inum) else get_players(players,inum,"e",arg[1]) if (inum == 0) { console_print(id,"No clients in such team") return PLUGIN_HANDLED } for(new a = 0; a < inum; a++) { has_parachute[players[a]] = true } switch(get_cvar_num("amx_show_activity")) { case 2: client_print(0,print_chat,"ADMIN %s: gave a parachute to ^"%s^" players",name,arg[1]) case 1: client_print(0,print_chat,"ADMIN: gave a parachute to ^"%s^" players",arg[1]) } console_print(id,"[AMXX] You gave a parachute to ^"%s^" players",arg[1]) log_amx("^"%s<%d><%s><>^" gave a parachute to ^"%s^"", name,get_user_userid(id),authid,arg[1]) } else { new player = cmd_target(id,arg,6) if (!player) return PLUGIN_HANDLED has_parachute[player] = true get_user_name(player,name2,31) get_user_authid(player,authid2,34) switch(get_cvar_num("amx_show_activity")) { case 2: client_print(0,print_chat,"ADMIN %s: gave a parachute to ^"%s^"",name,name2) case 1: client_print(0,print_chat,"ADMIN: gave a parachute to ^"%s^"",name2) } console_print(id,"[AMXX] You gave a parachute to ^"%s^"", name2) log_amx("^"%s<%d><%s><>^" gave a parachute to ^"%s<%d><%s><>^"", name,get_user_userid(id),authid,name2,get_user_userid(player),authid2) } return PLUGIN_HANDLED } /********************************************************************************/ public client_PreThink(id) { if (!get_pcvar_num(pEnabled)) return if (!is_user_alive(id) || !has_parachute[id]) return new Float:fallspeed = get_pcvar_float(pFallSpeed) * -1.0 new Float:frame new button = get_user_button(id) new oldbutton = get_user_oldbutton(id) new flags = get_entity_flags(id) if (para_ent[id] > 0 && (flags & FL_ONGROUND)) { if (get_pcvar_num(pDetach)) { if (entity_get_int(para_ent[id],EV_INT_sequence) != 2) { entity_set_int(para_ent[id], EV_INT_sequence, 2) entity_set_int(para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(para_ent[id], EV_FL_frame, 0.0) entity_set_float(para_ent[id], EV_FL_fuser1, 0.0) entity_set_float(para_ent[id], EV_FL_animtime, 0.0) entity_set_float(para_ent[id], EV_FL_framerate, 0.0) return } frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0 entity_set_float(para_ent[id],EV_FL_fuser1,frame) entity_set_float(para_ent[id],EV_FL_frame,frame) if (frame > 254.0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } else { remove_entity(para_ent[id]) para_ent[id] = 0 } return } if (button & IN_USE) { new Float:velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) if (velocity[2] < 0.0) { if(para_ent[id] <= 0) { para_ent[id] = create_entity("info_target") if(para_ent[id] > 0) { entity_set_string(para_ent[id],EV_SZ_classname,"parachute") entity_set_edict(para_ent[id], EV_ENT_aiment, id) entity_set_edict(para_ent[id], EV_ENT_owner, id) entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW) entity_set_model(para_ent[id], "models/param.mdl") entity_set_int(para_ent[id], EV_INT_sequence, 0) entity_set_int(para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(para_ent[id], EV_FL_frame, 0.0) entity_set_float(para_ent[id], EV_FL_fuser1, 0.0) } } if (para_ent[id] > 0) { entity_set_int(id, EV_INT_sequence, 3) entity_set_int(id, EV_INT_gaitsequence, 1) entity_set_float(id, EV_FL_frame, 1.0) entity_set_float(id, EV_FL_framerate, 1.0) velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed entity_set_vector(id, EV_VEC_velocity, velocity) if (entity_get_int(para_ent[id],EV_INT_sequence) == 0) { frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0 entity_set_float(para_ent[id],EV_FL_fuser1,frame) entity_set_float(para_ent[id],EV_FL_frame,frame) if (frame > 100.0) { entity_set_float(para_ent[id], EV_FL_animtime, 0.0) entity_set_float(para_ent[id], EV_FL_framerate, 0.4) entity_set_int(para_ent[id], EV_INT_sequence, 1) entity_set_int(para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(para_ent[id], EV_FL_frame, 0.0) entity_set_float(para_ent[id], EV_FL_fuser1, 0.0) } } } } else if (para_ent[id] > 0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } else if ((oldbutton & IN_USE) && para_ent[id] > 0 ) { remove_entity(para_ent[id]) para_ent[id] = 0 } }
Clase Zombie Noi !
Descriere :[/b] : Acest plugin adauga rase noi , cam ca cele din ZP cu sunete , modele , puteri noi !
Eu va spun doar puterile : 1 . Zm cu drujba , se aude sunetul de drujba + dmg mai mare 2. Putere semi-clip (trece prin coechipieri) + invizibilitate 3. Copac (cam ca cel din warcraft) Hp + charge 4. Wolf , gravity + speed 5. Zm pentru ViP , regenerare hp , gravity , speed , hp 6. Knockback
Autor :[/color] : Tirant + e t n a d (dar nu prea mult)
- | Afiseaza codul
/*================================================================================ ----------------------------------- -*- [BB] New Classes -*- ----------------------------------- ~~~~~~~~~~~~~~~ - Description - ~~~~~~~~~~~~~~~ This plugin adds the bonus zombie classes into Base Builder. All classes have been balanced, but feel free to edit them if you are not satisfied. ================================================================================*/ #include <amxmodx> #include <fakemeta> #include <basebuilder> #include <hamsandwich> #include <fun> #include <xs> /*================================================================================ [Plugin Customization] =================================================================================*/ // Chainsaw Attributes new const zclass3_name[] = { "Chainsaw Maniac" } new const zclass3_info[] = { "HP+ DMG+" } new const zclass3_model[] = { "bb_chainsaw" } new const zclass3_clawmodel[] = { "v_sawww" } const zclass3_health = 5000 const zclass3_speed = 260 const Float:zclass3_gravity = 0.85 const zclass3_admin = ADMIN_ALL const zclass3_credits = 0 #define CHAINSAW_DAMAGE 2.5 // Banshee Attributes new const zclass4_name[] = { "Predator" } new const zclass4_info[] = { "Semiclip + Invizibilitate" } new const zclass4_model[] = { "zmhelladmn" } new const zclass4_clawmodel[] = { "v_predator123" } const zclass4_health = 3500 const zclass4_speed = 280 const Float:zclass4_gravity = 0.85 const zclass4_admin = ADMIN_ALL const zclass4_credits = 0 #define BANSHEE_RENDERAMT 90 // Charger Attributes new const zclass5_name[] = { "Alive Tree" } new const zclass5_info[] = { "HP++ Speed- Charge" } new const zclass5_model[] = { "treee" } new const zclass5_clawmodel[] = { "v_tree_h" } const zclass5_health = 6500 const zclass5_speed = 210 const Float:zclass5_gravity = 0.9 const zclass5_admin = ADMIN_ALL const zclass5_credits = 0 // Lycan Attributes new const zclass6_name[] = { "Wolf Zombie" } new const zclass6_info[] = { "Gravity + Speed + Hp -" } new const zclass6_model[] = { "bb_woolf" } new const zclass6_clawmodel[] = { "v_woolf" } const zclass6_health = 3500 const zclass6_speed = 370 const Float:zclass6_gravity = 0.5 const zclass6_admin = ADMIN_ALL const zclass6_credits = 0 // Regenerator Attributes new const zclass7_name[] = { "Ultimate Zombie" } new const zclass7_info[] = { "Regeneration + Speed + Hp + Gravity" } new const zclass7_model[] = { "bb_regennn" } new const zclass7_clawmodel[] = { "v_regennn" } const zclass7_health = 10000 const zclass7_speed = 360 const Float:zclass7_gravity = 0.4 const zclass7_admin = ADMIN_IMMUNITY const zclass7_credits = 0 //Every 2 seconds, regenerates 2.5% max health #define REGENERATION_DELAY 2.5 #define HEAL_ALGORITHM (get_user_health(id) + (zclass7_health * 0.025)) // Knockback Attributes new const zclass8_name[] = { "Assasin Assistent" } new const zclass8_info[] = { "Knockback + Speed" } new const zclass8_model[] = { "bb_knoc" } new const zclass8_clawmodel[] = { "v_knoc" } const zclass8_health = 4300 const zclass8_speed = 310 const Float:zclass8_gravity = 0.75 const zclass8_admin = ADMIN_ALL const zclass8_credits = 0 /*============================================================================*/ new bool:g_isSolid[33] new bool:g_isSemiClip[33] new g_iPlayers[32], g_iNum, g_iPlayer new g_zclass_saw new g_zclass_banshee new g_zclass_charger new g_zclass_lycan new g_zclass_regenerator new g_zclass_knockback #define SOUND_DELAY 3.0 new Float: g_fSoundDelay[33] new Float: g_fRegenDelay[33] #define PAINSHOCK 108 #define IP_SERVER_LICENTIAT "93.114.82.56" #define g_ChainsawRev "basebuilder/zombie/chainsaw_rev2.wav" #define g_BansheeScream "basebuilder/zombie/banshee_scream3.wav" #define g_ChargerRoar "basebuilder/zombie/charger_roar2.wav" #define g_LycanAttack "basebuilder/zombie/wolf_attack1.wav" #define g_LycanHowl "basebuilder/zombie/wolf_spawn1.wav" // Zombie Classes MUST be registered on plugin_precache #define VERSION "6.8" public plugin_precache() { register_plugin("BB Classes", VERSION, "Tirant + e t n a d") register_cvar("bb_credit_classes", VERSION, FCVAR_SPONLY|FCVAR_SERVER) set_cvar_string("bb_credit_classes", VERSION) precache_sound(g_ChainsawRev) precache_sound(g_BansheeScream) precache_sound(g_ChargerRoar) precache_sound(g_LycanAttack) precache_sound(g_LycanHowl) // Register all classes g_zclass_saw = bb_register_zombie_class(zclass3_name, zclass3_info, zclass3_model, zclass3_clawmodel, zclass3_health, zclass3_speed, zclass3_gravity, 0.0, zclass3_admin, zclass3_credits) g_zclass_banshee = bb_register_zombie_class(zclass4_name, zclass4_info, zclass4_model, zclass4_clawmodel, zclass4_health, zclass4_speed, zclass4_gravity, 0.0, zclass4_admin, zclass4_credits) g_zclass_charger = bb_register_zombie_class(zclass5_name, zclass5_info, zclass5_model, zclass5_clawmodel, zclass5_health, zclass5_speed, zclass5_gravity, 0.0, zclass5_admin, zclass5_credits) g_zclass_lycan = bb_register_zombie_class(zclass6_name, zclass6_info, zclass6_model, zclass6_clawmodel, zclass6_health, zclass6_speed, zclass6_gravity, 0.0, zclass6_admin, zclass6_credits) g_zclass_regenerator = bb_register_zombie_class(zclass7_name, zclass7_info, zclass7_model, zclass7_clawmodel, zclass7_health, zclass7_speed, zclass7_gravity, 0.0, zclass7_admin, zclass7_credits) g_zclass_knockback = bb_register_zombie_class(zclass8_name, zclass8_info, zclass8_model, zclass8_clawmodel, zclass8_health, zclass8_speed, zclass8_gravity, 0.0, zclass8_admin, zclass8_credits) } public plugin_init() { RegisterHam(Ham_TakeDamage, "player", "ham_TakeDamage") RegisterHam(Ham_TakeDamage, "player", "ham_TakeDamage_Post", 1) RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post", 1) register_forward(FM_PlayerPreThink, "fw_PlayerPreThink"); register_forward(FM_PlayerPostThink, "fw_PlayerPostThink"); register_forward(FM_AddToFullPack, "fw_addToFullPack", 1) register_forward(FM_EmitSound, "fw_EmitSound") } public ham_TakeDamage(victim, inflictor, attacker, Float:damage, damagebits) { if (!pev_valid(victim) || !is_user_connected(attacker)) return HAM_IGNORED if (zp_get_user_zombie_class(attacker) == g_zclass_saw) damage*=CHAINSAW_DAMAGE SetHamParamFloat(4, damage) return HAM_HANDLED } public ham_PlayerSpawn_Post(id) { if (!is_user_alive(id)) return ; if (bb_is_user_zombie(id) && zp_get_user_zombie_class(id) == g_zclass_banshee) set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransTexture, BANSHEE_RENDERAMT) else set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 90) } public fw_PlayerPreThink(id) { if (!is_user_alive(id) || !is_user_connected(id)) return FMRES_IGNORED if (zp_get_user_zombie_class(id) == g_zclass_regenerator && bb_is_user_zombie(id)) { static Float: fGameTime; fGameTime = get_gametime(); if (g_fRegenDelay[id] < fGameTime) { g_fRegenDelay[id] = fGameTime + REGENERATION_DELAY; new iHealth = floatround(HEAL_ALGORITHM); iHealth = clamp(iHealth, 0, zclass7_health); set_user_health(id, iHealth); } } get_players(g_iPlayers, g_iNum, "a") static i for (i = 0; i < g_iNum; i++) { g_iPlayer = g_iPlayers if (!g_isSemiClip[g_iPlayer]) g_isSolid[g_iPlayer] = true else g_isSolid[g_iPlayer] = false } if (g_isSolid[id]) for (i = 0; i < g_iNum; i++) { g_iPlayer = g_iPlayers if (!g_isSolid[g_iPlayer] || g_iPlayer == id || !bb_is_user_zombie(id) || zp_get_user_zombie_class(id) != g_zclass_banshee) continue if (get_user_team(g_iPlayer) != get_user_team(id)) continue set_pev(g_iPlayer, pev_solid, SOLID_NOT) g_isSemiClip[g_iPlayer] = true } return FMRES_IGNORED } public fw_PlayerPostThink(id) { if (!is_user_alive(id)) return FMRES_IGNORED get_players(g_iPlayers, g_iNum, "a") static i for (i = 0; i < g_iNum; i++) { g_iPlayer = g_iPlayers if (g_isSemiClip[g_iPlayer]) { set_pev(g_iPlayer, pev_solid, SOLID_SLIDEBOX) g_isSemiClip[g_iPlayer] = false } } return FMRES_IGNORED } public fw_addToFullPack(es, e, ent, host, hostflags, player, pSet) { if ( !player ) return FMRES_SUPERCEDE; if(player) { if (!is_user_alive(host) || !g_isSolid[host]) return FMRES_IGNORED if (get_user_team(ent) != get_user_team(host)) return FMRES_IGNORED set_es(es, ES_Solid, SOLID_NOT) } return FMRES_IGNORED } public fw_EmitSound(id,channel,const sample[],Float:volume,Float:attn,flags,pitch) { if (!is_user_connected(id) || !bb_is_user_zombie(id) || bb_is_build_phase() || bb_is_prep_phase()) return FMRES_IGNORED; if ((g_fSoundDelay[id] + SOUND_DELAY) < get_gametime()) { if (equal(sample[8], "kni", 3)) { if (equal(sample[14], "sla", 3) || equal(sample[14], "hit", 3) || equal(sample[14], "sta", 3)) // slash { if (zp_get_user_zombie_class(id) == g_zclass_saw) { emit_sound(id,CHAN_ITEM,g_ChainsawRev,volume,attn,flags,pitch) g_fSoundDelay[id] = get_gametime() return FMRES_SUPERCEDE; } else if (zp_get_user_zombie_class(id) == g_zclass_banshee) { emit_sound(id,CHAN_ITEM,g_BansheeScream,volume,attn,flags,pitch) g_fSoundDelay[id] = get_gametime() return FMRES_SUPERCEDE; } else if (zp_get_user_zombie_class(id) == g_zclass_charger) { emit_sound(id,CHAN_ITEM,g_ChargerRoar,volume,attn,flags,pitch) g_fSoundDelay[id] = get_gametime() static Float: velocity[3]; velocity_by_aim(id, 400, velocity); set_pev(id, pev_velocity, velocity); return FMRES_SUPERCEDE; } else if (zp_get_user_zombie_class(id) == g_zclass_lycan) { emit_sound(id,CHAN_ITEM,g_LycanAttack,volume,attn,flags,pitch) g_fSoundDelay[id] = get_gametime() return FMRES_SUPERCEDE; } } } } //else //g_fSoundDelay[id] = get_gametime() return FMRES_IGNORED } public bb_zombie_class_set(id, class) { if (!is_user_alive(id)) return ; if (class == g_zclass_lycan && !bb_is_build_phase()) emit_sound(id,CHAN_STATIC,g_LycanHowl,VOL_NORM,ATTN_NORM,0,PITCH_NORM) return ; } public ham_TakeDamage_Post(victim, inflictor, attacker, Float:damage, bits) { if(bb_get_user_zombie_class(victim) == g_zclass_knockback && bb_is_user_zombie(victim)) { set_pdata_float(victim, PAINSHOCK, 1.0, 5) } }
Plugin XP
Descriere :[/b] : Acest plugin original de la polonezi ... dar l-am tradus eu ... cu greu , dar am reusit , e un plugin foarte interesant , pe fiecare frag faci xp , cu pct de xp cumperi puteri , acestea sunt salvate , in chat apare rangul in format [Rang] cu verde iar din 1000 in 1000 pct de experienta faci level up
Autor :[/color] : Nu mai stiu exact ... un polonez oricum :-?? + e t n a d translate
Sma :
- | Afiseaza codul
/* Script generated by Pawn Studio */ #include <amxmodx> #include <amxmisc> #include <nvault> #include <cstrike> #include <colorchat> #include <engine> #include <hamsandwich> #include <fun> #include <fakemeta> #define PLUGIN "BB Skill Mod" #define AUTHOR "nu mai stiu exact" #define VERSION "0.1" new player_xp[33]; new player_xp_all[33]; new level[33]; new rangi[][256]={ "IncepatoR", "JucatoR", "TragatoR", "ConstructoR", "KiLLeR", "AddicteD", "MasteR", "MancatoR de ZombiE", "ConstructoR SeF", "AimeR", "Base DefendeR", "Building HERO", "BaseBuilder ADDICTED", "I OWN BASEBUILDER", "B0$$ DE B0$$" } new exp[]={ 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 12000, 14000, 16000, 18000, 20000, 22000, 24000, 28000, 9999999999 } new zapis; new msgtext; new pcvar_exp_round,pcvar_exp_kill_ct,pcvar_exp_kill_tt,pcvar_exp_level,pcvar_exp_hs,pcvar_hud; new dmg_level[33]; new gravitacja[33]; new health[33]; new shot_time_level[33],Weapons[33][2]; new bieganie_level[33]; new widocznosc[33]; new autobh[33]; new magazynek[33]; new ile_dodac_magazynek[33] new stare_id_broni[33] new krytyk[33] new wampiryzm[33]; new stare_ammo[33]; new const Float:gfCSSpeeds[]={ 000.0, 250.0, 000.0, 260.0, 250.0, 240.0, 250.0, 250.0, 240.0, 250.0, 250.0, 250.0, 250.0, 210.0, 240.0, 240.0, 250.0, 250.0, 210.0, 250.0, 220.0, 230.0, 230.0, 250.0, 210.0, 250.0, 250.0, 235.0, 221.0, 250.0, 245.0 }; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_logevent("Koniec_Rundy", 2, "1=Round_End") register_concmd("add_exp","addexp",ADMIN_IMMUNITY,"<nume> <puncte de experienta>") register_event("DeathMsg", "DeathMsg", "a") pcvar_exp_round = register_cvar("bb_exp_round","50"); pcvar_exp_kill_ct = register_cvar("bb_exp_kill_ct","25"); pcvar_exp_kill_tt = register_cvar("bb_exp_kill_tt","15"); pcvar_exp_level = register_cvar("bb_exp_level","40"); pcvar_exp_hs = register_cvar("bb_exp_hs","5"); pcvar_hud = register_cvar("bb_hud","0"); zapis = nvault_open("exp") register_event("ResetHUD","ShowHUD", "b"); register_event("CurWeapon","Event_CurWeapon", "b") msgtext = get_user_msgid("StatusText"); register_clcmd("lastinv","skille_menu"); register_clcmd("say /stat","staty"); register_clcmd("say /reset","reset"); RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage", 0); RegisterHam(Ham_Spawn,"player","spawned",1) register_event("CurWeapon","CurWeapon","be", "1=1") register_clcmd("say","sayhandle"); set_task(120.0,"pomoc",40) } public plugin_precache(){ precache_sound("dante/bb/level.wav"); } public plugin_end(){ nvault_close(zapis); } public sayhandle(id){ new text[192] read_argv(1,text,191) if(equal(text,"")){ return PLUGIN_HANDLED; } new name[128]; get_user_name(id,name,127) ColorChat(0,GREEN,"[%s] ^x03%s^x01: %s",rangi[level[id]],name,text) return PLUGIN_HANDLED; } public CurWeapon(id) { new wid = read_data(2) // Id broni if(wid == CSW_XM1014 || wid == CSW_C4 || wid == CSW_FLASHBANG || wid == CSW_HEGRENADE || wid == CSW_KNIFE || wid == CSW_SMOKEGRENADE){ return PLUGIN_CONTINUE; } if(wid != stare_id_broni[id]){ ile_dodac_magazynek[id] = magazynek[id]/2; stare_id_broni[id] = wid; return PLUGIN_CONTINUE; } new ammo = read_data(3) // liczba naboi w magazynku if(ammo > stare_ammo[id]){ ile_dodac_magazynek[id] = magazynek[id]/2; stare_ammo[id] = ammo; return PLUGIN_CONTINUE; } if(ile_dodac_magazynek[id] == 0){ return PLUGIN_CONTINUE; } new ent = fm_get_user_weapon_entity(id); if(ent){ cs_set_weapon_ammo(ent, ammo+1); ile_dodac_magazynek[id]--; } return PLUGIN_CONTINUE; } public skille_menu(id){ new menu = menu_create("Meniu Skilluri (By DanTe)","skille_menu_handle"); new formats[128]; format(formats,charsmax(formats),"Damage mai mare [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(dmg_level[id]+1),dmg_level[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Gravitatie [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(gravitacja[id]+1),gravitacja[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Viata mai multa [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(health[id]+1),health[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"FPS Mai mare [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(shot_time_level[id]+1),shot_time_level[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Viteza [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(bieganie_level[id]+1),bieganie_level[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Invizibilitate [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(widocznosc[id]+1),widocznosc[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Bunny Hop [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(autobh[id]+1),autobh[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Experienta mai mare [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(magazynek[id]+1),magazynek[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Lovituri Critice [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(krytyk[id]+1),krytyk[id]) menu_additem(menu,formats) //format(formats,charsmax(formats),"Mniejszy recoil [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(recoil[id]+1),recoil[id]) //menu_additem(menu,formats) format(formats,charsmax(formats),"Vampirism [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(wampiryzm[id]+1),wampiryzm[id]) menu_additem(menu,formats) //format(formats,charsmax(formats),"Natychmiastowy reload [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(natychmiastowy[id]+1),natychmiastowy[id]) //menu_additem(menu,formats) menu_setprop(menu,MPROP_EXIT,MEXIT_ALL); menu_setprop(menu,MPROP_NUMBER_COLOR,"\r"); menu_display(id, menu,0); return PLUGIN_HANDLED; } skille_menu2(id,page=0){ new menu = menu_create("Meniu Skilluri (By DanTe)","skille_menu_handle2"); new formats[128]; format(formats,charsmax(formats),"Damage mai mare [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(dmg_level[id]+1),dmg_level[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Gravitatie [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(gravitacja[id]+1),gravitacja[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Viata mai multa [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(health[id]+1),health[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"FPS Mai mare [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(shot_time_level[id]+1),shot_time_level[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Viteza [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(bieganie_level[id]+1),bieganie_level[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Invizibilitate [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(widocznosc[id]+1),widocznosc[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Bunny Hop [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(autobh[id]+1),autobh[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Experienta mai mare [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(magazynek[id]+1),magazynek[id]) menu_additem(menu,formats) format(formats,charsmax(formats),"Lovituri Critice [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(krytyk[id]+1),krytyk[id]) menu_additem(menu,formats) //format(formats,charsmax(formats),"Mniejszy recoil [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(recoil[id]+1),recoil[id]) //menu_additem(menu,formats) format(formats,charsmax(formats),"Vampirism [%d Exp] Level: \r%d",get_pcvar_num(pcvar_exp_level)*(wampiryzm[id]+1),wampiryzm[id]) menu_additem(menu,formats) //format(formats,charsmax(formats),"Natychmiastowy reload [%d Exp] Aktualny level: \r%d",get_pcvar_num(pcvar_exp_level)*(natychmiastowy[id]+1),natychmiastowy[id]) //menu_additem(menu,formats) menu_setprop(menu,MPROP_EXIT,MEXIT_ALL); menu_setprop(menu,MPROP_NUMBER_COLOR,"\r"); menu_display(id, menu,page); return PLUGIN_HANDLED; } public skille_menu_handle(id, menu, item){ if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; } item++; switch(item){ case 1:{ if((get_pcvar_num(pcvar_exp_level)*(dmg_level[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(dmg_level[id]+1); dmg_level[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 2:{ if((get_pcvar_num(pcvar_exp_level)*(gravitacja[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(gravitacja[id]+1); gravitacja[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 3:{ if((get_pcvar_num(pcvar_exp_level)*(health[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(health[id]+1); health[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 4: { if((get_pcvar_num(pcvar_exp_level)*(shot_time_level[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(shot_time_level[id]+1); shot_time_level[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 5: { if((get_pcvar_num(pcvar_exp_level)*(bieganie_level[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(bieganie_level[id]+1); bieganie_level[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 6: { if((get_pcvar_num(pcvar_exp_level)*(widocznosc[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(widocznosc[id]+1); widocznosc[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 7: { if((get_pcvar_num(pcvar_exp_level)*(autobh[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(autobh[id]+1); autobh[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 8: { if((get_pcvar_num(pcvar_exp_level)*(magazynek[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } ile_dodac_magazynek[id] = magazynek[id]/2 player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(magazynek[id]+1); magazynek[id]++; skille_menu2(id,1); menu_destroy(menu); return PLUGIN_HANDLED; } case 9: { if((get_pcvar_num(pcvar_exp_level)*(krytyk[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(krytyk[id]+1); krytyk[id]++; skille_menu2(id,1); menu_destroy(menu); return PLUGIN_HANDLED; } case 10: { if((get_pcvar_num(pcvar_exp_level)*(wampiryzm[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(wampiryzm[id]+1); wampiryzm[id]++; skille_menu2(id,1); menu_destroy(menu); return PLUGIN_HANDLED; } } menu_destroy(menu); return PLUGIN_HANDLED; } public skille_menu_handle2(id, menu, item){ if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; } item++; switch(item){ case 1:{ if((get_pcvar_num(pcvar_exp_level)*(dmg_level[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(dmg_level[id]+1); dmg_level[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 2:{ if((get_pcvar_num(pcvar_exp_level)*(gravitacja[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(gravitacja[id]+1); gravitacja[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 3:{ if((get_pcvar_num(pcvar_exp_level)*(health[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(health[id]+1); health[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 4: { if((get_pcvar_num(pcvar_exp_level)*(shot_time_level[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(shot_time_level[id]+1); shot_time_level[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 5: { if((get_pcvar_num(pcvar_exp_level)*(bieganie_level[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(bieganie_level[id]+1); bieganie_level[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 6: { if((get_pcvar_num(pcvar_exp_level)*(widocznosc[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(widocznosc[id]+1); widocznosc[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 7: { if((get_pcvar_num(pcvar_exp_level)*(autobh[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(autobh[id]+1); autobh[id]++; skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } case 8: { if((get_pcvar_num(pcvar_exp_level)*(magazynek[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } ile_dodac_magazynek[id] = magazynek[id]/2 player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(magazynek[id]+1); magazynek[id]++; skille_menu2(id,1); menu_destroy(menu); return PLUGIN_HANDLED; } case 9: { if((get_pcvar_num(pcvar_exp_level)*(krytyk[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(krytyk[id]+1); krytyk[id]++; skille_menu2(id,1); menu_destroy(menu); return PLUGIN_HANDLED; } case 10: { if((get_pcvar_num(pcvar_exp_level)*(wampiryzm[id]+1)) > player_xp[id]){ skille_menu2(id); menu_destroy(menu); return PLUGIN_HANDLED; } player_xp[id]-=get_pcvar_num(pcvar_exp_level)*(wampiryzm[id]+1); wampiryzm[id]++; skille_menu2(id,1); menu_destroy(menu); return PLUGIN_HANDLED; } } menu_destroy(menu); return PLUGIN_HANDLED; } public reset(id){ new exp = 0; new exp2 =get_pcvar_num(pcvar_exp_level); for(new i =1;i<=dmg_level[id];i++){ exp+=exp2*i } dmg_level[id] = 0; for(new i =1;i<=gravitacja[id];i++){ exp+=exp2*i } gravitacja[id] = 0; for(new i =1;i<=health[id];i++){ exp+=exp2*i } health[id] = 0; for(new i =1;i<=shot_time_level[id];i++){ exp+=exp2*i } shot_time_level[id] = 0; for(new i =1;i<=bieganie_level[id];i++){ exp+=exp2*i } bieganie_level[id] = 0; for(new i =1;i<=widocznosc[id];i++){ exp+=exp2*i } widocznosc[id] = 0; for(new i =1;i<=autobh[id];i++){ exp+=exp2*i } autobh[id] = 0; for(new i =1;i<=magazynek[id];i++){ exp+=exp2*i } magazynek[id] = 0; for(new i =1;i<=krytyk[id];i++){ exp+=exp2*i } krytyk[id] = 0; for(new i =1;i<=wampiryzm[id];i++){ exp+=exp2*i } wampiryzm[id] = 0; player_xp[id] += exp; skille_menu(id); } public staty(id){ new path_to_file[128] new amxbasedir[64] get_basedir(amxbasedir,63) format(path_to_file,127,"%s/base/stats.txt",amxbasedir) if(file_exists(path_to_file)){ delete_file(path_to_file) } new Data[1025]; format(Data,1024,"<html><head><title>Informatii despre Skilluri</title></head>") write_file(path_to_file,Data,-1) format(Data,1024,"<body text=white bgcolor=black></body>") write_file(path_to_file,Data,-1) format(Data,1024,"<b>Rang: %s</b><br />",rangi[level[id]]) write_file(path_to_file,Data,-1) format(Data,1024,"<b>Exp: %d | Intreaga exp: %d</b><br />",player_xp[id],player_xp_all[id]) write_file(path_to_file,Data,-1) if(level[id]== sizeof(rangi)-1){ format(Data,1024,"<b>Rang : %s | Urmatorul Rang : Ultima limita e cerul</b><br />",rangi[level[id]]) write_file(path_to_file,Data,-1) } else { format(Data,1024,"<b>Rang : %s | Urmatorul Rang : %s (%d)</b><br />",rangi[level[id]],rangi[level[id]+1],exp[level[id]]) write_file(path_to_file,Data,-1) } format(Data,1024,"<b>Razboinic %d %%</b><br />",dmg_level[id]) write_file(path_to_file,Data,-1) format(Data,1024,"<b>Spiderman %d %%</b><br />",gravitacja[id]) write_file(path_to_file,Data,-1) format(Data,1024,"<b>Medic , Plus %d Hp</b><br />",health[id]*4) write_file(path_to_file,Data,-1) format(Data,1024,"<b>Soim %d %%</b><br />",shot_time_level[id]) write_file(path_to_file,Data,-1) format(Data,1024,"<b>Flash %d %%</b><br />",bieganie_level[id]*2) write_file(path_to_file,Data,-1) format(Data,1024,"<b>Nightcrowler %d</b><br />",widocznosc[id]*3) write_file(path_to_file,Data,-1) format(Data,1024,"<b>Bugs Bunny %d %%</b><br />",autobh[id]/2) write_file(path_to_file,Data,-1) format(Data,1024,"<b>Ranger %d %%</b><br />",magazynek[id]/2) write_file(path_to_file,Data,-1) format(Data,1024,"<b>Batman %d %%</b><br />",krytyk[id]/2) write_file(path_to_file,Data,-1) //format(Data,1024,"<b>Recoil mniejszy o %d %%</b><br />",recoil[id]*2) //write_file(path_to_file,Data,-1) format(Data,1024,"<b>Wolverine , Killul adauga %d hp</b><br />",wampiryzm[id]*2) write_file(path_to_file,Data,-1) //format(Data,1024,"<b>Masz %d %% na natychmiastowy reload</b><br />",natychmiastowy[id]/2) //write_file(path_to_file,Data,-1) format(Data,1024,"</html>") write_file(path_to_file,Data,-1) show_motd(id, path_to_file, "Informatii Skilluri") return PLUGIN_HANDLED } public pomoc(){ ColorChat(0,GREEN,"Pentru a-ti alege abilitati pentru jucator scrie in chat /skilluri"); set_task(120.0,"pomoc2",36) } public pomoc2(){ ColorChat(0,GREEN,"Multumuri speciale lui^x03 Simeria Ionut^x04 si lui^x03 Askhanar a.k.a sPuf ?"); set_task(200.0,"pomoc3",37) } public pomoc3(){ ColorChat(0,GREEN,"Pentru a-ti reseta levelele skillurilor scrie in chat /reset"); set_task(120.0,"pomoc",35) } public Koniec_Rundy(){ for(new i = 1;i<33;i++){ if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT){ DajExp(i,get_pcvar_num(pcvar_exp_round)); ColorChat(i,GREEN,"^x03 Ai primit %d puncte de experienta pentru ca ai supravietuit rundei",get_pcvar_num(pcvar_exp_round)); set_hudmessage(random_num(0,255), random_num(0,255),random_num(0,255), -1.0, -1.0, 0, 6.0, 5.0, 0.0, 0.0, -1) show_hudmessage(i,"Ai primit %d puncte de experienta pentru ca ai supravietuit rundei",get_pcvar_num(pcvar_exp_round)); } } } public addexp(id, level, cid){ if(!cmd_access(id, level, cid, 3)){ return PLUGIN_HANDLED; } new arg1[33]; new arg2[10]; read_argv(1,arg1,32); read_argv(2,arg2,9); new player = cmd_target(id, arg1, 0); remove_quotes(arg2); new exp = str_to_num(arg2); if(exp != 0 && exp < 0 ){ OdejmijExp(player,exp); } else if(exp != 0 && exp > 0 ){ DajExp(player,exp); } return PLUGIN_HANDLED; } public OdejmijExp(id,ile){ player_xp[id]-=ile; player_xp_all[id]-=ile; level[id]=0; while(true){ if(player_xp_all[id] >= exp[level[id]]){ level[id]++; //set_hudmessage(random_num(0,255), random_num(0,255),random_num(0,255), -1.0, -1.0, 0, 6.0, 5.0, 0.0, 0.0, -1) //show_hudmessage(id,"Awansowales na kolejny level (%s)",rangi[level[id]]); //ColorChat(0,GREEN,"^x03 Awansowal do rangi ^x01 %s gratki :D",rangi[level[id]]); } else { break; } } } public DajExp(id,ile){ player_xp[id]+=ile; player_xp_all[id]+=ile; new name[64]; get_user_name(id,name,63); while(true){ if(player_xp_all[id] >= exp[level[id]] && sizeof(rangi) > level[id]){ level[id]++; set_hudmessage(random_num(0,255), random_num(0,255),random_num(0,255), -1.0, -1.0, 0, 6.0, 5.0, 0.0, 0.0, -1) show_hudmessage(id,"Ai fost promovat la urmatorul rang (%s)",rangi[level[id]]); ColorChat(0,GREEN,"^x03%s a fost promovat la rangul de ^x04 %s ",name,rangi[level[id]]); emit_sound(id,CHAN_VOICE,"dante/bb/level.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) } else { break; } } } public client_connect(id){ health[id] = 0; gravitacja[id] = 0; dmg_level[id] = 0; level[id] = 0; player_xp[id] = 0; player_xp_all[id] = 0; shot_time_level[id] = 0; bieganie_level[id] = 0; widocznosc[id] = 0; autobh[id] = 0; magazynek[id] = 0; stare_id_broni[id] = 0; ile_dodac_magazynek[id] = 0; krytyk[id] = 0; wampiryzm[id] = 0; wczytaj_exp(id); } public client_disconnect(id){ zapisz_exp(id); } public wczytaj_exp(id){ new vaultkey[64],vaultdata[512]; new authid[64]; get_user_authid(id,authid,63); format(vaultkey,63,"%s",authid); nvault_get(zapis,vaultkey,vaultdata,511); replace_all(vaultdata,256,"#"," "); new jeden[100],dwa[100],trzy[100],cztery[100],piec[100],szesc[100],siedem[100],osiem[100],dziew[100],dzies[100],jedenascie[100],dwanascie[100] parse(vaultdata,jeden,99,dwa,99,trzy,99,cztery,99,piec,99,szesc,99,siedem,99,osiem,99,dziew,99,dzies,99,jedenascie,99,dwanascie,99) player_xp[id] = str_to_num(jeden); player_xp_all[id] = str_to_num(dwa); dmg_level[id] = str_to_num(trzy); gravitacja[id] = str_to_num(cztery); health[id] = str_to_num(piec); shot_time_level[id] = str_to_num(szesc); bieganie_level[id] = str_to_num(siedem) widocznosc[id] = str_to_num(osiem); autobh[id] = str_to_num(dziew); magazynek[id] = str_to_num(dzies) krytyk[id] = str_to_num(jedenascie) wampiryzm[id] = str_to_num(dwanascie); while(true){ if(player_xp_all[id] >= exp[level[id]] && sizeof(rangi) > level[id]){ level[id]++; } else { break; } } } public zapisz_exp(id){ new vaultkey[64],vaultdata[512]; new authid[64]; get_user_authid(id,authid,63); format(vaultkey,63,"%s",authid); format(vaultdata,511,"%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d",player_xp[id],player_xp_all[id],dmg_level[id],gravitacja[id],health[id],shot_time_level[id],bieganie_level[id],widocznosc[id],autobh[id],magazynek[id],krytyk[id],wampiryzm[id]); nvault_set(zapis,vaultkey,vaultdata) } public ShowHUD(id) { if(is_user_alive(id)){ new HUD[128]; format(HUD, 127,"[%s] Experienta : %d | Experienta totala: %d",rangi[level[id]],player_xp[id],player_xp_all[id]); if(get_pcvar_num(pcvar_hud) == 0 ){ message_begin(MSG_ONE, msgtext, {0,0,0}, id); write_byte(0); write_string(HUD); message_end(); return PLUGIN_CONTINUE; } else { set_hudmessage(255, 0, 0, 0.02, 0.63, 0, 6.0, 15.0) show_hudmessage(id, "%s",HUD) } } return PLUGIN_CONTINUE; } public client_PreThink(id){ if(!is_user_alive(id)){ return PLUGIN_CONTINUE; } if(is_user_alive(id) && !is_user_bot(id)){ new asd,aim get_user_aiming(id,aim,asd); if(is_user_alive(aim)){ ShowHUD(id); } } if(random_num(1,200) <= autobh[id]){ new oldbuttons = get_user_oldbutton(id) oldbuttons &= ~IN_JUMP entity_set_int(id, EV_INT_oldbuttons, oldbuttons) } return PLUGIN_CONTINUE; } public DeathMsg() { new kid = read_data(1) //zabojca new vid = read_data(2) // ofiara new hs = read_data(3) // ofiara if(cs_get_user_team(kid)==CS_TEAM_CT && cs_get_user_team(vid)==CS_TEAM_T){ DajExp(kid,get_pcvar_num(pcvar_exp_kill_tt)); set_user_health(kid,get_user_health(kid)+(wampiryzm[kid]*2)); new name[64]; get_user_name(vid,name,charsmax(name)); ColorChat(kid,TEAM_COLOR,"Ai primit %d experienta pentru uciderea lui %s",get_pcvar_num(pcvar_exp_kill_tt),name) if(hs == 1){ DajExp(kid,get_pcvar_num(pcvar_exp_hs)); ColorChat(kid,TEAM_COLOR,"Ai primit %d experienta pentru ca ai dat un HeadShot",get_pcvar_num(pcvar_exp_hs)) } } else if(cs_get_user_team(kid)==CS_TEAM_T && cs_get_user_team(vid)==CS_TEAM_CT){ DajExp(kid,get_pcvar_num(pcvar_exp_kill_ct)); set_user_health(kid,get_user_health(kid)+(wampiryzm[kid]*2)); new name[64]; get_user_name(vid,name,charsmax(name)); ColorChat(kid,TEAM_COLOR,"Ai primit %d experienta pentru ca l-ai omorat pe %s",get_pcvar_num(pcvar_exp_kill_ct),name) if(hs == 1){ DajExp(kid,get_pcvar_num(pcvar_exp_hs)); ColorChat(kid,TEAM_COLOR,"Ai primit %d experienta pentru ca ai dat un HeadShot",get_pcvar_num(pcvar_exp_hs)) } } } public fwTakeDamage(this, idinflictor, idattacker,Float:damage, damagebits){ SetHamParamFloat(4,damage+(damage*(dmg_level[idattacker]*0.01))); if(random_num(1,100) <= krytyk[idattacker]/2){ SetHamParamFloat(4,damage*2); } return HAM_HANDLED; } public spawned(id){ if(is_user_alive(id)){ set_user_health(id,get_user_health(id)+(health[id]*4)) set_user_gravity(id,1.0 - (gravitacja[id]*0.01)); if(widocznosc[id]*3 >= 255 ){ set_user_rendering(id,kRenderFxNone,255,255,255,kRenderTransAlpha,1) } else { set_user_rendering(id,kRenderFxNone,255,255,255,kRenderTransAlpha,255-(widocznosc[id]*3)) } } } public Event_CurWeapon(id) { if(!is_user_alive(id)){ return PLUGIN_CONTINUE } new bron=read_data(2) set_user_maxspeed(id,gfCSSpeeds[bron]+(gfCSSpeeds[bron]*(bieganie_level[id]*0.02))); ShowHUD(id); new Gun = read_data(2) if(Gun==0 || Gun==6 || Gun==29 || Gun>30) return PLUGIN_CONTINUE new Ammo = read_data(3) if(Weapons[id][0] == Gun && Weapons[id][1] <= Ammo) { Weapons[id][1] = Ammo return PLUGIN_CONTINUE } Weapons[id][0] = Gun Weapons[id][1] = Ammo new weapon[32] get_weaponname(Gun,weapon,31) new Ent = fm_find_ent_by_owner(-1,weapon,id) if(Ent) { new Float:Delay = get_pdata_float( Ent, 46, 4) * (1.0-(shot_time_level[id]*0.01)); if (Delay > 0.0){ set_pdata_float( Ent, 46, Delay, 4) } else { set_pdata_float( Ent, 46, 0.01, 4) } } return PLUGIN_CONTINUE } //Frome Fakemeta utility 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 } stock fm_get_user_weapon_entity(id, wid = 0) { new weap = wid, clip, ammo if (!weap && !(weap = get_user_weapon(id, clip, ammo))) return 0 new class[32] get_weaponname(weap, class, sizeof class - 1) return fm_find_ent_by_owner(-1, class, id) }
Trivia Bot for Alive People
Descriere :[/b] : Acesta este un plugin care pune intrebari iar daca castigi vei fi recompensat cu cate un frag ! Merge si la oamenii in viata !
Autor :[/color] : Alka
- | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <colorchat> #include <nvault> #include <fun> #define PLUGIN "Trivia Bot Custom" #define VERSION "1.1" #define AUTHOR "Alka" #define CharsMax(%1) sizeof %1 - 1 #define MAX_LINES 512 #define MAX_LEN 256 #define QUESTION_INTERVAL 30.0 #define QUESTION_INTERVAL_NUM 30 new List[2][MAX_LINES][MAX_LEN]; new Amount; new Timer = QUESTION_INTERVAL_NUM; new CurrentAnswer[128]; new bool:TriviaOnOff[33]; new TriviaPoints[33]; new const PluginTag[] = "[Serverul Tau]"; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_clcmd("say", "HookSay"); register_clcmd("say !top10", "ShowTriviaTop"); register_clcmd("say !triviatop10", "ShowTriviaTop"); register_clcmd("say !triviatop", "ShowTriviaTop"); register_clcmd("say !triviapoints", "ShowTriviaPoints"); register_clcmd("say !points", "ShowTriviaPoints"); set_task(1.0, "TimeRemainingCounter", 1111, "", 0, "b", 0); TeamInfo = get_user_msgid("TeamInfo"); SayText = get_user_msgid("SayText"); } public plugin_cfg() { new ConfigsDir[64], File[64]; new TriviaDir[64]; get_configsdir(ConfigsDir, CharsMax(ConfigsDir)); formatex(TriviaDir, CharsMax(TriviaDir), "%s/Trivia Bot", ConfigsDir); formatex(File, CharsMax(File), "%s/trivia_list.ini", TriviaDir); if(!dir_exists(TriviaDir)) mkdir(TriviaDir); if(!file_exists(File)) write_file(File, "", -1); new FilePointer = fopen(File, "rt"); new Buffer[512]; while(!feof(FilePointer)) { fgets(FilePointer, Buffer, CharsMax(Buffer)); if(!Buffer[0] || Buffer[0] == ';' || strlen(Buffer) < 3) continue; trim(Buffer); strtok(Buffer, List[0][Amount], sizeof List[][] - 1, List[1][Amount], sizeof List[][] - 1, ';', 0); Amount++; } fclose(FilePointer); server_print("%s Successfuly loaded %d lines from %s.", PluginTag, Amount, File); ShowQuestion(); } public ShowQuestion() { if(task_exists(2222)) remove_task(2222); new RndNum = random(Amount); formatex(CurrentAnswer, CharsMax(CurrentAnswer), List[1][RndNum]); static Players[32], Num, Player; get_players(Players, Num, "h"); for(new i = 0 ; i < Num ; i++) { Player = Players; if(!is_user_connected(Player)) continue; if(!TriviaOnOff[Player]) continue; ColorChat(Player, RED, "%s^x01%s", PluginTag, List[0][RndNum]); } Timer = QUESTION_INTERVAL_NUM - 1; set_task(QUESTION_INTERVAL, "ShowQuestion", 2222, "", 0, "", 0); } public TimeRemainingCounter() { if(Timer < 0) return; static Players[32], Num, Player; get_players(Players, Num, "bh"); for(new i = 0 ; i < Num ; i++) { Player = Players; if(!is_user_connected(Player)) continue; if(!TriviaOnOff[Player]) continue; set_hudmessage(0, 255, 0, -1.0, 0.7, 0, 1.0, 0.8, 1.0, 1.0, 4); show_hudmessage(Player, "%s Timp ramas pana la urmatoarea intrebare : %d", PluginTag, Timer); } Timer--; } public HookSay(id) { new Args[256]; read_args(Args, CharsMax(Args)); if(containi(Args, CurrentAnswer) != -1 && TriviaOnOff[id]) { TriviaPoints[id] += 1; new RndNum = random(2); if( RndNum ) { ColorChat(id, RED, "%s^x01 Raspunsul tau a fost corect. Felicitari, ai castigat %d frag", PluginTag, RndNum); if(is_user_connected(id)) // cs_set_user_money(id, cs_get_user_money(id) + RndNum, 0); set_user_frags(id, get_user_frags(id) + RndNum); } else { ColorChat(id, RED, "%s^x01 Raspunsul tau a fost corect.", PluginTag); } ShowQuestion(); return 1; } else if(equali(Args, "^"/trivia^"", 9)) { if(!TriviaOnOff[id]) { ColorChat(id, RED, "%s^x04 Acum joci Trivia !^x03 Raspunde intrebariilor si castiga^x04 Fraguri^x03 !", PluginTag); TriviaOnOff[id] = true; } else { ColorChat(id, RED, "%s^x04 Ai parasit Trivia, nu mai poti juca!^x03 Scrie /trivia pentru a intra iarasi in joc.", PluginTag); TriviaOnOff[id] = false; } } return 0; } public client_disconnect(id) { TriviaOnOff[id] = false; if(TriviaPoints[id] != 1) SavePoints(id); } public client_putinserver(id) { set_task(15.0, "ShowAdvMessage", id + 3333); LoadPoints(id); } public ShowAdvMessage(index) { index -= 3333; ColorChat(index, RED, "%s^x01 Te-ai saturat sa stai degeaba cand esti Zombie ? Tasteaza ^x04/trivia ^x01 in chat si casiga^x04 FRAGURI.", PluginTag); } public SavePoints(index) { new Vault = nvault_open("trivia_points"); new Key[64], Value[64], Name[32]; get_user_name(index, Name, sizeof Name - 1); formatex(Key, sizeof Key - 1, "%s-trivia_points:", Name); formatex(Value, sizeof Value - 1, "%d", TriviaPoints[index]); nvault_set(Vault, Key, Value); nvault_close(Vault); } public LoadPoints(index) { new Vault = nvault_open("trivia_points"); new Key[64], Value[64], Name[32]; get_user_name(index, Name, sizeof Name - 1); formatex(Key, sizeof Key - 1, "%s-trivia_points:", Name); nvault_get(Vault, Key, Value, sizeof Value - 1); nvault_close(Vault); TriviaPoints[index] = str_to_num(Value); } public ShowTriviaTop(id) { static Sort[33][2]; new Count; new Players[32], Num, Player; get_players(Players, Num); for(new i = 0 ; i < Num ; i++) { Player = Players; Sort[Count][0] = Player; Sort[Count][1] = TriviaPoints[Player]; Count++; } SortCustom2D(Sort, Count, "points_compare"); new Motd[1024], Len; Len = format(Motd, sizeof Motd - 1,"<body bgcolor=#000000><font color=#98f5ff><pre>"); Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%s %-22.22s %3s^n", "#", "Name", "Trivia Points"); new b = clamp(Count, 0, 10); new Name[32], User; for(new a = 0; a < b; a++) { User = Sort[a][0]; get_user_name(User, Name, sizeof Name - 1); Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%d %-22.22s %d^n", a + 1, Name, Sort[a][1]); } Len += format(Motd[Len], (sizeof Motd - 1) - Len,"</body></font></pre>"); show_motd(id, Motd, "Trivia Top 10"); } public points_compare(elem1[], elem2[]) { if(elem1[1] > elem2[1]) return -1; else if(elem1[1] < elem2[1]) return 1; return 0; } public ShowTriviaPoints(id) ColorChat(id, RED, "%s^x04 Ai %d puncte trivia%s.", PluginTag, TriviaPoints[id], TriviaPoints[id] > 1 ? "s" : "");
BaseBuilder + Claim
Descriere :[/b] : Acesta este pluginul de baza al BaseBuilder-ului doar ca are CLAIM pentru toti jucatorii . Posibil sa mai aibe cateva modificari gen meniul sa nu mai fie alb ci galben , in orice caz legate de aspect , subtitrare + imbunatatire
Autor :[/color] : Tirant + e t n a d (modificari minore , adica claimul ... fix pix )
SMA :
- | Afiseaza codul
/* Base Builder Zombie Mod Tirant Version 6.5 Pub */ #include <amxmodx> #include <amxmisc> #include <credits> #include <cstrike> #include <fun> #include <hamsandwich> #include <fakemeta> #include <engine> #include <csx> //Enable this only if you have bought the credits plugin //#define BB_CREDITS #define FLAGS_BUILD ADMIN_KICK #define FLAGS_LOCK ADMIN_ALL #define FLAGS_BUILDBAN ADMIN_KICK #define FLAGS_SWAP ADMIN_KICK #define FLAGS_REVIVE ADMIN_KICK #define FLAGS_GUNS ADMIN_LEVEL_A #define FLAGS_RELEASE ADMIN_BAN #define FLAGS_OVERRIDE ADMIN_BAN #define VERSION "6.6" #define MODNAME "^x01 [^x04 BaseBuilder^x01 ]" #define LockBlock(%1,%2) ( entity_set_int( %1, EV_INT_iuser1, %2 ) ) #define UnlockBlock(%1) ( entity_set_int( %1, EV_INT_iuser1, 0 ) ) #define BlockLocker(%1) ( entity_get_int( %1, EV_INT_iuser1 ) ) #define MovingEnt(%1) ( entity_set_int( %1, EV_INT_iuser2, 1 ) ) #define UnmovingEnt(%1) ( entity_set_int( %1, EV_INT_iuser2, 0 ) ) #define IsMovingEnt(%1) ( entity_get_int( %1, EV_INT_iuser2 ) == 1 ) #define SetEntMover(%1,%2) ( entity_set_int( %1, EV_INT_iuser3, %2 ) ) #define UnsetEntMover(%1) ( entity_set_int( %1, EV_INT_iuser3, 0 ) ) #define GetEntMover(%1) ( entity_get_int( %1, EV_INT_iuser3 ) ) #define SetLastMover(%1,%2) ( entity_set_int( %1, EV_INT_iuser4, %2 ) ) #define UnsetLastMover(%1) ( entity_set_int( %1, EV_INT_iuser4, 0 ) ) #define GetLastMover(%1) ( entity_get_int( %1, EV_INT_iuser4 ) ) #define MAXPLAYERS 32 #define MAXENTS 1024 #define AMMO_SLOT 376 #define MODELCHANGE_DELAY 0.5 #define AUTO_TEAM_JOIN_DELAY 0.1 #define TEAM_SELECT_VGUI_MENU_ID 2 #define OBJECT_PUSHPULLRATE 4.0 #define HUD_FRIEND_HEIGHT 0.30 #define BARRIER_COLOR 0.0, 0.0, 255.0 #define BARRIER_RENDERAMT 150.0 #define BLOCK_RENDERAMT 150.0 #define LOCKED_COLOR 125.0, 0.0, 0.0 #define LOCKED_RENDERAMT 225.0 const ZOMBIE_ALLOWED_WEAPONS_BITSUM = (1<<CSW_KNIFE) #define OFFSET_WPN_WIN 41 #define OFFSET_WPN_LINUX 4 #define OFFSET_ACTIVE_ITEM 373 #define OFFSET_LINUX 5 #if cellbits == 32 #define OFFSET_BUYZONE 235 #else #define OFFSET_BUYZONE 268 #endif new g_iMaxPlayers new g_msgSayText, g_msgStatusText new g_HudSync new g_isConnected[MAXPLAYERS+1] new g_isAlive[MAXPLAYERS+1] new g_isZombie[MAXPLAYERS+1] new g_isBuildBan[MAXPLAYERS+1] new g_isCustomModel[MAXPLAYERS+1] enum (+= 5000) { TASK_BUILD = 10000, TASK_PREPTIME, TASK_MODELSET, TASK_RESPAWN, TASK_HEALTH, TASK_IDLESOUND } //Custom Sounds new g_szRoundStart[][] = { "basebuilder/round_start.wav", "basebuilder/round_start2.wav" } #define WIN_ZOMBIES "basebuilder/win_zombies2.wav" #define WIN_BUILDERS "basebuilder/win_builders2.wav" #define PHASE_PREP "basebuilder/phase_prep3.wav" #define PHASE_BUILD "basebuilder/phase_build3.wav" #define LOCK_OBJECT "buttons/lightswitch2.wav" #define LOCK_FAIL "buttons/button10.wav" #define GRAB_START "basebuilder/block_grab.wav" #define GRAB_STOP "basebuilder/block_drop.wav" #define INFECTION "basebuilder/zombie_kill1.wav" new const g_szZombiePain[][] = { "basebuilder/zombie/pain/pain1.wav", "basebuilder/zombie/pain/pain2.wav", "basebuilder/zombie/pain/pain3.wav" } new const g_szZombieDie[][] = { "basebuilder/zombie/death/death1.wav", "basebuilder/zombie/death/death2.wav", "basebuilder/zombie/death/death3.wav" } new const g_szZombieIdle[][] = { "basebuilder/zombie/idle/idle1.wav", "basebuilder/zombie/idle/idle2.wav", "basebuilder/zombie/idle/idle3.wav" } new const g_szZombieHit[][] = { "basebuilder/zombie/hit/hit1.wav", "basebuilder/zombie/hit/hit1.wav", "basebuilder/zombie/hit/hit1.wav" } new const g_szZombieMiss[][] = { "basebuilder/zombie/miss/miss1.wav", "basebuilder/zombie/miss/miss2.wav", "basebuilder/zombie/miss/miss3.wav" } //Custom Player Models new Float:g_fModelsTargetTime, Float:g_fRoundStartTime new g_szPlayerModel[MAXPLAYERS+1][32] //Game Name new g_szModName[32] new g_iCountDown, g_iEntBarrier new bool:g_boolCanBuild, bool:g_boolPrepTime, bool:g_boolRoundEnded new g_iFriend[MAXPLAYERS+1] new CsTeams:g_iTeam[MAXPLAYERS+1], CsTeams:g_iCurTeam[MAXPLAYERS+1] new bool:g_boolFirstTeam[MAXPLAYERS+1] //Building Stores new Float:g_fOffset1[MAXPLAYERS+1], Float:g_fOffset2[MAXPLAYERS+1], Float:g_fOffset3[MAXPLAYERS+1] new g_iOwnedEnt[MAXPLAYERS+1], g_iOwnedEntities[MAXPLAYERS+1] new Float:g_fEntDist[MAXPLAYERS+1] static const g_szWpnEntNames[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90" } //Weapon Names (For Guns Menu) static const szWeaponNames[24][23] = { "Arc", "XM1014 M4", "Ingram MAC-10", "AuG", "UMP 45", "Auto-Sniper 1", "GaLiL", "FaMaS", "PoLaR [AwP]", "MP5", "Ciuruitoare", "ShoTguN", "M4A1", "Schmidt TMP", "Auto-Sniper 2", "SG-552 Commando", "Ak-47", "ES P90", "P228 Compact", "Pistoale Duble", "Fiveseven", "UsP", "Glock", "DeagLe" } #define MAX_COLORS 24 new const Float:g_fColor[MAX_COLORS][3] = { {200.0, 000.0, 000.0}, {255.0, 083.0, 073.0}, {255.0, 117.0, 056.0}, {255.0, 174.0, 066.0}, {255.0, 207.0, 171.0}, {252.0, 232.0, 131.0}, {254.0, 254.0, 034.0}, {059.0, 176.0, 143.0}, {197.0, 227.0, 132.0}, {000.0, 150.0, 000.0}, {120.0, 219.0, 226.0}, {135.0, 206.0, 235.0}, {128.0, 218.0, 235.0}, {000.0, 000.0, 255.0}, {146.0, 110.0, 174.0}, {255.0, 105.0, 180.0}, {246.0, 100.0, 175.0}, {205.0, 074.0, 076.0}, {250.0, 167.0, 108.0}, {234.0, 126.0, 093.0}, {180.0, 103.0, 077.0}, {149.0, 145.0, 140.0}, {000.0, 000.0, 000.0}, {255.0, 255.0, 255.0} } new const Float:g_fRenderAmt[MAX_COLORS] = { 100.0, //Red 135.0, //Red Orange 140.0, //Orange 120.0, //Yellow Orange 140.0, //Peach 125.0, //Yellow 100.0, //Lemon Yellow 125.0, //Jungle Green 135.0, //Yellow Green 100.0, //Green 125.0, //Aquamarine 150.0, //Baby Blue 090.0, //Sky Blue 075.0, //Blue 175.0, //Violet 150.0, //Hot Pink 175.0, //Magenta 140.0, //Mahogany 140.0, //Tan 140.0, //Light Brown 165.0, //Brown 175.0, //Gray 125.0, //Black 125.0 //White } new const g_szColorName[MAX_COLORS][] = { "Rosu", "Portocaliu Inchis", "Portocaliu", "Galben Inchis", "Portocaliu Deschis", "Galben", "Galben Aprins", "Verde Albastrui", "Verde Deschis", "Verde", "Albastrul Apei", "Albastru Deschis", "Albastrul Cerului", "Albastru", "Violet", "Roz", "Roz Deschis", "Rosu Deschis", "Maro Deschis", "Maro Aprins", "Maro", "Gry", "Negru", "Alb" } enum { COLOR_RED = 0, //200, 000, 000 COLOR_REDORANGE, //255, 083, 073 COLOR_ORANGE, //255, 117, 056 COLOR_YELLOWORANGE, //255, 174, 066 COLOR_PEACH, //255, 207, 171 COLOR_YELLOW, //252, 232, 131 COLOR_LEMONYELLOW, //254, 254, 034 COLOR_JUNGLEGREEN, //059, 176, 143 COLOR_YELLOWGREEN, //197, 227, 132 COLOR_GREEN, //000, 200, 000 COLOR_AQUAMARINE, //120, 219, 226 COLOR_BABYBLUE, //135, 206, 235 COLOR_SKYBLUE, //128, 218, 235 COLOR_BLUE, //000, 000, 200 COLOR_VIOLET, //146, 110, 174 COLOR_PINK, //255, 105, 180 COLOR_MAGENTA, //246, 100, 175 COLOR_MAHOGANY, //205, 074, 076 COLOR_TAN, //250, 167, 108 COLOR_LIGHTBROWN, //234, 126, 093 COLOR_BROWN, //180, 103, 077 COLOR_GRAY, //149, 145, 140 COLOR_BLACK, //000, 000, 000 COLOR_WHITE //255, 255, 255 } new g_iColor[MAXPLAYERS+1] new g_iColorOwner[MAX_COLORS] //Color Menu new g_iMenuOffset[MAXPLAYERS+1], g_iMenuOptions[MAXPLAYERS+1][8], g_iWeaponPicked[2][MAXPLAYERS+1], g_iPrimaryWeapon[MAXPLAYERS+1] new bool:g_boolFirstTime[MAXPLAYERS+1], bool:g_boolRepick[MAXPLAYERS+1] new Float:g_fBuildDelay[MAXPLAYERS+1] #define BUILD_DELAY 0.75 #define KEYS_GENERIC (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9) enum { ATT_HEALTH = 0, ATT_SPEED, ATT_GRAVITY } //Zombie Classes new g_iZClasses new g_iZombieClass[MAXPLAYERS+1] new bool:g_boolFirstSpawn[MAXPLAYERS+1] new g_szPlayerClass[MAXPLAYERS+1][32] new g_iNextClass[MAXPLAYERS+1] new Float:g_fPlayerSpeed[MAXPLAYERS+1] new bool:g_boolArraysCreated new Array:g_zclass_name new Array:g_zclass_info new Array:g_zclass_modelsstart // start position in models array new Array:g_zclass_modelsend // end position in models array new Array:g_zclass_playermodel // player models array new Array:g_zclass_modelindex // model indices array new Array:g_zclass_clawmodel new Array:g_zclass_hp new Array:g_zclass_spd new Array:g_zclass_grav new Array:g_zclass_admin new Array:g_zclass_credits //new Float:g_fClassMultiplier[MAXPLAYERS+1][3] new Array:g_zclass2_realname, Array:g_zclass2_name, Array:g_zclass2_info, Array:g_zclass2_modelsstart, Array:g_zclass2_modelsend, Array:g_zclass2_playermodel, Array:g_zclass2_clawmodel, Array:g_zclass2_hp, Array:g_zclass2_spd, Array:g_zclass2_grav, Array:g_zclass2_admin, Array:g_zclass2_credits, Array:g_zclass_new //Forwards new g_fwRoundStart, g_fwPrepStarted, g_fwBuildStarted, g_fwClassPicked, g_fwClassSet, g_fwPushPull, g_fwGrabEnt_Pre, g_fwGrabEnt_Post, g_fwDropEnt_Pre, g_fwDropEnt_Post, g_fwNewColor, g_fwLockEnt_Pre, g_fwLockEnt_Post, g_fwDummyResult //Cvars new g_pcvar_buildtime, g_iBuildTime, g_pcvar_preptime, g_iPrepTime, g_pcvar_givenades, g_iGrenadeHE, g_iGrenadeFLASH, g_iGrenadeSMOKE, g_pcvar_entmindist, Float: g_fEntMinDist, g_pcvar_entsetdist, Float: g_fEntSetDist, g_pcvar_entmaxdist, Float: g_fEntMaxDist, g_pcvar_resetent, g_iResetEnt, g_pcvar_showmovers, g_iShowMovers, g_pcvar_lockblocks, g_iLockBlocks, g_pcvar_lockmax, g_iLockMax, g_pcvar_colormode, g_iColorMode, g_pcvar_zombietime, g_iZombieTime, g_pcvar_infecttime, g_iInfectTime, g_pcvar_supercut, g_iSupercut, g_pcvar_gunsmenu, g_iGunsMenu, g_pcvar_enabled, g_pcvar_allowedweps public plugin_precache() { server_cmd("bb_credits_active 0") register_plugin("Base Builder", VERSION, "Tirant + e t n a d update") register_cvar("base_builder", VERSION, FCVAR_SPONLY|FCVAR_SERVER) set_cvar_string("base_builder", VERSION) g_pcvar_enabled = register_cvar("bb_enabled", "1") if (!get_pcvar_num(g_pcvar_enabled)) return; new szCache[64], i; g_pcvar_buildtime = register_cvar("bb_buildtime", "180") //Build Time g_iBuildTime = clamp(get_pcvar_num(g_pcvar_buildtime), 30, 300) g_pcvar_preptime = register_cvar("bb_preptime", "30") //Prep Time g_iPrepTime = clamp(get_pcvar_num(g_pcvar_preptime), 0, 60) g_pcvar_zombietime = register_cvar("bb_zombie_respawn_delay", "3") //Zombie Respawn Delay g_iZombieTime = clamp(get_pcvar_num(g_pcvar_zombietime), 1, 30) g_pcvar_infecttime = register_cvar("bb_infection_respawn", "0") //Survivor Respawn Infection Delay g_iInfectTime = clamp(get_pcvar_num(g_pcvar_infecttime), 0, 30) g_pcvar_showmovers = register_cvar("bb_showmovers", "1") //Show Movers g_iShowMovers = clamp(get_pcvar_num(g_pcvar_showmovers), 0, 1) g_pcvar_lockblocks = register_cvar("bb_lockblocks", "1") //Lock blocks g_iLockBlocks = clamp(get_pcvar_num(g_pcvar_lockblocks), 0, 1) g_pcvar_lockmax = register_cvar("bb_lockmax", "15") //Lock max g_iLockMax = clamp(get_pcvar_num(g_pcvar_lockmax), 0, 50) g_pcvar_colormode = register_cvar("bb_colormode", "1") //Color mode <0/1/2> Menu, one color per player, random g_iColorMode = clamp(get_pcvar_num(g_pcvar_colormode), 0, 2) g_pcvar_entmaxdist = register_cvar("bb_max_move_dist", "768") //Push ceiling g_fEntMaxDist = get_pcvar_float(g_pcvar_entmaxdist) g_pcvar_entmindist = register_cvar("bb_min_move_dist", "32") //Pull floor g_fEntMinDist = get_pcvar_float(g_pcvar_entmindist) g_pcvar_entsetdist = register_cvar("bb_min_dist_set", "64") //Grab set g_fEntSetDist = get_pcvar_float(g_pcvar_entsetdist) g_pcvar_resetent = register_cvar("bb_resetblocks", "1") //Reset blocks on new round g_iResetEnt = clamp(get_pcvar_num(g_pcvar_resetent), 0, 1) g_pcvar_supercut = register_cvar("bb_zombie_supercut", "0") //One hit kill for zombies g_iSupercut = clamp(get_pcvar_num(g_pcvar_supercut), 0, 1) g_pcvar_gunsmenu = register_cvar("bb_gunsmenu", "1") //Use the internal guns menu g_iGunsMenu = clamp(get_pcvar_num(g_pcvar_gunsmenu), 0, 1) g_pcvar_givenades = register_cvar("bb_roundnades","hsf") //Grenades g_pcvar_allowedweps = register_cvar("bb_weapons","adghijmqtvx") get_pcvar_string(g_pcvar_givenades, szCache, sizeof szCache - 1) for (i=0; i<strlen(szCache);i++) { switch(szCache) { case 'h': g_iGrenadeHE++ case 'f': g_iGrenadeFLASH++ case 's': g_iGrenadeSMOKE++ } } for (i=0; i<sizeof g_szRoundStart; i++) precache_sound(g_szRoundStart[i]) for (i=0; i<sizeof g_szZombiePain;i++) precache_sound(g_szZombiePain[i]) for (i=0; i<sizeof g_szZombieDie;i++) precache_sound(g_szZombieDie[i]) for (i=0; i<sizeof g_szZombieIdle;i++) precache_sound(g_szZombieIdle[i]) for (i=0; i<sizeof g_szZombieHit;i++) precache_sound(g_szZombieHit[i]) for (i=0; i<sizeof g_szZombieMiss;i++) precache_sound(g_szZombieMiss[i]) precache_sound(WIN_ZOMBIES) precache_sound(WIN_BUILDERS) precache_sound(PHASE_BUILD) precache_sound(PHASE_PREP) precache_sound(LOCK_OBJECT) precache_sound(LOCK_FAIL) precache_sound(GRAB_START) precache_sound(GRAB_STOP) if (g_iInfectTime) precache_sound(INFECTION) i = create_entity("info_bomb_target"); entity_set_origin(i, Float:{8192.0,8192.0,8192.0}) i = create_entity("info_map_parameters"); DispatchKeyValue(i, "buying", "3"); DispatchKeyValue(i, "bombradius", "1"); DispatchSpawn(i); g_zclass_name = ArrayCreate(32, 1) g_zclass_info = ArrayCreate(32, 1) g_zclass_modelsstart = ArrayCreate(1, 1) g_zclass_modelsend = ArrayCreate(1, 1) g_zclass_playermodel = ArrayCreate(32, 1) g_zclass_modelindex = ArrayCreate(1, 1) g_zclass_clawmodel = ArrayCreate(32, 1) g_zclass_hp = ArrayCreate(1, 1) g_zclass_spd = ArrayCreate(1, 1) g_zclass_grav = ArrayCreate(1, 1) g_zclass_admin = ArrayCreate(1, 1) g_zclass_credits = ArrayCreate(1, 1) g_zclass2_realname = ArrayCreate(32, 1) g_zclass2_name = ArrayCreate(32, 1) g_zclass2_info = ArrayCreate(32, 1) g_zclass2_modelsstart = ArrayCreate(1, 1) g_zclass2_modelsend = ArrayCreate(1, 1) g_zclass2_playermodel = ArrayCreate(32, 1) g_zclass2_clawmodel = ArrayCreate(32, 1) g_zclass2_hp = ArrayCreate(1, 1) g_zclass2_spd = ArrayCreate(1, 1) g_zclass2_grav = ArrayCreate(1, 1) g_zclass2_admin = ArrayCreate(1, 1) g_zclass2_credits = ArrayCreate(1, 1) g_zclass_new = ArrayCreate(1, 1) g_boolArraysCreated = true return; } public plugin_cfg() { g_boolArraysCreated = false } public plugin_init() { if (!get_pcvar_num(g_pcvar_enabled)) return; formatex(g_szModName, charsmax(g_szModName), "Base Builder %s", VERSION) register_clcmd("say", "cmdSay"); register_clcmd("say_team", "cmdSay"); //Added for old users register_clcmd("+grab", "cmdGrabEnt"); register_clcmd("-grab", "cmdStopEnt"); register_clcmd("bb_lock", "cmdLockBlock",0, " - Aim at a block to lock it"); register_clcmd("bb_claim", "cmdLockBlock",0, " - Aim at a block to lock it"); register_clcmd("bb_buildban", "cmdBuildBan",0, " <player>"); register_clcmd("bb_unbuildban", "cmdBuildBan",0, " <player>"); register_clcmd("bb_bban", "cmdBuildBan",0, " <player>"); register_clcmd("bb_swap", "cmdSwap",0, " <player>"); register_clcmd("bb_revive", "cmdRevive",0, " <player>"); if (g_iGunsMenu) register_clcmd("bb_guns", "cmdGuns",0, " <player>"); register_clcmd("bb_startround", "cmdStartRound",0, " - Starts the round"); register_logevent("logevent_round_start",2, "1=Round_Start") register_logevent("logevent_round_end", 2, "1=Round_End") register_message(get_user_msgid("TextMsg"), "msgRoundEnd") register_message(get_user_msgid("TextMsg"), "msgSendAudio") register_message(get_user_msgid("StatusIcon"), "msgStatusIcon"); register_message(get_user_msgid("Health"), "msgHealth"); register_message(get_user_msgid("StatusValue"), "msgStatusValue") register_message(get_user_msgid("TeamInfo"), "msgTeamInfo"); register_menucmd(register_menuid("ColorsSelect"),KEYS_GENERIC,"colors_pushed") register_menucmd(register_menuid("ZClassSelect"),KEYS_GENERIC,"zclass_pushed") if (g_iGunsMenu) { register_menucmd(register_menuid("WeaponMethodMenu"),(1<<0)|(1<<1)|(1<<2),"weapon_method_pushed") register_menucmd(register_menuid("PrimaryWeaponSelect"),KEYS_GENERIC,"prim_weapons_pushed") register_menucmd(register_menuid("SecWeaponSelect"),KEYS_GENERIC,"sec_weapons_pushed") } register_event("HLTV", "ev_RoundStart", "a", "1=0", "2=0") register_event("AmmoX", "ev_AmmoX", "be", "1=1", "1=2", "1=3", "1=4", "1=5", "1=6", "1=7", "1=8", "1=9", "1=10") register_event("Health", "ev_Health", "be", "1>0"); register_event("StatusValue", "ev_SetTeam", "be", "1=1"); register_event("StatusValue", "ev_ShowStatus", "be", "1=2", "2!0"); register_event("StatusValue", "ev_HideStatus", "be", "1=1", "2=0"); RegisterHam(Ham_Touch, "weapon_shield","ham_WeaponCleaner_Post", 1) RegisterHam(Ham_Touch, "weaponbox", "ham_WeaponCleaner_Post", 1) RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post", 1) RegisterHam(Ham_TakeDamage, "player", "ham_TakeDamage") for (new i = 1; i < sizeof g_szWpnEntNames; i++) if (g_szWpnEntNames[i][0]) RegisterHam(Ham_Item_Deploy, g_szWpnEntNames[i], "ham_ItemDeploy_Post", 1) register_forward(FM_GetGameDescription, "fw_GetGameDescription") register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue") register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged") register_forward(FM_CmdStart, "fw_CmdStart"); register_forward(FM_PlayerPreThink, "fw_PlayerPreThink") register_forward(FM_EmitSound, "fw_EmitSound") register_forward(FM_ClientKill, "fw_Suicide") if (g_iShowMovers) register_forward(FM_TraceLine, "fw_Traceline") register_clcmd("drop", "clcmd_drop") register_clcmd("buy", "clcmd_buy") //Team Handlers register_clcmd("chooseteam", "clcmd_changeteam") register_clcmd("jointeam", "clcmd_changeteam") register_message(get_user_msgid("ShowMenu"), "message_show_menu") register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu") set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET) g_iMaxPlayers = get_maxplayers() g_HudSync = CreateHudSyncObj(); g_msgSayText = get_user_msgid("SayText") g_msgStatusText = get_user_msgid("StatusText"); g_iEntBarrier = find_ent_by_tname( -1, "barrier" ); //Custom Forwards g_fwRoundStart = CreateMultiForward("bb_round_started", ET_IGNORE) g_fwPrepStarted = CreateMultiForward("bb_prepphase_started", ET_IGNORE) g_fwBuildStarted = CreateMultiForward("bb_buildphase_started", ET_IGNORE) g_fwClassPicked = CreateMultiForward("bb_zombie_class_picked", ET_IGNORE, FP_CELL, FP_CELL) g_fwClassSet = CreateMultiForward("bb_zombie_class_set", ET_IGNORE, FP_CELL, FP_CELL) g_fwPushPull = CreateMultiForward("bb_block_pushpull", ET_IGNORE, FP_CELL, FP_CELL, FP_CELL) g_fwGrabEnt_Pre = CreateMultiForward("bb_grab_pre", ET_IGNORE, FP_CELL, FP_CELL) g_fwGrabEnt_Post = CreateMultiForward("bb_grab_post", ET_IGNORE, FP_CELL, FP_CELL) g_fwDropEnt_Pre = CreateMultiForward("bb_drop_pre", ET_IGNORE, FP_CELL, FP_CELL) g_fwDropEnt_Post = CreateMultiForward("bb_drop_post", ET_IGNORE, FP_CELL, FP_CELL) g_fwNewColor = CreateMultiForward("bb_new_color", ET_IGNORE, FP_CELL, FP_CELL) g_fwLockEnt_Pre = CreateMultiForward("bb_lock_pre", ET_IGNORE, FP_CELL, FP_CELL) g_fwLockEnt_Post = CreateMultiForward("bb_lock_post", ET_IGNORE, FP_CELL, FP_CELL) register_dictionary("basebuilder.txt"); } public plugin_natives() { register_native("bb_register_zombie_class","native_register_zombie_class", 1) register_native("bb_get_class_cost","native_get_class_cost", 1) register_native("bb_get_user_zombie_class","native_get_user_zombie_class", 1) register_native("bb_get_user_next_class","native_get_user_next_class", 1) register_native("bb_set_user_zombie_class","native_set_user_zombie_class", 1) register_native("bb_is_user_zombie","native_is_user_zombie", 1) register_native("bb_is_user_banned","native_is_user_banned", 1) register_native("bb_is_build_phase","native_bool_buildphase", 1) register_native("bb_is_prep_phase","native_bool_prepphase", 1) register_native("bb_get_build_time","native_get_build_time", 1) register_native("bb_set_build_time","native_set_build_time", 1) register_native("bb_get_user_color","native_get_user_color", 1) register_native("bb_set_user_color","native_set_user_color", 1) register_native("bb_drop_user_block","native_drop_user_block", 1) register_native("bb_get_user_block","native_get_user_block", 1) register_native("bb_set_user_block","native_set_user_block", 1) register_native("bb_is_locked_block","native_is_locked_block", 1) register_native("bb_lock_block","native_lock_block", 1) register_native("bb_unlock_block","native_unlock_block", 1) register_native("bb_release_zombies","native_release_zombies", 1) register_native("bb_set_user_primary","native_set_user_primary", 1) register_native("bb_get_user_primary","native_get_user_primary", 1) register_native("bb_get_flags_build","native_get_flags_build", 1) register_native("bb_get_flags_lock","native_get_flags_lock", 1) register_native("bb_get_flags_buildban","native_get_flags_buildban", 1) register_native("bb_get_flags_swap","native_get_flags_swap", 1) register_native("bb_get_flags_revive","native_get_flags_revive", 1) register_native("bb_get_flags_guns","native_get_flags_guns", 1) register_native("bb_get_flags_release","native_get_flags_release", 1) register_native("bb_get_flags_override","native_get_flags_override", 1) //register_native("bb_set_user_mult","native_set_user_mult", 1) //ZP Natives Converted register_native("zp_register_zombie_class","native_register_zombie_class", 1) register_native("zp_get_user_zombie_class","native_get_user_zombie_class", 1) register_native("zp_get_user_next_class","native_get_user_next_class", 1) register_native("zp_set_user_zombie_class","native_set_user_zombie_class", 1) register_native("zp_get_user_zombie","native_is_user_zombie", 1) } public fw_GetGameDescription() { forward_return(FMV_STRING, g_szModName) return FMRES_SUPERCEDE; } public client_putinserver(id) { if (!is_user_connected(id)) return PLUGIN_HANDLED; g_isConnected[id] = true g_isAlive[id] = false g_isZombie[id] = false g_isBuildBan[id] = false g_isCustomModel[id] = false g_boolFirstSpawn[id] = true g_boolFirstTeam[id] = false g_boolFirstTime[id] = true g_boolRepick[id] = true g_iZombieClass[id] = 0 g_iNextClass[id] = g_iZombieClass[id] //for (new i = 0; i < 3; i++) g_fClassMultiplier[id][i] = 1.0 set_task(7.0,"Respawn_Player",id+TASK_RESPAWN); return PLUGIN_CONTINUE; } public client_disconnect(id) { if (g_iOwnedEnt[id]) cmdStopEnt(id) g_isConnected[id] = false g_isAlive[id] = false g_isZombie[id] = false g_isBuildBan[id] = false g_isCustomModel[id] = false g_boolFirstSpawn[id] = false g_boolFirstTeam[id] = false g_boolFirstTime[id] = false g_boolRepick[id] = false g_iZombieClass[id] = 0 g_iNextClass[id] = 0 //for (new i = 0; i < 3; i++) g_fClassMultiplier[id][i] = 1.0 g_iOwnedEntities[id] = 0 remove_task(id+TASK_RESPAWN) remove_task(id+TASK_HEALTH) remove_task(id+TASK_IDLESOUND) for (new iEnt = g_iMaxPlayers+1; iEnt < MAXENTS; iEnt++) { if (is_valid_ent(iEnt) && g_iLockBlocks && BlockLocker(iEnt) == id) { UnlockBlock(iEnt) set_pev(iEnt,pev_rendermode,kRenderNormal) UnsetLastMover(iEnt); UnsetEntMover(iEnt); } } } public ev_RoundStart() { remove_task(TASK_BUILD) remove_task(TASK_PREPTIME) arrayset(g_iOwnedEntities, 0, MAXPLAYERS+1) arrayset(g_iColor, 0, MAXPLAYERS+1) arrayset(g_iColorOwner, 0, MAX_COLORS) arrayset(g_boolRepick, true, MAXPLAYERS+1) g_boolRoundEnded = false g_boolCanBuild = true g_fRoundStartTime = get_gametime() if (g_iResetEnt) { new szClass[10], szTarget[7]; for (new iEnt = g_iMaxPlayers+1; iEnt < MAXENTS; iEnt++) { if (is_valid_ent(iEnt)) { entity_get_string(iEnt, EV_SZ_classname, szClass, 9); entity_get_string(iEnt, EV_SZ_targetname, szTarget, 6); if (!BlockLocker(iEnt) && iEnt != g_iEntBarrier && equal(szClass, "func_wall") && !equal(szTarget, "ignore")) { set_pev(iEnt,pev_rendermode,kRenderNormal) engfunc( EngFunc_SetOrigin, iEnt, Float:{ 0.0, 0.0, 0.0 } ); UnsetLastMover(iEnt); UnsetEntMover(iEnt); } else if (g_iLockBlocks && BlockLocker(iEnt)) { UnlockBlock(iEnt) set_pev(iEnt,pev_rendermode,kRenderNormal) engfunc( EngFunc_SetOrigin, iEnt, Float:{ 0.0, 0.0, 0.0 } ); UnsetLastMover(iEnt); UnsetEntMover(iEnt); } } } } } public ev_AmmoX(id) set_pdata_int(id, AMMO_SLOT + read_data(1), 200, 5) public ev_Health(taskid) { if (taskid>g_iMaxPlayers) taskid-=TASK_HEALTH if (is_user_alive(taskid)) { new szGoal[32] //if (is_credits_active()) #if defined BB_CREDITS format(szGoal, 31, "^n%L: %d", LANG_SERVER, "HUD_GOAL", credits_get_user_goal(taskid)) #endif set_hudmessage(255, 255, 255, -1.0, 0.9, 0, 12.0, 12.0, 0.1, 0.2, 4); if (g_isZombie[taskid]) { static szCache1[32] ArrayGetString(g_zclass_name, g_iZombieClass[taskid], szCache1, charsmax(szCache1)) show_hudmessage(taskid, "%L: %d^n%L: %s%s", LANG_SERVER, "HUD_HEALTH", pev(taskid, pev_health), LANG_SERVER, "HUD_CLASS", szCache1, szGoal); } else { show_hudmessage(taskid, "%L: %d%s", LANG_SERVER, "HUD_HEALTH", pev(taskid, pev_health), szGoal); } set_task(11.9, "ev_Health", taskid+TASK_HEALTH); } } public msgStatusIcon(const iMsgId, const iMsgDest, const iPlayer) { if(g_isAlive[iPlayer] && g_isConnected[iPlayer]) { static szMsg[8] get_msg_arg_string(2, szMsg, 7) if(equal(szMsg, "buyzone")) { set_pdata_int(iPlayer, OFFSET_BUYZONE, get_pdata_int(iPlayer, OFFSET_BUYZONE) & ~(1<<0)) return PLUGIN_HANDLED } } return PLUGIN_CONTINUE } public msgHealth(msgid, dest, id) { if(!g_isAlive[id]) return PLUGIN_CONTINUE; static hp; hp = get_msg_arg_int(1); if(hp > 255 && (hp % 256) == 0) set_msg_arg_int(1, ARG_BYTE, ++hp); return PLUGIN_CONTINUE; } public msgRoundEnd(const MsgId, const MsgDest, const MsgEntity) { static Message[192] get_msg_arg_string(2, Message, 191) if (equal(Message, "#Terrorists_Win")) { g_boolRoundEnded = true set_hudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 6.0, 0.1, 0.2, 1) show_hudmessage(0, "%L", LANG_SERVER, "WIN_ZOMBIE") set_msg_arg_string(2, "") client_cmd(0, "spk %s", WIN_ZOMBIES) return PLUGIN_HANDLED } else if (equal(Message, "#Target_Saved") || equal(Message, "#CTs_Win")) { g_boolRoundEnded = true set_hudmessage(0, 0, 255, -1.0, 0.40, 0, 6.0, 6.0, 0.1, 0.2, 1) show_hudmessage(0, "%L", LANG_SERVER, "WIN_BUILDER") set_msg_arg_string(2, "") client_cmd(0, "spk %s", WIN_BUILDERS) return PLUGIN_HANDLED } return PLUGIN_HANDLED } public msgSendAudio(const MsgId, const MsgDest, const MsgEntity) { static szSound[17] get_msg_arg_string(2,szSound,16) if(equal(szSound[7], "terwin") || equal(szSound[7], "ctwin") || equal(szSound[7], "rounddraw")) return PLUGIN_HANDLED return PLUGIN_CONTINUE } public ham_WeaponCleaner_Post(iEnt) { call_think(iEnt) } public ham_TakeDamage(victim, inflictor, attacker, Float:damage, damagebits) { if (!is_valid_ent(victim) || !g_isAlive[victim] || !is_user_connected(attacker)) return HAM_IGNORED if(g_boolCanBuild || g_boolRoundEnded || g_boolPrepTime) return HAM_SUPERCEDE; if (victim == attacker) return HAM_SUPERCEDE; if (g_iSupercut) { damage*=99.0 } SetHamParamFloat(4, damage) return HAM_HANDLED } public ham_ItemDeploy_Post(weapon_ent) { static owner owner = get_pdata_cbase(weapon_ent, OFFSET_WPN_WIN, OFFSET_WPN_LINUX); static weaponid weaponid = cs_get_weapon_id(weapon_ent) if (g_isZombie[owner] && weaponid == CSW_KNIFE) { static szClawModel[100] ArrayGetString(g_zclass_clawmodel, g_iZombieClass[owner], szClawModel, charsmax(szClawModel)) format(szClawModel, charsmax(szClawModel), "models/%s.mdl", szClawModel) entity_set_string( owner , EV_SZ_viewmodel , szClawModel ) entity_set_string( owner , EV_SZ_weaponmodel , "" ) } if (g_isZombie[owner] && !((1<<weaponid) & ZOMBIE_ALLOWED_WEAPONS_BITSUM)) { engclient_cmd(owner, "weapon_knife") } else if (g_boolCanBuild) { engclient_cmd(owner, "weapon_knife") client_print(owner, print_center, "%L", LANG_SERVER, "FAIL_KNIFE"); } } public logevent_round_start() { set_pev(g_iEntBarrier,pev_solid,SOLID_BSP) set_pev(g_iEntBarrier,pev_rendermode,kRenderTransColor) set_pev(g_iEntBarrier,pev_rendercolor, Float:{ BARRIER_COLOR }) set_pev(g_iEntBarrier,pev_renderamt, Float:{ BARRIER_RENDERAMT }) print_color(0, "^x04 ---[ Base Builder %s ]---", VERSION); print_color(0, "^x03 %L", LANG_SERVER, "ROUND_MESSAGE"); client_cmd(0, "spk %s", PHASE_BUILD) remove_task(TASK_BUILD) set_task(1.0, "task_CountDown", TASK_BUILD,_, _, "a", g_iBuildTime); g_iCountDown = (g_iBuildTime-1); ExecuteForward(g_fwBuildStarted, g_fwDummyResult); } public task_CountDown() { g_iCountDown-- new mins = g_iCountDown/60, secs = g_iCountDown%60 if (g_iCountDown>=0) client_print(0, print_center, "%L - %d:%s%d", LANG_SERVER, "BUILD_TIMER", mins, (secs < 10 ? "0" : ""), secs) else { if (g_iPrepTime) { g_boolCanBuild = false g_boolPrepTime = true g_iCountDown = g_iPrepTime+1 set_task(1.0, "task_PrepTime", TASK_PREPTIME,_, _, "a", g_iCountDown); set_hudmessage(255, 255, 255, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1) show_hudmessage(0, "%L", LANG_SERVER, "PREP_ANNOUNCE"); new players[32], num get_players(players, num) for (new i = 0; i < num; i++) { if (g_isAlive[players[i]] && !g_isZombie[players[i]]) { ExecuteHamB(Ham_CS_RoundRespawn, players[i]) if (g_iOwnedEnt[players[i]]) cmdStopEnt(players[i]) } } print_color(0, "%s^x04 %L", MODNAME, LANG_SERVER, "PREP_ANNOUNCE") client_cmd(0, "spk %s", PHASE_PREP) ExecuteForward(g_fwPrepStarted, g_fwDummyResult); } else Release_Zombies() remove_task(TASK_BUILD); return PLUGIN_HANDLED; } new szTimer[32] if (g_iCountDown>10) { if (mins && !secs) num_to_word(mins, szTimer, 31) else if (!mins && secs == 30) num_to_word(secs, szTimer, 31) else return PLUGIN_HANDLED; client_cmd(0, "spk ^"fvox/%s %s remaining^"", szTimer, (mins ? "minutes" : "seconds")) } else { num_to_word(g_iCountDown, szTimer, 31) client_cmd(0, "spk ^"fvox/%s^"", szTimer) } return PLUGIN_CONTINUE; } public task_PrepTime() { g_iCountDown-- if (g_iCountDown>=0) client_print(0, print_center, "%L - 0:%s%d", LANG_SERVER, "PREP_TIMER", (g_iCountDown < 10 ? "0" : ""), g_iCountDown) if (0<g_iCountDown<11) { new szTimer[32] num_to_word(g_iCountDown, szTimer, 31) client_cmd(0, "spk ^"fvox/%s^"", szTimer) } else if (g_iCountDown == 0) { Release_Zombies() remove_task(TASK_PREPTIME); return PLUGIN_HANDLED } return PLUGIN_CONTINUE; } public logevent_round_end() { if (g_boolRoundEnded) { new players[32], num, player get_players(players, num) for (new i = 0; i < num; i++) { player = players[i] if (g_iCurTeam[player] == g_iTeam[player] ) cs_set_user_team(player, (g_iTeam[player] = (g_iTeam[player] == CS_TEAM_T ? CS_TEAM_CT : CS_TEAM_T))) else g_iTeam[player] = g_iTeam[player] == CS_TEAM_T ? CS_TEAM_CT : CS_TEAM_T } print_color(0, "%s^x04 %L", MODNAME, LANG_SERVER, "SWAP_ANNOUNCE") } remove_task(TASK_BUILD) return PLUGIN_HANDLED } public client_death(g_attacker, g_victim, wpnindex, hitplace, TK) { if (is_user_alive(g_victim)) return PLUGIN_HANDLED; remove_task(g_victim+TASK_IDLESOUND) g_isAlive[g_victim] = false; if (TK == 0 && g_attacker != g_victim && g_isZombie[g_attacker]) { client_cmd(0, "spk %s", INFECTION) new szPlayerName[32] get_user_name(g_victim, szPlayerName, 31) set_hudmessage(255, 0, 255, -1.0, 0.45, 0, 1.0, 5.0, 0.1, 0.2, 1) show_hudmessage(0, "%L", LANG_SERVER, "INFECT_ANNOUNCE", szPlayerName); } set_hudmessage(255, 0, 255, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1) if (g_isZombie[g_victim]) { show_hudmessage(g_victim, "%L", LANG_SERVER, "DEATH_ZOMBIE", g_iZombieTime); set_task(float(g_iZombieTime), "Respawn_Player", g_victim+TASK_RESPAWN) } else if (g_iInfectTime) { show_hudmessage(g_victim, "%L", LANG_SERVER, "DEATH_HUMAN", g_iInfectTime); cs_set_user_team(g_victim, CS_TEAM_T) g_isZombie[g_victim] = true set_task(float(g_iInfectTime), "Respawn_Player", g_victim+TASK_RESPAWN) } return PLUGIN_CONTINUE; } public Respawn_Player(id) { id-=TASK_RESPAWN if (!is_user_connected(id)) return PLUGIN_HANDLED if (((g_boolCanBuild || g_boolPrepTime) && cs_get_user_team(id) == CS_TEAM_CT) || cs_get_user_team(id) == CS_TEAM_T) { ExecuteHamB(Ham_CS_RoundRespawn, id) //Loop the task until they have successfully spawned if (!g_isAlive[id]) set_task(3.0,"Respawn_Human",id+TASK_RESPAWN) } return PLUGIN_HANDLED } public ham_PlayerSpawn_Post(id) { if (is_user_alive(id)) { g_isAlive[id] = true; g_isZombie[id] = (cs_get_user_team(id) == CS_TEAM_T ? true : false) remove_task(id + TASK_RESPAWN) remove_task(id + TASK_MODELSET) remove_task(id + TASK_IDLESOUND) if (g_isZombie[id]) { if (g_boolFirstSpawn[id]) { show_zclass_menu(id, 0) g_boolFirstSpawn[id] = false } if (g_iNextClass[id] != g_iZombieClass[id]) g_iZombieClass[id] = g_iNextClass[id] set_pev(id, pev_health, float(ArrayGetCell(g_zclass_hp, g_iZombieClass[id]))/**g_fClassMultiplier[id][ATT_HEALTH]*/) set_pev(id, pev_gravity, Float:ArrayGetCell(g_zclass_grav, g_iZombieClass[id])/**g_fClassMultiplier[id][ATT_GRAVITY]*/) g_fPlayerSpeed[id] = float(ArrayGetCell(g_zclass_spd, g_iZombieClass[id]))/**g_fClassMultiplier[id][ATT_SPEED]*/ //Handles the knife and claw model strip_user_weapons(id) give_item(id, "weapon_knife") static szClawModel[100] ArrayGetString(g_zclass_clawmodel, g_iZombieClass[id], szClawModel, charsmax(szClawModel)) format(szClawModel, charsmax(szClawModel), "models/%s.mdl", szClawModel) entity_set_string( id , EV_SZ_viewmodel , szClawModel ) entity_set_string( id , EV_SZ_weaponmodel , "" ) ArrayGetString(g_zclass_name, g_iZombieClass[id], g_szPlayerClass[id], charsmax(g_szPlayerClass[])) set_task(random_float(60.0, 360.0), "task_ZombieIdle", id+TASK_IDLESOUND, _, _, "b") ArrayGetString(g_zclass_playermodel, g_iZombieClass[id], g_szPlayerModel[id], charsmax(g_szPlayerModel[])) new szCurrentModel[32] fm_get_user_model(id, szCurrentModel, charsmax(szCurrentModel)) if (!equal(szCurrentModel, g_szPlayerModel[id])) { if (get_gametime() - g_fRoundStartTime < 5.0) set_task(5.0 * MODELCHANGE_DELAY, "fm_user_model_update", id + TASK_MODELSET) else fm_user_model_update(id + TASK_MODELSET) } ExecuteForward(g_fwClassSet, g_fwDummyResult, id, g_iZombieClass[id]); } else if (g_isCustomModel[id]) { fm_reset_user_model(id) } if (!g_isZombie[id]) { entity_set_string( id , EV_SZ_viewmodel , "models/v_knife.mdl" ) if (((/*g_boolPrepTime && */g_iPrepTime && !g_boolCanBuild) || (g_boolCanBuild && !g_iPrepTime)) && g_iGunsMenu) { //if (is_credits_active()) #if defined BB_CREDITS credits_show_gunsmenu(id) #else show_method_menu(id) #endif } if (!g_iColor[id]) { new i = random(MAX_COLORS) if (g_iColorMode) { while (g_iColorOwner[i]) { i = random(MAX_COLORS) } } print_color(id, "%s^x04 %L:^x01 %s", MODNAME, LANG_SERVER, "COLOR_PICKED", g_szColorName[i]); g_iColor[id] = i g_iColorOwner[i] = id if (g_iOwnedEnt[id]) { set_pev(g_iOwnedEnt[id],pev_rendercolor, g_fColor[g_iColor[id]] ) set_pev(g_iOwnedEnt[id],pev_renderamt, g_fRenderAmt[g_iColor[id]] ) } } } ev_Health(id) } } public task_ZombieIdle(taskid) { taskid-=TASK_IDLESOUND if (g_isAlive[taskid] && g_isConnected[taskid] && !g_isZombie[taskid]) emit_sound(taskid, CHAN_VOICE, g_szZombieIdle[random(sizeof g_szZombieIdle - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM) } public fw_SetClientKeyValue(id, const infobuffer[], const key[]) { if (g_isCustomModel[id] && equal(key, "model")) return FMRES_SUPERCEDE return FMRES_IGNORED } public fw_ClientUserInfoChanged(id) { if (!g_isCustomModel[id]) return FMRES_IGNORED static szCurrentModel[32] fm_get_user_model(id, szCurrentModel, charsmax(szCurrentModel)) if (!equal(szCurrentModel, g_szPlayerModel[id]) && !task_exists(id + TASK_MODELSET)) fm_set_user_model(id + TASK_MODELSET) return FMRES_IGNORED } public fm_user_model_update(taskid) { static Float:fCurTime fCurTime = get_gametime() if (fCurTime - g_fModelsTargetTime >= MODELCHANGE_DELAY) { fm_set_user_model(taskid) g_fModelsTargetTime = fCurTime } else { set_task((g_fModelsTargetTime + MODELCHANGE_DELAY) - fCurTime, "fm_set_user_model", taskid) g_fModelsTargetTime += MODELCHANGE_DELAY } } public fm_set_user_model(player) { player -= TASK_MODELSET engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", g_szPlayerModel[player]) g_isCustomModel[player] = true } stock fm_get_user_model(player, model[], len) { engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len) } stock fm_reset_user_model(player) { g_isCustomModel[player] = false dllfunc(DLLFunc_ClientUserInfoChanged, player, engfunc(EngFunc_GetInfoKeyBuffer, player)) } public message_show_menu(msgid, dest, id) { if (!(!get_user_team(id) && !is_user_bot(id) && !access(id, ADMIN_IMMUNITY))) return PLUGIN_CONTINUE static team_select[] = "#Team_Select" static menu_text_code[sizeof team_select] get_msg_arg_string(4, menu_text_code, sizeof menu_text_code - 1) if (!equal(menu_text_code, team_select)) return PLUGIN_CONTINUE static param_menu_msgid[2] param_menu_msgid[0] = msgid set_task(AUTO_TEAM_JOIN_DELAY, "task_force_team_join", id, param_menu_msgid, sizeof param_menu_msgid) return PLUGIN_HANDLED } public message_vgui_menu(msgid, dest, id) { if (get_msg_arg_int(1) != TEAM_SELECT_VGUI_MENU_ID || !(!get_user_team(id) && !is_user_bot(id) && !access(id, ADMIN_IMMUNITY)))// return PLUGIN_CONTINUE static param_menu_msgid[2] param_menu_msgid[0] = msgid set_task(AUTO_TEAM_JOIN_DELAY, "task_force_team_join", id, param_menu_msgid, sizeof param_menu_msgid) return PLUGIN_HANDLED } public task_force_team_join(menu_msgid[], id) { if (get_user_team(id)) return static msg_block msg_block = get_msg_block(menu_msgid[0]) set_msg_block(menu_msgid[0], BLOCK_SET) engclient_cmd(id, "jointeam", "5") engclient_cmd(id, "joinclass", "5") set_msg_block(menu_msgid[0], msg_block) } public msgTeamInfo(msgid, dest) { if (dest != MSG_ALL && dest != MSG_BROADCAST) return; static id, team[2] id = get_msg_arg_int(1) get_msg_arg_string(2, team, charsmax(team)) switch (team[0]) { case 'T' : // TERRORIST { g_iCurTeam[id] = CS_TEAM_T; } case 'C' : // CT { g_iCurTeam[id] = CS_TEAM_CT; } case 'S' : // SPECTATOR { g_iCurTeam[id] = CS_TEAM_SPECTATOR; } default : g_iCurTeam[id] = CS_TEAM_UNASSIGNED; } if (!g_boolFirstTeam[id]) { g_boolFirstTeam[id] = true g_iTeam[id] = g_iCurTeam[id] } } public clcmd_changeteam(id) { static CsTeams:team team = cs_get_user_team(id) if (team == CS_TEAM_SPECTATOR || team == CS_TEAM_UNASSIGNED) return PLUGIN_CONTINUE; show_zclass_menu(id, 0) return PLUGIN_HANDLED; } public clcmd_drop(id) { client_print (id, print_center, "%L", LANG_SERVER, "FAIL_DROP") return PLUGIN_HANDLED } public clcmd_buy(id) { client_print (id, print_center, "%L", LANG_SERVER, "FAIL_BUY") return PLUGIN_HANDLED } public msgStatusValue() set_msg_block(g_msgStatusText, BLOCK_SET); public ev_SetTeam(id) g_iFriend[id] = read_data(2) public ev_ShowStatus(id) //called when id looks at someone { new szName[32], pid = read_data(2); get_user_name(pid, szName, 31); if (g_iFriend[id] == 1) // friend { new clip, ammo, wpnid = get_user_weapon(pid, clip, ammo), szWpnName[32]; if (wpnid) xmod_get_wpnname(wpnid, szWpnName, 31); set_hudmessage(0, 225, 0, -1.0, HUD_FRIEND_HEIGHT, 1, 0.01, 3.0, 0.01, 0.01); new nLen, szStatus[512] if (!g_isZombie[pid]) nLen += format( szStatus[nLen], 511-nLen, "%s^nViata: %d | Arma: %s^nCuloare: %s", szName, pev(pid, pev_health), szWpnName, g_szColorName[g_iColor[pid]]); else { nLen += format( szStatus[nLen], 511-nLen, "%s^nRasa: %s^nViata: %d", szName, g_szPlayerClass[pid], pev(pid, pev_health)); /*if (is_credits_active()) { nLen += format( szStatus[nLen], 511-nLen, "^n^nClass Multipliers:", szName, g_szPlayerClass[pid], pev(pid, pev_health)); nLen += format( szStatus[nLen], 511-nLen, "^nHealth: %f", g_fClassMultiplier[pid][ATT_HEALTH]); nLen += format( szStatus[nLen], 511-nLen, "^nSpeed: %f", g_fClassMultiplier[pid][ATT_SPEED]); nLen += format( szStatus[nLen], 511-nLen, "^nGravity: %f", g_fClassMultiplier[pid][ATT_GRAVITY]); }*/ } ShowSyncHudMsg(id, g_HudSync, szStatus); } if (g_iFriend[id] != 1) //enemy { set_hudmessage(225, 0, 0, -1.0, HUD_FRIEND_HEIGHT, 1, 0.01, 3.0, 0.01, 0.01); if (g_isZombie[pid]) ShowSyncHudMsg(id, g_HudSync, "%s", szName); else ShowSyncHudMsg(id, g_HudSync, "%s^nCuloare: %s", szName, g_szColorName[g_iColor[pid]]); } } public ev_HideStatus(id) ClearSyncHud(id, g_HudSync); public cmdSay(id) { if (!g_isConnected[id]) return PLUGIN_HANDLED; new szMessage[32] read_args(szMessage, charsmax(szMessage)); remove_quotes(szMessage); if(szMessage[0] == '/') { if (equali(szMessage, "/commands") == 1 || equali(szMessage, "/cmd") == 1 ) { print_color(id, "%s /class, /respawn, /random, /mycolor, /guns%s%s%s", MODNAME, (g_iColorMode ? ", /aleg <color>": ""), (g_iColorMode != 2 ? ", /colors":""), (access(id, FLAGS_LOCK) ? ", /lock":"") ); } else if (equali(szMessage, "/class") == 1) { show_zclass_menu(id, 0) } else if (equali(szMessage, "/respawn") == 1 || equali(szMessage, "/revive") == 1 || equali(szMessage, "/fixspawn") == 1) { if (g_boolCanBuild && !g_isZombie[id]) ExecuteHamB(Ham_CS_RoundRespawn, id) else if (g_isZombie[id]) { if (pev(id, pev_health) == float(ArrayGetCell(g_zclass_hp, g_iZombieClass[id])) || !is_user_alive(id)) ExecuteHamB(Ham_CS_RoundRespawn, id) else client_print(id, print_center, "%L", LANG_SERVER, "FAIL_SPAWN"); } } else if (equali(szMessage, "/lock") == 1 || equali(szMessage, "/claim") == 1 && g_isAlive[id]) { if (access(id, FLAGS_LOCK)) cmdLockBlock(id) else client_print(id, print_center, "%L", LANG_SERVER, "FAIL_ACCESS"); return PLUGIN_HANDLED; } else if (equal(szMessage, "/whois",6) && g_iColorMode) { for ( new i=0; i<MAX_COLORS; i++) { if (equali(szMessage[7], g_szColorName[i]) == 1) { if (g_iColorOwner[i]) { new szPlayerName[32] get_user_name(g_iColorOwner[i], szPlayerName, 31) print_color(id, "%s^x04 %s^x01's color is^x04 %s", MODNAME, szPlayerName, g_szColorName[i]); } else print_color(id, "%s %L^x04 %s", MODNAME, LANG_SERVER, "COLOR_NONE", g_szColorName[i]); break; } } } else if (equali(szMessage, "/colors") == 1 && !g_isZombie[id] && g_boolCanBuild && g_iColorMode != 2) { show_colors_menu(id, 0) } else if (equali(szMessage, "/mycolor") == 1 && !g_isZombie[id]) { print_color(id, "%s^x04 %L:^x01 %s", MODNAME, LANG_SERVER, "COLOR_YOURS", g_szColorName[g_iColor[id]]); return PLUGIN_HANDLED } else if (equali(szMessage, "/random") == 1 && !g_isZombie[id] && g_boolCanBuild) { new i = random(MAX_COLORS) if (g_iColorMode) { while (g_iColorOwner[i]) { i = random(MAX_COLORS) } } print_color(id, "%s^x04 %L:^x01 %s", MODNAME, LANG_SERVER, "COLOR_RANDOM", g_szColorName[i]); g_iColorOwner[g_iColor[id]] = 0 g_iColor[id] = i g_iColorOwner[i] = id for (new iEnt = g_iMaxPlayers+1; iEnt < MAXENTS; iEnt++) { if (is_valid_ent(iEnt) && g_iLockBlocks && BlockLocker(iEnt) == id) set_pev(iEnt,pev_rendercolor,g_fColor[g_iColor[id]]) } ExecuteForward(g_fwNewColor, g_fwDummyResult, id, g_iColor[id]); } else if (equali(szMessage, "/guns", 5) && g_iGunsMenu) { if(!g_isAlive[id] || g_isZombie[id]) return PLUGIN_HANDLED if (access(id, FLAGS_GUNS)) { new player = cmd_target(id, szMessage[6], 0) if (!player) { //if (is_credits_active()) #if defined BB_CREDITS credits_show_gunsmenu(id) #else show_method_menu(id) #endif return PLUGIN_CONTINUE } cmdGuns(id, player) return PLUGIN_HANDLED; } else { if(!g_boolCanBuild || !g_boolRepick[id]) return PLUGIN_HANDLED //if (is_credits_active()) #if defined BB_CREDITS credits_show_gunsmenu(id) #else show_method_menu(id) #endif return PLUGIN_HANDLED } } else if (equal(szMessage, "/swap",5) && access(id, FLAGS_SWAP)) { new player = cmd_target(id, szMessage[6], 0) if (!player) { print_color(id, "%s Jucatorul^x04 %s^x03 nu este pe server , sau poate ai gresit numele", MODNAME, szMessage[6]) return PLUGIN_CONTINUE } cmdSwap(id, player) } else if (equal(szMessage, "/revive",7) && access(id, FLAGS_REVIVE)) { new player = cmd_target(id, szMessage[8], 0) if (!player) { print_color(id, "%s Jucatorul^x04 %s^x03 nu este pe server , sau poate ai gresit numele", MODNAME, szMessage[6]) return PLUGIN_CONTINUE } cmdRevive(id, player) } else if (equal(szMessage, "/ban",4) && access(id, FLAGS_BUILDBAN)) { new player = cmd_target(id, szMessage[5], 0) if (!player) { print_color(id, "%s Jucatorul^x04 %s^x03 nu este pe server , sau poate ai gresit numele", MODNAME, szMessage[6]) return PLUGIN_CONTINUE } cmdBuildBan(id, player) } else if (equal(szMessage, "/releasezombies",5) && access(id, FLAGS_RELEASE)) { cmdStartRound(id) } } return PLUGIN_CONTINUE } public cmdSwap(id, target) { if (access(id, FLAGS_SWAP)) { new player if (target) player = target else { new arg[32] read_argv(1, arg, 31) player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF) } if (!player || !is_user_connected(player)) return client_print(id, print_console, "[BaseBuilder] %L", LANG_SERVER, "FAIL_NAME"); cs_set_user_team(player,( g_iTeam[player] = g_iTeam[player] == CS_TEAM_T ? CS_TEAM_CT : CS_TEAM_T)) if (is_user_alive(player)) ExecuteHamB(Ham_CS_RoundRespawn, player) new szAdminAuthid[32],szAdminName[32],szPlayerName[32],szPlayerID[32] get_user_name(id,szAdminName,31) get_user_authid (id,szAdminAuthid,31) get_user_name(player, szPlayerName, 31) get_user_authid (player,szPlayerID,31) client_print(id, print_console, "[BaseBuilder] Jucatorul %s a fost schimbat de la echipa %s la echipa %s ", szPlayerName, g_iTeam[player] == CS_TEAM_CT ? "zombie":"builder", g_iTeam[player] == CS_TEAM_CT ? "builder":"zombie") Log("[SWAP] Admin: %s || SteamID: %s swapped Player: %s || SteamID: %s", szAdminName, szAdminAuthid, szPlayerName, szPlayerID) set_hudmessage(255,0, 0, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1) show_hudmessage(player, "%L", LANG_SERVER, "ADMIN_SWAP"); print_color(0, "%s Jucatorul^x04 %s^x01 a fost^x04 schimbat^x01 la echipa^x04 %s", MODNAME, szPlayerName, g_iTeam[player] == CS_TEAM_CT ? "builder":"zombie") } return PLUGIN_HANDLED } public cmdRevive(id, target) { if (access(id, FLAGS_REVIVE)) { new player if (target) player = target else { new arg[32] read_argv(1, arg, 31) player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF) } if (!player || !is_user_connected(player)) return client_print(id, print_console, "[BaseBuilder] %L", LANG_SERVER, "FAIL_NAME"); ExecuteHamB(Ham_CS_RoundRespawn, player) new szAdminAuthid[32],szAdminName[32],szPlayerName[32],szPlayerID[32] get_user_name(id,szAdminName,31) get_user_authid (id,szAdminAuthid,31) get_user_name(player, szPlayerName, 31) get_user_authid (player,szPlayerID,31) client_print(id, print_console, "[BaseBuilder] Jucatorul %s a fost^x04 reinviat", szPlayerName) Log("[REVIVE] Admin: %s || SteamID: %s revived Player: %s || SteamID: %s", szAdminName, szAdminAuthid, szPlayerName, szPlayerID) set_hudmessage(255,0, 0, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1) show_hudmessage(player, "%L", LANG_SERVER, "ADMIN_REVIVE"); print_color(0, "%s Jucatorul^x04 %s^x01 a fost^x04 reinviat", MODNAME, szPlayerName) } return PLUGIN_HANDLED } public cmdGuns(id, target) { if (access(id, FLAGS_GUNS)) { new player if (target) player = target else { new arg[32] read_argv(1, arg, 31) player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF) } if (!player || !is_user_connected(player)) { client_print(id, print_console, "[BaseBuilder] %L", LANG_SERVER, "FAIL_NAME"); return PLUGIN_HANDLED; } if (g_isZombie[player]) { return PLUGIN_HANDLED; } if (!g_isAlive[player]) { client_print(id, print_console, "[BaseBuilder] %L", LANG_SERVER, "FAIL_DEAD"); return PLUGIN_HANDLED; } //if (is_credits_active()) #if defined BB_CREDITS credits_show_gunsmenu(player) #else show_method_menu(player) #endif new szAdminAuthid[32],szAdminName[32],szPlayerName[32],szPlayerID[32] get_user_name(id,szAdminName,31) get_user_authid (id,szAdminAuthid,31) get_user_name(player, szPlayerName, 31) get_user_authid (player,szPlayerID,31) client_print(id, print_console, "[BaseBuilder] Jucatorului %s i s-a deschis meniul de arme", szPlayerName); Log("[GUNS] Admin: %s || SteamID: %s opened the guns menu for Player: %s || SteamID: %s", szAdminName, szAdminAuthid, szPlayerName, szPlayerID); set_hudmessage(255,0, 0, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1) show_hudmessage(player, "%L", LANG_SERVER, "ADMIN_GUNS"); print_color(0, "%s Jucatorului^x04 %s^x03 i s-a deschis meniul de^x04 arme", MODNAME, szPlayerName) } return PLUGIN_HANDLED } public cmdStartRound(id) { if (access(id, FLAGS_RELEASE)) { native_release_zombies() } } public Release_Zombies() { g_boolCanBuild = false remove_task(TASK_BUILD); g_boolPrepTime = false remove_task(TASK_PREPTIME); new players[32], num, player, szWeapon[32] get_players(players, num, "a") for(new i = 0; i < num; i++) { player = players[i] if (!g_isZombie[player]) { if (g_iOwnedEnt[player]) cmdStopEnt(player) if(g_iGrenadeHE ) give_item(player,"weapon_hegrenade" ), cs_set_user_bpammo(player,CSW_HEGRENADE, g_iGrenadeHE) if(g_iGrenadeFLASH ) give_item(player,"weapon_flashbang" ), cs_set_user_bpammo(player,CSW_FLASHBANG, g_iGrenadeFLASH) if(g_iGrenadeSMOKE ) give_item(player,"weapon_smokegrenade" ), cs_set_user_bpammo(player,CSW_SMOKEGRENADE, g_iGrenadeSMOKE) if (g_iPrimaryWeapon[player]) { get_weaponname(g_iPrimaryWeapon[player],szWeapon,sizeof szWeapon - 1) engclient_cmd(player, szWeapon); } } } set_pev(g_iEntBarrier,pev_solid,SOLID_NOT) set_pev(g_iEntBarrier,pev_renderamt,Float:{ 0.0 }) set_hudmessage(255, 255, 255, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1) show_hudmessage(0, "%L", LANG_SERVER, "RELEASE_ANNOUNCE"); client_cmd(0, "spk %s", g_szRoundStart[ random( sizeof g_szRoundStart ) ] ) ExecuteForward(g_fwRoundStart, g_fwDummyResult); } public fw_CmdStart( id, uc_handle, randseed ) { if (!g_isConnected[id] || !g_isAlive[id]) return FMRES_IGNORED //new button = pev(id, pev_button) new button = get_uc( uc_handle , UC_Buttons ); new oldbutton = pev(id, pev_oldbuttons) if( button & IN_USE && !(oldbutton & IN_USE) && !g_iOwnedEnt[id]) cmdGrabEnt(id) else if( oldbutton & IN_USE && !(button & IN_USE) && g_iOwnedEnt[id]) cmdStopEnt(id) return FMRES_IGNORED; } public cmdGrabEnt(id) { if (g_fBuildDelay[id] + BUILD_DELAY > get_gametime()) { g_fBuildDelay[id] = get_gametime() client_print (id, print_center, "%L", LANG_SERVER, "BUILD_SPAM") return PLUGIN_HANDLED } else g_fBuildDelay[id] = get_gametime() if (g_isBuildBan[id]) { client_print (id, print_center, "%L", LANG_SERVER, "BUILD_BANNED") client_cmd(id, "spk %s", LOCK_FAIL); return PLUGIN_HANDLED; } if (g_isZombie[id] && !access(id, FLAGS_OVERRIDE)) return PLUGIN_HANDLED if (!g_boolCanBuild && !access(id, FLAGS_BUILD) && !access(id, FLAGS_OVERRIDE)) { client_print (id, print_center, "%L", LANG_SERVER, "BUILD_NOTIME") return PLUGIN_HANDLED } if (g_iOwnedEnt[id] && is_valid_ent(g_iOwnedEnt[id])) cmdStopEnt(id) new ent, bodypart get_user_aiming (id,ent,bodypart) if (!is_valid_ent(ent) || ent == g_iEntBarrier || is_user_alive(ent) || IsMovingEnt(ent)) return PLUGIN_HANDLED; if ((BlockLocker(ent) && BlockLocker(ent) != id) || (BlockLocker(ent) && !access(id, FLAGS_OVERRIDE))) return PLUGIN_HANDLED; new szClass[10], szTarget[7]; entity_get_string(ent, EV_SZ_classname, szClass, 9); entity_get_string(ent, EV_SZ_targetname, szTarget, 6); if (!equal(szClass, "func_wall") || equal(szTarget, "ignore")) return PLUGIN_HANDLED; ExecuteForward(g_fwGrabEnt_Pre, g_fwDummyResult, id, ent); new Float:fOrigin[3], iAiming[3], Float:fAiming[3] get_user_origin(id, iAiming, 3); IVecFVec(iAiming, fAiming); entity_get_vector(ent, EV_VEC_origin, fOrigin); g_fOffset1[id] = fOrigin[0] - fAiming[0]; g_fOffset2[id] = fOrigin[1] - fAiming[1]; g_fOffset3[id] = fOrigin[2] - fAiming[2]; g_fEntDist[id] = get_user_aiming(id, ent, bodypart); if (g_fEntMinDist) { if (g_fEntDist[id] < g_fEntMinDist) g_fEntDist[id] = g_fEntSetDist; } else if (g_fEntMaxDist) { if (g_fEntDist[id] > g_fEntMaxDist) return PLUGIN_HANDLED } set_pev(ent,pev_rendermode,kRenderTransColor) set_pev(ent,pev_rendercolor, g_fColor[g_iColor[id]] ) set_pev(ent,pev_renderamt, g_fRenderAmt[g_iColor[id]] ) MovingEnt(ent); SetEntMover(ent, id); g_iOwnedEnt[id] = ent //Checked after object is successfully grabbed if (!g_boolCanBuild && (access(id, FLAGS_BUILD) || access(id, FLAGS_OVERRIDE))) { new adminauthid[32],adminname[32] get_user_authid (id,adminauthid,31) get_user_name(id,adminname,31) Log("[MOVE] Admin: %s || SteamID: %s moved an entity", adminname, adminauthid) } client_cmd(id, "spk %s", GRAB_START); ExecuteForward(g_fwGrabEnt_Post, g_fwDummyResult, id, ent); return PLUGIN_HANDLED } public cmdStopEnt(id) { if (!g_iOwnedEnt[id]) return PLUGIN_HANDLED; new ent = g_iOwnedEnt[id] ExecuteForward(g_fwDropEnt_Pre, g_fwDummyResult, id, ent); if (BlockLocker(ent)) { switch(g_iLockBlocks) { case 0: { set_pev(ent,pev_rendermode,kRenderTransColor) set_pev(ent,pev_rendercolor, Float:{ LOCKED_COLOR }) set_pev(ent,pev_renderamt,Float:{ LOCKED_RENDERAMT }) } case 1: { set_pev(ent,pev_rendermode,kRenderTransColor) set_pev(ent,pev_rendercolor, g_fColor[g_iColor[id]]) set_pev(ent,pev_renderamt,Float:{ LOCKED_RENDERAMT }) } } } else set_pev(ent,pev_rendermode,kRenderNormal) UnsetEntMover(ent); SetLastMover(ent,id); g_iOwnedEnt[id] = 0; UnmovingEnt(ent); client_cmd(id, "spk %s", GRAB_STOP); ExecuteForward(g_fwDropEnt_Post, g_fwDummyResult, id, ent); return PLUGIN_HANDLED; } public cmdLockBlock(id) { if (!g_boolCanBuild && g_iLockBlocks) { client_print(id, print_center, "%L", LANG_SERVER, "FAIL_LOCK"); return PLUGIN_HANDLED; } if (!access(id, FLAGS_LOCK) || (g_isZombie[id] && !access(id, FLAGS_OVERRIDE))) return PLUGIN_HANDLED; new ent, bodypart get_user_aiming (id,ent,bodypart) new szTarget[7], szClass[10]; entity_get_string(ent, EV_SZ_targetname, szTarget, 6); entity_get_string(ent, EV_SZ_classname, szClass, 9); if (!ent || !is_valid_ent(ent) || is_user_alive(ent) || ent == g_iEntBarrier || !equal(szClass, "func_wall") || equal(szTarget, "ignore")) return PLUGIN_HANDLED; ExecuteForward(g_fwLockEnt_Pre, g_fwDummyResult, id, ent); switch (g_iLockBlocks) { case 0: { if (!BlockLocker(ent) && !IsMovingEnt(ent)) { LockBlock(ent, id); set_pev(ent,pev_rendermode,kRenderTransColor) set_pev(ent,pev_rendercolor,Float:{LOCKED_COLOR}) set_pev(ent,pev_renderamt,Float:{LOCKED_RENDERAMT}) client_cmd(id, "spk %s", LOCK_OBJECT); } else if (BlockLocker(ent)) { UnlockBlock(ent) set_pev(ent,pev_rendermode,kRenderNormal) client_cmd(id, "spk %s", LOCK_OBJECT); } } case 1: { if (!BlockLocker(ent) && !IsMovingEnt(ent)) { if (g_iOwnedEntities[id]<g_iLockMax || !g_iLockMax) { LockBlock(ent, id) g_iOwnedEntities[id]++ set_pev(ent,pev_rendermode,kRenderTransColor) set_pev(ent,pev_rendercolor,g_fColor[g_iColor[id]]) set_pev(ent,pev_renderamt,Float:{LOCKED_RENDERAMT}) client_print(id, print_center, "%L [ %d / %d ]", LANG_SERVER, "BUILD_CLAIM_NEW", g_iOwnedEntities[id], g_iLockMax) client_cmd(id, "spk %s", LOCK_OBJECT); } else if (g_iOwnedEntities[id]>=g_iLockMax) { client_print(id, print_center, "%L", LANG_SERVER, "BUILD_CLAIM_MAX", g_iLockMax) client_cmd(id, "spk %s", LOCK_FAIL); } } else if (BlockLocker(ent)) { if (BlockLocker(ent) == id || access(id, FLAGS_OVERRIDE)) { g_iOwnedEntities[BlockLocker(ent)]-- set_pev(ent,pev_rendermode,kRenderNormal) client_print(BlockLocker(ent), print_center, "%L [ %d / %d ]", LANG_SERVER, "BUILD_CLAIM_LOST", g_iOwnedEntities[BlockLocker(ent)], g_iLockMax) UnlockBlock(ent) client_cmd(id, "spk %s", LOCK_OBJECT); } else { client_print(id, print_center, "%L", LANG_SERVER, "BUILD_CLAIM_FAIL") client_cmd(id, "spk %s", LOCK_FAIL); } } } } ExecuteForward(g_fwLockEnt_Post, g_fwDummyResult, id, ent); return PLUGIN_HANDLED } public cmdBuildBan(id, target) { if (access(id, FLAGS_BUILDBAN)) { new player if (target) player = target else { new arg[32] read_argv(1, arg, 31) player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY) } if (!player) return client_print(id, print_console, "[BaseBuilder] %L", LANG_SERVER, "FAIL_NAME"); new szAdminAuthid[32],szAdminName[32],szPlayerName[32],szPlayerID[32] get_user_name(id,szAdminName,31) get_user_authid (id,szAdminAuthid,31) get_user_name(player, szPlayerName, 31) get_user_authid (player,szPlayerID,31) g_isBuildBan[player] = g_isBuildBan[player] ? false : true if (g_isBuildBan[player] && g_iOwnedEnt[player]) cmdStopEnt(player) client_print(id, print_console, "[BaseBuilder] Jucatorul %s a fost %s de la construire", szPlayerName, g_isBuildBan[player] ? "banned":"unbanned") Log("[MOVE] Admin: %s || SteamID: %s banned Player: %s || SteamID: %s from building", szAdminName, szAdminAuthid, szPlayerName, szPlayerID) set_hudmessage(255,0, 0, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1) show_hudmessage(player, "%L", LANG_SERVER, "ADMIN_BUILDBAN", g_isBuildBan[player] ? "disabled":"re-enabled"); print_color(0, "%s Player^x04 %s^x01 has been^x04 %s^x01 from building", MODNAME, szPlayerName, g_isBuildBan[player] ? "banned":"unbanned") } return PLUGIN_HANDLED; } public fw_PlayerPreThink(id) { if (!is_user_connected(id)) { cmdStopEnt(id) return PLUGIN_HANDLED } if (g_isZombie[id]) set_pev(id, pev_maxspeed, g_fPlayerSpeed[id]) if (!g_iOwnedEnt[id] || !is_valid_ent(g_iOwnedEnt[id])) return FMRES_HANDLED new buttons = pev(id, pev_button) if (buttons & IN_ATTACK) { g_fEntDist[id] += OBJECT_PUSHPULLRATE; if (g_fEntDist[id] > g_fEntMaxDist) { g_fEntDist[id] = g_fEntMaxDist client_print(id, print_center, "%L", LANG_SERVER, "OBJECT_MAX") } else client_print(id, print_center, "%L", LANG_SERVER, "OBJECT_PUSH") ExecuteForward(g_fwPushPull, g_fwDummyResult, id, g_iOwnedEnt[id], 1); } else if (buttons & IN_ATTACK2) { g_fEntDist[id] -= OBJECT_PUSHPULLRATE; if (g_fEntDist[id] < g_fEntSetDist) { g_fEntDist[id] = g_fEntSetDist client_print(id, print_center, "%L", LANG_SERVER, "OBJECT_MIN") } else client_print(id, print_center, "%L", LANG_SERVER, "OBJECT_PULL") ExecuteForward(g_fwPushPull, g_fwDummyResult, id, g_iOwnedEnt[id], 2); } new iOrigin[3], iLook[3], Float:fOrigin[3], Float:fLook[3], Float:vMoveTo[3], Float:fLength get_user_origin(id, iOrigin, 1); IVecFVec(iOrigin, fOrigin); get_user_origin(id, iLook, 3); IVecFVec(iLook, fLook); fLength = get_distance_f(fLook, fOrigin); if (fLength == 0.0) fLength = 1.0; vMoveTo[0] = (fOrigin[0] + (fLook[0] - fOrigin[0]) * g_fEntDist[id] / fLength) + g_fOffset1[id]; vMoveTo[1] = (fOrigin[1] + (fLook[1] - fOrigin[1]) * g_fEntDist[id] / fLength) + g_fOffset2[id]; vMoveTo[2] = (fOrigin[2] + (fLook[2] - fOrigin[2]) * g_fEntDist[id] / fLength) + g_fOffset3[id]; vMoveTo[2] = float(floatround(vMoveTo[2], floatround_floor)); entity_set_origin(g_iOwnedEnt[id], vMoveTo); return FMRES_HANDLED } public fw_Traceline(Float:start[3], Float:end[3], conditions, id, trace) { if (!is_user_alive(id)) return PLUGIN_HANDLED new ent = get_tr2(trace, TR_pHit) if (is_valid_ent(ent)) { new ent,body get_user_aiming(id,ent,body) new szClass[10], szTarget[7]; entity_get_string(ent, EV_SZ_classname, szClass, 9); entity_get_string(ent, EV_SZ_targetname, szTarget, 6); if (equal(szClass, "func_wall") && !equal(szTarget, "ignore") && ent != g_iEntBarrier && g_iShowMovers == 1) { if (g_boolCanBuild || access(id, ADMIN_SLAY)) { set_hudmessage(0, 50, 255, -1.0, 0.55, 1, 0.01, 3.0, 0.01, 0.01); if (!BlockLocker(ent)) { new szCurMover[32], szLastMover[32] if (GetEntMover(ent)) { get_user_name(GetEntMover(ent),szCurMover,31) if (!GetLastMover(ent)) ShowSyncHudMsg(id, g_HudSync, "Posesorul piesei este : %s", szCurMover); } if (GetLastMover(ent)) { get_user_name(GetLastMover(ent),szLastMover,31) if (!GetEntMover(ent)) ShowSyncHudMsg(id, g_HudSync, "Posesorul piesei este : %s", szLastMover); } if (GetEntMover(ent) && GetLastMover(ent)) ShowSyncHudMsg(id, g_HudSync, "Posesorul piesei este : %s", szCurMover, szLastMover); else if (!GetEntMover(ent) && !GetLastMover(ent)) ShowSyncHudMsg(id, g_HudSync, "Aceasta piesa este libera , o puteti lua"); } else { new szEntOwner[32] get_user_name(BlockLocker(ent),szEntOwner,31) ShowSyncHudMsg(id, g_HudSync, "Piesa blocata de catre : %s", szEntOwner); } } } } else ClearSyncHud(id, g_HudSync); return PLUGIN_HANDLED } public fw_EmitSound(id,channel,const sample[],Float:volume,Float:attn,flags,pitch) { if (!is_user_connected(id) || !g_isZombie[id] || g_boolCanBuild || g_boolPrepTime || g_boolRoundEnded) return FMRES_IGNORED; if(equal(sample[7], "die", 3) || equal(sample[7], "dea", 3)) { emit_sound(id,channel,g_szZombieDie[random(sizeof g_szZombieDie - 1)],volume,attn,flags,pitch) return FMRES_SUPERCEDE } if(equal(sample[7], "bhit", 4)) { emit_sound(id,channel,g_szZombiePain[random(sizeof g_szZombiePain - 1)],volume,attn,flags,pitch) return FMRES_SUPERCEDE } // Zombie attacks with knife if (equal(sample[8], "kni", 3)) { if (equal(sample[14], "sla", 3)) // slash { emit_sound(id,channel,g_szZombieMiss[random(sizeof g_szZombieMiss - 1)],volume,attn,flags,pitch) return FMRES_SUPERCEDE; } if (equal(sample[14], "hit", 3)) // hit { if (sample[17] == 'w') // wall { emit_sound(id,channel,g_szZombieHit[random(sizeof g_szZombieHit - 1)],volume,attn,flags,pitch) return FMRES_SUPERCEDE; } else { emit_sound(id,channel,g_szZombieHit[random(sizeof g_szZombieHit - 1)],volume,attn,flags,pitch) return FMRES_SUPERCEDE; } } if (equal(sample[14], "sta", 3)) // stab { emit_sound(id,channel,g_szZombieMiss[random(sizeof g_szZombieMiss - 1)],volume,attn,flags,pitch) return FMRES_SUPERCEDE; } } return FMRES_IGNORED } public fw_Suicide(id) return FMRES_SUPERCEDE public show_colors_menu(id,offset) { if(offset<0) offset = 0 new keys, curnum, menu[2048] for(new i=offset;i<MAX_COLORS;i++) { if (g_iColorMode == 0 || (g_iColorMode == 1 && !g_iColorOwner[i])) { g_iMenuOptions[id][curnum] = i keys += (1<<curnum) curnum++ format(menu,2047,"%s^n%d. %s", menu, curnum, g_szColorName[i]) if(curnum==8) break; } } format(menu,2047,"\yAlege-ti Culoarea:^nCuloarea Curenta: \r%s\w^n^n%s^n", g_szColorName[g_iColor[id]], menu) if(curnum==8 && offset<12) { keys += (1<<8) format(menu,2047,"%s^n9. Inainte",menu) } if(offset) { keys += (1<<9) format(menu,2047,"%s^n0. Inapoi",menu) } show_menu(id,keys,menu,-1,"ColorsSelect") } public colors_pushed(id,key) { if(key<8) { g_iColorOwner[g_iMenuOptions[id][key]] = id g_iColorOwner[g_iColor[id]] = 0 g_iColor[id] = g_iMenuOptions[id][key] print_color(id, "%s Ti-a ales^x04 %s^x01 ca culoare", MODNAME, g_szColorName[g_iColor[id]]) g_iMenuOffset[id] = 0 ExecuteForward(g_fwNewColor, g_fwDummyResult, id, g_iColor[id]); } else { if(key==8) g_iMenuOffset[id] += 8 if(key==9) g_iMenuOffset[id] -= 8 show_colors_menu(id,g_iMenuOffset[id]) } return ; } public show_zclass_menu(id,offset) { if(offset<0) offset = 0 new keys, curnum, menu[512], szCache1[32], szCache2[32], iCache3 for(new i=offset;i<g_iZClasses;i++) { ArrayGetString(g_zclass_name, i, szCache1, charsmax(szCache1)) ArrayGetString(g_zclass_info, i, szCache2, charsmax(szCache2)) iCache3 = ArrayGetCell(g_zclass_admin, i) // Add to menu if (i == g_iZombieClass[id]) format(menu,511,"%s^n\d%d. %s %s \r%s", menu, curnum+1, szCache1, szCache2, iCache3 == ADMIN_ALL ? "" : "(Doar pentru ViP)") else format(menu,511,"%s^n\w%d. %s \y%s \r%s", menu, curnum+1, szCache1, szCache2, iCache3 == ADMIN_ALL ? "" : "(Doar pentru ViP)") g_iMenuOptions[id][curnum] = i keys += (1<<curnum) curnum++ if(curnum==8) break; } format(menu,511,"\yAlege-ti Rasa:^n\w%s^n", menu) if(curnum==8 && offset<12) { keys += (1<<8) format(menu,511,"%s^n\w9. Inainte",menu) } if(offset) { keys += (1<<9) format(menu,511,"%s^n\w0. Inapoi",menu) } show_menu(id,keys,menu,-1,"ZClassSelect") } public zclass_pushed(id,key) { if(key<8) { if (g_iMenuOptions[id][key] == g_iZombieClass[id]) { client_cmd(id, "spk %s", LOCK_FAIL); print_color(id, "%s %L", MODNAME, LANG_SERVER, "CLASS_CURRENT") show_zclass_menu(id,g_iMenuOffset[id]) return ; } new iCache3 = ArrayGetCell(g_zclass_admin, g_iMenuOptions[id][key]) if ((iCache3 != ADMIN_ALL || !iCache3) && !access(id, iCache3)) { print_color(id, "%s %L", MODNAME, LANG_SERVER, "CLASS_NO_ACCESS") show_zclass_menu(id,g_iMenuOffset[id]) return ; } g_iNextClass[id] = g_iMenuOptions[id][key] new szCache1[32] ArrayGetString(g_zclass_name, g_iMenuOptions[id][key], szCache1, charsmax(szCache1)) if (!g_isZombie[id] || (g_isZombie[id] && (g_boolCanBuild || g_boolPrepTime))) print_color(id, "%s Ti-ai ales^x04 %s^x01 ca rasa de Zombie", MODNAME, szCache1) if (!g_isAlive[id]) print_color(id, "%s %L", MODNAME, LANG_SERVER, "CLASS_RESPAWN") g_iMenuOffset[id] = 0 if (g_isZombie[id] && (g_boolCanBuild || g_boolPrepTime)) ExecuteHamB(Ham_CS_RoundRespawn, id) ExecuteForward(g_fwClassPicked, g_fwDummyResult, id, g_iZombieClass[id]); } else { if(key==8) g_iMenuOffset[id] += 8 if(key==9) g_iMenuOffset[id] -= 8 show_zclass_menu(id,g_iMenuOffset[id]) } return ; } /*------------------------------------------------------------------------------------------------*/ public show_method_menu(id) { if(g_boolFirstTime[id]) { g_boolFirstTime[id] = false show_primary_menu(id,0) } else { g_iMenuOffset[id] = 0 show_menu(id,(1<<0)|(1<<1),"\yAlege-ti \rArmele^n^n\w1. \rArme Noi^n\w2. \yUltimele Arme",-1,"WeaponMethodMenu") } } public weapon_method_pushed(id,key) { switch(key) { case 0: show_primary_menu(id,0) case 1: give_weapons(id) } return ; } public show_primary_menu(id,offset) { if(offset<0) offset = 0 new cvar_value[32] get_pcvar_string(g_pcvar_allowedweps,cvar_value,31) new flags = read_flags(cvar_value) new keys, curnum, menu[2048] for(new i=offset;i<19;i++) { if(flags & power(2,i)) { g_iMenuOptions[id][curnum] = i keys += (1<<curnum) curnum++ format(menu,2047,"%s^n%d. %s",menu,curnum,szWeaponNames[i]) if(curnum==8) break; } } format(menu,2047,"\yArme Automate:\y^n%s^n",menu) if(curnum==8 && offset<12) { keys += (1<<8) format(menu,2047,"%s^n9. Inainte",menu) } if(offset) { keys += (1<<9) format(menu,2047,"%s^n0. Inapoi",menu) } show_menu(id,keys,menu,-1,"PrimaryWeaponSelect") } public prim_weapons_pushed(id,key) { if(key<8) { g_iWeaponPicked[0][id] = g_iMenuOptions[id][key] g_iMenuOffset[id] = 0 show_secondary_menu(id,0) } else { if(key==8) g_iMenuOffset[id] += 8 if(key==9) g_iMenuOffset[id] -= 8 show_primary_menu(id,g_iMenuOffset[id]) } return ; } public show_secondary_menu(id,offset) { if(offset<0) offset = 0 new cvar_value[32] get_pcvar_string(g_pcvar_allowedweps,cvar_value,31) new flags = read_flags(cvar_value) new keys, curnum, menu[2048] for(new i=18;i<24;i++) { if(flags & power(2,i)) { g_iMenuOptions[id][curnum] = i keys += (1<<curnum) curnum++ format(menu,2047,"%s^n%d. %s",menu,curnum,szWeaponNames[i]) } } format(menu,2047,"\rPistoale:\y^n%s",menu) show_menu(id,keys,menu,-1,"SecWeaponSelect") } public sec_weapons_pushed(id,key) { if(key<8) { g_iWeaponPicked[1][id] = g_iMenuOptions[id][key] } give_weapons(id) return ; } public give_weapons(id) { strip_user_weapons(id) give_item(id,"weapon_knife") new szWeapon[32], csw csw = csw_contant(g_iWeaponPicked[0][id]) get_weaponname(csw,szWeapon,31) give_item(id,szWeapon) cs_set_user_bpammo(id,csw,999) g_iPrimaryWeapon[id] = csw csw = csw_contant(g_iWeaponPicked[1][id]) get_weaponname(csw,szWeapon,31) give_item(id,szWeapon) cs_set_user_bpammo(id,csw,999) g_boolRepick[id] = false } stock csw_contant(weapon) { new num = 29 switch(weapon) { case 0: num = 3 case 1: num = 5 case 2: num = 7 case 3: num = 8 case 4: num = 12 case 5: num = 13 case 6: num = 14 case 7: num = 15 case 8: num = 18 case 9: num = 19 case 10: num = 20 case 11: num = 21 case 12: num = 22 case 13: num = 23 case 14: num = 24 case 15: num = 27 case 16: num = 28 case 17: num = 30 case 18: num = 1 case 19: num = 10 case 20: num = 11 case 21: num = 16 case 22: num = 17 case 23: num = 26 case 24: { new s_weapon[32] get_pcvar_string(g_pcvar_allowedweps,s_weapon,31) new flags = read_flags(s_weapon) do { num = random_num(0,18) if(!(num & flags)) { num = -1 } } while(num==-1) num = csw_contant(num) } case 25: { new s_weapon[32] get_pcvar_string(g_pcvar_allowedweps,s_weapon,31) new flags = read_flags(s_weapon) do { num = random_num(18,23) if(!(num & flags)) { num = -1 } } while(num==-1) num = csw_contant(num) } } return num; } /*------------------------------------------------------------------------------------------------*/ Log(const message_fmt[], any:...) { static message[256]; vformat(message, sizeof(message) - 1, message_fmt, 2); static filename[96]; static dir[64]; if( !dir[0] ) { get_basedir(dir, sizeof(dir) - 1); add(dir, sizeof(dir) - 1, "/logs"); } format_time(filename, sizeof(filename) - 1, "%m-%d-%Y"); format(filename, sizeof(filename) - 1, "%s/BaseBuilder_%s.log", dir, filename); log_to_file(filename, "%s", message); } print_color(target, const message[], any:...) { static buffer[512], i, argscount argscount = numargs() // Send to everyone if (!target) { static player for (player = 1; player <= g_iMaxPlayers; player++) { // Not connected if (!g_isConnected[player]) continue; // Remember changed arguments static changed[5], changedcount // [5] = max LANG_PLAYER occurencies changedcount = 0 // Replace LANG_PLAYER with player id for (i = 2; i < argscount; i++) { if (getarg(i) == LANG_PLAYER) { setarg(i, 0, player) changed[changedcount] = i changedcount++ } } // Format message for player vformat(buffer, charsmax(buffer), message, 3) // Send it message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, player) write_byte(player) write_string(buffer) message_end() // Replace back player id's with LANG_PLAYER for (i = 0; i < changedcount; i++) setarg(changed[i], 0, LANG_PLAYER) } } // Send to specific target else { // Format message for player vformat(buffer, charsmax(buffer), message, 3) // Send it message_begin(MSG_ONE, g_msgSayText, _, target) write_byte(target) write_string(buffer) message_end() } } stock fm_cs_get_current_weapon_ent(id) return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX); public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback, adminflags, credits) { if (!g_boolArraysCreated) return 0; // Strings passed byref param_convert(1) param_convert(2) param_convert(3) param_convert(4) // Add the class ArrayPushString(g_zclass_name, name) ArrayPushString(g_zclass_info, info) ArrayPushCell(g_zclass_modelsstart, ArraySize(g_zclass_playermodel)) ArrayPushString(g_zclass_playermodel, model) ArrayPushCell(g_zclass_modelsend, ArraySize(g_zclass_playermodel)) ArrayPushCell(g_zclass_modelindex, -1) ArrayPushString(g_zclass_clawmodel, clawmodel) ArrayPushCell(g_zclass_hp, hp) ArrayPushCell(g_zclass_spd, speed) ArrayPushCell(g_zclass_grav, gravity) ArrayPushCell(g_zclass_admin, adminflags) ArrayPushCell(g_zclass_credits, credits) // Set temporary new class flag ArrayPushCell(g_zclass_new, 1) // Override zombie classes data with our customizations new i, k, buffer[32], Float:buffer2, nummodels_custom, nummodels_default, prec_mdl[100], size = ArraySize(g_zclass2_realname) for (i = 0; i < size; i++) { ArrayGetString(g_zclass2_realname, i, buffer, charsmax(buffer)) // Check if this is the intended class to override if (!equal(name, buffer)) continue; // Remove new class flag ArraySetCell(g_zclass_new, g_iZClasses, 0) // Replace caption ArrayGetString(g_zclass2_name, i, buffer, charsmax(buffer)) ArraySetString(g_zclass_name, g_iZClasses, buffer) // Replace info ArrayGetString(g_zclass2_info, i, buffer, charsmax(buffer)) ArraySetString(g_zclass_info, g_iZClasses, buffer) nummodels_custom = ArrayGetCell(g_zclass2_modelsend, i) - ArrayGetCell(g_zclass2_modelsstart, i) nummodels_default = ArrayGetCell(g_zclass_modelsend, g_iZClasses) - ArrayGetCell(g_zclass_modelsstart, g_iZClasses) // Replace each player model and model index for (k = 0; k < min(nummodels_custom, nummodels_default); k++) { ArrayGetString(g_zclass2_playermodel, ArrayGetCell(g_zclass2_modelsstart, i) + k, buffer, charsmax(buffer)) ArraySetString(g_zclass_playermodel, ArrayGetCell(g_zclass_modelsstart, g_iZClasses) + k, buffer) // Precache player model and replace its modelindex with the real one formatex(prec_mdl, charsmax(prec_mdl), "models/player/%s/%s.mdl", buffer, buffer) ArraySetCell(g_zclass_modelindex, ArrayGetCell(g_zclass_modelsstart, g_iZClasses) + k, engfunc(EngFunc_PrecacheModel, prec_mdl)) } // We have more custom models than what we can accommodate, // Let's make some space... if (nummodels_custom > nummodels_default) { for (k = nummodels_default; k < nummodels_custom; k++) { ArrayGetString(g_zclass2_playermodel, ArrayGetCell(g_zclass2_modelsstart, i) + k, buffer, charsmax(buffer)) ArrayInsertStringAfter(g_zclass_playermodel, ArrayGetCell(g_zclass_modelsstart, g_iZClasses) + k - 1, buffer) // Precache player model and retrieve its modelindex formatex(prec_mdl, charsmax(prec_mdl), "models/player/%s/%s.mdl", buffer, buffer) ArrayInsertCellAfter(g_zclass_modelindex, ArrayGetCell(g_zclass_modelsstart, g_iZClasses) + k - 1, engfunc(EngFunc_PrecacheModel, prec_mdl)) } // Fix models end index for this class ArraySetCell(g_zclass_modelsend, g_iZClasses, ArrayGetCell(g_zclass_modelsend, g_iZClasses) + (nummodels_custom - nummodels_default)) } // Replace clawmodel ArrayGetString(g_zclass2_clawmodel, i, buffer, charsmax(buffer)) ArraySetString(g_zclass_clawmodel, g_iZClasses, buffer) // Precache clawmodel formatex(prec_mdl, charsmax(prec_mdl), "models/%s.mdl", buffer) engfunc(EngFunc_PrecacheModel, prec_mdl) // Replace health buffer[0] = ArrayGetCell(g_zclass2_hp, i) ArraySetCell(g_zclass_hp, g_iZClasses, buffer[0]) // Replace speed buffer[0] = ArrayGetCell(g_zclass2_spd, i) ArraySetCell(g_zclass_spd, g_iZClasses, buffer[0]) // Replace gravity buffer2 = Float:ArrayGetCell(g_zclass2_grav, i) ArraySetCell(g_zclass_grav, g_iZClasses, buffer2) // Replace admin flags buffer2 = ArrayGetCell(g_zclass2_admin, i) ArraySetCell(g_zclass_admin, g_iZClasses, buffer2) // Replace credits buffer2 = ArrayGetCell(g_zclass2_credits, i) ArraySetCell(g_zclass_credits, g_iZClasses, buffer2) } // If class was not overriden with customization data if (ArrayGetCell(g_zclass_new, g_iZClasses)) { // Precache default class model and replace modelindex with the real one formatex(prec_mdl, charsmax(prec_mdl), "models/player/%s/%s.mdl", model, model) ArraySetCell(g_zclass_modelindex, ArrayGetCell(g_zclass_modelsstart, g_iZClasses), engfunc(EngFunc_PrecacheModel, prec_mdl)) // Precache default clawmodel formatex(prec_mdl, charsmax(prec_mdl), "models/%s.mdl", clawmodel) engfunc(EngFunc_PrecacheModel, prec_mdl) } g_iZClasses++ return g_iZClasses-1 } public native_get_class_cost(classid) { if (classid < 0 || classid >= g_iZClasses) return -1; return ArrayGetCell(g_zclass_credits, classid) } public native_get_user_zombie_class(id) return g_iZombieClass[id]; public native_get_user_next_class(id) return g_iNextClass[id]; public native_set_user_zombie_class(id, classid) { if (classid < 0 || classid >= g_iZClasses) return 0; g_iNextClass[id] = classid return 1; } public native_is_user_zombie(id) return g_isZombie[id] public native_is_user_banned(id) return g_isBuildBan[id] public native_bool_buildphase() return g_boolCanBuild public native_bool_prepphase() return g_boolPrepTime public native_get_build_time() { if (g_boolCanBuild) return g_iCountDown return 0; } public native_set_build_time(time) { if (g_boolCanBuild) { g_iCountDown = time return 1 } return 0; } public native_get_user_color(id) return g_iColor[id] public native_set_user_color(id, color) { g_iColor[id] = color } public native_drop_user_block(id) { cmdStopEnt(id) } public native_get_user_block(id) { if (g_iOwnedEnt[id]) return g_iOwnedEnt[id] return 0; } public native_set_user_block(id, entity) { if (is_valid_ent(entity) && !is_user_alive(entity) && !MovingEnt(entity)) g_iOwnedEnt[id] = entity } public native_is_locked_block(entity) { if (is_valid_ent(entity) && !is_user_alive(entity)) return BlockLocker(entity) ? true : false return -1; } public native_lock_block(entity) { if (is_valid_ent(entity) && !is_user_alive(entity) && !BlockLocker(entity)) { LockBlock(entity, 33); set_pev(entity,pev_rendermode,kRenderTransColor) set_pev(entity,pev_rendercolor,Float:{LOCKED_COLOR}) set_pev(entity,pev_renderamt,Float:{LOCKED_RENDERAMT}) } } public native_unlock_block(entity) { if (is_valid_ent(entity) && !is_user_alive(entity) && BlockLocker(entity)) { UnlockBlock(entity) set_pev(entity,pev_rendermode,kRenderNormal) } } public native_release_zombies() { if (g_boolCanBuild || g_boolPrepTime) { Release_Zombies() return 1; } return 0; } public native_set_user_primary(id, csw_primary) { if (CSW_P228<=csw_primary<=CSW_P90) { g_iPrimaryWeapon[id] = csw_primary return g_iPrimaryWeapon[id]; } return -1; } public native_get_user_primary(id) return g_iPrimaryWeapon[id] public native_get_flags_build() return FLAGS_BUILD public native_get_flags_lock() return FLAGS_LOCK public native_get_flags_buildban() return FLAGS_BUILDBAN public native_get_flags_swap() return FLAGS_SWAP public native_get_flags_revive() return FLAGS_REVIVE public native_get_flags_guns() return FLAGS_GUNS public native_get_flags_release() return FLAGS_RELEASE public native_get_flags_override() return FLAGS_OVERRIDE /*public native_set_user_mult(id, attribute, Float: amount) { if (attribute < ATT_HEALTH || attribute > ATT_GRAVITY) return 0; if (amount < 1.0) amount = 1.0 g_fClassMultiplier[id][attribute] = amount return 1; }*/
Lasermine + model schimbat
Descriere :[/b] : Acesta e pluginul de laser cu model schimbat
[b]Autor :[/color] : ARUKARI
SMA :
- | Afiseaza codul
/* Plugin generated by AMXX-Studio */ //#define BIOHAZARD_SUPPORT //#define UL_MONEY_SUPPORT #include <amxmodx> #include <fakemeta> #include <xs> #if defined BIOHAZARD_SUPPORT #include <biohazard> #endif #if defined UL_MONEY_SUPPORT #include <money_ul> #endif #if AMXX_VERSION_NUM < 180 #assert AMX Mod X v1.8.0 or greater library required! #endif #if defined BIOHAZARD_SUPPORT #define PLUGIN "LTM for BIOHAZARD" #define VERSION "+1.4" #else #define PLUGIN "Laser/Tripmine Entity" #define VERSION "2.3" #endif #define AUTHOR "SandStriker" #define RemoveEntity(%1) engfunc(EngFunc_RemoveEntity,%1) //#define ACCESSLEVEL ADMIN_LEVEL_H #define TASK_PLANT 15100 #define TASK_RESET 15500 #define TASK_RELEASE 15900 #define LASERMINE_TEAM pev_iuser1//EV_INT_iuser1 #define LASERMINE_OWNER pev_iuser2 //EV_INT_iuser3 #define LASERMINE_STEP pev_iuser3 #define LASERMINE_HITING pev_iuser4 #define LASERMINE_COUNT pev_fuser1 #define LASERMINE_POWERUP pev_fuser2 #define LASERMINE_BEAMTHINK pev_fuser3 #define LASERMINE_BEAMENDPOINT pev_vuser1 #define MAX_MINES 10 #define MODE_LASERMINE 0 #define OFFSET_TEAM 114 #define OFFSET_MONEY 115 #define OFFSET_DEATH 444 #define cs_get_user_team(%1) CsTeams:get_offset_value(%1,OFFSET_TEAM) #define cs_get_user_deaths(%1) get_offset_value(%1,OFFSET_DEATH) #define cs_get_user_money(%1) get_offset_value(%1,OFFSET_MONEY) #define cs_set_user_money(%1,%2) set_offset_value(%1,OFFSET_MONEY,%2) enum CsTeams { CS_TEAM_UNASSIGNED = 0, CS_TEAM_T = 1, CS_TEAM_CT = 2, CS_TEAM_SPECTATOR = 3 }; enum tripmine_e { TRIPMINE_IDLE1 = 0, TRIPMINE_IDLE2, TRIPMINE_ARM1, TRIPMINE_ARM2, TRIPMINE_FIDGET, TRIPMINE_HOLSTER, TRIPMINE_DRAW, TRIPMINE_WORLD, TRIPMINE_GROUND, }; enum { POWERUP_THINK, BEAMBREAK_THINK, EXPLOSE_THINK }; enum { POWERUP_SOUND, ACTIVATE_SOUND, STOP_SOUND }; new const ENT_MODELS[] = "models/v_laser_dante.mdl", ENT_SOUND1[] = "weapons/mine_deploy.wav", ENT_SOUND2[] = "weapons/mine_charge.wav", ENT_SOUND3[] = "weapons/mine_activate.wav", ENT_SOUND4[] = "debris/beamstart9.wav", ENT_SOUND5[] = "items/gunpickup2.wav", ENT_SOUND6[] = "debris/bustglass1.wav", ENT_SOUND7[] = "debris/bustglass2.wav", ENT_SPRITE1[] = "sprites/laserbeam.spr", ENT_SPRITE2[] = "sprites/zerogxplode.spr"; new const ENT_CLASS_NAME[] = "lasermine", //ENT_CLASS_NAME2[] = "info_target", ENT_CLASS_NAME3[] = "func_breakable"; new const #if defined BIOHAZARD_SUPPORT CHATTAG[] = "[BioLaser]", #else CHATTAG[] = "[BB.BaDCoRe.Ro]", #endif //STR_MINEDETNATED[] = "Your mine has detonated.", //STR_MINEDETNATED2[] = "detonated your mine.", STR_NOTACTIVE[] = "Lasermines are not currently active.", STR_DONTHAVEMINE[] = "You don't have lasermine.", //STR_CANTDEPLOY[] = "Your team can't deploying lasermine!", STR_MAXDEPLOY[] = "Maximum mines have been deployed.", STR_MANYPPL[] = "Too many ppl on your team...", STR_PLANTWALL[] = "You must plant the lasermine on a wall!", STR_REF[] = "Refer to a lasermine rule with this server. say 'lasermine'", #if defined BIOHAZARD_SUPPORT STR_CBT[] = "Your Zombie! Can't buy and deploying lasermine!", #else STR_CBT[] = "Your Team Can't buy and deploying lasermine!", #endif STR_CANTBUY[] = "Can't buying this server.", STR_HAVEMAX[] = "You have a maximum lasermine.", STR_NOMONEY[] = "You don't have enough money to buy a lasermine! ($", STR_NEEDED[] = "needed)", STR_DELAY[] = "You can buying and deploying lasermine in after", STR_SECONDS[] = "seconds.", STR_BOUGHT[] = "You have successfully bought a lasermine.", STR_STATE[] = "LaserMines Ammo:", STR_NOACCESS[] = "You can't access, this command."; new g_EntMine; new beam, boom new g_LENABLE,g_LFMONEY,g_LAMMO,g_LDMG, g_LTMAX,g_LCOST,g_LHEALTH,g_LMODE,g_LRADIUS,g_LRDMG,g_LFF,g_LCBT; new g_LDELAY,/*g_LTHINK,*/g_LVISIBLE, g_LSTAMMO,g_LACCESS,g_LGLOW,g_LDMGMODE,g_LCLMODE,g_LCBRIGHT,g_LDSEC,g_LCMDMODE,g_LBUYMODE; new g_dcount[33],g_nowtime,g_MaxPL new bool:g_settinglaser[33] new g_msgDeathMsg,g_msgScoreInfo,g_msgDamage,g_msgStatusText,g_msgMoney; new Float:plspeed[33] new plsetting[33] new g_havemine[33]; new g_deployed[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); // Add your code here... register_clcmd("+setlaser","CreateLaserMine_Progress_b"); register_clcmd("-setlaser","StopCreateLaserMine"); register_clcmd("+dellaser","ReturnLaserMine_Progress"); register_clcmd("-dellaser","StopReturnLaserMine"); register_clcmd("say","say_lasermine"); register_clcmd("buy_lasermine","BuyLasermine"); #if defined BIOHAZARD_SUPPORT g_LENABLE = register_cvar("bio_ltm","1"); g_LACCESS = register_cvar("bio_ltm_acs","0"); //0 all, 1 admin g_LMODE = register_cvar("bio_ltm_mode","0"); //0 lasermine, 1 tripmine g_LAMMO = register_cvar("bio_ltm_ammo","2"); g_LDMG = register_cvar("bio_ltm_dmg","60"); //laser hit dmg g_LCOST = register_cvar("bio_ltm_cost","2500"); g_LFMONEY = register_cvar("bio_ltm_fragmoney","300"); g_LHEALTH = register_cvar("bio_ltm_health","500"); g_LTMAX = register_cvar("bio_ltm_teammax","10"); g_LRADIUS = register_cvar("bio_ltm_radius","320.0"); g_LRDMG = register_cvar("bio_ltm_rdmg","100"); //radius damage g_LFF = register_cvar("bio_ltm_ff","0"); g_LCBT = register_cvar("bio_ltm_cbt","ALL"); g_LBUYMODE = register_cvar("bio_ltm_buymode","1"); g_LDELAY = register_cvar("bio_ltm_delay","15"); //g_LTHINK = register_cvar("bio_ltm_think","0.01"); g_LVISIBLE = register_cvar("bio_ltm_line","1"); g_LGLOW = register_cvar("bio_ltm_glow","0"); g_LCBRIGHT = register_cvar("bio_ltm_bright","255"); //laser line brightness. g_LCLMODE = register_cvar("bio_ltm_color","0"); //0 is team color,1 is green g_LDMGMODE = register_cvar("bio_ltm_ldmgmode","0"); //0 - frame dmg, 1 - once dmg, 2 - 1 second dmg g_LDSEC = register_cvar("bio_ltm_ldmgseconds","1"); //mode 2 only, damage / seconds. default 1 (sec) g_LSTAMMO = register_cvar("bio_ltm_startammo","1"); g_LCMDMODE = register_cvar("bio_ltm_cmdmode","0"); //0 is +USE key, 1 is bind, 2 is each. #else g_LENABLE = register_cvar("amx_ltm","1"); g_LACCESS = register_cvar("amx_ltm_acs","0"); //0 all, 1 admin g_LMODE = register_cvar("amx_ltm_mode","0"); //0 lasermine, 1 tripmine g_LAMMO = register_cvar("amx_ltm_ammo","2"); g_LDMG = register_cvar("amx_ltm_dmg","60"); //laser hit dmg g_LCOST = register_cvar("amx_ltm_cost","2500"); g_LFMONEY = register_cvar("amx_ltm_fragmoney","300"); g_LHEALTH = register_cvar("amx_ltm_health","500"); g_LTMAX = register_cvar("amx_ltm_teammax","10"); g_LRADIUS = register_cvar("amx_ltm_radius","320.0"); g_LRDMG = register_cvar("amx_ltm_rdmg","100"); //radius damage g_LFF = register_cvar("amx_ltm_ff","0"); g_LCBT = register_cvar("amx_ltm_cbt","ALL"); g_LBUYMODE = register_cvar("amx_ltm_buymode","1"); g_LDELAY = register_cvar("amx_ltm_delay","15"); //g_LTHINK = register_cvar("amx_ltm_think","0.01") g_LVISIBLE = register_cvar("amx_ltm_line","1"); g_LGLOW = register_cvar("amx_ltm_glow","0"); g_LCBRIGHT = register_cvar("amx_ltm_bright","255"); //laser line brightness. g_LCLMODE = register_cvar("amx_ltm_color","0"); //0 is team color,1 is green g_LDMGMODE = register_cvar("amx_ltm_ldmgmode","0"); //0 - frame dmg, 1 - once dmg, 2 - 1 second dmg g_LDSEC = register_cvar("amx_ltm_ldmgseconds","1"); //mode 2 only, damage / seconds. default 1 (sec) g_LSTAMMO = register_cvar("amx_ltm_startammo","1"); g_LCMDMODE = register_cvar("amx_ltm_cmdmode","0"); //0 is +USE key, 1 is bind, 2 is each. #endif register_event("DeathMsg", "DeathEvent", "a"); register_event("CurWeapon", "standing", "be", "1=1"); register_event("ResetHUD", "delaycount", "a"); register_event("ResetHUD", "newround", "b"); register_event("Damage","CutDeploy_onDamage","b"); g_msgDeathMsg = get_user_msgid("DeathMsg"); g_msgScoreInfo = get_user_msgid("ScoreInfo"); g_msgDamage = get_user_msgid("Damage"); g_msgStatusText = get_user_msgid("StatusText"); g_msgMoney = get_user_msgid("Money"); // -- Forward. register_forward(FM_Think, "ltm_Think" ); register_forward(FM_PlayerPostThink, "ltm_PostThink" ); register_forward(FM_PlayerPreThink, "ltm_PreThink"); } public plugin_precache() { precache_sound(ENT_SOUND1); precache_sound(ENT_SOUND2); precache_sound(ENT_SOUND3); precache_sound(ENT_SOUND4); precache_sound(ENT_SOUND5); precache_sound(ENT_SOUND6); precache_sound(ENT_SOUND7); precache_model(ENT_MODELS); beam = precache_model(ENT_SPRITE1); boom = precache_model(ENT_SPRITE2); return PLUGIN_CONTINUE; } public plugin_modules() { require_module("fakemeta"); require_module("cstrike"); //require_module("fun") } public plugin_cfg() { g_EntMine = engfunc(EngFunc_AllocString,ENT_CLASS_NAME3); arrayset(g_havemine,0,sizeof(g_havemine)); arrayset(g_deployed,0,sizeof(g_deployed)); g_MaxPL = get_maxplayers(); new file[64]; get_localinfo("amxx_configsdir",file,63); #if defined BIOHAZARD_SUPPORT format(file, 63, "%s/bhltm_cvars.cfg", file); #else format(file, 63, "%s/ltm_cvars.cfg", file); #endif if(file_exists(file)) server_cmd("exec %s", file), server_exec(); } public delaycount(id) { g_dcount[id] = floatround(get_gametime()); } bool:CheckTime(id) { g_nowtime = floatround(get_gametime()) - g_dcount[id]; if(g_nowtime >= get_pcvar_num(g_LDELAY)) return true; return false; } public CreateLaserMine_Progress_b(id) { if(get_pcvar_num(g_LCMDMODE) != 0) CreateLaserMine_Progress(id); return PLUGIN_HANDLED; } public CreateLaserMine_Progress(id) { if (!CreateCheck(id)) return PLUGIN_HANDLED; g_settinglaser[id] = true; message_begin( MSG_ONE, 108, {0,0,0}, id ); write_byte(1); write_byte(0); message_end(); set_task(1.2, "Spawn", (TASK_PLANT + id)); return PLUGIN_HANDLED; } public ReturnLaserMine_Progress(id) { if (!ReturnCheck(id)) return PLUGIN_HANDLED; g_settinglaser[id] = true; message_begin( MSG_ONE, 108, {0,0,0}, id ); write_byte(1); write_byte(0); message_end(); set_task(1.2, "ReturnMine", (TASK_RELEASE + id)); return PLUGIN_HANDLED; } public StopCreateLaserMine(id) { DeleteTask(id); message_begin(MSG_ONE, 108, {0,0,0}, id); write_byte(0); write_byte(0); message_end(); return PLUGIN_HANDLED; } public StopReturnLaserMine(id) { DeleteTask(id); message_begin(MSG_ONE, 108, {0,0,0}, id); write_byte(0); write_byte(0); message_end(); return PLUGIN_HANDLED; } public ReturnMine(id) { id -= TASK_RELEASE; new tgt,body,Float:vo[3],Float:to[3]; get_user_aiming(id,tgt,body); if(!pev_valid(tgt)) return; pev(id,pev_origin,vo); pev(tgt,pev_origin,to); if(get_distance_f(vo,to) > 70.0) return; new EntityName[32]; pev(tgt, pev_classname, EntityName, 31); if(!equal(EntityName, ENT_CLASS_NAME)) return; if(pev(tgt,LASERMINE_OWNER) != id) return; RemoveEntity(tgt); g_havemine[id] ++; g_deployed[id] --; emit_sound(id, CHAN_ITEM, ENT_SOUND5, VOL_NORM, ATTN_NORM, 0, PITCH_NORM) ShowAmmo(id) return; } public Spawn( id ) { id -= TASK_PLANT // motor new i_Ent = engfunc(EngFunc_CreateNamedEntity,g_EntMine); if(!i_Ent) { client_print(id,print_chat,"[Laesrmine Debug] Can't Create Entity"); return PLUGIN_HANDLED_MAIN; } set_pev(i_Ent,pev_classname,ENT_CLASS_NAME); engfunc(EngFunc_SetModel,i_Ent,ENT_MODELS); set_pev(i_Ent,pev_solid,SOLID_NOT); set_pev(i_Ent,pev_movetype,MOVETYPE_FLY); set_pev(i_Ent,pev_frame,0); set_pev(i_Ent,pev_body,3); set_pev(i_Ent,pev_sequence,TRIPMINE_WORLD); set_pev(i_Ent,pev_framerate,0); set_pev(i_Ent,pev_takedamage,DAMAGE_YES); set_pev(i_Ent,pev_dmg,100.0); set_user_health(i_Ent,get_pcvar_num(g_LHEALTH)); new Float:vOrigin[3]; new Float:vNewOrigin[3],Float:vNormal[3],Float:vTraceDirection[3], Float:vTraceEnd[3],Float:vEntAngles[3]; pev( id, pev_origin, vOrigin ); velocity_by_aim( id, 128, vTraceDirection ); xs_vec_add( vTraceDirection, vOrigin, vTraceEnd ); engfunc( EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0 ); new Float:fFraction; get_tr2( 0, TR_flFraction, fFraction ); // -- We hit something! if ( fFraction < 1.0 ) { // -- Save results to be used later. get_tr2( 0, TR_vecEndPos, vTraceEnd ); get_tr2( 0, TR_vecPlaneNormal, vNormal ); } xs_vec_mul_scalar( vNormal, 8.0, vNormal ); xs_vec_add( vTraceEnd, vNormal, vNewOrigin ); engfunc(EngFunc_SetSize, i_Ent, Float:{ -4.0, -4.0, -4.0 }, Float:{ 4.0, 4.0, 4.0 } ); engfunc(EngFunc_SetOrigin, i_Ent, vNewOrigin ); // -- Rotate tripmine. vector_to_angle(vNormal,vEntAngles ); set_pev(i_Ent,pev_angles,vEntAngles ); // -- Calculate laser end origin. new Float:vBeamEnd[3], Float:vTracedBeamEnd[3]; xs_vec_mul_scalar(vNormal, 8192.0, vNormal ); xs_vec_add( vNewOrigin, vNormal, vBeamEnd ); engfunc( EngFunc_TraceLine, vNewOrigin, vBeamEnd, IGNORE_MONSTERS, -1, 0 ); get_tr2( 0, TR_vecPlaneNormal, vNormal ); get_tr2( 0, TR_vecEndPos, vTracedBeamEnd ); // -- Save results to be used later. set_pev(i_Ent, LASERMINE_OWNER, id ); set_pev(i_Ent,LASERMINE_BEAMENDPOINT,vTracedBeamEnd); set_pev(i_Ent,LASERMINE_TEAM,int:cs_get_user_team(id)); new Float:fCurrTime = get_gametime(); set_pev(i_Ent,LASERMINE_POWERUP, fCurrTime + 2.5 ); set_pev(i_Ent,LASERMINE_STEP,POWERUP_THINK); set_pev(i_Ent,pev_nextthink, fCurrTime + 0.2 ); PlaySound(i_Ent,POWERUP_SOUND ); g_deployed[id]++; g_havemine[id]--; DeleteTask(id); ShowAmmo(id); return 1; } stock TeamDeployedCount(id) { //new tid[32]; static i; static CsTeams:t;t = cs_get_user_team(id); static cnt;cnt=0; for(i = 1;i <= g_MaxPL;i++) { if(is_user_connected(i)) if(t == cs_get_user_team(i)) cnt += g_deployed[i]; } return cnt; } bool:CheckCanTeam(id) { new arg[5],CsTeam:num; get_pcvar_string(g_LCBT,arg,3); if(equali(arg,"T")) { num = CsTeam:CS_TEAM_T; } else if(equali(arg,"CT")) { num = CsTeam:CS_TEAM_CT; } else if(equali(arg,"ALL")) { num = CsTeam:CS_TEAM_UNASSIGNED; } else { num = CsTeam:CS_TEAM_UNASSIGNED; } if(num != CsTeam:CS_TEAM_UNASSIGNED && num != CsTeam:cs_get_user_team(id)) return false; return true; } bool:CanCheck(id,mode) { if( !get_pcvar_num( g_LENABLE ) ) { client_print(id, print_chat, "%s %s",CHATTAG,STR_NOTACTIVE); return false; } if( get_pcvar_num(g_LACCESS) != 0) if(!(get_user_flags(id) & ADMIN_IMMUNITY)) { client_print(id, print_chat, "%s %s",CHATTAG,STR_NOACCESS); return false; } if(!pev_user_alive(id)) return false; #if defined BIOHAZARD_SUPPORT if(is_user_zombie(id)) { client_print(id, print_chat, "%s %s",CHATTAG,STR_CBT); return false; } #endif if (!CheckCanTeam(id)) { client_print(id, print_chat, "%s %s",CHATTAG,STR_CBT); return false; } if( mode == 0) { if(g_havemine[id] <= 0) { client_print(id, print_chat, "%s %s",CHATTAG,STR_DONTHAVEMINE); return false; } } if (mode == 1) { if (get_pcvar_num(g_LBUYMODE) == 0) { client_print(id, print_chat, "%s %s",CHATTAG,STR_CANTBUY); return false; } if (g_havemine[id] >= get_pcvar_num(g_LAMMO)) { client_print(id, print_chat, "%s %s",CHATTAG,STR_HAVEMAX); return false; } if (cs_get_user_money(id) < get_pcvar_num(g_LCOST)) { client_print(id, print_chat, "%s %s%d %s",CHATTAG, STR_NOMONEY,get_pcvar_num(g_LCOST),STR_NEEDED); return false; } } if(!CheckTime(id)) { client_print(id,print_chat, "%s %s %d %s",CHATTAG,STR_DELAY,get_pcvar_num(g_LDELAY)-g_nowtime,STR_SECONDS); return false; } return true; } bool:ReturnCheck( id ) { if(!CanCheck(id,-1)) return false; if(g_havemine[id] + 1 > get_pcvar_num(g_LAMMO)) return false; new tgt,body,Float:vo[3],Float:to[3]; get_user_aiming(id,tgt,body); if(!pev_valid(tgt)) return false; pev(id,pev_origin,vo); pev(tgt,pev_origin,to); if(get_distance_f(vo,to) > 70.0) return false; new EntityName[32]; pev(tgt, pev_classname, EntityName, 31); if(!equal(EntityName, ENT_CLASS_NAME)) return false; if(pev(tgt,LASERMINE_OWNER) != id) return false; return true; } bool:CreateCheck( id ) { if (!CanCheck(id,0)) return false; if (g_deployed[id] >= get_pcvar_num(g_LAMMO)) { client_print(id, print_chat, "%s %s",CHATTAG,STR_MAXDEPLOY); return false; } //client_print(id,print_chat,"[Lasermine] your team deployed %d",TeamDeployedCount(id)) if(TeamDeployedCount(id) >= get_pcvar_num(g_LTMAX)) { client_print(id, print_chat, "%s %s",CHATTAG,STR_MANYPPL); return false; } new Float:vTraceDirection[3], Float:vTraceEnd[3],Float:vOrigin[3]; pev( id, pev_origin, vOrigin ); velocity_by_aim( id, 128, vTraceDirection ); xs_vec_add( vTraceDirection, vOrigin, vTraceEnd ); engfunc( EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0 ); new Float:fFraction,Float:vTraceNormal[3]; get_tr2( 0, TR_flFraction, fFraction ); // -- We hit something! if ( fFraction < 1.0 ) { // -- Save results to be used later. get_tr2( 0, TR_vecEndPos, vTraceEnd ); get_tr2( 0, TR_vecPlaneNormal, vTraceNormal ); //get_tr2( 0, TR_pHit ); return true; } client_print(id, print_chat, "%s %s",CHATTAG,STR_PLANTWALL) DeleteTask(id); // -- Did not touched something. (not solid) return false; } public ltm_Think( i_Ent ) { if ( !pev_valid( i_Ent ) ) return FMRES_IGNORED; new EntityName[32]; pev( i_Ent, pev_classname, EntityName, 31); if(!get_pcvar_num(g_LENABLE)) return FMRES_IGNORED; // -- Entity is not a tripmine, ignoring the next... if ( !equal( EntityName, ENT_CLASS_NAME ) ) return FMRES_IGNORED; static Float:fCurrTime; fCurrTime = get_gametime(); switch( pev( i_Ent, LASERMINE_STEP ) ) { case POWERUP_THINK : { new Float:fPowerupTime; pev( i_Ent, LASERMINE_POWERUP, fPowerupTime ); if( fCurrTime > fPowerupTime ) { set_pev( i_Ent, pev_solid, SOLID_BBOX ); set_pev( i_Ent, LASERMINE_STEP, BEAMBREAK_THINK ); PlaySound( i_Ent, ACTIVATE_SOUND ); } if(get_pcvar_num(g_LGLOW)!=0) { if(get_pcvar_num(g_LCLMODE)==0) { switch (pev(i_Ent,LASERMINE_TEAM)) { case CS_TEAM_T: set_rendering(i_Ent,kRenderFxGlowShell,255,0,0,kRenderNormal,5); case CS_TEAM_CT:set_rendering(i_Ent,kRenderFxGlowShell,0,0,255,kRenderNormal,5); } }else { set_rendering(i_Ent,kRenderFxGlowShell,0,255,0,kRenderNormal,5); } } set_pev( i_Ent, pev_nextthink, fCurrTime + 0.1 ); } case BEAMBREAK_THINK : { static Float:vEnd[3],Float:vOrigin[3]; pev( i_Ent, pev_origin, vOrigin ); pev( i_Ent, LASERMINE_BEAMENDPOINT, vEnd ); static iHit, Float:fFraction; engfunc( EngFunc_TraceLine, vOrigin, vEnd, DONT_IGNORE_MONSTERS, i_Ent, 0 ); get_tr2( 0, TR_flFraction, fFraction ); iHit = get_tr2( 0, TR_pHit ); // -- Something has passed the laser. if ( fFraction < 1.0 ) { // -- Ignoring others tripmines entity. if(pev_valid(iHit)) { pev( iHit, pev_classname, EntityName, 31 ); if( !equal( EntityName, ENT_CLASS_NAME ) ) { set_pev( i_Ent, pev_enemy, iHit ); if(get_pcvar_num(g_LMODE) == MODE_LASERMINE) CreateLaserDamage(i_Ent,iHit); else if(get_pcvar_num(g_LFF) || CsTeams:pev(i_Ent,LASERMINE_TEAM) != cs_get_user_team(iHit)) set_pev( i_Ent, LASERMINE_STEP, EXPLOSE_THINK ); set_pev( i_Ent, pev_nextthink, fCurrTime + random_float( 0.1, 0.3 ) ); } } } if(get_pcvar_num(g_LDMGMODE)!=0) if(pev(i_Ent,LASERMINE_HITING) != iHit) set_pev(i_Ent,LASERMINE_HITING,iHit); // -- Tripmine is still there. if ( pev_valid( i_Ent )) { static Float:fHealth; pev( i_Ent, pev_health, fHealth ); if( fHealth <= 0.0 || (pev(i_Ent,pev_flags) & FL_KILLME)) { set_pev( i_Ent, LASERMINE_STEP, EXPLOSE_THINK ); set_pev( i_Ent, pev_nextthink, fCurrTime + random_float( 0.1, 0.3 ) ); } static Float:fBeamthink; pev( i_Ent, LASERMINE_BEAMTHINK, fBeamthink ); if( fBeamthink < fCurrTime && get_pcvar_num(g_LVISIBLE)) { DrawLaser(i_Ent, vOrigin, vEnd ); set_pev( i_Ent, LASERMINE_BEAMTHINK, fCurrTime + 0.1 ); } set_pev( i_Ent, pev_nextthink, fCurrTime + 0.01 ); } } case EXPLOSE_THINK : { // -- Stopping entity to think set_pev( i_Ent, pev_nextthink, 0.0 ); PlaySound( i_Ent, STOP_SOUND ); g_deployed[pev(i_Ent,LASERMINE_OWNER)]--; CreateExplosion( i_Ent ); CreateDamage(i_Ent,get_pcvar_float(g_LRDMG),get_pcvar_float(g_LRADIUS)) RemoveEntity ( i_Ent ); } } return FMRES_IGNORED; } PlaySound( i_Ent, i_SoundType ) { switch ( i_SoundType ) { case POWERUP_SOUND : { emit_sound( i_Ent, CHAN_VOICE, ENT_SOUND1, VOL_NORM, ATTN_NORM, 0, PITCH_NORM ); emit_sound( i_Ent, CHAN_BODY , ENT_SOUND2, 0.2, ATTN_NORM, 0, PITCH_NORM ); } case ACTIVATE_SOUND : { emit_sound( i_Ent, CHAN_VOICE, ENT_SOUND3, 0.5, ATTN_NORM, 1, 75 ); } case STOP_SOUND : { emit_sound( i_Ent, CHAN_BODY , ENT_SOUND2, 0.2, ATTN_NORM, SND_STOP, PITCH_NORM ); emit_sound( i_Ent, CHAN_VOICE, ENT_SOUND3, 0.5, ATTN_NORM, SND_STOP, 75 ); } } } DrawLaser(i_Ent, const Float:v_Origin[3], const Float:v_EndOrigin[3] ) { new tcolor[3]; new teamid = pev(i_Ent, LASERMINE_TEAM); if(get_pcvar_num(g_LCLMODE) == 0) { switch(teamid){ case 1:{ tcolor[0] = 255; tcolor[1] = 0; tcolor[2] = 0; } case 2:{ tcolor[0] = 0; tcolor[1] = 0; tcolor[2] = 255; } } }else { tcolor[0] = 0; tcolor[1] = 255; tcolor[2] = 0; } message_begin(MSG_BROADCAST,SVC_TEMPENTITY); write_byte(TE_BEAMPOINTS); engfunc(EngFunc_WriteCoord,v_Origin[0]); engfunc(EngFunc_WriteCoord,v_Origin[1]); engfunc(EngFunc_WriteCoord,v_Origin[2]); engfunc(EngFunc_WriteCoord,v_EndOrigin[0]); //Random engfunc(EngFunc_WriteCoord,v_EndOrigin[1]); //Random engfunc(EngFunc_WriteCoord,v_EndOrigin[2]); //Random write_short(beam); write_byte(0); write_byte(0); write_byte(1); //Life write_byte(5); //Width write_byte(0); //wave write_byte(tcolor[0]); // r write_byte(tcolor[1]); // g write_byte(tcolor[2]); // b write_byte(get_pcvar_num(g_LCBRIGHT)); write_byte(255); message_end(); } /* CreateDamage(iCurrent,DmgMAX,Float:Radius) { new AtkID = pev(iCurrent,LASERMINE_OWNER)// entity_get_int(iCurrent,LASERMINE_OWNER) new TeamID= pev(iCurrent,LASERMINE_TEAM) //entity_get_int(iCurrent,LASERMINE_INT_TEAM) new Player = -1; new Float:distance,dmg; new Float:tOrigin[3]; new Float:vOrigin[3]; new iHitHP,iHitTeam; pev(iCurrent,pev_origin,vOrigin); while((Player = engfunc(EngFunc_FindEntityInSphere, Player, vOrigin, Radius)) != 0) { if(is_user_alive(Player)) { pev(Player,pev_origin,tOrigin) distance = get_distance_f(vOrigin, tOrigin) dmg = floatround(DmgMAX - ((DmgMAX / Radius) * distance)) iHitHP = pev_user_health(Player) - dmg iHitTeam = int:bio_get_user_team(Player) if(iHitHP <= 0) { if(iHitTeam != TeamID) { cs_set_user_money(AtkID,cs_get_user_money(AtkID) + get_pcvar_num(g_LFMONEY)) set_score(AtkID,Player,1,iHitHP) }else { if(get_pcvar_num(g_LFF)) { cs_set_user_money(AtkID,cs_get_user_money(AtkID) - get_pcvar_num(g_LFMONEY)) set_score(AtkID,Player,-1,iHitHP) } } }else { if(iHitTeam != TeamID || get_pcvar_num(g_LFF)) { //set_pev(Player,pev_health,iHitHP) set_user_health(Player, iHitHP) message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, {0,0,0}, Player) write_byte(dmg) write_byte(dmg) write_long(DMG_BULLET) engfunc(EngFunc_WriteCoord,vOrigin[0]) engfunc(EngFunc_WriteCoord,vOrigin[1]) engfunc(EngFunc_WriteCoord,vOrigin[2]) message_end() } } } Player = engfunc(EngFunc_FindEntityInSphere,Player,vOrigin,Radius) } return PLUGIN_CONTINUE } */ CreateDamage(iCurrent,Float:DmgMAX,Float:Radius) { // Get given parameters new Float:vecSrc[3]; pev(iCurrent, pev_origin, vecSrc); new AtkID =pev(iCurrent,LASERMINE_OWNER); new TeamID=pev(iCurrent,LASERMINE_TEAM); new ent = -1; new Float:tmpdmg = DmgMAX; new Float:kickback = 0.0; // Needed for doing some nice calculations :P new Float:Tabsmin[3], Float:Tabsmax[3]; new Float:vecSpot[3]; new Float:Aabsmin[3], Float:Aabsmax[3]; new Float:vecSee[3]; new trRes; new Float:flFraction; new Float:vecEndPos[3]; new Float:distance; new Float:origin[3], Float:vecPush[3]; new Float:invlen; new Float:velocity[3]; new iHitHP,iHitTeam; // Calculate falloff new Float:falloff; if (Radius > 0.0) { falloff = DmgMAX / Radius; } else { falloff = 1.0; } // Find monsters and players inside a specifiec radius while((ent = engfunc(EngFunc_FindEntityInSphere, ent, vecSrc, Radius)) != 0) { if(!pev_valid(ent)) continue; if(!(pev(ent, pev_flags) & (FL_CLIENT | FL_FAKECLIENT | FL_MONSTER))) { // Entity is not a player or monster, ignore it continue; } if(!pev_user_alive(ent)) continue; // Reset data kickback = 1.0; tmpdmg = DmgMAX; // The following calculations are provided by Orangutanz, THANKS! // We use absmin and absmax for the most accurate information pev(ent, pev_absmin, Tabsmin); pev(ent, pev_absmax, Tabsmax); xs_vec_add(Tabsmin,Tabsmax,Tabsmin); xs_vec_mul_scalar(Tabsmin,0.5,vecSpot); pev(iCurrent, pev_absmin, Aabsmin); pev(iCurrent, pev_absmax, Aabsmax); xs_vec_add(Aabsmin,Aabsmax,Aabsmin); xs_vec_mul_scalar(Aabsmin,0.5,vecSee); engfunc(EngFunc_TraceLine, vecSee, vecSpot, 0, iCurrent, trRes); get_tr2(trRes, TR_flFraction, flFraction); // Explosion can 'see' this entity, so hurt them! (or impact through objects has been enabled xD) if (flFraction >= 0.9 || get_tr2(trRes, TR_pHit) == ent) { // Work out the distance between impact and entity get_tr2(trRes, TR_vecEndPos, vecEndPos); distance = get_distance_f(vecSrc, vecEndPos) * falloff; tmpdmg -= distance; if(tmpdmg < 0.0) tmpdmg = 0.0; // Kickback Effect if(kickback != 0.0) { xs_vec_sub(vecSpot,vecSee,origin); invlen = 1.0/get_distance_f(vecSpot, vecSee); xs_vec_mul_scalar(origin,invlen,vecPush); pev(ent, pev_velocity, velocity) xs_vec_mul_scalar(vecPush,tmpdmg,vecPush); xs_vec_mul_scalar(vecPush,kickback,vecPush); xs_vec_add(velocity,vecPush,velocity); if(tmpdmg < 60.0) { xs_vec_mul_scalar(velocity,12.0,velocity); } else { xs_vec_mul_scalar(velocity,4.0,velocity); } if(velocity[0] != 0.0 || velocity[1] != 0.0 || velocity[2] != 0.0) { // There's some movement todo :) set_pev(ent, pev_velocity, velocity) } } iHitHP = pev_user_health(ent) - floatround(tmpdmg) iHitTeam = int:cs_get_user_team(ent) if(iHitHP <= 0) { if(iHitTeam != TeamID) { cs_set_user_money(AtkID,cs_get_user_money(AtkID) + get_pcvar_num(g_LFMONEY)) set_score(AtkID,ent,1,iHitHP) }else { if(get_pcvar_num(g_LFF)) { cs_set_user_money(AtkID,cs_get_user_money(AtkID) - get_pcvar_num(g_LFMONEY)) set_score(AtkID,ent,-1,iHitHP) } } }else { if(iHitTeam != TeamID || get_pcvar_num(g_LFF)) { //set_pev(Player,pev_health,iHitHP) set_user_health(ent, iHitHP) engfunc(EngFunc_MessageBegin,MSG_ONE_UNRELIABLE,g_msgDamage,{0.0,0.0,0.0},ent); write_byte(floatround(tmpdmg)) write_byte(floatround(tmpdmg)) write_long(DMG_BULLET) engfunc(EngFunc_WriteCoord,vecSrc[0]) engfunc(EngFunc_WriteCoord,vecSrc[1]) engfunc(EngFunc_WriteCoord,vecSrc[2]) message_end() } } } } return } bool:pev_user_alive(ent) { new deadflag = pev(ent,pev_deadflag); if(deadflag != DEAD_NO) return false; return true; } CreateExplosion(iCurrent) { new Float:vOrigin[3]; pev(iCurrent,pev_origin,vOrigin); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(99); //99 = KillBeam write_short(iCurrent); message_end(); engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, vOrigin, 0); write_byte(TE_EXPLOSION); engfunc(EngFunc_WriteCoord,vOrigin[0]); engfunc(EngFunc_WriteCoord,vOrigin[1]); engfunc(EngFunc_WriteCoord,vOrigin[2]); write_short(boom); write_byte(30); write_byte(15); write_byte(0); message_end(); } CreateLaserDamage(iCurrent,isHit) { if(isHit < 0 ) return PLUGIN_CONTINUE switch(get_pcvar_num(g_LDMGMODE)) { case 1: { if(pev(iCurrent,LASERMINE_HITING) == isHit) return PLUGIN_CONTINUE } case 2: { if(pev(iCurrent,LASERMINE_HITING) == isHit) { static Float:cnt static now,htime;now = floatround(get_gametime()) pev(iCurrent,LASERMINE_COUNT,cnt) htime = floatround(cnt) if(now - htime < get_pcvar_num(g_LDSEC)) { return PLUGIN_CONTINUE; }else{ set_pev(iCurrent,LASERMINE_COUNT,get_gametime()) } }else { set_pev(iCurrent,LASERMINE_COUNT,get_gametime()) } } } new Float:vOrigin[3],Float:vEnd[3] pev(iCurrent,pev_origin,vOrigin) pev(iCurrent,pev_vuser1,vEnd) new teamid = pev(iCurrent, LASERMINE_TEAM) new szClassName[32] new Alive,God new iHitTeam,iHitHP,id new hitscore szClassName[0] = '^0' pev(isHit,pev_classname,szClassName,32) if((pev(isHit, pev_flags) & (FL_CLIENT | FL_FAKECLIENT | FL_MONSTER))) { Alive = pev_user_alive(isHit) God = get_user_godmode(isHit) if(!Alive || God) return PLUGIN_CONTINUE iHitTeam = int:cs_get_user_team(isHit) iHitHP = pev_user_health(isHit) - get_pcvar_num(g_LDMG) id = pev(iCurrent,LASERMINE_OWNER)//, szNetName[32] if(iHitHP <= 0) { if(iHitTeam != teamid) { emit_sound(isHit, CHAN_WEAPON, ENT_SOUND4, 1.0, ATTN_NORM, 0, PITCH_NORM ) hitscore = 1 cs_set_user_money(id,cs_get_user_money(id) + get_pcvar_num(g_LFMONEY)) set_score(id,isHit,hitscore,iHitHP) }else { if(get_pcvar_num(g_LFF)) { emit_sound(isHit, CHAN_WEAPON, ENT_SOUND4, 1.0, ATTN_NORM, 0, PITCH_NORM ) hitscore = -1 cs_set_user_money(id,cs_get_user_money(id) - get_pcvar_num(g_LFMONEY)) set_score(id,isHit,hitscore,iHitHP) } } }else if(iHitTeam != teamid || get_pcvar_num(g_LFF)) { emit_sound(isHit, CHAN_WEAPON, ENT_SOUND4, 1.0, ATTN_NORM, 0, PITCH_NORM ) set_user_health(isHit,iHitHP) set_pev(iCurrent,LASERMINE_HITING,isHit); engfunc(EngFunc_MessageBegin,MSG_ONE_UNRELIABLE,g_msgDamage,{0.0,0.0,0.0},isHit); write_byte(get_pcvar_num(g_LDMG)) write_byte(get_pcvar_num(g_LDMG)) write_long(DMG_BULLET) engfunc(EngFunc_WriteCoord,vOrigin[0]) engfunc(EngFunc_WriteCoord,vOrigin[1]) engfunc(EngFunc_WriteCoord,vOrigin[2]) message_end() } }else if(equal(szClassName, ENT_CLASS_NAME3)) { new hl; hl = pev_user_health(isHit); set_user_health(isHit,hl-get_pcvar_num(g_LDMG)); } return PLUGIN_CONTINUE } stock pev_user_health(id) { new Float:health pev(id,pev_health,health) return floatround(health) } stock set_user_health(id,health) { health > 0 ? set_pev(id, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, id); } stock get_user_godmode(index) { new Float:val pev(index, pev_takedamage, val) return (val == DAMAGE_NO) } stock set_user_frags(index, frags) { set_pev(index, pev_frags, float(frags)) return 1 } stock pev_user_frags(index) { new Float:frags; pev(index,pev_frags,frags); return floatround(frags); } set_score(id,target,hitscore,HP){ new idfrags = pev_user_frags(id) + hitscore// get_user_frags(id) + hitscore set_user_frags(id,idfrags) //set_user_frags(id, idfrags) //entity_set_float(id, EV_FL_frags, float(idfrags)) new tarfrags = pev_user_frags(target) + 1 //get_user_frags(target) + 1 set_user_frags(target,tarfrags) //set_user_frags(target,tarfrags) //entity_set_float(target, EV_FL_frags, float(tarfrags)) new idteam = int:cs_get_user_team(id) new iddeaths = cs_get_user_deaths(id) message_begin(MSG_ALL, g_msgDeathMsg, {0, 0, 0} ,0) write_byte(id) write_byte(target) write_byte(0) write_string(ENT_CLASS_NAME) message_end() message_begin(MSG_ALL, g_msgScoreInfo) write_byte(id) write_short(idfrags) write_short(iddeaths) write_short(0) write_short(idteam) message_end() set_msg_block(g_msgDeathMsg, BLOCK_ONCE) //entity_set_float(target, EV_FL_health,float(HP)) set_user_health(target, HP) //set_pev(target,pev_health,HP) } public BuyLasermine(id) { if( !CanCheck(id,1) ) return PLUGIN_CONTINUE cs_set_user_money(id,cs_get_user_money(id) - get_pcvar_num(g_LCOST)) g_havemine[id]++; client_print(id, print_chat, "%s %s",CHATTAG,STR_BOUGHT) emit_sound(id, CHAN_ITEM, ENT_SOUND5, VOL_NORM, ATTN_NORM, 0, PITCH_NORM) ShowAmmo(id) return PLUGIN_HANDLED } ShowAmmo(id) { new ammo[51] formatex(ammo, 50, "%s %i/%i",STR_STATE, g_havemine[id],get_pcvar_num(g_LAMMO)) message_begin(MSG_ONE, g_msgStatusText, {0,0,0}, id) write_byte(0) write_string(ammo) message_end() } public showInfo(id) { client_print(id, print_chat, STR_REF) } public say_lasermine(id){ new said[32] read_argv(1,said,31); if( !get_pcvar_num( g_LENABLE ) ){ // client_print(id, print_chat, "%s Lasermines are not currently active.",CHATTAG) return PLUGIN_CONTINUE } if (equali(said,"/buy lasermine")||equali(said,"/lm")){ BuyLasermine(id) }else if (equali(said, "lasermine") || equali(said, "/lasermine")){ const SIZE = 1024 new msg[SIZE+1],len = 0; len += formatex(msg[len], SIZE - len, "<html><body>") len += formatex(msg[len], SIZE - len, "<p><b>LaserMine</b></p><br/><br/>") len += formatex(msg[len], SIZE - len, "<p>You can be setting the mine on the wall.</p><br/>") len += formatex(msg[len], SIZE - len, "<p>That laser will give what touched it damage.</p><br/><br/>") len += formatex(msg[len], SIZE - len, "<p><b>LaserMine Commands</b></p><br/><br/>") len += formatex(msg[len], SIZE - len, "<p><b>Say /buy lasermine</b> or <b>Say /lm</b> //buying lasermine<br/>") len += formatex(msg[len], SIZE - len, "<b>buy_lasermine</b> //bind ^"F2^" buy_lasermine : using F2 buying lasermine<br/>") len += formatex(msg[len], SIZE - len, "<b>+setlaser</b> //bind mouse3 +setlaser : using mouse3 set lasermine on wall<br/>") len += formatex(msg[len], SIZE - len, "</body></html>") show_motd(id, msg, "Lasermine Entity help") return PLUGIN_CONTINUE } else if (containi(said, "laser") != -1) { showInfo(id) return PLUGIN_CONTINUE } return PLUGIN_CONTINUE } public standing(id) { if (!g_settinglaser[id]) return PLUGIN_CONTINUE set_pev(id, pev_maxspeed, 1.0) // ShowAmmo(id) return PLUGIN_CONTINUE } public ltm_PostThink(id) { if (!g_settinglaser[id] && plsetting[id]){ resetspeed(id) } else if (g_settinglaser[id] && !plsetting[id]) { pev(id, pev_maxspeed,plspeed[id]) set_pev(id, pev_maxspeed, 1.0) } plsetting[id] = g_settinglaser[id] return FMRES_IGNORED } public ltm_PreThink(id) { if (!pev_user_alive(id) || g_settinglaser[id] == true || is_user_bot(id) || get_pcvar_num(g_LCMDMODE) == 1) return FMRES_IGNORED; if(pev(id, pev_button ) & IN_USE && !(pev(id, pev_oldbuttons ) & IN_USE )) //client_print(id,print_chat,"test"); CreateLaserMine_Progress(id) return FMRES_IGNORED; } resetspeed(id) { set_pev(id, pev_maxspeed, plspeed[id]) } public client_putinserver(id){ g_deployed[id] = 0; g_havemine[id] = 0; DeleteTask(id); return PLUGIN_CONTINUE } public client_disconnect(id){ if(!get_pcvar_num( g_LENABLE )) return PLUGIN_CONTINUE DeleteTask(id); RemoveAllTripmines(id); return PLUGIN_CONTINUE } public newround(id){ if(!get_pcvar_num( g_LENABLE )) return PLUGIN_CONTINUE pev(id, pev_maxspeed,plspeed[id]) DeleteTask(id); RemoveAllTripmines(id); delaycount(id); SetStartAmmo(id); return PLUGIN_CONTINUE } public DeathEvent(){ if(!get_pcvar_num( g_LENABLE )) return PLUGIN_CONTINUE new id = read_data(2) if(is_user_connected(id)) DeleteTask(id); return PLUGIN_CONTINUE } public RemoveAllTripmines( i_Owner ) { new iEnt = g_MaxPL + 1; new clsname[32]; while( ( iEnt = engfunc( EngFunc_FindEntityByString, iEnt, "classname", ENT_CLASS_NAME ) ) ) { if ( i_Owner ) { if( pev( iEnt, LASERMINE_OWNER ) != i_Owner ) continue; clsname[0] = '^0' pev( iEnt, pev_classname, clsname, sizeof(clsname)-1 ); if ( equali( clsname, ENT_CLASS_NAME ) ) { PlaySound( iEnt, STOP_SOUND ); RemoveEntity( iEnt ); } } else set_pev( iEnt, pev_flags, FL_KILLME ); } g_deployed[i_Owner]=0; } SetStartAmmo(id) { new stammo = get_pcvar_num(g_LSTAMMO); if(stammo <= 0) return PLUGIN_CONTINUE; g_havemine[id] = (g_havemine[id] <= stammo) ? stammo : g_havemine[id]; return PLUGIN_CONTINUE; } public CutDeploy_onDamage(id) { if(get_user_health(id) < 1) DeleteTask(id); } #if defined BIOHAZARD_SUPPORT public event_infect2(id) { DeleteTask(id); return PLUGIN_CONTINUE } #endif DeleteTask(id) { if (task_exists((TASK_PLANT + id))) { remove_task((TASK_PLANT + id)) } if (task_exists((TASK_RELEASE + id))) { remove_task((TASK_RELEASE + id)) } g_settinglaser[id] = false return PLUGIN_CONTINUE; } stock set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16) { static 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 } // Gets offset data get_offset_value(id, type) { new key = -1; switch(type) { case OFFSET_TEAM: key = OFFSET_TEAM; case OFFSET_MONEY: { #if defined UL_MONEY_SUPPORT return cs_get_user_money_ul(id); #else key = OFFSET_MONEY; #endif } case OFFSET_DEATH: key = OFFSET_DEATH; } if(key != -1) { if(is_amd64_server()) key += 25; return get_pdata_int(id, key); } return -1; } // Sets offset data set_offset_value(id, type, value) { new key = -1; switch(type) { case OFFSET_TEAM: key = OFFSET_TEAM; case OFFSET_MONEY: { #if defined UL_MONEY_SUPPORT return cs_set_user_money_ul(id, value); #else key = OFFSET_MONEY; // Send Money message to update player's HUD message_begin(MSG_ONE_UNRELIABLE, g_msgMoney, {0,0,0}, id); write_long(value); write_byte(1); // Flash (difference between new and old money) message_end(); #endif } case OFFSET_DEATH: key = OFFSET_DEATH; } if(key != -1) { if(is_amd64_server()) key += 25; set_pdata_int(id, key, value); } return PLUGIN_CONTINUE; }
[color=#FF4000]Rase Human New
Descriere :[/b] : Acest plugin este unul de rase pentru Human , anume 5 rase cu skinuri diferite , si cu skinuri de maini diferite , dar nu in ultimul rand si puteri diferite (gravity , speed , damage , invizibility , vip cu toate atributiile)
[b]Autor :[/color] : sPuF? aka Askhanar
- | Afiseaza codul
#include <amxmodx> #include <cstrike> #include <engine> #include <fun> #include <hamsandwich> #pragma semicolon 1 #define FLASH_SPEED 350.0 // viteza care o are Flash #define HULK_GRAVITY 0.75 // gravitatea setata lui hulk ( 1.0 = 800 ) #define PREDATOR_MULTIPLY 1.8 // damage facut inmultit cu 1.5 sau cat pui. #define ELF_INVISIBILITY 76 // ( 0 - 255 ) 2.55 este aproximativ 1% deci 76 vine cam 30% vizibil #define PLUGIN "Plugin Nou" #define VERSION "1.0" new const Models[ 6 ][ ] = { "", //Null "kaili", //Flash "grafff", //Hulk "termi", //Predator "elfzoor", //Elf "vip_skin_aaa" //Vip }; new const kModels[ 6 ][ ] = { "", //Null "models/v_flasher.mdl", //Flash "models/v_grafff.mdl", //Hulk "models/v_termiii.mdl", //Predator "models/v_elfwow.mdl", //Elf "models/v_viaiiipi.mdl" //Vip }; new const MenuName[ ] = " \wRase \rHuman^n"; new const NumeSite[ ] = "\yRase Human"; new bool:UserIsFlash[ 33 ]; new bool:UserIsHulk[ 33 ]; new bool:UserIsPredator[ 33 ]; new bool:UserIsElf[ 33 ]; new bool:UserIsVIp[ 33 ]; new bool:UserChoosed[ 33 ]; public plugin_precache( ) { new ModelPath[ 64 ]; for( new i = 1; i < 6; i++ ) { formatex( ModelPath, sizeof ( ModelPath ) -1, "models/player/%s/%s.mdl", Models[ i ], Models[ i ] ); precache_model( ModelPath ); } for( new i = 1; i < 6; i++ ) { precache_model( kModels[ i ] ); } } public plugin_cfg( ) set_cvar_float( "sv_maxspeed", FLASH_SPEED ); public plugin_init( ) { register_plugin( PLUGIN, VERSION, "Askhanar" ); register_clcmd( "say /race", "sayRace" ); RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", true ); RegisterHam( Ham_TakeDamage, "player", "Ham_PlayerTakeDamage", false ); register_event( "CurWeapon", "evCurWeapon", "be", "1=1" ); register_event( "HLTV", "evHookRoundStart", "a", "1=0", "2=0" ); } public client_connect(id) { SetCl_Settings( id , 0 ); UserIsFlash[ id ] = false; UserIsHulk[ id ] = false; UserIsPredator[ id ] = false; UserIsElf[ id ] = false; UserIsVIp[ id ] = false; UserChoosed[ id ] = false; } public client_disconnect(id) { SetCl_Settings( id, 0 ); UserIsFlash[ id ] = false; UserIsHulk[ id ] = false; UserIsPredator[ id ] = false; UserIsElf[ id ] = false; UserIsVIp[ id ] = false; UserChoosed[ id ] = false; } public sayRace( id ) { if( UserChoosed[ id ] ) { client_print( id, print_chat, "* Ti-ai ales deja rasa runda aceasta !" ); return 1; } if( cs_get_user_team( id ) == CS_TEAM_CT ) MainMenu( id ); return 0; } public Ham_PlayerSpawnPost( id ) { if( !is_user_alive( id ) || UserChoosed[ id ] ) return HAM_IGNORED; if( UserChoosed[ id ] ) { client_print( id, print_chat, "* Ti-ai ales deja rasa runda aceasta !" ); return HAM_IGNORED; } ResetUserSettings( id ); if( cs_get_user_team( id ) == CS_TEAM_CT ) MainMenu( id ); cs_reset_user_model( id ); return HAM_IGNORED; } public Ham_PlayerTakeDamage( id, iInflictor, iAttacker, Float:flDamage, bitsDamageType ) { if( !iAttacker || id == iAttacker || !is_user_connected( iAttacker ) || !is_user_connected( id ) || get_user_team( id ) == get_user_team( iAttacker ) || !UserIsPredator[ iAttacker ] || !UserIsVIp[ id ] ) return HAM_IGNORED; SetHamParamFloat( 4, flDamage * PREDATOR_MULTIPLY ); return HAM_IGNORED; } public evCurWeapon( id ) { if( is_user_alive( id ) ) { if( cs_get_user_team( id ) == CS_TEAM_CT ) { new clip, ammo, wpnid = get_user_weapon( id, clip, ammo ); if( wpnid == CSW_KNIFE ) { if( UserIsFlash[ id ] ) { entity_set_string( id, EV_SZ_viewmodel, kModels[ 1 ] ); } else if( UserIsHulk[ id ] ) { entity_set_string( id, EV_SZ_viewmodel, kModels[ 2 ] ); } else if( UserIsPredator[ id ] ) { entity_set_string( id, EV_SZ_viewmodel, kModels[ 3 ] ); } else if( UserIsElf[ id ] ) { entity_set_string( id, EV_SZ_viewmodel, kModels[ 4 ] ); } else if( UserIsVIp[ id ] ) { entity_set_string( id, EV_SZ_viewmodel, kModels[ 5 ] ); } } } } return 0; } public evHookRoundStart( ) { new iPlayers[ 32 ]; new iPlayersNum; get_players( iPlayers, iPlayersNum, "ch" ); for( new i = 0 ; i < iPlayersNum ; i++ ) { UserChoosed[ iPlayers[ i ] ] = false; } } public client_PreThink( id ) { if( is_user_alive( id ) && is_user_connected( id ) && cs_get_user_team( id ) == CS_TEAM_CT ) { if( UserIsFlash[ id ] || UserIsVIp[ id ] ) { set_user_maxspeed( id, FLASH_SPEED ); } } } public MainMenu( id ) { new menu = menu_create( MenuName, "MainMenuHandler" ); menu_additem( menu, "SpeeD QueeN \r[\yViteza Mare \w+ \yM4a1 \w+ \yDeagle\r]", "1", 0 ); menu_additem( menu, "GraFFeR Boy \r[\yGravitatie \w+ \yAk47 \w+ \yDeagle\r]", "2", 0 ); menu_additem( menu, "TerminaToR \r[\yDamage Ridicat \w+ \yM249 \w+ \yUsp\r]", "3", 0 ); menu_additem( menu, "ELF \r[\yInvizibilitate \w+ \yM4a1 \w+ \yUsp\r]^n", "4", 0 ); menu_additem( menu, "\rV\wi\rp \w[\rGravitatie \y+ \rViteza \y+ \rInvizibilitate \y+ \rDamage Dublu \y+ \rALL WEAPONS\w]", "5", 0 ); menu_setprop( menu, MPROP_EXITNAME, NumeSite ); menu_display( id, menu, 0 ); } /*=======================================================================================s=P=u=f=?*/ public MainMenuHandler( id, menu, item ) { if( item == MENU_EXIT ) { set_task( 0.1, "MainMenu", id ); return 1; } if( cs_get_user_team( id ) != CS_TEAM_CT ) return 1; new data[ 6 ], iName[ 64 ]; new iaccess, callback; menu_item_getinfo( menu, item, iaccess, data, 5, iName, sizeof ( iName ) -1, callback ); new key = str_to_num( data ); switch( key ) { case 1: { UserChoosed[ id ] = true; ResetUserSettings( id ); GiveUserPower( id, 1 ); cs_set_user_model( id, Models[ 1 ] ); give_item(id, "weapon_m4a1"); cs_set_user_bpammo ( id, CSW_M4A1, 999); give_item(id, "weapon_deagle"); cs_set_user_bpammo ( id, CSW_DEAGLE, 999); engclient_cmd( id, "weapon_knife" ); return 1; } case 2: { UserChoosed[ id ] = true; ResetUserSettings( id ); GiveUserPower( id, 2 ); cs_set_user_model( id, Models[ 2 ] ); give_item(id, "weapon_ak47"); cs_set_user_bpammo ( id, CSW_AK47, 999); give_item(id, "weapon_deagle"); cs_set_user_bpammo ( id, CSW_DEAGLE, 999); engclient_cmd( id, "weapon_knife" ); return 1; } case 3: { UserChoosed[ id ] = true; ResetUserSettings( id ); GiveUserPower( id, 3 ); cs_set_user_model( id, Models[ 3 ] ); give_item(id, "weapon_m249"); cs_set_user_bpammo ( id, CSW_M249, 999); give_item(id, "weapon_usp"); cs_set_user_bpammo ( id, CSW_USP, 999); engclient_cmd( id, "weapon_knife" ); return 1; } case 4: { UserChoosed[ id ] = true; ResetUserSettings( id ); GiveUserPower( id, 4 ); cs_set_user_model( id, Models[ 4 ] ); give_item(id, "weapon_m4a1"); cs_set_user_bpammo ( id, CSW_M4A1, 999); give_item(id, "weapon_usp"); cs_set_user_bpammo ( id, CSW_USP, 999); engclient_cmd( id, "weapon_knife" ); return 1; } case 5: { if( UserIsVip( id ) ) { UserChoosed[ id ] = true; ResetUserSettings( id ); GiveUserPower( id, 5 ); cs_set_user_model( id, Models[ 5 ] ); give_item(id, "weapon_ak47"); cs_set_user_bpammo ( id, CSW_AK47, 999); give_item(id, "weapon_deagle"); cs_set_user_bpammo ( id, CSW_DEAGLE, 999); give_item(id, "weapon_m249"); cs_set_user_bpammo ( id, CSW_M249, 999); give_item(id, "weapon_m4a1"); cs_set_user_bpammo ( id, CSW_M4A1, 999); give_item(id, "weapon_usp"); cs_set_user_bpammo ( id, CSW_USP, 999); engclient_cmd( id, "weapon_knife" ); return 1; } else { MainMenu( id ); return 1; } } } return 0; } public GiveUserPower( id, const Class ) { switch( Class ) { case 1: { //slow hacking ?:O SetCl_Settings( id, 1 ); set_user_maxspeed( id, FLASH_SPEED ); UserIsFlash[ id ] = true; return 1; } case 2: { set_user_gravity( id, HULK_GRAVITY ); UserIsHulk[ id ] = true; return 1; } case 3: { UserIsPredator[ id ] = true; return 1; } case 4: { set_user_rendering( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, ELF_INVISIBILITY ); UserIsElf[ id ] = true; return 1; } case 5: { //Il facem Flash SetCl_Settings( id, 1 ); set_user_maxspeed( id, FLASH_SPEED ); //Il facem Hulk set_user_gravity( id, HULK_GRAVITY ); //Il facem Predator //Il facem Elf set_user_rendering( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, ELF_INVISIBILITY ); UserIsVIp[ id ] = true; return 1; } } return 0; } public ResetUserSettings( id ) { if( UserIsFlash[ id ] ) set_user_maxspeed( id, 255.0 ); if( UserIsHulk[ id ] ) set_user_gravity( id, 1.0 ); if( UserIsElf[ id ] ) set_user_rendering( id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0 ); if( UserIsVIp[ id ] ) { set_user_maxspeed( id, 255.0 ); set_user_gravity( id, 1.0 ); set_user_rendering( id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0 ); } SetCl_Settings( id, 0 ); UserIsFlash[ id ] = false; UserIsHulk[ id ] = false; UserIsPredator[ id ] = false; UserIsElf[ id ] = false; UserIsVIp[ id ] = false; } public SetCl_Settings( id, const OnOff ) { if( OnOff > 0 ) { client_cmd( id, "cl_backspeed %.1f", FLASH_SPEED ); client_cmd( id, "cl_forwardspeed %.1f", FLASH_SPEED ); client_cmd( id, "cl_sidespeed %.1f", FLASH_SPEED ); return 1; } client_cmd( id, "cl_backspeed 400" ); client_cmd( id, "cl_forwardspeed 400" ); client_cmd( id, "cl_sidespeed 400" ); return 0; } stock bool:UserIsVip( id ) { if( get_user_flags( id ) & read_flags( "a" ) ) return true; return false; }
[color=#FF4000]Credite
Descriere :[/b] : Acest plugin este un fel de shop cu credite , anume are multe iteme gen catarare pe pereti , hp , etc , care le cumperi cu credite , un credit il primesti la un interval de timp prestabilit , iar itemele stau pe tine toata harta !
[b]Autor :[/color] : atambo + e t n a d ( editare , rezolvare bug gravity + traducere )
Sma :
- | Afiseaza codul
#define VER "1.0.4" //Amount of credits new players get #define numnewcredits 4 //Time Per Credit (in seconds) #define credittime 600 //How much the passive upgrades cost #define armorcost 1 #define hpcost 999 #define speedcost 1 //#define gravitycost 2 #define stealthcost 1 #define multijumpcost 2 //How much the passive upgrades adds #define armorperbuy 10 #define hpperbuy 10 #define speedperbuy 20 //eg. 0.05 it will take off 5% of the users gravity //#define gravityperbuy 0.1 //eg. (stealthperbuy = 60) times (stealthmaxlvl = 3) = 180 // the value must be lower than the defaultstealth #define defaultstealth 200 #define stealthperbuy 20 //How much the passive upgrades Max Level #define armormaxlvl 5 #define hpmaxlvl 1 #define speedmaxlvl 5 //#define gravitymaxlvl 5 #define stealthmaxlvl 10 #define multijumpmaxlvl 3 //Item Upgrades //max items #define maxitems 6 //max credits spent per map #define maxcredits 15 //First Aid Regeneration #define regenerationrate 4.5 // health regeneration points #define hpregenp 5 // armor regeneration points #define apregenp 8 // First Aid cost #define regenerationcost 1 //Battle Aura cost #define hpscost 1 //Weapon Training cost #define weapontrainingcost 2 //Jump Module cost #define jumpmodulecost 1 //Climb Gear cost #define climbgearcost 1 //Promotion cost #define promocost 1 //Unlimited Ammo cost #define unlacost 1 //Stealth Shoe cost #define sshoecost 1 //C4 Wired Explosives #define BOMBKILL_RANGE 350 #define wiredc4ecost 15 //E.S.P cost #define espcost 2 //Laser Pointer #define lasercost 1 //Super Grenade cost #define sgrencost 1 //Crowbar cost #define crowbarcost 1 //Flash Protection #define flashcost 1 #include <amxmodx> #include <amxmisc> #include <engine> #include <cstrike> #include <fun> #include <vault> #define BOMB_TASK 1234 new connecttime[33] new lastplaytime[33] new creditsspent[33] new Armor[33] new Health[33] new Speed[33] //new Gravity[33] new Stealth[33] new hpstlr[33] new regeneration[33] new weapontraining[33] new jumpmodule[33] new climb[33] new promotion[33] new gHasuammo[33] new sshoe[33] new wired[33] new esp[33] new laser[33] new sgrenade[33] new crowbar[33] new flash[33] new multijump[33] new jumpnum[33] new itemcap[33] new bool:dojump[33] = false new bool:speed = true new hudmsg[512] new smoke, white, fire public plugin_init() { register_plugin("Credit Mod", VER, "atambo") register_cvar("amx_upgrades", "1") register_menu("Main Upgrades Menu", 1023, "MainMenuCommand") register_menu("Passive Upgrade Menu", 1023, "actionMenu") register_menu("Item Upgrade Menu", 1023, "EUAMenu") register_menu("Item 2 Upgrade Menu", 1023, "EUA2Menu") register_clcmd("say", "handlesay") register_clcmd("say_team", "handlesay") register_clcmd("upgrade", "MainUpgradesMenu") register_concmd("amx_querycredits","queryall",ADMIN_CVAR," -displays <name> <credits>") register_concmd("amx_givecredits","givecredit",ADMIN_BAN," <name or #userid> <credits>") register_concmd("amx_removecredits","removecredit",ADMIN_BAN," <name or #userid> <credits>") register_event("ResetHUD","newRound","be") register_event("StatusValue","show_status","bd","1=2") register_event("DeathMsg", "death_event", "a") register_event("CurWeapon","update","be","1=1") register_event("Damage", "Event_Damage", "be", "2!0") register_event("ScreenFade","flashcheck","be","4=255","5=255","6=255","7>199") server_cmd("sv_maxspeed 1500") } public client_connected_msg(id) { client_print(id, print_chat, "[Credite] Acest server foloseste CREDITE , configurat de e t n a d .", VER) client_print(id, print_chat, "Pentru a cumpara apasa pe B sau scrie /buy in chat.", VER) } public client_putinserver(id) { if(get_cvar_num("amx_upgrades") == 1) set_task(20.0, "client_connected_msg", id) } public flashcheck(id) { if(flash[id] > 0) { message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id) write_short(~0) write_short(~0) write_short(1<<12) write_byte(0) write_byte(0) write_byte(0) write_byte(0) message_end() return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public newRound(id) { if(get_cvar_num("amx_upgrades") == 0) { itemcap[id] = 0 Armor[id] = 0 Health[id] = 0 Speed[id] = 0 //Gravity[id] = 0 Stealth[id] = 0 hpstlr[id] = 0 regeneration[id] = 0 weapontraining[id] = 0 jumpmodule[id] = 0 climb[id] = 0 promotion[id] = 0 gHasuammo[id] = 0 sshoe[id] = 0 wired[id] = 0 esp[id] = 0 laser[id] = 0 sgrenade[id] = 0 crowbar[id] = 0 creditsspent[id] = 0 flash[id] = 0 jumpnum[id] = 0 multijump[id] = 0 set_user_footsteps(id, 0) set_user_rendering(id,kRenderFxNone,0,0,0,kRenderNormal,0) return PLUGIN_CONTINUE } else { if(is_user_alive(id)) { if(Armor[id] > 0) { new iap = (Armor[id] * armorperbuy) set_user_armor(id, 100 + iap) } if(Health[id] > 0) { new ihp = (Health[id] * hpperbuy) set_user_health(id, 100 + ihp) } if(promotion[id] > 0) cs_set_user_money(id, cs_get_user_money(id) * 2, 1) if(esp[id] > 0) set_task(3.0, "esploop", id, "", 0, "b") if(climb[id] > 0) set_task(0.1, "cwall", id, "", 0, "b") if(regeneration[id] > 0) firstaid(id) if(sgrenade[id] > 0) { sgrenade[id] = 0 itemcap[id]-- } if(wired[id] > 0) { wired[id] = 0 itemcap[id]-- } } show_all_upgrades(id) speed = false set_task(get_cvar_float("mp_freezetime"), "allow_speed", 0) } return PLUGIN_CONTINUE } public show_status(id) { if(get_cvar_num("amx_upgrades") != 1) return PLUGIN_CONTINUE new target = read_data(2) if(target != id && target != 0) { new name[32] get_user_name(target, name,31) new len = format(hudmsg, 511, "%s's^nPassive Upgrades:^n", name) len += format(hudmsg[len], 511-len, "*Armor %d/%d^n*Health %d/%d^n*Speed %d/%d^n*Stealth %d/%d^n*MultiJump %d/%d^n", Armor[target], armormaxlvl, Health[target], hpmaxlvl, Speed[target], speedmaxlvl, Stealth[target], stealthmaxlvl, multijump[target], multijumpmaxlvl) len += format(hudmsg[len], 511-len, "^nItem Upgrades:^n") if(hpstlr[target] > 0) len += format(hudmsg[len], 511-len, "Battle Aura^n") if(regeneration[target] > 0) len += format(hudmsg[len], 511-len, "First Aid^n") if(weapontraining[target] > 0) len += format(hudmsg[len], 511-len, "Weapon Training^n") if(jumpmodule[target] > 0) len += format(hudmsg[len], 511-len, "Jump Module^n") if(climb[target] > 0) len += format(hudmsg[len], 511-len, "Climbing Gear^n") if(promotion[target] > 0) len += format(hudmsg[len], 511-len, "Promotion^n") if(gHasuammo[target] > 0) len += format(hudmsg[len], 511-len, "Unlimited Ammo^n") if(sshoe[target] > 0) len += format(hudmsg[len], 511-len, "Stealth Shoes^n") if(wired[target] > 0) len += format(hudmsg[len], 511-len, "Wired C4 Explosive^n") if(esp[target] > 0) len += format(hudmsg[len], 511-len, "E.S.P^n") if(laser[target] > 0) len += format(hudmsg[len], 511-len, "Laser Pointer^n") if(sgrenade[target] > 0) len += format(hudmsg[len], 511-len, "Super Grenade^n") if(crowbar[target] > 0) len += format(hudmsg[len], 511-len, "Crowbar^n") if(flash[target] > 0) len += format(hudmsg[len], 511-len, "Flash Protection^n") len += format(hudmsg[len], 511-len, "^nCredits: %i",connecttime[target]/credittime) set_hudmessage(255, 0, 255, 0.0, 0.2, 0, 6.0, 6.0, 0.5, 0.15, 1) show_hudmessage(id, hudmsg) } return PLUGIN_CONTINUE } public show_all_upgrades(id) { new len = format(hudmsg, 511, "Passive Upgrades:^n") len += format(hudmsg[len], 511-len, "*Armor %d/%d^n*Health %d/%d^n*Speed %d/%d^n*Stealth %d/%d^n*MultiJump %d/%d^n", Armor[id], armormaxlvl, Health[id], hpmaxlvl, Speed[id], speedmaxlvl, Stealth[id], stealthmaxlvl, multijump[id], multijumpmaxlvl) len += format(hudmsg[len], 511-len, "^nItem Upgrades:^n") if(hpstlr[id] > 0) len += format(hudmsg[len], 511-len, "Battle Aura^n") if(regeneration[id] > 0) len += format(hudmsg[len], 511-len, "First Aid^n") if(weapontraining[id] > 0) len += format(hudmsg[len], 511-len, "Weapon Training^n") if(jumpmodule[id] > 0) len += format(hudmsg[len], 511-len, "Jump Module^n") if(climb[id] > 0) len += format(hudmsg[len], 511-len, "Climbing Gear^n") if(promotion[id] > 0) len += format(hudmsg[len], 511-len, "Promotion^n") if(gHasuammo[id] > 0) len += format(hudmsg[len], 511-len, "Unlimited Ammo^n") if(sshoe[id] > 0) len += format(hudmsg[len], 511-len, "Stealth Shoes^n") if(wired[id] > 0) len += format(hudmsg[len], 511-len, "Wired C4 Explosive^n") if(esp[id] > 0) len += format(hudmsg[len], 511-len, "E.S.P^n") if(laser[id] > 0) len += format(hudmsg[len], 511-len, "Laser Pointer^n") if(sgrenade[id] > 0) len += format(hudmsg[len], 511-len, "Super Grenade^n") if(crowbar[id] > 0) len += format(hudmsg[len], 511-len, "Crowbar^n") if(flash[id] > 0) len += format(hudmsg[len], 511-len, "Flash Protection^n") len += format(hudmsg[len], 511-len, "^nCredits: %i",connecttime[id]/credittime) set_hudmessage(255, 0, 255, 0.0, 0.1, 0, 6.0, 6.0, 0.5, 0.15, 1) show_hudmessage(id, hudmsg) } public show_upgrades(id) { new len = format(hudmsg, 511, "Passive Upgrades:^n") len += format(hudmsg[len], 511-len, "*Armor %d/%d^n*Health %d/%d^n*Speed %d/%d^n*Stealth %d/%d^n*MultiJump %d/%d", Armor[id], armormaxlvl, Health[id], hpmaxlvl, Speed[id], speedmaxlvl, Stealth[id], stealthmaxlvl, multijump[id], multijumpmaxlvl) set_hudmessage(255, 0, 255, 0.0, 0.1, 0, 6.0, 6.0, 0.5, 0.15, 1) show_hudmessage(id, hudmsg) } public show_iupgrades(id) { new len = format(hudmsg, 511, "Item Upgrades:^n") if(hpstlr[id] > 0) len += format(hudmsg[len], 511-len, "Battle Aura^n") if(regeneration[id] > 0) len += format(hudmsg[len], 511-len, "First Aid^n") if(weapontraining[id] > 0) len += format(hudmsg[len], 511-len, "Weapon Training^n") if(jumpmodule[id] > 0) len += format(hudmsg[len], 511-len, "Jump Module^n") if(climb[id] > 0) len += format(hudmsg[len], 511-len, "Climbing Gear^n") if(promotion[id] > 0) len += format(hudmsg[len], 511-len, "Promotion^n") if(gHasuammo[id] > 0) len += format(hudmsg[len], 511-len, "Unlimited Ammo^n") if(sshoe[id] > 0) len += format(hudmsg[len], 511-len, "Stealth Shoes^n") if(wired[id] > 0) len += format(hudmsg[len], 511-len, "Wired C4 Explosive^n") if(esp[id] > 0) len += format(hudmsg[len], 511-len, "E.S.P^n") if(laser[id] > 0) len += format(hudmsg[len], 511-len, "Laser Pointer^n") if(sgrenade[id] > 0) len += format(hudmsg[len], 511-len, "Super Grenade^n") if(crowbar[id] > 0) len += format(hudmsg[len], 511-len, "Crowbar^n") if(flash[id] > 0) len += format(hudmsg[len], 511-len, "Flash Protection^n") set_hudmessage(255, 0, 255, 0.0, 0.1, 0, 6.0, 6.0, 0.5, 0.15, 1) show_hudmessage(id, hudmsg) } public allow_speed() { speed = true return PLUGIN_HANDLED } public death_event() { new id = read_data(2) new enemy = read_data(1) remove_task(id) if(wired[id] > 0) { wired[id] = 0 itemcap[id]-- } if(sgrenade[enemy] > 0) { sgrenade[enemy] = 0 itemcap[enemy]-- } if(task_exists(BOMB_TASK + id)) remove_task(BOMB_TASK + id) if(promotion[enemy] > 0) cs_set_user_money(enemy, cs_get_user_money(enemy) + 300, 1) return PLUGIN_CONTINUE } public client_disconnect(id) { Armor[id] = 0 Health[id] = 0 Speed[id] = 0 //Gravity[id] = 0 Stealth[id] = 0 hpstlr[id] = 0 regeneration[id] = 0 weapontraining[id] = 0 jumpmodule[id] = 0 climb[id] = 0 promotion[id] = 0 gHasuammo[id] = 0 sshoe[id] = 0 wired[id] = 0 esp[id] = 0 laser[id] = 0 sgrenade[id] = 0 crowbar[id] = 0 itemcap[id] = 0 creditsspent[id] = 0 lastplaytime[id] = 0 flash[id] = 0 jumpnum[id] = 0 multijump[id] = 0 remove_task(id) new authid[32] new playtime = (get_user_time(id) - lastplaytime[id]) get_user_authid(id,authid,31) new tmp_vault_time,vault_time[21] get_vaultdata(authid,vault_time,20) tmp_vault_time = str_to_num(vault_time) tmp_vault_time += playtime num_to_str(tmp_vault_time,vault_time,20) set_vaultdata(authid,vault_time) return PLUGIN_CONTINUE } public handlesay(id) { new arg[64], arg1[32], arg2[32] read_args(arg,63) remove_quotes(arg) strtok(arg,arg1,255,arg2,255,' ',1) trim(arg2) if(arg1[0] == '/') { if(equali(arg1, "/buy") == 1 || equali(arg1, "/shop") == 1 || equali(arg1, "/upgrade") == 1) { MainUpgradesMenu(id) return PLUGIN_CONTINUE } if(equali(arg1, "/credite") == 1 || equali(arg1, "/credit") == 1) { new authid[32] new playtime = (get_user_time(id) - lastplaytime[id]) lastplaytime[id] = get_user_time(id) get_user_authid(id,authid,31) new tmp_vault_time,vault_time[21] get_vaultdata(authid,vault_time,20) tmp_vault_time = str_to_num(vault_time) tmp_vault_time += playtime connecttime[id] = tmp_vault_time num_to_str(tmp_vault_time,vault_time,20) set_vaultdata(authid,vault_time) new tmp_minutes = floatround(float(connecttime[id]/60),floatround_floor) new minutes = tmp_minutes % (credittime/60) client_print(id,print_chat,"Ai %i credite (in %i minute o sa primesti inca un credit)",connecttime[id]/credittime,(credittime/60)-minutes) return PLUGIN_CONTINUE } if(equali(arg1,"/donate") == 1 || equali(arg1,"/givecredit") == 1) { new authid[32] new playtime = (get_user_time(id) - lastplaytime[id]) lastplaytime[id] = get_user_time(id) get_user_authid(id,authid,31) new tmp_vault_time,vault_time[21] get_vaultdata(authid,vault_time,20) tmp_vault_time = str_to_num(vault_time) tmp_vault_time += playtime connecttime[id] = tmp_vault_time num_to_str(tmp_vault_time,vault_time,20) set_vaultdata(authid,vault_time) if(is_user_alive(id) == 0) { client_print(id,print_chat," Trebe sa fi viu ca sa folosesti aceasta comanda.") return PLUGIN_CONTINUE } new credits credits = str_to_num(arg2) if(credits <= 0) { client_print(id,print_chat," Trebe sa precizezi o valoare (minim un credit)") return PLUGIN_CONTINUE } new player, body, Float:dist = get_user_aiming(id,player,body,9999) if(player == 0 || player > 32 || is_user_connected(player) == 0 || is_user_alive(player) == 0) { client_print(id,print_chat," Acest jucator nu exista.") return PLUGIN_CONTINUE } new classname[256] entity_get_string(player,EV_SZ_classname,classname,255) if(!equal(classname,"player")) { client_print(id,print_chat," Acest jucator nu exista.") return PLUGIN_CONTINUE } if(dist > 512.0) { client_print(id,print_chat," Jucatorul e prea departe ca sa ii poti da credite") return PLUGIN_CONTINUE } if(credits > connecttime[id]/credittime) { client_print(id,print_chat," Nu ai aceasta suma ca sa o poti dona") return PLUGIN_CONTINUE } new givername[256], receivername[256] get_user_name(id,givername,255) get_user_name(player,receivername,255) decCredit(id,credits) addCredit(player,credits) client_print(id,print_chat," I-ai dat %i credite lui %s",credits,receivername) client_print(player,print_chat," Ai primit %i credite de la %s",credits,givername) return PLUGIN_CONTINUE } } return PLUGIN_CONTINUE } public MainUpgradesMenu(id) { if(get_cvar_num("amx_upgrades") == 1) { new authid[32] new playtime = (get_user_time(id) - lastplaytime[id]) lastplaytime[id] = get_user_time(id) get_user_authid(id,authid,31) new tmp_vault_time,vault_time[21] get_vaultdata(authid,vault_time,20) tmp_vault_time = str_to_num(vault_time) tmp_vault_time += playtime connecttime[id] = tmp_vault_time num_to_str(tmp_vault_time,vault_time,20) set_vaultdata(authid,vault_time) new tmp_minutes = floatround(float(connecttime[id]/60),floatround_floor) new minutes = tmp_minutes % (credittime/60) new keys new szMenuBody[255] new len = format(szMenuBody, 511, "\yMain Upgrades Menu:^n") len += format(szMenuBody[len], 511-len, "^n\r1. \wUpgraduri") len += format(szMenuBody[len], 511-len, "^n\r2. \wUpgraduri Iteme") len += format(szMenuBody[len], 511-len, "^n\r3. \wArata Upgradurile") len += format(szMenuBody[len], 511-len, "^n\r4. \wAjutor") len += format(szMenuBody[len], 511-len, "^n^n\r0. \wIesire") len += format(szMenuBody[len], 511-len, "^n^nCredite: %i (in %i minute o sa primesti inca un credit)",connecttime[id]/credittime,(credittime/60)-minutes) keys = (1<<0|1<<1|1<<2|1<<3|1<<9) show_menu(id, keys, szMenuBody, -1) } else client_print(id,print_chat,"[AMXX] Credit Mod is currently disabled") return PLUGIN_HANDLED } public MainMenuCommand(id, key) { switch(key) { case 0: showMenu(id) case 1: EUMenu(id) case 2: show_all_upgrades(id) case 3: UpgrHelp(id) } return PLUGIN_HANDLED } public EU2Menu(id) { new authid[32] new playtime = (get_user_time(id) - lastplaytime[id]) lastplaytime[id] = get_user_time(id) get_user_authid(id,authid,31) new tmp_vault_time,vault_time[21] get_vaultdata(authid,vault_time,20) tmp_vault_time = str_to_num(vault_time) tmp_vault_time += playtime connecttime[id] = tmp_vault_time num_to_str(tmp_vault_time,vault_time,20) set_vaultdata(authid,vault_time) new tmp_minutes = floatround(float(connecttime[id]/60),floatround_floor) new minutes = tmp_minutes % (credittime/60) new keys new szMenuBody[512] new len = format(szMenuBody, 511, "\yItem 2 Upgrade Menu:^n") len += format(szMenuBody[len], 511-len, "^n\r1. \wBomba Sinucigasa (Pret: %d Credit)", wiredc4ecost) len += format(szMenuBody[len], 511-len, "^n\r2. \wE.S.P (Pret: %d Credite)", espcost) len += format(szMenuBody[len], 511-len, "^n\r3. \wTinta cu Laser (Pret: %d Credit)", lasercost) len += format(szMenuBody[len], 511-len, "^n\r4. \wSuper Grenada (Pret: %d Credit)", sgrencost) len += format(szMenuBody[len], 511-len, "^n\r5. \wCrowbar (Pret: %d Credite)", crowbarcost) len += format(szMenuBody[len], 511-len, "^n\r6. \wStealth Shoes (Pret: %d Credit)", sshoecost) len += format(szMenuBody[len], 511-len, "^n\r7. \wProtectie Flash (Pret: %d Credit)", flashcost) len += format(szMenuBody[len], 511-len, "^n^n\r9. \wInapoi") len += format(szMenuBody[len], 511-len, "^n\r0. \wIesire") len += format(szMenuBody[len], 511-len, "^n^nCredite: %i (in %i minute o sa primesti inca un credit)",connecttime[id]/credittime,(credittime/60)-minutes) keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<8|1<<9) show_menu(id, keys, szMenuBody, -1) } public EUA2Menu(id, key) { switch(key) { case 0: { if(connecttime[id]/credittime < wiredc4ecost) client_print(id, print_chat, " Nu ai destule credite.") if(wired[id] == 1) client_print(id, print_chat, " Ai deja o Bomba Sinucigasa.") if(!is_user_alive(id)) client_print(id, print_chat, " Trebe sa fi in viata.") if(connecttime[id]/credittime >= wiredc4ecost && wired[id] == 0 && is_user_alive(id)) { itemcap[id]++ wired[id] = 1 upgradelevelup(id) show_iupgrades(id) decCredit(id,wiredc4ecost) client_print(id, print_chat, " Foloseste-ti cutitul ca sa detonezi bomba") } EU2Menu(id) } case 1: { if(connecttime[id]/credittime < espcost) client_print(id, print_chat, " Nu ai destule credite") if(esp[id] == 1) client_print(id, print_chat, " Ai deja E.S.P") if(connecttime[id]/credittime >= espcost && esp[id] == 0) { itemcap[id]++ esp[id] = 1 upgradelevelup(id) show_iupgrades(id) set_task(3.0, "esploop", id, "", 0, "b") decCredit(id,espcost) client_print(id, print_chat, " E.S.P este activ") creditsspent[id]++ } EU2Menu(id) } case 2: { if(connecttime[id]/credittime < lasercost) client_print(id, print_chat, " Nu ai destule credite") if(laser[id] == 1) client_print(id, print_chat, " Ai deja o Tinta Laser") if(connecttime[id]/credittime >= lasercost && laser[id] == 0) { itemcap[id]++ laser[id] = 1 upgradelevelup(id) show_iupgrades(id) decCredit(id,lasercost) client_print(id, print_chat, " Laser Activat . Bateria dureaza 10 secunde.") creditsspent[id]++ } EU2Menu(id) } case 3: { if(connecttime[id]/credittime < sgrencost) client_print(id, print_chat, " Nu ai destule credite") if(sgrenade[id] == 1) client_print(id, print_chat, "Deja ai o Super Grenada") if(!is_user_alive(id)) client_print(id, print_chat, "Trebe sa fi in viata") if(connecttime[id]/credittime >= sgrencost && sgrenade[id] == 0 && is_user_alive(id)) { itemcap[id]++ sgrenade[id] = 1 upgradelevelup(id) show_iupgrades(id) give_item(id, "weapon_hegrenade") decCredit(id,sgrencost) client_print(id, print_chat, " Aceasta grenada are damage foarte mare !") } EU2Menu(id) } case 4: { if(connecttime[id]/credittime < crowbarcost) client_print(id, print_chat, " Nu ai destuel credite") if(crowbar[id] == 1) client_print(id, print_chat, " Ai deja un Crowbar") if(!is_user_alive(id)) client_print(id, print_chat, " Trebe sa fi in viata") if(connecttime[id]/credittime >= crowbarcost && crowbar[id] == 0 && is_user_alive(id)) { itemcap[id]++ crowbar[id] = 1 upgradelevelup(id) show_iupgrades(id) decCredit(id,crowbarcost) client_print(id, print_chat, " Acest Crowbar are damage x2") creditsspent[id]++ } EU2Menu(id) } case 5: { if(connecttime[id]/credittime < sshoecost) client_print(id, print_chat, " Nu ai destule credite") if(sshoe[id] > 0) client_print(id, print_chat, " Pasesti deja Silentios !") if(connecttime[id]/credittime >= sshoecost && sshoe[id] == 0) { itemcap[id]++ sshoe[id] = 1 upgradelevelup(id) show_iupgrades(id) set_user_footsteps(id, 1) decCredit(id,sshoecost) client_print(id, print_chat, " Gata cu sunetul pasiilor !") creditsspent[id]++ } EUMenu(id) } case 6: { if(connecttime[id]/credittime < flashcost) client_print(id, print_chat, " Nu ai destule credite") if(sshoe[id] > 0) client_print(id, print_chat, " Deja ai Protectie pentru Flashuri") if(connecttime[id]/credittime >= flashcost && flash[id] == 0) { itemcap[id]++ flash[id] = 1 upgradelevelup(id) show_iupgrades(id) decCredit(id,flashcost) client_print(id, print_chat, " Gata cu Oribirea !") creditsspent[id]++ } EUMenu(id) } case 8: EUMenu(id) } return PLUGIN_HANDLED } public EUMenu(id) { if(get_cvar_num("amx_upgrades") == 1) { new authid[32] new playtime = (get_user_time(id) - lastplaytime[id]) lastplaytime[id] = get_user_time(id) get_user_authid(id,authid,31) new tmp_vault_time,vault_time[21] get_vaultdata(authid,vault_time,20) tmp_vault_time = str_to_num(vault_time) tmp_vault_time += playtime connecttime[id] = tmp_vault_time num_to_str(tmp_vault_time,vault_time,20) set_vaultdata(authid,vault_time) new tmp_minutes = floatround(float(connecttime[id]/60),floatround_floor) new minutes = tmp_minutes % (credittime/60) new keys new szMenuBody[512] new len = format(szMenuBody, 511, "\yItem Upgrade Menu:^n") len += format(szMenuBody[len], 511-len, "^n\r1. \wFuri Hp (Pret: %d Credit)", hpscost) len += format(szMenuBody[len], 511-len, "^n\r2. \wRegenerare (Pret: %d Credit)", regenerationcost) len += format(szMenuBody[len], 511-len, "^n\r3. \wRecoil Scazut (Pret: %d Credite)", weapontrainingcost) len += format(szMenuBody[len], 511-len, "^n\r4. \wBhop (Pret: %d Credit)", jumpmodulecost) len += format(szMenuBody[len], 511-len, "^n\r5. \wCatarare pe Perete (Pret: %d Credit)", climbgearcost) len += format(szMenuBody[len], 511-len, "^n\r6. \wx2 Money (Pret: %d Credite)", promocost) len += format(szMenuBody[len], 511-len, "^n\r7. \wIncarcatoare Infinite (Pret: %d Credite)", unlacost) len += format(szMenuBody[len], 511-len, "^n^n\r8. \wInainte") len += format(szMenuBody[len], 511-len, "^n\r9. \wInapoi") len += format(szMenuBody[len], 511-len, "^n\r0. \wIesire") len += format(szMenuBody[len], 511-len, "^n^nCredite: %i (in %i minute o sa primesti inca un credit)",connecttime[id]/credittime,(credittime/60)-minutes) keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9) show_menu(id, keys, szMenuBody, -1) } } public EUAMenu(id, key) { if(itemcap[id] == maxitems) client_print(id, print_chat, " Acesta este maximul de ITEME , asteapta pana mapa viitoare ca sa iei altele.") if(creditsspent[id] == maxcredits) client_print(id, print_chat, " Acesta este maximul de credite care il poti cheltui pe o harta .") if(itemcap[id] < maxitems && creditsspent[id] < maxcredits) { switch(key) { case 0: { if(connecttime[id]/credittime < hpscost) client_print(id, print_chat, " Nu ai destule credite") if(hpstlr[id] == 1) client_print(id, print_chat, " Deja Furi Hp-ul inamiciilor") if(connecttime[id]/credittime >= hpscost && hpstlr[id] == 0) { itemcap[id]++ hpstlr[id] = 1 upgradelevelup(id) show_iupgrades(id) decCredit(id,hpscost) client_print(id, print_chat, " Acum poti fura Hp-ul inamiciilor.") creditsspent[id]++ } EUMenu(id) } case 1: { if(connecttime[id]/credittime< regenerationcost) client_print(id, print_chat, " Nu ai destule credite") if(regeneration[id] == 1) client_print(id, print_chat, " Deja ai trusa de prim-ajutor la tine") if(connecttime[id]/credittime >= regenerationcost && regeneration[id] == 0) { itemcap[id]++ regeneration[id] = 1 firstaid(id) upgradelevelup(id) show_iupgrades(id) decCredit(id,regenerationcost) client_print(id, print_chat, "Acum Viata/Armura v-a incepe sa se regenereze") creditsspent[id]++ } EUMenu(id) } case 2: { if(connecttime[id]/credittime < weapontrainingcost) client_print(id, print_chat, " Nu ai destule credite") if(weapontraining[id] == 1) client_print(id, print_chat, " Deja ai Recoilul Scazut") if(connecttime[id]/credittime >= weapontrainingcost && weapontraining[id] == 0) { itemcap[id]++ weapontraining[id] = 1 upgradelevelup(id) show_iupgrades(id) decCredit(id,weapontrainingcost) client_print(id, print_chat, "Gata cu Recoilul !") creditsspent[id]++ } EUMenu(id) } case 3: { if(connecttime[id]/credittime < jumpmodulecost) client_print(id, print_chat, "Nu ai destule credite") if(jumpmodule[id] == 1) client_print(id, print_chat, " Ai deja Bhop") if(connecttime[id]/credittime >= jumpmodulecost && jumpmodule[id] == 0) { itemcap[id]++ jumpmodule[id] = 1 upgradelevelup(id) show_iupgrades(id) decCredit(id,jumpmodulecost) client_print(id, print_chat, "Acum poti face BunnyHop") creditsspent[id]++ } EUMenu(id) } case 4: { if(connecttime[id]/credittime < climbgearcost) client_print(id, print_chat, " Nu ai destule credite") if(climb[id] == 1) client_print(id, print_chat, "Deja esti SpiderMan") if(connecttime[id]/credittime >= climbgearcost && climb[id] == 0) { itemcap[id]++ climb[id] = 1 upgradelevelup(id) show_iupgrades(id) set_task(0.1, "cwall", id, "", 0, "b") decCredit(id,climbgearcost) client_print(id, print_chat, "Apasa [W] sau [S] si apoi [SPACE] ca sa te cateri pe pereti.") creditsspent[id]++ } EUMenu(id) } case 5: { if(connecttime[id]/credittime < promocost) client_print(id, print_chat, "Nu ai destule credite") if(promotion[id] == 1) client_print(id, print_chat, " Deja esti mai bogat") if(connecttime[id]/credittime >= promocost && promotion[id] == 0) { itemcap[id]++ promotion[id] = 1 upgradelevelup(id) show_iupgrades(id) decCredit(id,promocost) client_print(id, print_chat, "Acum o sa primesti de 2 ori mai multi bani") creditsspent[id]++ } EUMenu(id) } case 6: { if(connecttime[id]/credittime < unlacost) client_print(id, print_chat, "Nu ai destule credite") if(gHasuammo[id] == 1) client_print(id, print_chat, "Ai deja Incarcatoare Infinite") if(connecttime[id]/credittime >= unlacost && gHasuammo[id] == 0) { itemcap[id]++ gHasuammo[id] = 1 upgradelevelup(id) show_iupgrades(id) decCredit(id,unlacost) client_print(id, print_chat, "Acum ai Incarcatoare Infinite [Nu ca nu ai avea deja ...]") creditsspent[id]++ } EUMenu(id) } case 7: EU2Menu(id) case 8: MainUpgradesMenu(id) } } return PLUGIN_HANDLED } public showMenu(id) { if(get_cvar_num("amx_upgrades") == 1) { new authid[32] new playtime = (get_user_time(id) - lastplaytime[id]) lastplaytime[id] = get_user_time(id) get_user_authid(id,authid,31) new tmp_vault_time,vault_time[21] get_vaultdata(authid,vault_time,20) tmp_vault_time = str_to_num(vault_time) tmp_vault_time += playtime connecttime[id] = tmp_vault_time num_to_str(tmp_vault_time,vault_time,20) set_vaultdata(authid,vault_time) new tmp_minutes = floatround(float(connecttime[id]/60),floatround_floor) new minutes = tmp_minutes % (credittime/60) new keys new szMenuBody[512] new len = format(szMenuBody, 511, "\yPassive Upgrade Menu:^n") len += format(szMenuBody[len], 511-len, "^n\r1. \wArmura (Pret: %d Credit)", armorcost) len += format(szMenuBody[len], 511-len, "^n\r2. \wViata (Pret: %d Credite)", hpcost) len += format(szMenuBody[len], 511-len, "^n\r3. \wViteza (Pret: %d Credit)", speedcost) //len += format(szMenuBody[len], 511-len, "^n\r4. \wGravitatie (Pret: %d Credite)", gravitycost) len += format(szMenuBody[len], 511-len, "^n\r4. \wStealth (Pret: %d Credit)", stealthcost) len += format(szMenuBody[len], 511-len, "^n\r5. \wMultiJump (Pret: %d Credite)", multijumpcost) len += format(szMenuBody[len], 511-len, "^n^n\r9. \wInapoi") len += format(szMenuBody[len], 511-len, "^n\r0. \wIesire") len += format(szMenuBody[len], 511-len, "^n^nCredite: %i (in %i minute o sa primesti inca un credit)",connecttime[id]/credittime,(credittime/60)-minutes) keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<8|1<<9) show_menu(id, keys, szMenuBody, -1) } return PLUGIN_CONTINUE } public actionMenu(id, key) { if(creditsspent[id] == maxcredits) client_print(id, print_chat, "Ai atins maximul creditelor pe aceasta harta.") if(creditsspent[id] < maxcredits) { switch(key) { case 0: { if(connecttime[id]/credittime < armorcost) client_print(id, print_chat, " Nu ai destule credite") if(Armor[id] == armormaxlvl) client_print(id, print_chat, "Ai ajuns la Levelul Maxim !") if(connecttime[id]/credittime >= armorcost && Armor[id] < armormaxlvl) { Armor[id]++ UserArmor(id) upgradelevelup(id) show_upgrades(id) decCredit(id,armorcost) creditsspent[id]++ } showMenu(id) } case 1: { if(connecttime[id]/credittime < hpcost) client_print(id, print_chat, " Nu ai destule credite") if(Health[id] == hpmaxlvl) client_print(id, print_chat, " Ai ajuns la Levelul Maxim !") if(connecttime[id]/credittime >= hpcost && Health[id] < hpmaxlvl) { Health[id]++ UserHealth(id) upgradelevelup(id) show_upgrades(id) decCredit(id,hpcost) creditsspent[id]++ } showMenu(id) } case 2: { if(connecttime[id]/credittime < speedcost) client_print(id, print_chat, "Nu ai destule credite") if(Speed[id] == speedmaxlvl) client_print(id, print_chat, " Ai ajuns la Levelul Maxim !") if(connecttime[id]/credittime >= speedcost && Speed[id] < speedmaxlvl) { Speed[id]++ UserSpeed(id) upgradelevelup(id) show_upgrades(id) decCredit(id,speedcost) creditsspent[id]++ } showMenu(id) } case 3: { if(connecttime[id]/credittime < stealthcost) client_print(id, print_chat, " Nu ai destule credite") if(Stealth[id] == stealthmaxlvl) client_print(id, print_chat, "Ai ajuns la Levelul Maxim !") if(connecttime[id]/credittime >= stealthcost && Stealth[id] < stealthmaxlvl) { Stealth[id]++ UserStealth(id) upgradelevelup(id) show_upgrades(id) decCredit(id,stealthcost) creditsspent[id]++ } showMenu(id) } case 4: { if(connecttime[id]/credittime < multijumpcost) client_print(id, print_chat, " Nu ai destule credite") if(multijump[id] == multijumpmaxlvl) client_print(id, print_chat, " Ai ajuns la Levelul Maxim !") if(connecttime[id]/credittime >= multijumpcost && multijump[id] < multijumpmaxlvl) { multijump[id]++ upgradelevelup(id) show_upgrades(id) decCredit(id,multijumpcost) creditsspent[id]++ } showMenu(id) } case 8: MainUpgradesMenu(id) } } return PLUGIN_HANDLED } public UserArmor(id) { new iap = (Armor[id] * armorperbuy) set_user_armor(id, 100 + iap) return PLUGIN_CONTINUE } public UserHealth(id) { new ihp = (Health[id] * hpperbuy) set_user_health(id, 100 + ihp) return PLUGIN_CONTINUE } public UserSpeed(id) { if(speed == false) return PLUGIN_CONTINUE new ispeed = (Speed[id] * speedperbuy) set_user_maxspeed(id, 240.0 + ispeed) return PLUGIN_CONTINUE } public UserStealth(id) { new istealth = (Stealth[id] * stealthperbuy) set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, defaultstealth - istealth) return PLUGIN_CONTINUE } public firstaid(id) { if(is_user_alive(id)) { if(regeneration[id] > 0) { new Float:srate = regenerationrate set_task(srate, "starttheregen", id, "", 0, "b") } } return PLUGIN_CONTINUE } public starttheregen(id) { if(is_user_alive(id)) { if(regeneration[id] > 0) { new maxhp = (100 + Health[id] * hpperbuy) if(get_user_health(id) < maxhp) { message_begin(MSG_ONE, get_user_msgid("ScreenFade"), { 0, 0, 0 }, id) write_short(1<<10) write_short(1<<10) write_short(1<<12) write_byte(0) write_byte(0) write_byte(255) write_byte(50) message_end() new health = get_user_health(id) health += hpregenp set_user_health(id, health) if(get_user_health(id) >= maxhp) set_user_health(id, maxhp) } new maxap = (100 + Armor[id] * armorperbuy) if(get_user_armor(id) < maxap) { message_begin(MSG_ONE, get_user_msgid("ScreenFade"), { 0, 0, 0 }, id) write_short(1<<10) write_short(1<<10) write_short(1<<12) write_byte(0) write_byte(0) write_byte(255) write_byte(50) message_end() new armor = get_user_armor(id) armor += apregenp set_user_armor(id, armor) if(get_user_armor(id) >= maxap) set_user_armor(id, maxap) } } } return PLUGIN_CONTINUE } public Event_Damage(id) { new damage = read_data(2) new bodypart, weapon new enemy = get_user_attacker(id, weapon, bodypart) new hpgain = floatround(float(get_user_health(enemy)) + (float(damage) * 0.5)) new maxhp = (100 + Health[enemy] * hpperbuy) if(is_user_alive(enemy) && hpstlr[enemy] > 0) { message_begin(MSG_ONE, get_user_msgid("ScreenFade"), { 0, 0, 0 }, enemy) write_short(1<<10) write_short(1<<10) write_short(1<<12) write_byte(0) write_byte(255) write_byte(0) write_byte(50) message_end() set_user_health(enemy, hpgain) if(get_user_health(enemy) >= maxhp) set_user_health(enemy, maxhp) } if(sgrenade[enemy] > 0 && weapon == CSW_HEGRENADE && is_user_alive(id)) { new Xdamage = floatround(float(get_user_health(id)) - (float(damage) * 90.0)) if(Xdamage < 1) { set_msg_block(get_user_msgid("DeathMsg"),BLOCK_ONCE) message_begin(MSG_ALL, get_user_msgid("DeathMsg"), {0, 0, 0}, 0) write_byte(enemy) write_byte(id) write_byte(0) write_string("grenade") message_end() } set_user_health(id, Xdamage) sgrenade[enemy] = 0 itemcap[enemy]-- } if(crowbar[enemy] > 0 && weapon == CSW_KNIFE && is_user_alive(id)) { new KXdamage = floatround(float(get_user_health(id)) - (float(damage))) if(KXdamage < 1) { set_msg_block(get_user_msgid("DeathMsg"),BLOCK_ONCE) message_begin(MSG_ALL, get_user_msgid("DeathMsg"), {0, 0, 0}, 0) write_byte(enemy) write_byte(id) write_byte(0) write_string("knife") message_end() new frags, deaths frags = get_user_frags(enemy) + 1 set_user_frags(enemy, frags) deaths = cs_get_user_deaths(id) + 1 cs_set_user_deaths(id, deaths) frags = get_user_frags(id) + 1 set_user_frags(id, frags) } set_user_health(id, KXdamage) } return PLUGIN_CONTINUE } public client_PreThink(id) { if(is_user_alive(id) && get_cvar_num("amx_upgrades") == 1) { new buttons = get_user_button(id) new obut = get_user_oldbutton(id) if(jumpmodule[id] > 0) { entity_set_float(id, EV_FL_fuser2, 0.0) if(buttons & IN_JUMP) { new flags = entity_get_int(id, EV_INT_flags) if(flags | FL_WATERJUMP && entity_get_int(id, EV_INT_waterlevel) < 2 && flags & FL_ONGROUND) { new Float:velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) velocity[2] += 250.0 entity_set_vector(id, EV_VEC_velocity, velocity) entity_set_int(id, EV_INT_gaitsequence, 6) } } } if(wired[id] > 0) { new temp[2] new currweapon = get_user_weapon(id, temp[0], temp[1]) if(currweapon == CSW_KNIFE) { if(get_user_button(id) & IN_ATTACK) { set_task(0.5, "beep_sound", id) set_task(1.2, "c4bombertimer", id) } } } if(multijump[id] > 0) { if((buttons & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP)) { if(jumpnum[id] < multijump[id]) { dojump[id] = true jumpnum[id]++ return PLUGIN_CONTINUE } } if((buttons & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) jumpnum[id] = 0 } } return PLUGIN_CONTINUE } public client_PostThink(id) { if(is_user_alive(id) && get_cvar_num("amx_upgrades") == 1) { if(dojump[id] == true) { new Float:velocity[3] entity_get_vector(id,EV_VEC_velocity,velocity) velocity[2] = random_float(265.0,285.0) entity_set_vector(id,EV_VEC_velocity,velocity) dojump[id] = false return PLUGIN_CONTINUE } } return PLUGIN_CONTINUE } public beep_sound(id) { if(wired[id] > 0) emit_sound(id, CHAN_ITEM, "buttons/blip2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) } public update(id) { if(get_cvar_num("amx_upgrades") != 1) return PLUGIN_CONTINUE if(!is_user_alive(id)) return PLUGIN_CONTINUE //set_user_gravity(id, 1 - Gravity[id] * gravityperbuy) if(speed != false) set_user_maxspeed(id, 240.0 + (Speed[id] * speedperbuy)) if(weapontraining[id] > 0) entity_set_vector (id,EV_VEC_punchangle, Float:{0.0, 0.0, 0.0}) new temp[2] new istealth = (Stealth[id] * stealthperbuy) if(Stealth[id] > 0) { if(get_user_weapon(id, temp[0], temp[1]) == CSW_KNIFE) { new astealth = istealth + 20 set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, defaultstealth - astealth) } else set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, defaultstealth - istealth) } new wpnid = read_data(2) if(wired[id] > 0) { if(wpnid == CSW_KNIFE) switchmodel(id) } if(crowbar[id] > 0) { if(wpnid == CSW_KNIFE) switchmodel(id) } if(gHasuammo[id] > 0) { new clip = read_data(3) if(wpnid == CSW_C4 || wpnid == CSW_KNIFE || wpnid == CSW_HEGRENADE || wpnid == CSW_SMOKEGRENADE || wpnid == CSW_FLASHBANG) return PLUGIN_CONTINUE if(clip == 0) { new wpnname[32] get_weaponname(wpnid, wpnname, 31) give_item(id, wpnname) engclient_cmd(id, wpnname) } } if(laser[id] > 0) { set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 10.0, 0.1, 0.1, 10) show_hudmessage(id, "o") } return PLUGIN_CONTINUE } public switchmodel(id) { new temp[2], wpnid = get_user_weapon(id, temp[0], temp[1]) if(is_user_alive(id)) { if(wired[id] > 0) { if(wpnid == CSW_KNIFE) { entity_set_string(id, EV_SZ_viewmodel, "models/v_satchel_radio.mdl") entity_set_string(id, EV_SZ_weaponmodel, "models/p_satchel_radio.mdl") } } if(crowbar[id] > 0) { if(wpnid == CSW_KNIFE) { entity_set_string(id, EV_SZ_viewmodel, "models/v_crowbar.mdl") entity_set_string(id, EV_SZ_weaponmodel, "models/p_crowbar.mdl") } } } } public upgradelevelup(id) { client_print(id, print_center, "***Upgrade CumparaT***") client_cmd(id, "spk weapons/pl_gun2.wav") return PLUGIN_CONTINUE } public cwall(id) { new buttons = get_user_button(id) if(buttons & IN_ATTACK) return PLUGIN_HANDLED if(!is_user_connected(id)) return PLUGIN_HANDLED if(speed == true) { if(climb[id] > 0) { new Float: velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) if(buttons & IN_JUMP && (buttons & IN_FORWARD || buttons & IN_BACK)) { if(velocity[0] == 0.0 || velocity[1] == 0.0) { velocity[1] = 10.0 velocity[2] = 220.0 entity_set_vector(id, EV_VEC_velocity, velocity) } } } } return PLUGIN_CONTINUE } public c4bombertimer(id) { if(wired[id] > 0) { wired[id] = 0 itemcap[id]-- emit_sound(id, CHAN_STATIC, "weapons/mine_charge.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) new param[2] param[0] = id set_task(3.8, "bombed", BOMB_TASK + id, param, 1) } } public bombed(param[]) { new id = param[0] new origin[3] get_user_origin(id, origin, 0) for(new a = 1; a <= get_maxplayers(); a++) { new origin1[3] get_user_origin(a, origin1, 0) if(is_user_alive(a)) { if(!(origin[0] - origin1[0] > BOMBKILL_RANGE || origin[0] - origin1[0] < - BOMBKILL_RANGE || origin[1] - origin1[1] > BOMBKILL_RANGE || origin[1] - origin1[1] < - BOMBKILL_RANGE || origin[2] - origin1[2] > BOMBKILL_RANGE || origin[2] - origin1[2] < - BOMBKILL_RANGE)) { new bombguyfrags new name[33] get_user_name(id, name, 32) if((a != id)) { bombguyfrags = get_user_frags(id) bombguyfrags += 1 set_user_frags(id, bombguyfrags) set_msg_block(get_user_msgid("DeathMsg"),BLOCK_ONCE) message_begin(MSG_ALL, get_user_msgid("DeathMsg"), {0, 0, 0}, 0) write_byte(id) write_byte(a) write_byte(1) write_string("") message_end() client_print(a, print_chat, "%s te-a omorat cu Bomba !", name) } user_kill(a, 1) explode(origin1) } } } } explode(vec1[3]) { // blast circles message_begin(MSG_BROADCAST,SVC_TEMPENTITY, vec1) write_byte(21) write_coord(vec1[0]) write_coord(vec1[1]) write_coord(vec1[2] + 16) write_coord(vec1[0]) write_coord(vec1[1]) write_coord(vec1[2] + 1936) write_short(white) write_byte(0)//startframe write_byte(0)//framerate write_byte(3)//life 2 write_byte(20)//width 16 write_byte(0)//noise write_byte(188)//r write_byte(220)//g write_byte(255)//b write_byte(255)//brightness write_byte(0)//speed message_end() //Explosion2 message_begin(MSG_BROADCAST,SVC_TEMPENTITY) write_byte(12) write_coord(vec1[0]) write_coord(vec1[1]) write_coord(vec1[2]) write_byte(188)//byte (scale in 0.1's) 188 write_byte(10)//byte (framerate) message_end() //TE_Explosion message_begin(MSG_BROADCAST,SVC_TEMPENTITY,vec1) write_byte(3) write_coord(vec1[0]) write_coord(vec1[1]) write_coord(vec1[2]) write_short(fire) write_byte(65)//byte (scale in 0.1's) 188 write_byte(10)//byte (framerate) write_byte(0)//byte flags message_end() //Smoke message_begin(MSG_BROADCAST,SVC_TEMPENTITY,vec1) write_byte(5)//5 write_coord(vec1[0]) write_coord(vec1[1]) write_coord(vec1[2]) write_short(smoke) write_byte(50)//2 write_byte(10)//10 message_end() } public esploop(id) { if(!is_user_alive(id)) return PLUGIN_CONTINUE if(esp[id] > 0) { for(new a = 1; a <= get_maxplayers(); a++) { if(is_user_alive(a)) { if(cs_get_user_team(id) != cs_get_user_team(a)) { if((a != id)) { new vec1[3] get_user_origin(a, vec1, 0) message_begin(MSG_ONE, SVC_TEMPENTITY, vec1, id) write_byte(21) write_coord(vec1[0]) write_coord(vec1[1]) write_coord(vec1[2] - 35) write_coord(vec1[0]) write_coord(vec1[1]) write_coord(vec1[2] + credittime) write_short(white) write_byte(0)//startframe write_byte(1)//framerate write_byte(6)//3 life 2 write_byte(8)//width 16 write_byte(1)//noise write_byte(100)//r write_byte(100)//g write_byte(255)//b write_byte(192)//brightness write_byte(0)//speed message_end() } } } } } return PLUGIN_CONTINUE } public UpgrHelp(id) { new PUmotd[2048], title[64], dpos = 0 format(title, 63, "Unique Mod: [%s] ", VER) dpos += format(PUmotd[dpos], 2047-dpos, "<html><head><style type=^"text/css^">pre{color:#FFB000;}body{background:#000000;margin-left:8px;margin-top:0px;}</style></head><pre><body>") dpos += format(PUmotd[dpos], 2047-dpos, "^n^n<b>%s</b>^n^n",title) dpos += format(PUmotd[dpos], 2047-dpos, "^n^n-=--=--=--=--=--=--=--=--=--=-^n^n") dpos += format(PUmotd[dpos], 2047-dpos, "[*]Comenzi:^n") dpos += format(PUmotd[dpos], 2047-dpos, "/buy - Deschide Meniul^n") dpos += format(PUmotd[dpos], 2047-dpos, "/credite - Cate credite ai / cat timp va dura pana o sa primesti inca un credit^n") dpos += format(PUmotd[dpos], 2047-dpos, "^n^n-=--=--=--=--=--=--=--=--=--=-^n^n") dpos += format(PUmotd[dpos], 2047-dpos, "[*]Upgraduri:^n^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Armura] - Primesti Armura^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Viata] - Primesti Viata^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Viteza]- Primesti Viteza^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Gravitatie] - Scade Gravitatia^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Stealth] - Scade Vizibilitatea^n") dpos += format(PUmotd[dpos], 2047-dpos, "[MultiJump] - Poti sari de mai multe ori in aer^n") dpos += format(PUmotd[dpos], 2047-dpos, "^n^n-=--=--=--=--=--=--=--=--=--=-^n^n") dpos += format(PUmotd[dpos], 2047-dpos, "[*]Upgradeuri Iteme:^n^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Furi Hp] - Furi Hp de la inamici^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Regenerare] - Iti regenereaza Viata si Armura^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Recoil Scazut] - Scade Recoilul [Adica nu se mai duce arma in toate partiile]^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Bhop] - Activeaza BunnyHop-ul [Ti pe space si sari in continuu]^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Catarare pe Perete] - Abilitate de a urca pe ziduri [Te duci in fata , si apesi space]^n") dpos += format(PUmotd[dpos], 2047-dpos, "[x2 Money] - Primesti de 2 ori mai multi bani^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Incarcatoare Infinite] - Ai incarcatoare infinite [Nimic Nou]^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Pasi Silentiosi] - Nu se mai aud pasii cand mergi^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Bomba Sinucigasa] - Poti sa omori pe cineva care e langa tine cand o detonezi^n") dpos += format(PUmotd[dpos], 2047-dpos, "[E.S.P] - Abilitate sa vezi unde este inamicul^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Tinta cu Laser] - Adauga o tinta laser^n") dpos += format(PUmotd[dpos], 2047-dpos, " - Grenada cu Damage Mult mai Mare^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Crowbar] - Cutit cu damage x2^n") dpos += format(PUmotd[dpos], 2047-dpos, "[Protectie Flash] - Nu mai iei niciun flash^n") dpos += format(PUmotd[dpos], 2047-dpos, "^n^n-=--=--=--=--=--=--=--=--=--=-^n^n") dpos += format(PUmotd[dpos], 2047-dpos, "***[INFO] ACESTE UPGRADURI RAMAN SI DACA MORI !!!***^n") dpos += format(PUmotd[dpos], 2047-dpos, "***[INFO] O SA PIERZI SUPER GRENADA SI BOMBA SINUCIGASA DACA MORI !!!***^n") dpos += format(PUmotd[dpos], 2047-dpos, "***[INFO] CREDITELE RAMAN TOT TIMPUL PE NUMELE PE CARE JOCI DECI NU-TI SCHIMBA NUMELE !!!***^n") dpos += format(PUmotd[dpos], 2047-dpos, "***[INFO] ITEMELE SI UPGRADURILE , SUNT DOAR PENTRU O HARTA , CAND SE SCHIMBA HARTA ELE V-OR DISPAREA !!!***^n") dpos += format(PUmotd[dpos], 2047-dpos, "***[INFO] MAXIMUL ITEMELOR CARE LE POTI CUMPARA: %i***^n",maxitems) dpos += format(PUmotd[dpos], 2047-dpos, "***[INFO] MAXIMUL CREDITELOR CARE IL POTI CHELUTI PE O HARTA: %i***^n",maxcredits) show_motd(id, PUmotd, title) } public plugin_precache() { precache_sound("weapons/pl_gun2.wav") precache_sound("buttons/blip2.wav") precache_sound("weapons/mine_charge.wav") precache_model("models/v_satchel_radio.mdl") precache_model("models/p_satchel_radio.mdl") precache_model("models/v_crowbar.mdl") precache_model("models/p_crowbar.mdl") smoke = precache_model("sprites/steam1.spr") white = precache_model("sprites/white.spr") fire = precache_model("sprites/explode1.spr") } public queryall(id,level,cid) { if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED new maxslots = get_maxplayers() new query_name[32] for(new i = 1; i <= maxslots; ++i) { if (!is_user_connected(i) && !is_user_connecting(i)) continue get_user_name(i,query_name,31) client_print(id,print_console," %s 's credits = %i",query_name,connecttime/credittime) } return PLUGIN_HANDLED } public client_authorized(id) { new authid[32], vault_time[21] get_user_authid(id,authid,31) if(vaultdata_exists(authid)) { get_vaultdata(authid,vault_time,20) connecttime[id] = str_to_num(vault_time) } else { connecttime[id] = numnewcredits * credittime num_to_str(connecttime[id],vault_time,20) set_vaultdata(authid,vault_time) } return PLUGIN_CONTINUE } public decCredit(id, itemcost) { new cost = itemcost connecttime[id] = connecttime[id] - (credittime * cost) new authid[32], vault_time[21] get_user_authid(id,authid,31) num_to_str(connecttime[id],vault_time,20) set_vaultdata(authid,vault_time) return PLUGIN_HANDLED } public addCredit(id, itemadd) { new addcredits = itemadd connecttime[id] = connecttime[id] + (credittime * addcredits) new authid[32], vault_time[21] get_user_authid(id,authid,31) num_to_str(connecttime[id],vault_time,20) set_vaultdata(authid,vault_time) return PLUGIN_HANDLED } public givecredit(id,level,cid) { if(!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED new target[32],credits[21] read_argv(1,target,31) read_argv(2,credits,20) new player = cmd_target(id,target,8) if(!player) return PLUGIN_HANDLED new admin_name [32], player_name[32] get_user_name(id,admin_name,31) get_user_name(player,player_name,31) new crednum = str_to_num(credits) addCredit(player,crednum) client_print(id,print_console," Ai adaugat %i credite la %s totalul creditelor.",crednum,player_name) return PLUGIN_CONTINUE } public removecredit(id,level,cid) { if(!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED new target[32],credits[21] read_argv(1,target,31) read_argv(2,credits,20) new player = cmd_target(id,target,8) if(!player) return PLUGIN_HANDLED new admin_name [32], player_name[32] get_user_name(id,admin_name,31) get_user_name(player,player_name,31) new crednum = str_to_num(credits) decCredit(player,crednum) client_print(id,print_console," Ai scos %i credite din %s totalul creditelor.",crednum,player_name) return PLUGIN_CONTINUE }
Download resurse + sma : Download Link
Ps : Am zis sa fac o fapta buna pentru toti cei care vor resurse NOI pentru modul BaseBuilder ! Multe dintre ele sunt imbunatatite de mine , dar unele nu , multumesc lui spuf care mi-a facut cateva dintre ele si s-a chinuit !