Veteran Member
|
06-26-2011
, 18:36
Re: Problemas con Semiclip
|
#2
|
Quote:
Originally Posted by gladius
Bueno la verdad es que tengo un gran problema con el semiclip.
Uso el de xPaw (Click en el nick para ver el code) con algunos cambios estéticos, nada funcional. Pero, el problema es que cuando atravieso a un jugador justo cuando salto, es como si se trabara y salto muy lejos, o cuando salto un poco antes y llego hasta donde está el jugador, choco como si no hubiese semiclip. Siempre cuando salto, si lo atravieso caminando todo bien.
Saludos
|
Toma te doy mi Semiclip que tengo hace mucho no se de donde lo saque o como lo hice pero fue hace como 4 años
lo que si se es que tiene Fixeado el Teleport ocea si entran 2 personas por teleport entran.
creo que este semiclip esta sacado del semiclip de KZ arg xD
PHP Code:
/* Semiclip + Fix teleport.amxx 2.0 by G-arg This is no-teleport bug fix for old semiclip plugins. It will disallow players to cheat in maps like drewbie_longjumps. Dont forget to create a file: /cstrike/addons/amxmodx/configs/tpfix.txt In this file make a list of maps where this fix should be working on. SERVER CVAR: kz_tpfix 0 plugin is off kz_tpfix 1 plugin will work in every map accept those which are listed in configs/tpfix.txt kz_tpfix 2 plugin will work only on maps listed in configs/tpfix.txt
Semiclip: ga_autosemiclip 1
ga_autotransparency 1 */
#define CVAR_TPFIX "kz_tpfix"
#include <amxmodx> #include <engine> #include <amxmisc> #include <fakemeta>
#define NOBLOCK_DISTANCE 120.0 #define tmins teleport_mins[i] #define tmaxs teleport_maxs[i] new Float:teleport_mins[300][3] new Float:teleport_maxs[300][3] new teleport_ent[300] new teleport_num new bool:noblock[32] new bool:isplayersolid[32]
new kz_autosemiclip new kz_autotransparency
public plugin_init() { register_plugin("Auto Semiclip","1.5","G-arg")
register_clcmd("say /solid","kz_setsolid")
register_cvar(CVAR_TPFIX, "1")
kz_autosemiclip = register_cvar("ga_autosemiclip","1") kz_autotransparency = register_cvar("ga_autotransparency","1") set_task(0.1,"noblock_task",1000,"",0,"ab") if(plugin_close() > 0) return 0 load_teleports() if(teleport_num > 0) register_forward(FM_PlayerPreThink, "plrPreThink") return 0;
}
public kz_setsolid(id) { isplayersolid[id] = true client_print(id,print_chat,"[G-arg] SemiClip Desactivado") set_task(5.0,"stop_clip",id) return PLUGIN_HANDLED }
public stop_clip(id) { isplayersolid[id] = false return PLUGIN_HANDLED }
public noblock_task() { if(get_pcvar_num(kz_autosemiclip) > -1) { new bool:solid[32] new Float:origin[3] new Float:vorigin[3] for(new x=1;x<=get_maxplayers();x++) { if(is_user_connected(x) && is_user_alive(x)) { if(get_pcvar_num(kz_autosemiclip) == 1 || noblock[x-1]) { entity_get_vector(x,EV_VEC_origin,origin) for(new i=1;i<=get_maxplayers();i++) { if(x != i && is_user_connected(i) && is_user_alive(i)) { entity_get_vector(i,EV_VEC_origin,vorigin) if(get_distance_f(origin,vorigin) <= NOBLOCK_DISTANCE) { entity_set_int(x,EV_INT_solid,SOLID_NOT) entity_set_int(i,EV_INT_solid,SOLID_NOT) if(get_pcvar_num(kz_autotransparency) == 1) { set_rendering(x,kRenderFxNone,0,0,0,kRenderTransAlpha,60) set_rendering(i,kRenderFxNone,0,0,0,kRenderTransAlpha,60) } solid[x-1] = true solid[i-1] = true } else if(!solid[i-1]) { entity_set_int(i,EV_INT_solid,SOLID_BBOX) glow(i) } } } } else if(!solid[x-1]) { entity_set_int(x,EV_INT_solid,SOLID_BBOX) glow(x) } } } } else { for(new i=1;i<=get_maxplayers();i++) { if(is_user_connected(i) && is_user_alive(i)) { entity_set_int(i,EV_INT_solid,SOLID_BBOX) glow(i) } } } }
public glow(id) { new colors[3]
colors = {0,0,0} set_rendering(id,kRenderFxGlowShell,colors[0],colors[1],colors[2],kRenderNormal,25) }
public client_disconnect(id) { noblock[id-1] = true }
public client_putinserver(id) { noblock[id-1] = true }
stock plugin_close() { new file[128] new mapname[32] new const tpfix = get_cvar_num(CVAR_TPFIX) if(tpfix == 0) return 1 get_configsdir(file, 127) get_mapname(mapname, 31) format(file, 127, "%s/tpfix.txt", file) if(!file_exists(file)) return 0 new ln = 0 new line[32] new len while ((ln = read_file(file, ln, line, 31, len)) > 0) { if(equali(mapname, line)) { switch(tpfix) { case 1: return 1 case 2: return 0 } } } switch(tpfix) { case 1: return 0 case 2: return 1 } return 0 } stock load_teleports() { new ent = get_maxplayers() while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "trigger_teleport")) > 0){ pev(ent, pev_absmin, teleport_mins[teleport_num]) pev(ent, pev_absmax, teleport_maxs[teleport_num]) teleport_ent[teleport_num] = ent if(teleport_maxs[teleport_num][2] - teleport_mins[teleport_num][2] <= 128.0) teleport_num++ } } public plrPreThink(id) { if(pev(id, pev_solid) != SOLID_NOT || pev(id, pev_movetype) == MOVETYPE_NOCLIP) return static bool:onground[33] static Float:velocity[3] static flags flags = pev(id, pev_flags) if(flags & FL_ONGROUND && !onground[id]) { plr_check(id) onground[id] = true return } if(!(flags & FL_ONGROUND) && onground[id]) { plr_check(id) onground[id] = false return } pev(id, pev_velocity, velocity) if(velocity[2] < 160.0) { plr_check(id) return } } stock plr_check(id) { static Float:mins[3], Float:maxs[3] static bool:collides pev(id, pev_absmin, mins) pev(id, pev_absmax, maxs) for(new i=0; i<teleport_num; i++) { collides = true if(tmins[0] > maxs[0] || tmaxs[0] < mins[0]) collides = false else if(tmins[1] > maxs[1] || tmaxs[1] < mins[1]) collides = false else if(tmins[2] > maxs[2] || tmaxs[2] < mins[2]) collides = false if(collides) { dllfunc(DLLFunc_Touch, id, teleport_ent[i]) dllfunc(DLLFunc_Touch, teleport_ent[i], id) return 0 } } return 0 }
Aclaro G-arg es mi ex comunidad que tenia se llamaba Gamers-arg xD
salu2
Last edited by p4rp4d30; 06-26-2011 at 18:43.
|
|