| PurposeLessx |
08-04-2017 07:54 |
Semiclip
I have a problem. When I use this semiclip, the server crashs.
Please do not say me that "Use other semiclip plugin." I need this plugin.
Could you help me about my problem?
Thanks for helping me
PHP Code:
#include <amxmodx> #include <engine> #include <fakemeta> #include <hamsandwich>
#define IsPlayer(%1) (1 <= %1 <= get_maxplayers())
new players[32], inum, semiclip_cvar, mp_friendlyfire, syncObj new iTeams[33] = {-1, ...};
public plugin_init() { register_plugin("Semiclip", "1.1", "Crusher918") // Edited by PurposeLess RegisterHam(Ham_Player_PreThink, "player", "FwdHamPlayerPreThink", true) RegisterHam(Ham_Killed, "player", "FwdHamPlayerKilled", true) register_forward(FM_ShouldCollide, "FwdShouldCollide") register_forward(FM_AddToFullPack, "FwdAddToFullPack", true) semiclip_cvar = register_cvar("semiclip", "0") mp_friendlyfire = register_cvar("mp_friendlyfire", "0") syncObj = CreateHudSyncObj(); }
public FwdHamPlayerPreThink(const id) { if(get_pcvar_num(semiclip_cvar)) { Semiclip(id, SOLID_NOT) } }
public client_PostThink(id) { if(get_pcvar_num(semiclip_cvar)) { Semiclip(id, SOLID_SLIDEBOX) } }
public FwdHamPlayerKilled() { if(get_pcvar_num(semiclip_cvar)) { get_players(players, inum, "ae") for(new i=0; i < inum; i++) { entity_set_int(players[i], EV_INT_solid, SOLID_SLIDEBOX) } } }
public FwdShouldCollide(const touched, const other) { if(get_pcvar_num(mp_friendlyfire)) return FMRES_IGNORED; if(get_pcvar_num(semiclip_cvar)) { if(IsPlayer(touched) && IsPlayer(other)) { iTeams[touched] = get_user_team(touched); iTeams[other] = get_user_team(other); if(iTeams[touched] == iTeams[other]) { static id, body get_user_aiming(touched, id, body) if(id != touched && is_user_connected(id)) { static name[32] get_user_name(id, name, charsmax(name)) set_hudmessage(255,0,0, 0.0, 0.87, 0) ShowSyncHudMsg(touched, syncObj, "%s", name) } forward_return(FMV_CELL, 0) return FMRES_SUPERCEDE; } } } return FMRES_IGNORED; }
public FwdAddToFullPack(es, e, iEnt, id, hostflags, player, pSet) { if(get_pcvar_num(semiclip_cvar)) { if(player && id != iEnt && get_orig_retval()) { iTeams[id] = get_user_team(id); iTeams[iEnt] = get_user_team(iEnt); if(iTeams[id] == iTeams[iEnt]) set_es(es, ES_Solid, SOLID_NOT) } } }
Semiclip(const id, const solid) { if(get_pcvar_num(semiclip_cvar)) { if(!is_user_alive(id)) return get_players(players, inum, "a") for(new i = 0; i < inum; i++) { if(id != players[i]) { iTeams[id] = get_user_team(id); iTeams[players[i]] = get_user_team(players[i]); if(iTeams[id] == iTeams[players[i]]) entity_set_int(players[i], EV_INT_solid, solid) } } } }
|