RSSy MYGO.pl Opublikowano Lipiec 31, 2020 o 22:48 RSSy Udostępnij Opublikowano Lipiec 31, 2020 o 22:48 Can you make VIPs receive grenade damage? PHP Code: #include <amxmodx> #include <cstrike> #include <engine> #include <fakemeta> #include <fakemeta_util> #include <hamsandwich> #include <fun> #define PLUGIN "Furien Clasic" #define VERSION "2.0" #define AUTHOR "Aragon*" #define DMG_HEGRENADE (1<<24) #define FURIEN_GRAVITY 0.4 #define FURIEN_SPEED 750.0 #define TEAM_FURIEN 1 #define TEAM_ANTIFURIEN 2 #define TASKID_CANPLANT 10001 #define TASKID_C4COUNTDOWN 453 #define VIP_GOLD_LEVEL ADMIN_LEVEL_H #define VIP_SILVER_LEVEL ADMIN_LEVEL_G #define FOUNDER_LEVEL ADMIN_IMMUNITY #if cellbits == 32 #define OFFSET_BZ 235 #else #define OFFSET_BZ 268 #endif //Settings new bool:MakeVisible[33], Float:Wallorigin[33][3] //Parachute #define PARACHUTE_CLASS "Parachute" new ParaENT[33]; new cvar_gamedescription, furienspawnhp, antifurienspawnhp, removebuyzone, cvar_autojoin_class, cvar_autojoin_team, cvar_aim_info, MSGID_SayText, MSGID_StatusIcon, MSGID_TextMsg, MSGID_SendAudio, MSGID_ShowMenu, MSGID_VGUIMenu, MSGID_Health, MSGID_ScreenFade, bool:CanPlant, C4_CountDownDelay; public plugin_cfg() { server_cmd("amx_cvar mp_playerid 2") server_cmd("amx_cvar sv_maxspeed 999") server_cmd("amx_cvar sv_restart 5") } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) cvar_gamedescription = register_cvar("furien_gamename", "Furien Romania") antifurienspawnhp = register_cvar("antifurien_spawnhp", "135") furienspawnhp = register_cvar("furien_spawnhp", "100") cvar_autojoin_team = register_cvar("furien_team", "5") cvar_autojoin_class = register_cvar("furien_class", "5") cvar_aim_info = register_cvar("furien_enable_aiminfo", "0") MSGID_SayText = get_user_msgid("SayText") MSGID_StatusIcon = get_user_msgid("StatusIcon") MSGID_TextMsg = get_user_msgid("TextMsg") MSGID_SendAudio = get_user_msgid("SendAudio") MSGID_ShowMenu = get_user_msgid("ShowMenu") MSGID_VGUIMenu = get_user_msgid("VGUIMenu") MSGID_ScreenFade = get_user_msgid("ScreenFade") register_clcmd("jointeam", "CMD_BlockJoinTeam") register_clcmd("jointeam 1", "CMD_BlockJoinTeam") register_clcmd("jointeam 2", "CMD_BlockJoinTeam") register_clcmd("jointeam 3", "CMD_BlockJoinTeam") register_clcmd("chooseteam", "CMD_BlockChooseTeam") register_clcmd("say /beneficii", "CmdShowMotd") register_clcmd("say /rs", "CmdResetScore") register_clcmd("say_team /rs", "CmdResetScore") register_clcmd("say /resetscore", "CmdResetScore") register_clcmd("say_team /resetscore", "CmdResetScore") RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1) RegisterHam(Ham_Touch, "weaponbox", "HAM_Touch_Weapon") RegisterHam(Ham_Touch, "armoury_entity", "HAM_Touch_Weapon") RegisterHam(Ham_Touch, "weapon_shield", "HAM_Touch_Weapon") RegisterHam(Ham_TakeDamage, "player", "SuperKnife_TakeDamage") RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_c4", "C4_PrimaryAttack"); register_forward(FM_PlayerPreThink, "Player_PreThink"); register_forward(FM_AddToFullPack, "FWD_AddToFullPack", 1); register_forward(FM_PlayerPreThink, "FWD_ParachutePreThink"); register_forward(FM_GetGameDescription, "FWD_GameDescription") register_event("CurWeapon", "EVENT_CurWeapon", "be", "1=1") register_event("DeathMsg", "EVENT_Death", "a"); register_event("SendAudio", "EVENT_SwitchTeam", "a", "1=0", "2=%!MRAD_ctwin"); register_event("HLTV", "EVENT_NewRound", "a", "1=0", "2=0"); register_event("TextMsg", "EVENT_FireINTheHole", "b", "2&#Game_radio", "4&#Fire_in_the_hole") register_event("TextMsg", "EVENT_FireINTheHole", "b", "3&#Game_radio", "5&#Fire_in_the_hole") register_message(MSGID_StatusIcon, "MSG_StatusIcon"); register_message(MSGID_TextMsg, "MSG_TextMessage"); register_message(MSGID_ShowMenu, "MSG_ShowMenu"); register_message(MSGID_VGUIMenu, "MSG_VGUIMenu"); register_message(MSGID_SendAudio, "MSG_SendAudio"); register_message(MSGID_Health, "MSG_Health") register_message(MSGID_ScreenFade, "MSG_ScreenFade") } public plugin_precache() { removebuyzone = register_cvar("furien_removebuyzone", "1") if(get_pcvar_num(removebuyzone)) { remove_entity_name("info_map_parameters"); remove_entity_name("func_buyzone"); new Entity = create_entity("info_map_parameters"); DispatchKeyValue(Entity, "buying", "3"); DispatchSpawn(Entity); } } public client_connect(id) { client_cmd(id, "cl_forwardspeed 999.0") client_cmd(id, "cl_sidespeed 999.0") client_cmd(id, "cl_backspeed 999.0") } public client_putinserver(id) { client_cmd(id, "cl_forwardspeed 999.0") client_cmd(id, "cl_sidespeed 999.0") client_cmd(id, "cl_backspeed 999.0") } public Ham_Spawn_Post(id) { if(is_user_connected(id) && is_user_alive(id)) { strip_user_weapons(id) switch(get_user_team(id)) { case TEAM_FURIEN: { fm_give_item(id, "weapon_hegrenade") fm_give_item(id, "weapon_knife") fm_give_item(id, "weapon_flashbang") set_user_footsteps(id, 1) fm_set_user_health(id, get_pcvar_num(furienspawnhp)) } case TEAM_ANTIFURIEN: { fm_give_item(id, "weapon_flashbang") fm_give_item(id, "weapon_hegrenade") fm_give_item(id, "weapon_knife") set_user_footsteps(id, 0) fm_set_user_health(id, get_pcvar_num(antifurienspawnhp)) } } } } public EVENT_NewRound() { CanPlant = false; new Float:FloatTime = get_cvar_num("mp_freezetime") + (get_cvar_num("mp_roundtime") * 60) - 60.0 set_task(FloatTime, "TASK_CanPlant", TASKID_CANPLANT) remove_task(TASKID_C4COUNTDOWN) } public EVENT_FireINTheHole() return PLUGIN_HANDLED public HAM_Touch_Weapon(ent, id) { if(is_user_alive(id) && get_user_team(id) == TEAM_FURIEN && !(get_pdata_cbase(ent, 39, 4) > 0)) return HAM_SUPERCEDE return HAM_IGNORED } public SuperKnife_TakeDamage(Victim, Inflictor, Attacker, Float:Damage, DamageType) { if(is_user_connected(Attacker) && is_user_alive(Attacker) && is_user_connected(Victim)) { if(get_user_flags(Victim) & VIP_GOLD_LEVEL) { if(DamageType & DMG_HEGRENADE) return HAM_SUPERCEDE } } return HAM_IGNORED } public C4_PrimaryAttack(Ent) { if(!CanPlant) return HAM_SUPERCEDE return HAM_IGNORED } public CmdResetScore(id) { if(get_user_frags(id) == 0 && get_user_deaths(id) == 0) ColorChat(id, "!gScorul tau este deja!t 0-0!g !") else { for(new i = 0; i < 2; i++) { cs_set_user_deaths(id, 0); set_user_frags(id, 0); } ColorChat(id, "!gTi-ai resetat scorul cu succes !") } } public CMD_BlockJoinTeam(id) { console_print(id, "*** Nu ai voie sa foloseti JoinTeam ! ***") return 1; } public CMD_BlockChooseTeam(id) { console_print(id, "*** Nu ai voie sa foloseti ChooseTeam ! ***") return 1; } public CmdShowMotd(id) show_motd(id, "addons/amxmodx/configs/beneficii.html") ///////////////////////////////////////////////////////////////////////// public EVENT_CurWeapon(id) { if(is_user_connected(id)) { new PlayerHealth; PlayerHealth = get_user_health(id) if(PlayerHealth == 256) fm_set_user_health(id, 255) } } public EVENT_Death() { static Attacker, Victim; Attacker = read_data(1) Victim = read_data(2) if(Victim == Attacker) return 1; if(is_user_connected(Attacker)) { if(get_user_flags(Attacker) & VIP_GOLD_LEVEL) { cs_set_user_money(Attacker, cs_get_user_money(Attacker) + 6000) fm_set_user_health(Attacker, get_user_health(Attacker) + 60) fm_set_user_armor(Attacker, get_user_armor(Attacker) + 60) } else if(get_user_flags(Attacker) & VIP_SILVER_LEVEL) { cs_set_user_money(Attacker, cs_get_user_money(Attacker) + 3000) fm_set_user_health(Attacker, get_user_health(Attacker) + 30) fm_set_user_armor(Attacker, get_user_armor(Attacker) + 30) } else if(get_user_flags(Attacker) & FOUNDER_LEVEL) { cs_set_user_money(Attacker, cs_get_user_money(Attacker) + 7000) fm_set_user_health(Attacker, get_user_health(Attacker) + 70) fm_set_user_armor(Attacker, get_user_armor(Attacker) + 70) } else { if(get_user_team(Victim) == 2) cs_set_user_money(Attacker, cs_get_user_money(Attacker) + 1200) else if(get_user_team(Victim) == 1) cs_set_user_money(Attacker, cs_get_user_money(Attacker) + 3000) } } return 1; } public MSG_StatusIcon(msg_id, msg_dest, id) { static Attrib Attrib = get_msg_arg_int(2) if(Attrib == (1<<1)) set_msg_arg_int(2, ARG_BYTE, 0) new Icon[8]; get_msg_arg_string(2, Icon, 7); if(get_pcvar_num(removebuyzone)) { static const BuyZone[] = "buyzone"; if(equal(Icon, BuyZone)) { set_pdata_int(id, OFFSET_BZ, get_pdata_int(id, OFFSET_BZ, 5) & ~(1 << 0), 5); return PLUGIN_HANDLED; } } return PLUGIN_CONTINUE; } public MSG_ShowMenu(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 JoinTeam_Task(id, msgid) return PLUGIN_HANDLED } public MSG_VGUIMenu(msgid, dest, id) { if(get_msg_arg_int(1) != 2 || !Should_AutoJoin(id)) return PLUGIN_CONTINUE JoinTeam_Task(id, msgid) return PLUGIN_HANDLED } public MSG_SendAudio() { static Sound[17] get_msg_arg_string(2, Sound, sizeof Sound - 1) if(equal(Sound, "terwin") || equal(Sound, "ctwin") || equal(Sound, "rounddraw") || equal(Sound, "bombpl") || equal(Sound, "bombdef")) return PLUGIN_HANDLED; return PLUGIN_CONTINUE; } public MSG_Health(msgid, dest, id) { static Health; Health = get_msg_arg_int(1) if(Health > 255) set_msg_arg_int(1, ARG_BYTE, 255); else if(Health == 256) set_msg_arg_int(1, ARG_BYTE, get_user_health(id) + 10) } public MSG_ScreenFade(msgid, dest, id) { if(is_user_connected(id)) { if(get_user_flags(id) & VIP_GOLD_LEVEL) { static data[4] data[0] = get_msg_arg_int(4) data[1] = get_msg_arg_int(5) data[2] = get_msg_arg_int(6) data[3] = get_msg_arg_int(7) if(data[0] == 255 && data[1] == 255 && data[2] == 255 && data[3] > 199) return PLUGIN_HANDLED } } return PLUGIN_CONTINUE } bool:Should_AutoJoin(id) { return(get_pcvar_num(cvar_autojoin_team) && !get_user_team(id) && !task_exists(id)) } JoinTeam_Task(id, menu_msgid) { static param_menu_msgid[2] param_menu_msgid[0] = menu_msgid set_task(0.1, "Force_JoinTeam", id, param_menu_msgid, sizeof param_menu_msgid) } public Force_JoinTeam(menu_msgid[], id) { if(get_user_team(id)) return static team[2], class[2] get_pcvar_string(cvar_autojoin_team, team, sizeof team - 1) get_pcvar_string(cvar_autojoin_class, class, sizeof class - 1) Force_Team_Join(id, menu_msgid[0], team, class) } stock Force_Team_Join(id, menu_msgid, team[] = "5", 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) } public bomb_planted(planter) { C4_CountDownDelay = get_cvar_num("mp_c4timer") - 1 TASK_C4_CountDown(); set_hudmessage(random(255), random(255), random(255), -1.0, -1.0, 1, 3.1, 3.0) show_hudmessage(0, "Furienii au plantat bomba!") } public EVENT_SwitchTeam() { new Players[32], PlayersNum, id; get_players(Players, PlayersNum) if(PlayersNum) { for(new i; i < PlayersNum; i++) { id = Players[i] BeginDelay(id) } } } public BeginDelay(id) { if(is_user_connected(id)) { switch(id) { case 1..7: set_task(0.1, "BeginTeamSwap", id) case 8..15: set_task(0.2, "BeginTeamSwap", id) case 16..23: set_task(0.3, "BeginTeamSwap", id) case 24..32: set_task(0.4, "BeginTeamSwap", id) } } } public BeginTeamSwap(id) { if(is_user_connected(id)) { switch(get_user_team(id)) { case TEAM_FURIEN: cs_set_user_team(id, CS_TEAM_CT) case TEAM_ANTIFURIEN: cs_set_user_team(id, CS_TEAM_T) } } } /////////////////////////////////////////////////////////////////////////////////////////////// public Player_PreThink(id) { if(is_user_connected(id)) { if(get_user_team(id) == TEAM_FURIEN) { if(pev(id, pev_gravity) > FURIEN_GRAVITY && pev(id, pev_gravity) > 0.1) set_pev(id, pev_gravity, FURIEN_GRAVITY) if(pev(id, pev_maxspeed) < FURIEN_SPEED && pev(id, pev_maxspeed) > 1.0) { set_pev(id, pev_maxspeed, FURIEN_SPEED) set_user_footsteps(id, 1) } } if(get_pcvar_num(cvar_aim_info)) { new Target, Body; get_user_aiming(id, Target, Body); if(is_user_alive(id) && is_user_connected(Target) && is_user_alive(Target)) { new TargetTeam, PlayerTeam, TargetName[32], Message[128], TargetHealth, TargetArmor, RED, GREEN, BLUE; TargetTeam = get_user_team(Target) PlayerTeam = get_user_team(id) get_user_name(Target, TargetName, 31) TargetHealth = get_user_health(Target) TargetArmor = get_user_armor(Target) if(PlayerTeam == TEAM_FURIEN && TargetTeam == TEAM_ANTIFURIEN) { formatex(Message, sizeof(Message)-1, "%s^nHP: %i | AP: %i", TargetName, TargetHealth, TargetArmor) RED = 20 GREEN = 200 BLUE = 50 } else if(PlayerTeam == TEAM_FURIEN && TargetTeam == TEAM_FURIEN) { formatex(Message, sizeof(Message)-1, "%s^nHP: %i | AP: %i", TargetName, TargetHealth, TargetArmor) RED = 200 GREEN = 20 BLUE = 20 } else if(PlayerTeam == TEAM_ANTIFURIEN && TargetTeam == TEAM_ANTIFURIEN) { formatex(Message, sizeof(Message)-1, "%s^nHP: %i | AP: %i", TargetName, TargetHealth, TargetArmor) RED = 200 GREEN = 20 BLUE = 20 } else if(PlayerTeam == TEAM_ANTIFURIEN && TargetTeam == TEAM_FURIEN) return set_hudmessage(RED, GREEN, BLUE, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1); show_hudmessage(id, "%s", Message) } } } } public FWD_AddToFullPack(es, e, ent, host, host_flags, player, p_set) { if(is_user_connected(ent) && is_user_connected(host) && is_user_alive(ent)) { if(is_user_alive(host) && get_user_team(ent) == 1 && get_user_team(host) == 1 || !is_user_alive(host) && get_user_team(ent) == 1 && pev(host, pev_iuser2) == ent || get_user_team(ent) == 1 && pev(ent, pev_maxspeed) <= 1.0) { set_es(es, ES_RenderFx, kRenderFxNone); set_es(es, ES_RenderMode, kRenderTransTexture); set_es(es, ES_RenderAmt, 255); } else if(get_user_team(ent) == 1) { set_es(es, ES_RenderFx, kRenderFxNone); set_es(es, ES_RenderMode, kRenderTransTexture); static Float:Origin[3] pev(ent, pev_origin, Origin) if(get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && fm_get_speed(ent) <= 5 || get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && Origin[0] == Wallorigin[ent][0] && Origin[1] == Wallorigin[ent][1] && Origin[2] == Wallorigin[ent][2]) set_es(es, ES_RenderAmt, 0); else set_es(es, ES_RenderAmt, 255); } } } public FWD_ParachutePreThink(id) { if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) { new Float:FallSpeed = -50.0; new Float:Frame; new Button = pev(id, pev_button); new OldButton = pev(id, pev_oldbuttons); new Flags = pev(id, pev_flags); if(ParaENT[id] > 0 &&(Flags & FL_ONGROUND)) { if(pev(ParaENT[id],pev_sequence) != 2) { set_pev(ParaENT[id], pev_sequence, 2); set_pev(ParaENT[id], pev_gaitsequence, 1); set_pev(ParaENT[id], pev_frame, 0.0); set_pev(ParaENT[id], pev_fuser1, 0.0); set_pev(ParaENT[id], pev_animtime, 0.0); return; } pev(ParaENT[id],pev_fuser1, Frame); Frame += 2.0; set_pev(ParaENT[id],pev_fuser1,Frame); set_pev(ParaENT[id],pev_frame,Frame); if(Frame > 254.0) { engfunc(EngFunc_RemoveEntity, ParaENT[id]); ParaENT[id] = 0; } else { engfunc(EngFunc_RemoveEntity, ParaENT[id]); ParaENT[id] = 0; } return; } if(Button & IN_USE) { new Float:Velocity[3]; pev(id, pev_velocity, Velocity); if(Velocity[2] < 0.0) { if(ParaENT[id] <= 0) { ParaENT[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); if(ParaENT[id] > 0) { set_pev(ParaENT[id],pev_classname, PARACHUTE_CLASS); set_pev(ParaENT[id], pev_aiment, id); set_pev(ParaENT[id], pev_owner, id); set_pev(ParaENT[id], pev_movetype, MOVETYPE_FLY); set_pev(ParaENT[id], pev_sequence, 0); set_pev(ParaENT[id], pev_gaitsequence, 1); set_pev(ParaENT[id], pev_frame, 0.0); set_pev(ParaENT[id], pev_fuser1, 0.0); } } if(ParaENT[id] > 0) { set_pev(id, pev_sequence, 3); set_pev(id, pev_gaitsequence, 1); set_pev(id, pev_frame, 1.0); set_pev(id, pev_framerate, 1.0); Velocity[2] = (Velocity[2] + 40.0 < FallSpeed) ? Velocity[2] + 40.0 : FallSpeed; set_pev(id, pev_velocity, Velocity); if(pev(ParaENT[id],pev_sequence) == 0) { pev(ParaENT[id],pev_fuser1, Frame); Frame += 1.0; set_pev(ParaENT[id],pev_fuser1,Frame); set_pev(ParaENT[id],pev_frame,Frame); if(Frame > 100.0) { set_pev(ParaENT[id], pev_animtime, 0.0); set_pev(ParaENT[id], pev_framerate, 0.4); set_pev(ParaENT[id], pev_sequence, 1); set_pev(ParaENT[id], pev_gaitsequence, 1); set_pev(ParaENT[id], pev_frame, 0.0); set_pev(ParaENT[id], pev_fuser1, 0.0); } } } } else if(ParaENT[id] > 0) { engfunc(EngFunc_RemoveEntity, ParaENT[id]); ParaENT[id] = 0; } } else if((OldButton & IN_USE) && ParaENT[id] > 0) { engfunc(EngFunc_RemoveEntity, ParaENT[id]); ParaENT[id] = 0; } } } public FWD_GameDescription() { static GameName[32] get_pcvar_string(cvar_gamedescription, GameName, 31) forward_return(FMV_STRING, GameName) return FMRES_SUPERCEDE } public TASK_CanPlant() { CanPlant = true; set_hudmessage(random(255), random(255), random(255), -1.0, -1.0, 1, 3.1, 3.0) show_hudmessage(0, "") } public TASK_C4_CountDown() { new Red, Green, Blue if(C4_CountDownDelay > 10) Red = 0, Green = 255, Blue = 0; else if(C4_CountDownDelay > 5) Red = 255, Green = 200, Blue = 0; else if(C4_CountDownDelay <= 5) Red = 255, Green = 0, Blue = 0; if(C4_CountDownDelay) { new Message[256]; formatex(Message,sizeof(Message)-1,"----------^n| C4: %d |^n----------", C4_CountDownDelay); set_hudmessage(Red, Green, Blue, -1.0, 0.78, 0, 6.0, 1.0) show_hudmessage(0, "%s", Message) set_task(1.0, "TASK_C4_CountDown", TASKID_C4COUNTDOWN); C4_CountDownDelay--; } else if(!C4_CountDownDelay) C4_CountDownDelay = 0; } stock ColorChat(const id, const input[], any:...) { new count = 1, players[32]; static msg[191]; vformat(msg, 190, input, 3); replace_all(msg, 190, "!g", "^4"); replace_all(msg, 190, "!y", "^1"); replace_all(msg, 190, "!t", "^3"); if(id) players[0] = id; else get_players(players, count, "ch"); { for(new i = 0; i < count; i++) { if(is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, MSGID_SayText, _, players[i]); write_byte(players[i]); write_string(msg); message_end(); } } } } Przeczytaj cały wpis Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi