RSSy MYGO.pl Opublikowano Luty 19, 2020 o 07:35 RSSy Udostępnij Opublikowano Luty 19, 2020 o 07:35 Hi guys , i've got a furien base , which one I am gonna put down bellow ,I want you to modify it such as when you are furien it gives you the bomb from the beggining of the round , the base I have gives the bomb after some time. PHP Code: #include <amxmodx> #include <cstrike> #include <engine> #include <fun> #include <fakemeta> #include <hamsandwich> #define PLUGIN "Furien Base" #define VERSION "1.0" #define SCOREATTRIB_BOMB (1<<1) #define TASK_BOMB 25432 #define TASKHP 25525 #define SWITCH_TASK 112233 #define TASK_CANPLANT 10001 //** Furien Defines **// #define IsWeaponBoxC4(%1) ( get_pdata_cbase(%1, 39, 4) > 0 ) #define Ham_Player_ResetMaxSpeed Ham_Item_PreFrame /** **/ enum _:CvarBits (<<=1) { BLOCK_RADIO = 1, BLOCK_MSG }; new Float:g_flFurienGravity = 0.375, Float:g_flMaxSpeed = 900.0; new g_iInvisFactor = 1, g_iPickUp = 2; /* new const g_szPlayerModels[][] = { "subzeroFurien", "subzeroHuman" } */ new g_iJumpNum[33]; new bool:g_bDoJump[33], bool:g_bCanPlant; public plugin_init() { register_plugin(PLUGIN, VERSION, "FaTzZu"); register_event( "HLTV", "evRoundStart", "a", "1=0", "2=0" ); RegisterHam(Ham_Spawn, "player", "hamPlayerSpawn", 1); RegisterHam(Ham_Player_ResetMaxSpeed, "player", "Player_ResetMaxSpeed", 1); RegisterHam( Ham_TakeDamage, "player", "HamTakeDamage" ); register_event( "SendAudio", "ev_CounterWin", "a", "1=0", "2=%!MRAD_ctwin" ); new iEnt; iEnt = create_entity("info_target"); set_pev(iEnt, pev_classname, "check_speed"); set_pev(iEnt, pev_nextthink, get_gametime() + 0.1); register_think("check_speed", "Set_Furiens_Visibility"); RegisterHam(Ham_Touch, "weaponbox", "CWeaponBox_Touch") RegisterHam(Ham_Touch, "armoury_entity", "GroundWeapon_Touch") RegisterHam(Ham_Touch, "weapon_shield", "GroundWeapon_Touch") register_logevent( "LogEvent_PlayerSpawnWithBomb", 3, "2=Spawned_With_The_Bomb" ) //Game name changer register_forward( FM_GetGameDescription, "GameDesc" ); register_message(get_user_msgid("ShowMenu"), "message_show_menu") register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu") register_forward(FM_PlayerPreThink, "fwdPlayerPreThink" ); register_message(get_user_msgid("ScoreAttrib"), "Message_ScoreAttrib") register_event( "TeamInfo", "join_team", "a") } public plugin_precache() { disable_buyzone(); /* for( new i;i<sizeof(g_szPlayerModels); i++) { new szFileName[128]; formatex(szFileName, charsmax(szFileName), "models/player/%s/%s.mdl", g_szPlayerModels, g_szPlayerModels); if(file_exists(szFileName)) precache_model(szFileName); else { new szError[64]; formatex(szError, charsmax(szError), "Missing file [%s]",szFileName); set_fail_state(szError); } } */ } public Message_ScoreAttrib() { new iFlags = get_msg_arg_int(2) if( iFlags & SCOREATTRIB_BOMB && !g_bCanPlant) { iFlags &= ~SCOREATTRIB_BOMB set_msg_arg_int(2, 0, iFlags) } } public client_connect(id) { g_iJumpNum[id] = 0; g_bDoJump[id] = false } public client_disconnect(id) remove_task(id+TASKHP); public Player_ResetMaxSpeed(id) { if( is_user_alive(id) && get_user_team(id) == 1 && get_user_maxspeed(id) != 1.0) set_pev(id, pev_maxspeed, g_flMaxSpeed) } public CWeaponBox_Touch(iWeaponBox, id) { if(is_user_connected(id)) { if(!is_user_alive(id)) return HAM_SUPERCEDE if(IsWeaponBoxC4(iWeaponBox)) return HAM_IGNORED if(!g_iPickUp) { remove_entity(iWeaponBox) return HAM_SUPERCEDE } new iTeam = get_user_team(id) if((iTeam == 1 && g_iPickUp != 1) || (iTeam == 2 && g_iPickUp != 2)) { return HAM_SUPERCEDE } } return HAM_IGNORED } public GroundWeapon_Touch(iWeapon, id) { if(is_user_connected(id)) { if( !g_iPickUp ) { remove_entity(iWeapon) return HAM_SUPERCEDE } if( !is_user_alive(id) ) return HAM_SUPERCEDE new iTeam = get_user_team(id) if((iTeam == 1 && g_iPickUp != 1) || (iTeam == 2 && g_iPickUp != 2)) { return HAM_SUPERCEDE } } return HAM_IGNORED } public Set_Furiens_Visibility( iEnt ) { entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1) new iPlayers[32], iNum, id, Float:fVecVelocity[3], iSpeed get_players(iPlayers, iNum, "ae", "TERRORIST") for(new i; i<iNum; i++) { id = iPlayers[i] if( get_user_weapon(id) == CSW_KNIFE ) { entity_get_vector(id, EV_VEC_velocity, fVecVelocity) iSpeed = floatround( vector_length(fVecVelocity) ) if( iSpeed < g_iInvisFactor*255 ) set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, iSpeed/g_iInvisFactor) else set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) } else set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) } } public disable_buyzone() { new ent = find_ent_by_class(-1,"info_map_parameters"); if(!ent) ent = create_entity("info_map_parameters"); DispatchKeyValue(ent,"buying","3"); DispatchSpawn(ent); } /** ----------------------- **/ public hamPlayerSpawn(id) { if(!is_user_alive(id)) return; switch(get_user_team(id)) { case 1: { //cs_reset_user_model(id) //cs_set_user_model(id, g_szPlayerModels[0]); set_user_gravity(id, g_flFurienGravity); set_user_footsteps(id, 1); } case 2: { //cs_reset_user_model(id) //cs_set_user_model(id, g_szPlayerModels[1]); set_user_footsteps(id, 0); set_user_gravity(id, 1.0); } } set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) } /** ----------------------- **/ public ev_CounterWin() { new iPlayers[32], iNum; get_players( iPlayers, iNum, "ch" ); if( iNum ) { new id; for( --iNum; iNum >= 0; iNum-- ) { id = iPlayers[ iNum ]; if( is_user_connected( id ) ) { BeginDelayedTeamChange( id ); } } } } public BeginDelayedTeamChange(id) { switch(id) { case 1..6: set_task( 0.1, "ChangeUserTeamWithDelay",id+SWITCH_TASK); case 7..13: set_task( 0.2, "ChangeUserTeamWithDelay",id+SWITCH_TASK); case 14..20: set_task( 0.3, "ChangeUserTeamWithDelay",id+SWITCH_TASK); case 21..26: set_task( 0.4, "ChangeUserTeamWithDelay",id+SWITCH_TASK); case 27..32: set_task( 0.5, "ChangeUserTeamWithDelay",id+SWITCH_TASK); } } public ChangeUserTeamWithDelay(id) { id -= SWITCH_TASK; if(!is_user_connected(id)) return 1; switch(cs_get_user_team(id)) { case CS_TEAM_T: cs_set_user_team( id, CS_TEAM_CT ); case CS_TEAM_CT: cs_set_user_team( id, CS_TEAM_T ); } return 0; } /** ----------------------- **/ public evRoundStart() { g_bCanPlant = false; remove_task(TASK_BOMB); new Float: flTime = get_cvar_num( "mp_freezetime" ) + ( get_cvar_num( "mp_roundtime" ) * 60 ) - 30.0; set_task( flTime, "taskGiveBomb", TASK_BOMB ); } public taskGiveBomb() { new id = GetRandomPlayer("ae", "TERRORIST"); if(!id) return; give_item(id, "weapon_c4"); SetBombSites(true); cs_set_user_plant(id, 1, 1); new szName[32]; get_user_name(id, szName, 31); g_bCanPlant = true; } public LogEvent_PlayerSpawnWithBomb(id) { new id = get_loguser_index(); if (user_has_weapon(id, CSW_C4)) { engclient_cmd(id, "weapon_c4") cs_set_user_bpammo(id, CSW_C4, 0) engclient_cmd(id, "lastinv") message_begin(MSG_ONE, get_user_msgid("StatusIcon"), _, id) write_byte(0) write_string("c4") message_end() SetBombSites(false); cs_set_user_plant(id, 0, 0); } } /** ----------------------- **/ public client_PreThink(id) { if(!is_user_alive(id)) return; new Float:fallspeed = 100.0 * -1.0 new button = get_user_button(id) if(button & IN_USE && get_user_team(id) == 2) { new Float:velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) if (velocity[2] < 0.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) } } new nbut = get_user_button(id) new obut = get_user_oldbutton(id) if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP)) { if(g_iJumpNum[id] < 1) { g_bDoJump[id] = true g_iJumpNum[id]++ } } if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) { g_iJumpNum[id] = 0 } } public client_PostThink(id) { if(!is_user_alive(id)) return; if(g_bDoJump[id]) { 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) g_bDoJump[id] = false } } /** ----------------------- **/ public fwdPlayerPreThink( id ) { if(is_user_alive(id)) { new target, body; get_user_aiming(id, target, body, 9999); new CsTeams:team = cs_get_user_team(id); if(is_user_alive(target)) { new CsTeams:targetTeam = cs_get_user_team(target); new sName[32]; get_user_name(target,sName,31); new sMessage[ 64 ]; if(targetTeam == team) formatex( sMessage, charsmax(sMessage), "%s Health: %i", sName, get_user_health( target ) ); else if( targetTeam != team && team != CS_TEAM_CT ) formatex( sMessage, sizeof ( sMessage ) -1, "%s Health: %i", sName, get_user_health( target ) ); if( targetTeam == CS_TEAM_CT ) set_hudmessage( 0, 63, 127, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 ); else if( targetTeam == CS_TEAM_T ) set_hudmessage( 127, 0, 0, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 ); show_hudmessage( id, "%s", sMessage ); } } return FMRES_IGNORED; } /** ----------------------- **/ public message_show_menu(msgid, dest, id) { if (!should_autojoin(id)) 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 set_force_team_join_task(id, msgid) return PLUGIN_HANDLED } public message_vgui_menu(msgid, dest, id) { if (get_msg_arg_int(1) != 2 || !should_autojoin(id)) return PLUGIN_CONTINUE set_force_team_join_task(id, msgid) return PLUGIN_HANDLED } /** ----------------------- **/ public HamTakeDamage(id, iInflictor, iAttacker, Float: flDamage, iDamageBits) { if( iDamageBits & DMG_BLAST ) return HAM_SUPERCEDE; return HAM_IGNORED; } /** ----------------------- **/ public GameDesc() { forward_return(FMV_STRING, "Furien by Ghimpe" ); return FMRES_SUPERCEDE; } /** ----------------------- **/ public join_team() { new id = read_data(1); static jucator[32]; read_data(2, jucator, 31); if(!is_user_connected(id)) return PLUGIN_CONTINUE ; switch(jucator[0]) { case 'C': { register_clcmd("jointeam","cmd_block"); register_clcmd("jointeam 1","cmd_block"); register_clcmd("jointeam 5","cmd_block"); } case 'T': { register_clcmd("jointeam","cmd_block"); register_clcmd("jointeam 1","cmd_block"); register_clcmd("jointeam 5","cmd_block"); } case 'S': { register_clcmd("jointeam","cmd_block"); register_clcmd("jointeam 1","cmd_block"); register_clcmd("jointeam 5","cmd_block"); } } return PLUGIN_CONTINUE; } public cmd_block(id) return PLUGIN_HANDLED; /** ----------------------- **/ bool:should_autojoin(id) { return (!get_user_team(id) && !task_exists(id)) } set_force_team_join_task(id, menu_msgid) { static param_menu_msgid[2] param_menu_msgid[0] = menu_msgid set_task(0.1, "task_force_team_join", id, param_menu_msgid, sizeof param_menu_msgid) } public task_force_team_join(menu_msgid[], id) { if (get_user_team(id)) return force_team_join(id, menu_msgid[0], "5","5") } stock force_team_join(id, menu_msgid, /* const */ team[] = "5", /* const */ class[] = "0") { static jointeam[] = "jointeam" if (class[0] == '0') { engclient_cmd(id, jointeam, team) return } static msg_block, joinclass[] = "joinclass" msg_block = get_msg_block(menu_msgid) set_msg_block(menu_msgid, BLOCK_SET) engclient_cmd(id, jointeam, team) engclient_cmd(id, joinclass, class) set_msg_block(menu_msgid, msg_block) } /** ----------------------- **/ stock GetRandomPlayer( const flags[ ] = "", const team[ ]= "" ) { new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum, flags, team ); return iNum ? iPlayers[ random_num( 0, iNum - 1 ) ] : 0; } stock get_loguser_index() { new loguser[80], name[32] read_logargv(0, loguser, 79) parse_loguser(loguser, name, 31) return get_user_index(name) } SetBombSites( bool:bActive ) { new iEnt = -1 while( (iEnt = find_ent_by_class(iEnt, "func_bomb_target")) > 0 ) { entity_set_int(iEnt, EV_INT_solid, bActive ? SOLID_TRIGGER : SOLID_NOT) } while( (iEnt = find_ent_by_class(iEnt, "info_bomb_target")) > 0 ) { entity_set_int(iEnt, EV_INT_solid, bActive ? SOLID_TRIGGER : SOLID_NOT) } } And one question , do you think that base can make lag on server? Przeczytaj cały wpis Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi