Eklenti düzenleme
Gönderilme zamanı: Cmt Ağu 11, 2018 2:03 pm
Ekteki eklentide zombiler iç içe girince hasar almıyorlar
yani iki zombi iç içe girince hiç bir şekilde hasar almıyorlar mermi işlemiyor
bu sorunun düzeltilmesini istiyorum yardımlarınızı bekliyorum
yani iki zombi iç içe girince hiç bir şekilde hasar almıyorlar mermi işlemiyor
bu sorunun düzeltilmesini istiyorum yardımlarınızı bekliyorum
Kod: Tümünü seç
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
new g_iSemiClip[33];
new Semi[33]
public plugin_init() {
register_plugin("Playerlarin Birbirinin Icinden Gecme", "1.0", "Optimist");
register_forward( FM_StartFrame, "fwStartFrame", 0 );
register_forward( FM_AddToFullPack, "fwFullPack", 1 );
RegisterHam(Ham_TakeDamage, "player", "Take_Damage")
RegisterHam(Ham_TakeDamage, "player", "Take_Damage_Post", 1)
}
public fwFullPack( es, e, ent, host, flags, player, pSet ) {
if( player && g_iSemiClip[ent] && g_iSemiClip[host] ) {
set_es(es, ES_Solid, SOLID_NOT);
}
return FMRES_IGNORED;
}
public fwStartFrame() {
static iPlayers[32], iNum, iPlayer, iPlayer2;
get_players(iPlayers, iNum);
arrayset(g_iSemiClip, 0, sizeof(g_iSemiClip));
new iTeams[33] = {-1, ...};
for( new i = 0; i < iNum; i++ ) {
iPlayer = iPlayers[i];
if( !is_user_alive(iPlayer) )
continue;
for( new j = 0; j < iNum; j++ ) {
iPlayer2 = iPlayers[j];
if(iPlayer == iPlayer2 || !is_user_alive(iPlayer2))
continue;
static Float:vOrigin1[3], Float:vOrigin2[3];
pev(iPlayer, pev_origin, vOrigin1);
pev(iPlayer2, pev_origin, vOrigin2);
if( vector_distance( vOrigin1, vOrigin2 ) < 96) {
if(zp_get_user_zombie(iPlayer) == zp_get_user_zombie(iPlayer2) && !Semi[iPlayer] && !Semi[iPlayer2])
{
g_iSemiClip[iPlayer] = true;
g_iSemiClip[iPlayer2] = true;
}
if(!zp_get_user_zombie(iPlayer) == !zp_get_user_zombie(iPlayer2))
{
g_iSemiClip[iPlayer] = true;
g_iSemiClip[iPlayer2] = true;
}
if(!zp_get_user_zombie(iPlayer) == zp_get_user_zombie(iPlayer2))
{
g_iSemiClip[iPlayer] = false;
g_iSemiClip[iPlayer2] = false;
}
if(zp_get_user_zombie(iPlayer) == !zp_get_user_zombie(iPlayer2))
{
g_iSemiClip[iPlayer] = false;
g_iSemiClip[iPlayer2] = false;
}
}
}
}
for( new i = 0; i < iNum; i++ ) {
iPlayer = iPlayers[i];
if( is_user_alive(iPlayer) )
set_pev(iPlayer, pev_solid, g_iSemiClip[iPlayer] ? SOLID_NOT : SOLID_SLIDEBOX);
}
return FMRES_IGNORED;
}
public Take_Damage(victim, inflictor, attacker, Float:damage, damagebits)
{
if(!is_user_alive(victim) || !is_user_connected(attacker))
return
if(!zp_get_user_zombie(victim))
return
set_pev( victim, pev_solid, SOLID_SLIDEBOX )
Semi[victim] = 1
}
public Take_Damage_Post(victim, inflictor, attacker, Float:damage, damagebits)
{
if(!is_user_alive(victim) || !is_user_connected(attacker))
return
if(!zp_get_user_zombie(victim))
return
set_pev( victim, pev_solid, SOLID_SLIDEBOX )
Semi[victim] = 0
}