Raised This Month: $51 Target: $400
 12% 

$10 dollars for this plugin - Make Zombies Push Zombies Away


Post New Thread Reply   
 
Thread Tools Display Modes
artos
Senior Member
Join Date: Mar 2010
Old 04-15-2013 , 19:01   Re: $10 dollars for this plugin - Make Zombies Push Zombies Away
Reply With Quote #21

Quote:
Originally Posted by jamil_hamida View Post
thxx artos its working now but not with zbot
I didn't plan to make it works with it. Using Zbot is illegal and causing many problems with plugins which are not designed to play on bots.
__________________

Last edited by artos; 04-15-2013 at 19:02.
artos is offline
Send a message via Skype™ to artos
hekaUkraine
Junior Member
Join Date: Apr 2012
Old 04-16-2013 , 15:45   Re: $10 dollars for this plugin - Make Zombies Push Zombies Away
Reply With Quote #22

PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <engine>
#include <zp50_core>
#include <zp50_class_survivor>
#include <zp50_class_zombie>

#define PLUGIN    "Zombie Knife Knockback"
#define VERSION    "1.0"
#define AUTHOR    "XXXX"


new cvar_knife cvar_knock cvar_jump cvar_survivor;

public 
plugin_init()
{
    
register_plugin(PLUGIN VERSION AUTHOR);
    
register_cvar("zp_knife"VERSIONFCVAR_SERVER);
    
register_event("Damage" "event_Damage" "b" "2>0");
    
register_event"CurWeapon""Event_CurWeapon""be""1=1" );

    
cvar_knife         register_cvar("zp_knife_knock" "1");
    
cvar_knock       register_cvar("zp_knife_power" "8");
    
cvar_jump          register_cvar("zp_knife_jump""50.0");
}

public 
event_Damage(id)
{
    if(!
get_pcvar_num(cvar_knife))
        return 
PLUGIN_CONTINUE;

    if(!
is_user_alive(id))
        return 
PLUGIN_CONTINUE;

    if(
zp_class_survivor_get(id) && get_pcvar_num(cvar_survivor) == 0)
        return 
PLUGIN_CONTINUE;

    new 
weapon attacker get_user_attacker(id weapon);

    if(!
is_user_alive(attacker))
        return 
PLUGIN_CONTINUE;

    if(
weapon == CSW_KNIFE)
    {
        new 
Float:vec[3];
        new 
Float:oldvelo[3];
        
get_user_velocity(idoldvelo);
        
create_velocity_vector(id attacker vec);
        
vec[0] += oldvelo[0];
        
vec[1] += oldvelo[1];
        
set_user_velocity(id vec);
    }

    return 
PLUGIN_CONTINUE;
}

public 
Event_CurWeaponid )
{
    if (!
is_user_connected(id) || !is_user_alive(id) || zp_core_is_zombie(id))
        return 
PLUGIN_CONTINUE
    
    
new WeaponID read_data(2)
    if (
WeaponID != CSW_KNIFE)
        return  
PLUGIN_CONTINUE

    
return PLUGIN_CONTINUE;
}

stock create_velocity_vector(victim,attacker,Float:velocity[3])
{
    if(!
zp_core_is_zombie(victim) || !is_user_alive(attacker))
        return 
0;

    new 
Float:vicorigin[3];
    new 
Float:attorigin[3];
    
entity_get_vector(victim   EV_VEC_origin vicorigin);
    
entity_get_vector(attacker EV_VEC_origin attorigin);

    new 
Float:origin2[3]
    
origin2[0] = vicorigin[0] - attorigin[0];
    
origin2[1] = vicorigin[1] - attorigin[1];

    new 
Float:largestnum 0.0;

    if(
floatabs(origin2[0])>largestnumlargestnum floatabs(origin2[0]);
    if(
floatabs(origin2[1])>largestnumlargestnum floatabs(origin2[1]);

    
origin2[0] /= largestnum;
    
origin2[1] /= largestnum;

    
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knock) * 3000) ) / get_entity_distance(victim attacker);
    
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knock) * 3000) ) / get_entity_distance(victim attacker);
    if(
velocity[0] <= 20.0 || velocity[1] <= 20.0)
        
velocity[2] = random_float(200.0 275.0);

     
set_pdata_floatvictim 108 1.0 )

    return 
1;
}



public 
client_PreThink(id)
{
    if (!
is_user_connected(id) || !is_user_alive(id) || zp_core_is_zombie(id))
        return 
PLUGIN_CONTINUE

    
new temp[2], weapon get_user_weapon(idtemp[0], temp[1])
    if (
weapon != CSW_KNIFE)
        return 
PLUGIN_CONTINUE
        
    
if ((get_user_button(id) & IN_JUMP) && !(get_user_oldbutton(id) & IN_JUMP))
    {
        new 
flags entity_get_int(idEV_INT_flags)
        new 
waterlvl entity_get_int(idEV_INT_waterlevel)
        
        if (!(
flags FL_ONGROUND))
            return 
PLUGIN_CONTINUE
        
if (flags FL_WATERJUMP)
            return 
PLUGIN_CONTINUE
        
if (waterlvl 1)
            return 
PLUGIN_CONTINUE
                
        
new Float:fVelocity[3]
        
entity_get_vector(idEV_VEC_velocityfVelocity)
        
fVelocity[2] += get_pcvar_num(cvar_jump)
        
        
entity_set_vector(idEV_VEC_velocityfVelocity)
        
entity_set_int(idEV_INT_gaitsequence6)
    }
    return 
PLUGIN_CONTINUE;
}  

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/ 
hekaUkraine is offline
artos
Senior Member
Join Date: Mar 2010
Old 04-16-2013 , 16:30   Re: $10 dollars for this plugin - Make Zombies Push Zombies Away
Reply With Quote #23

@up
This won't work because ZP is blocking event_damage.
__________________
artos is offline
Send a message via Skype™ to artos
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 22:34.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode