Raised This Month: $ Target: $400
 0% 

VIP Knife


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
akefis
Junior Member
Join Date: Nov 2013
Location: France
Old 01-30-2016 , 18:57   VIP Knife
Reply With Quote #1

I would the 3 case for VIP knife only for admin flag acces level c.
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine> 
#include <vault>
#include <fun>

#define PLUGIN "Knife Mod"
#define VERSION "1.0" 
#define AUTHOR "spunko"

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 255  

new knife_model[33
new 
g_Menu

new CVAR_HIGHSPEED
new CVAR_LOWSPEED
new CVAR_LOWGRAV
new CVAR_NORMGRAV
new CVAR_HEALTH_ADD
new CVAR_HEALTH_MAX
new CVAR_DAMAGE 

public plugin_init() { 
    
    
register_plugin(PLUGINVERSIONAUTHOR
    
    
register_event"Damage""event_damage""be" )
    
register_event("CurWeapon","CurWeapon","be","1=1"
    
    
g_Menu register_menuid("Knife Mod")
    
register_menucmd(g_Menu1023"knifemenu")
    
    
register_clcmd("say /knife""display_knife")
    
    
CVAR_HIGHSPEED register_cvar("km_highspeed","340")
    
CVAR_LOWSPEED register_cvar("km_lowspeed","170")
    
CVAR_HEALTH_ADD register_cvar("km_addhealth""3")
    
CVAR_HEALTH_MAX register_cvar("km_maxhealth""75")
    
CVAR_DAMAGE register_cvar("km_damage""2")
    
CVAR_LOWGRAV register_cvar("km_lowgravity" "550")
    
CVAR_NORMGRAV get_cvar_pointer("sv_gravity")
    
    
set_task(480.0"kmodmsg"0__"b")
}

public 
plugin_precache() { 
    
precache_model("models/knife-mod/v_butcher.mdl"
    
precache_model("models/knife-mod/p_butcher.mdl"
    
precache_model("models/knife-mod/v_machete.mdl")
    
precache_model("models/knife-mod/p_machete.mdl")
    
precache_model("models/knife-mod/v_bak.mdl")
    
precache_model("models/knife-mod/p_bak.mdl")
    
precache_model("models/knife-mod/v_pocket.mdl")
    
precache_model("models/knife-mod/p_pocket.mdl")
    
precache_model("models/knife-mod/v_knife.mdl"
    
precache_model("models/knife-mod/p_knife.mdl")


public 
display_knife(id) {
    new 
menuBody[512]
    
add(menuBody511"\rKnife Mod\w^n^n")
    
add(menuBody511"1. Gravity Knife \y\w^n")
    
add(menuBody511"2. VIP Knife \y\w^n")
    
add(menuBody511"3. Default Knife \y\w^n^n")
    
add(menuBody511"0. Exit^n")
    
    new 
keys = ( 1<<1<<1<<1<<1<<1<<)
    
show_menu(idkeysmenuBody, -1"Knife Mod")
}

public 
knifemenu(idkey) {
    switch(
key
    {
        case 
0SetKnife(id 1)
        case 
1SetKnife(id 2)
        default: return 
PLUGIN_HANDLED
    
}
    
SaveData(id)
    return 
PLUGIN_HANDLED


public 
SetKnife(id Knife) {
    
knife_model[id] = Knife
    
    
new ClipAmmoWeapon get_user_weapon(idClipAmmo
    if ( 
Weapon != CSW_KNIFE )
        return 
PLUGIN_HANDLED
    
    
new vModel[56],pModel[56]
    
    switch(
Knife)
    {
        case 
1: {
            
format(vModel,55,"models/knife-mod/v_butcher.mdl")
            
format(pModel,55,"models/knife-mod/p_butcher.mdl")
        }
        case 
2: {
            
format(vModel,55,"models/v_knife.mdl")
            
format(pModel,55,"models/p_knife.mdl")
        }
        case 
3: {
            
format(vModel55,"models/knife-mod/v_machete.mdl")
            
format(vModel55,"models/knife-mod/p_machete.mdl")
        }
    } 
    
    
entity_set_string(idEV_SZ_viewmodelvModel)
    
entity_set_string(idEV_SZ_weaponmodelpModel)
    
    return 
PLUGIN_HANDLED;  
}

public 
event_damageid ) {
    
    new 
victim_id id;
    if( !
is_user_connectedvictim_id ) ) return PLUGIN_CONTINUE
    
new dmg_take read_data);
    new 
dmgtype read_data);
    new 
Float:multiplier get_pcvar_float(CVAR_DAMAGE);
    new 
Float:damage dmg_take multiplier;
    new 
health get_user_healthvictim_id );
    
    new 
iWeapIDattacker_id get_user_attackervictim_idiWeapID );
    
    if( !
is_user_connectedattacker_id ) || !is_user_alivevictim_id ) ) {
        return 
PLUGIN_HANDLED
    
}
    
    if( 
iWeapID == CSW_KNIFE && knife_model[attacker_id] == ) {
        
        if( 
floatround(damage) >= health ) {
            if( 
victim_id == attacker_id ) {
                return 
PLUGIN_CONTINUE
                
}else{
                
log_killattacker_idvictim_id"knife");
            }
            
            return 
PLUGIN_CONTINUE
            
}else {
            if( 
victim_id == attacker_id ) return PLUGIN_CONTINUE
            
            fakedamage
victim_id"weapon_knife"damagedmgtype );
        }
    }
    return 
PLUGIN_CONTINUE
}

public 
CurWeapon(id)
    {
    new 
Weapon read_data(2)
    
    
// Set Knife Model
    
SetKnife(idknife_model[id])   
    
    
// Task Options
    
    
if(knife_model[id] == && !task_exists(id) && Weapon == CSW_KNIFE)
        
set_task(TASK_INTERVAL "task_healing",id,_,_,"b")
    else if(
task_exists(id))
        
remove_task(id)
    
    
// Abilities
    
set_user_footsteps(id , ( (knife_model[id] == && Weapon == CSW_KNIFE) ? 0) )
    
    new 
Float:Gravity = ((knife_model[id] == && Weapon == CSW_KNIFE)? get_pcvar_float(CVAR_LOWGRAV) : get_pcvar_float(CVAR_NORMGRAV)) / 800.0
    set_user_gravity
(id Gravity)
    
    
// Speed
    
new Float:Speed
    
if(Weapon != CSW_KNIFE || knife_model[id] < 3)
        return 
PLUGIN_CONTINUE
    
else if(knife_model[id] == 3)
        
Speed get_pcvar_float(CVAR_HIGHSPEED)
    else if(
knife_model[id] == 4)
        
Speed get_pcvar_float(CVAR_LOWSPEED)
    
    
set_user_maxspeed(idSpeed)
    
    return 
PLUGIN_HANDLED   
    
}

stock log_kill(killervictimweapon[],headshot) {
    
user_silentkillvictim );
    
    
message_beginMSG_ALLget_user_msgid"DeathMsg" ), {0,0,0}, );
    
write_bytekiller );
    
write_bytevictim );
    
write_byteheadshot );
    
write_stringweapon );
    
message_end();
    
    new 
kfrags get_user_fragskiller );
    
set_user_fragskillerkfrags++ );
    new 
vfrags get_user_fragsvictim );
    
set_user_fragsvictimvfrags++ );
    
    return  
PLUGIN_CONTINUE



public 
task_healing(id) {  
    new 
addhealth get_pcvar_num(CVAR_HEALTH_ADD)  
    if (!
addhealth)
        return  
    
    new 
maxhealth get_pcvar_num(CVAR_HEALTH_MAX)  
    if (
maxhealth MAX_HEALTH) { 
        
set_pcvar_num(CVAR_HEALTH_MAXMAX_HEALTH)  
        
maxhealth MAX_HEALTH 
    
}  
    
    new 
health get_user_health(id)   
    
    if (
is_user_alive(id) && (health maxhealth)) { 
        
set_user_health(idhealth addhealth)
        
set_hudmessage(02550, -1.00.2501.02.00.10.14)
        
show_hudmessage(id,"<< !!HEAL IN PROGRESS!! >>")
        
message_begin(MSG_ONEget_user_msgid("ScreenFade"), {0,0,0}, id)
        
write_short(1<<10)
        
write_short(1<<10)
        
write_short(0x0000)
        
write_byte(0)
        
write_byte(200)
        
write_byte(0)
        
write_byte(75)
        
message_end()
    }
    
    else {
        if (
is_user_alive(id) && (health maxhealth))
            
remove_task(id)
    }
}  

public 
client_disconnect(id) {  
    if(
task_exists(id)) remove_task(id)  
}  


public 
kmodmsg() { 
    
    
client_print(0,print_chat,"[AMXX] Fait /knife pour avoir le gravity knife")
}  

public 
client_authorized(id)
    {
    
LoadData(id)
}

SaveData(id)

    
    new 
authid[32]
    
get_user_authid(idauthid31)
    
    new 
vaultkey[64]
    new 
vaultdata[64]
    
    
format(vaultkey63"KMOD_%s"authid)
    
format(vaultdata63"%d"knife_model[id])
    
set_vaultdata(vaultkeyvaultdata)
}

LoadData(id

    new 
authid[32
    
get_user_authid(id,authid,31)
    
    new 
vaultkey[64], vaultdata[64]
    
    
format(vaultkey63"KMOD_%s"authid)
    
get_vaultdata(vaultkeyvaultdata63)
    
knife_model[id] = str_to_num(vaultdata)
    

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/ 
Thanks
akefis is offline
Croxeye
Member
Join Date: Jul 2015
Old 01-30-2016 , 19:40   Re: VIP Knife
Reply With Quote #2

Can you explain more what do you want ?
Croxeye is offline
Craxor
Veteran Member
Join Date: Jan 2016
Location: Romania
Old 01-31-2016 , 02:37   Re: VIP Knife
Reply With Quote #3

Quote:
Originally Posted by Croxeye View Post
Can you explain more what do you want ?
Only admins with flag "c" can use first three cases ( case 1, case 2, case 3 ).
__________________
Project: Among Us
Craxor is offline
Send a message via ICQ to Craxor
akefis
Junior Member
Join Date: Nov 2013
Location: France
Old 01-31-2016 , 11:57   Re: VIP Knife
Reply With Quote #4

Quote:
Originally Posted by Craxor View Post
Only admins with flag "c" can use first three cases ( case 1, case 2, case 3 ).
No, only admin can use case 3
akefis is offline
Croxeye
Member
Join Date: Jul 2015
Old 01-31-2016 , 14:51   Re: VIP Knife
Reply With Quote #5

PHP Code:
new menuBody[512
    
add(menuBody511"\rKnife Mod\w^n^n"
    
add(menuBody511"1. Gravity Knife \y\w^n"
    
add(menuBody511"2. VIP Knife \y\w^n"
    
add(menuBody511"3. Default Knife \y\w^n^n"
    
add(menuBody511"0. Exit^n"
     
    new 
keys = ( 1<<1<<1<<1<<1<<1<<
    
show_menu(idkeysmenuBody, -1"Knife Mod"
--->
PHP Code:
    new menu menu_create("\rKnife Mod""gamemenu_handler")
    
    
menu_additem(menu"\wGravity Knife""1"0)
    
menu_additem(menu"\wVIP Knife""2"0)
    
menu_additem(menu"\wDefault Knife""3"ADMIN_KICK)
    
    
menu_setprop(menu,MPROP_EXITNAME,"Exit")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idmenu0)
    return 
PLUGIN_HANDLED 
PHP Code:
public gamemenu_handler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
iData[6], iAccessiCallbackiName[64];
    
    
menu_item_getinfo(menuitemiAccessiData5iName63iCallback)
    
    switch (
str_to_num(iData))
    {
        case 
1:
        case 
2:
        case 
3:
    
    }
    return 
PLUGIN_HANDLED;


Last edited by Croxeye; 01-31-2016 at 14:52.
Croxeye is offline
akefis
Junior Member
Join Date: Nov 2013
Location: France
Old 01-31-2016 , 15:20   Re: VIP Knife
Reply With Quote #6

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine> 
#include <vault>
#include <fun>

#define PLUGIN "Knife Mod"
#define VERSION "1.0" 
#define AUTHOR "spunko"

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 255  

new knife_model[33
new 
g_Menu

new CVAR_HIGHSPEED
new CVAR_LOWSPEED
new CVAR_LOWGRAV
new CVAR_NORMGRAV
new CVAR_HEALTH_ADD
new CVAR_HEALTH_MAX
new CVAR_DAMAGE 

public plugin_init() { 
    
    
register_plugin(PLUGINVERSIONAUTHOR
    
    
register_event"Damage""event_damage""be" )
    
register_event("CurWeapon","CurWeapon","be","1=1"
    
    
g_Menu register_menuid("Knife Mod")
    
register_menucmd(g_Menu1023"knifemenu")
    
    
register_clcmd("say /knife""display_knife")
    
    
CVAR_HIGHSPEED register_cvar("km_highspeed","340")
    
CVAR_LOWSPEED register_cvar("km_lowspeed","170")
    
CVAR_HEALTH_ADD register_cvar("km_addhealth""3")
    
CVAR_HEALTH_MAX register_cvar("km_maxhealth""75")
    
CVAR_DAMAGE register_cvar("km_damage""2")
    
CVAR_LOWGRAV register_cvar("km_lowgravity" "550")
    
CVAR_NORMGRAV get_cvar_pointer("sv_gravity")
    
    
set_task(480.0"kmodmsg"0__"b")
}

public 
plugin_precache() { 
    
precache_model("models/knife-mod/v_butcher.mdl"
    
precache_model("models/knife-mod/p_butcher.mdl"
    
precache_model("models/knife-mod/v_machete.mdl")
    
precache_model("models/knife-mod/p_machete.mdl")
    
precache_model("models/knife-mod/v_bak.mdl")
    
precache_model("models/knife-mod/p_bak.mdl")
    
precache_model("models/knife-mod/v_pocket.mdl")
    
precache_model("models/knife-mod/p_pocket.mdl")
    
precache_model("models/knife-mod/v_knife.mdl"
    
precache_model("models/knife-mod/p_knife.mdl")


public 
display_knife(id) {
    new 
menu menu_create("\rKnife Mod""gamemenu_handler")
    
    
menu_additem(menu"\wGravity Knife""1"0)
    
menu_additem(menu"\rVIP Knife""2"ADMIN_KICK)
    
menu_additem(menu"\wDefault Knife""3"0)
    
    
menu_setprop(menu,MPROP_EXITNAME,"Exit")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idmenu0)
    return 
PLUGIN_HANDLED
}

public 
gamemenu_handler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
iData[6], iAccessiCallbackiName[64];
    
    
menu_item_getinfo(menuitemiAccessiData5iName63iCallback)
    
    switch (
str_to_num(iData))
    {
        case 
0SetKnife(id 1)
        case 
1SetKnife(id 2)
        case 
2SetKnife(id 3)
    
    }
    return 
PLUGIN_HANDLED;
}   

public 
SetKnife(id Knife) {
    
knife_model[id] = Knife
    
    
new ClipAmmoWeapon get_user_weapon(idClipAmmo
    if ( 
Weapon != CSW_KNIFE )
        return 
PLUGIN_HANDLED
    
    
new vModel[56],pModel[56]
    
    switch(
Knife)
    {
        case 
1: {
            
format(vModel,55,"models/knife-mod/v_butcher.mdl")
            
format(pModel,55,"models/knife-mod/p_butcher.mdl")
        }
        case 
2: {
            
format(vModel,55,"models/v_knife.mdl")
            
format(pModel,55,"models/p_knife.mdl")
        }
        case 
3: {
            
format(vModel,55,"models/knife-mod/v_machete.mdl")
            
format(pModel,55,"models/knife-mod/p_machete.mdl")
        }
    } 
    
    
entity_set_string(idEV_SZ_viewmodelvModel)
    
entity_set_string(idEV_SZ_weaponmodelpModel)
    
    return 
PLUGIN_HANDLED;  
}

public 
event_damageid ) {
    
    new 
victim_id id;
    if( !
is_user_connectedvictim_id ) ) return PLUGIN_CONTINUE
    
new dmg_take read_data);
    new 
dmgtype read_data);
    new 
Float:multiplier get_pcvar_float(CVAR_DAMAGE);
    new 
Float:damage dmg_take multiplier;
    new 
health get_user_healthvictim_id );
    
    new 
iWeapIDattacker_id get_user_attackervictim_idiWeapID );
    
    if( !
is_user_connectedattacker_id ) || !is_user_alivevictim_id ) ) {
        return 
PLUGIN_HANDLED
    
}
    
    if( 
iWeapID == CSW_KNIFE && knife_model[attacker_id] == ) {
        
        if( 
floatround(damage) >= health ) {
            if( 
victim_id == attacker_id ) {
                return 
PLUGIN_CONTINUE
                
}else{
                
log_killattacker_idvictim_id"knife");
            }
            
            return 
PLUGIN_CONTINUE
            
}else {
            if( 
victim_id == attacker_id ) return PLUGIN_CONTINUE
            
            fakedamage
victim_id"weapon_knife"damagedmgtype );
        }
    }
    return 
PLUGIN_CONTINUE
}

public 
CurWeapon(id)
    {
    new 
Weapon read_data(2)
    
    
// Set Knife Model
    
SetKnife(idknife_model[id])   
    
    
// Task Options
    
    
if(knife_model[id] == && !task_exists(id) && Weapon == CSW_KNIFE)
        
set_task(TASK_INTERVAL "task_healing",id,_,_,"b")
    else if(
task_exists(id))
        
remove_task(id)
    
    
// Abilities
    
set_user_footsteps(id , ( (knife_model[id] == && Weapon == CSW_KNIFE) ? 0) )
    
    new 
Float:Gravity = ((knife_model[id] == && Weapon == CSW_KNIFE)? get_pcvar_float(CVAR_LOWGRAV) : get_pcvar_float(CVAR_NORMGRAV)) / 800.0
    set_user_gravity
(id Gravity)
    
    
// Speed
    
new Float:Speed
    
if(Weapon != CSW_KNIFE || knife_model[id] < 3)
        return 
PLUGIN_CONTINUE
    
else if(knife_model[id] == 3)
        
Speed get_pcvar_float(CVAR_HIGHSPEED)
    else if(
knife_model[id] == 4)
        
Speed get_pcvar_float(CVAR_LOWSPEED)
    
    
set_user_maxspeed(idSpeed)
    
    return 
PLUGIN_HANDLED   
    
}

stock log_kill(killervictimweapon[],headshot) {
    
user_silentkillvictim );
    
    
message_beginMSG_ALLget_user_msgid"DeathMsg" ), {0,0,0}, );
    
write_bytekiller );
    
write_bytevictim );
    
write_byteheadshot );
    
write_stringweapon );
    
message_end();
    
    new 
kfrags get_user_fragskiller );
    
set_user_fragskillerkfrags++ );
    new 
vfrags get_user_fragsvictim );
    
set_user_fragsvictimvfrags++ );
    
    return  
PLUGIN_CONTINUE



public 
task_healing(id) {  
    new 
addhealth get_pcvar_num(CVAR_HEALTH_ADD)  
    if (!
addhealth)
        return  
    
    new 
maxhealth get_pcvar_num(CVAR_HEALTH_MAX)  
    if (
maxhealth MAX_HEALTH) { 
        
set_pcvar_num(CVAR_HEALTH_MAXMAX_HEALTH)  
        
maxhealth MAX_HEALTH 
    
}  
    
    new 
health get_user_health(id)   
    
    if (
is_user_alive(id) && (health maxhealth)) { 
        
set_user_health(idhealth addhealth)
        
set_hudmessage(02550, -1.00.2501.02.00.10.14)
        
show_hudmessage(id,"<< !!HEAL IN PROGRESS!! >>")
        
message_begin(MSG_ONEget_user_msgid("ScreenFade"), {0,0,0}, id)
        
write_short(1<<10)
        
write_short(1<<10)
        
write_short(0x0000)
        
write_byte(0)
        
write_byte(200)
        
write_byte(0)
        
write_byte(75)
        
message_end()
    }
    
    else {
        if (
is_user_alive(id) && (health maxhealth))
            
remove_task(id)
    }
}  

public 
client_disconnect(id) {  
    if(
task_exists(id)) remove_task(id)  
}  


public 
kmodmsg() { 
    
    
client_print(0,print_chat,"[AMXX] Fait /knife pour avoir le gravity knife")
}  

public 
client_authorized(id)
    {
    
LoadData(id)
}

SaveData(id)

    
    new 
authid[32]
    
get_user_authid(idauthid31)
    
    new 
vaultkey[64]
    new 
vaultdata[64]
    
    
format(vaultkey63"KMOD_%s"authid)
    
format(vaultdata63"%d"knife_model[id])
    
set_vaultdata(vaultkeyvaultdata)
}

LoadData(id

    new 
authid[32
    
get_user_authid(id,authid,31)
    
    new 
vaultkey[64], vaultdata[64]
    
    
format(vaultkey63"KMOD_%s"authid)
    
get_vaultdata(vaultkeyvaultdata63)
    
knife_model[id] = str_to_num(vaultdata)
    

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/ 
When I write /knife menu are not oppened and i got an error
Code:
L 02/01/2016 - 19:10:06: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 02/01/2016 - 19:10:06: [AMXX]    [0] knife_mod2.sma::CurWeapon (line 180)

Last edited by akefis; 02-01-2016 at 13:22.
akefis is offline
Croxeye
Member
Join Date: Jul 2015
Old 02-01-2016 , 13:48   Re: VIP Knife
Reply With Quote #7

Try now.

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine> 
#include <nvault>
#include <fun>

#define PLUGIN "Knife Mod"
#define VERSION "1.0" 
#define AUTHOR "spunko"

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 255  

new knife_model[33
new 
g_Menu

new CVAR_HIGHSPEED
new CVAR_LOWSPEED
new CVAR_LOWGRAV
new CVAR_NORMGRAV
new CVAR_HEALTH_ADD
new CVAR_HEALTH_MAX
new CVAR_DAMAGE 

public plugin_init() { 
    
    
register_plugin(PLUGINVERSIONAUTHOR
    
    
register_event"Damage""event_damage""be" )
    
register_event("CurWeapon","CurWeapon","be","1=1"
    
    
g_Menu register_menuid("Knife Mod")
    
register_menucmd(g_Menu1023"knifemenu")
    
    
register_clcmd("say /knife""display_knife")
    
    
CVAR_HIGHSPEED register_cvar("km_highspeed","340")
    
CVAR_LOWSPEED register_cvar("km_lowspeed","170")
    
CVAR_HEALTH_ADD register_cvar("km_addhealth""3")
    
CVAR_HEALTH_MAX register_cvar("km_maxhealth""75")
    
CVAR_DAMAGE register_cvar("km_damage""2")
    
CVAR_LOWGRAV register_cvar("km_lowgravity" "550")
    
CVAR_NORMGRAV get_cvar_pointer("sv_gravity")
    
    
set_task(480.0"kmodmsg"0__"b")
}

public 
plugin_precache() { 
    
precache_model("models/knife-mod/v_butcher.mdl"
    
precache_model("models/knife-mod/p_butcher.mdl"
    
precache_model("models/knife-mod/v_machete.mdl")
    
precache_model("models/knife-mod/p_machete.mdl")
    
precache_model("models/knife-mod/v_bak.mdl")
    
precache_model("models/knife-mod/p_bak.mdl")
    
precache_model("models/knife-mod/v_pocket.mdl")
    
precache_model("models/knife-mod/p_pocket.mdl")
    
precache_model("models/knife-mod/v_knife.mdl"
    
precache_model("models/knife-mod/p_knife.mdl")


public 
display_knife(id) {
    new 
menu menu_create("\rKnife Mod""gamemenu_handler")
    
    
menu_additem(menu"\wGravity Knife""1"0)
    
menu_additem(menu"\rVIP Knife""2"ADMIN_KICK)
    
menu_additem(menu"\wDefault Knife""3"0)
    
    
menu_setprop(menu,MPROP_EXITNAME,"Exit")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idmenu0)
    return 
PLUGIN_HANDLED
}

public 
gamemenu_handler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
iData[6], iAccessiCallbackiName[64];
    
    
menu_item_getinfo(menuitemiAccessiData5iName63iCallback)
    
    switch (
str_to_num(iData))
    {
        case 
0SetKnife(id 1)
        case 
1SetKnife(id 2)
        case 
2SetKnife(id 3)
    
    }
    return 
PLUGIN_HANDLED;
}   

public 
SetKnife(id Knife) {
    
knife_model[id] = Knife
    
    
new ClipAmmoWeapon get_user_weapon(idClipAmmo
    if ( 
Weapon != CSW_KNIFE )
        return 
PLUGIN_HANDLED
    
    
new vModel[56],pModel[56]
    
    switch(
Knife)
    {
        case 
1: {
            
format(vModel,55,"models/knife-mod/v_butcher.mdl")
            
format(pModel,55,"models/knife-mod/p_butcher.mdl")
        }
        case 
2: {
            
format(vModel,55,"models/v_knife.mdl")
            
format(pModel,55,"models/p_knife.mdl")
        }
        case 
3: {
            
format(vModel,55,"models/knife-mod/v_machete.mdl")
            
format(pModel,55,"models/knife-mod/p_machete.mdl")
        }
    } 
    
    
entity_set_string(idEV_SZ_viewmodelvModel)
    
entity_set_string(idEV_SZ_weaponmodelpModel)
    
    return 
PLUGIN_HANDLED;  
}

public 
event_damageid ) {
    
    new 
victim_id id;
    if( !
is_user_connectedvictim_id ) ) return PLUGIN_CONTINUE
    
new dmg_take read_data);
    new 
dmgtype read_data);
    new 
Float:multiplier get_pcvar_float(CVAR_DAMAGE);
    new 
Float:damage dmg_take multiplier;
    new 
health get_user_healthvictim_id );
    
    new 
iWeapIDattacker_id get_user_attackervictim_idiWeapID );
    
    if( !
is_user_connectedattacker_id ) || !is_user_alivevictim_id ) ) {
        return 
PLUGIN_HANDLED
    
}
    
    if( 
iWeapID == CSW_KNIFE && knife_model[attacker_id] == ) {
        
        if( 
floatround(damage) >= health ) {
            if( 
victim_id == attacker_id ) {
                return 
PLUGIN_CONTINUE
                
}else{
                
log_killattacker_idvictim_id"knife");
            }
            
            return 
PLUGIN_CONTINUE
            
}else {
            if( 
victim_id == attacker_id ) return PLUGIN_CONTINUE
            
            fakedamage
victim_id"weapon_knife"damagedmgtype );
        }
    }
    return 
PLUGIN_CONTINUE
}

public 
CurWeapon(id)
{
    new 
Weapon read_data(2)
    
    
// Set Knife Model
    
SetKnife(idknife_model[id])   
    
    
// Task Options
    
    
if(knife_model[id] == && !task_exists(id) && Weapon == CSW_KNIFE)
        
set_task(TASK_INTERVAL "task_healing",id,_,_,"b")
    else if(
task_exists(id))
        
remove_task(id)
    
    
// Abilities
    
set_user_footsteps(id , ( (knife_model[id] == && Weapon == CSW_KNIFE) ? 0) )
    
    new 
Float:Gravity = ((knife_model[id] == && Weapon == CSW_KNIFE) ? get_pcvar_float(CVAR_LOWGRAV) : get_pcvar_float(CVAR_NORMGRAV)) / 800.0
    set_user_gravity
(id Gravity)
    
    
// Speed
    
new Float:Speed
    
if(Weapon != CSW_KNIFE || knife_model[id] < 3)
        return 
PLUGIN_CONTINUE
    
else if(knife_model[id] == 3)
        
Speed get_pcvar_float(CVAR_HIGHSPEED)
    else if(
knife_model[id] == 4)
        
Speed get_pcvar_float(CVAR_LOWSPEED)
    
    
set_user_maxspeed(idSpeed)
    
    return 
PLUGIN_HANDLED   
    
}

stock log_kill(killervictimweapon[],headshot) {
    
user_silentkillvictim );
    
    
message_beginMSG_ALLget_user_msgid"DeathMsg" ), {0,0,0}, );
    
write_bytekiller );
    
write_bytevictim );
    
write_byteheadshot );
    
write_stringweapon );
    
message_end();
    
    new 
kfrags get_user_fragskiller );
    
set_user_fragskillerkfrags++ );
    new 
vfrags get_user_fragsvictim );
    
set_user_fragsvictimvfrags++ );
    
    return  
PLUGIN_CONTINUE



public 
task_healing(id) {  
    new 
addhealth get_pcvar_num(CVAR_HEALTH_ADD)  
    if (!
addhealth)
        return  
    
    new 
maxhealth get_pcvar_num(CVAR_HEALTH_MAX)  
    if (
maxhealth MAX_HEALTH) { 
        
set_pcvar_num(CVAR_HEALTH_MAXMAX_HEALTH)  
        
maxhealth MAX_HEALTH 
    
}  
    
    new 
health get_user_health(id)   
    
    if (
is_user_alive(id) && (health maxhealth)) { 
        
set_user_health(idhealth addhealth)
        
set_hudmessage(02550, -1.00.2501.02.00.10.14)
        
show_hudmessage(id,"<< !!HEAL IN PROGRESS!! >>")
        
message_begin(MSG_ONEget_user_msgid("ScreenFade"), {0,0,0}, id)
        
write_short(1<<10)
        
write_short(1<<10)
        
write_short(0x0000)
        
write_byte(0)
        
write_byte(200)
        
write_byte(0)
        
write_byte(75)
        
message_end()
    }
    
    else {
        if (
is_user_alive(id) && (health maxhealth))
            
remove_task(id)
    }
}  

public 
client_disconnect(id) {  
    if(
task_exists(id)) remove_task(id)  
    
SaveData(id)
}  


public 
kmodmsg() { 
    
    
client_print(0,print_chat,"[AMXX] Fait /knife pour avoir le gravity knife")
}  

public 
client_putinserver(id)
{
    
LoadData(id)
}

SaveData(id)

    
    new 
authid[32]
    
get_user_authid(idauthid31)
    
    new 
vaultkey[64]
    new 
vaultdata[64]
    
    
format(vaultkey63"KMOD_%s"authid)
    
format(vaultdata63"%d"knife_model[id])
    
set_vaultdata(vaultkeyvaultdata)
}

LoadData(id

    new 
authid[32
    
get_user_authid(id,authid,31)
    
    new 
vaultkey[64], vaultdata[64]
    
    
format(vaultkey63"KMOD_%s"authid)
    
get_vaultdata(vaultkeyvaultdata63)
    
knife_model[id] = str_to_num(vaultdata)
    

Croxeye is offline
akefis
Junior Member
Join Date: Nov 2013
Location: France
Old 02-01-2016 , 14:13   Re: VIP Knife
Reply With Quote #8

Quote:
Originally Posted by Croxeye View Post
Try now.

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine> 
#include <nvault>
#include <fun>

#define PLUGIN "Knife Mod"
#define VERSION "1.0" 
#define AUTHOR "spunko"

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 255  

new knife_model[33
new 
g_Menu

new CVAR_HIGHSPEED
new CVAR_LOWSPEED
new CVAR_LOWGRAV
new CVAR_NORMGRAV
new CVAR_HEALTH_ADD
new CVAR_HEALTH_MAX
new CVAR_DAMAGE 

public plugin_init() { 
    
    
register_plugin(PLUGINVERSIONAUTHOR
    
    
register_event"Damage""event_damage""be" )
    
register_event("CurWeapon","CurWeapon","be","1=1"
    
    
g_Menu register_menuid("Knife Mod")
    
register_menucmd(g_Menu1023"knifemenu")
    
    
register_clcmd("say /knife""display_knife")
    
    
CVAR_HIGHSPEED register_cvar("km_highspeed","340")
    
CVAR_LOWSPEED register_cvar("km_lowspeed","170")
    
CVAR_HEALTH_ADD register_cvar("km_addhealth""3")
    
CVAR_HEALTH_MAX register_cvar("km_maxhealth""75")
    
CVAR_DAMAGE register_cvar("km_damage""2")
    
CVAR_LOWGRAV register_cvar("km_lowgravity" "550")
    
CVAR_NORMGRAV get_cvar_pointer("sv_gravity")
    
    
set_task(480.0"kmodmsg"0__"b")
}

public 
plugin_precache() { 
    
precache_model("models/knife-mod/v_butcher.mdl"
    
precache_model("models/knife-mod/p_butcher.mdl"
    
precache_model("models/knife-mod/v_machete.mdl")
    
precache_model("models/knife-mod/p_machete.mdl")
    
precache_model("models/knife-mod/v_bak.mdl")
    
precache_model("models/knife-mod/p_bak.mdl")
    
precache_model("models/knife-mod/v_pocket.mdl")
    
precache_model("models/knife-mod/p_pocket.mdl")
    
precache_model("models/knife-mod/v_knife.mdl"
    
precache_model("models/knife-mod/p_knife.mdl")


public 
display_knife(id) {
    new 
menu menu_create("\rKnife Mod""gamemenu_handler")
    
    
menu_additem(menu"\wGravity Knife""1"0)
    
menu_additem(menu"\rVIP Knife""2"ADMIN_KICK)
    
menu_additem(menu"\wDefault Knife""3"0)
    
    
menu_setprop(menu,MPROP_EXITNAME,"Exit")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idmenu0)
    return 
PLUGIN_HANDLED
}

public 
gamemenu_handler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
iData[6], iAccessiCallbackiName[64];
    
    
menu_item_getinfo(menuitemiAccessiData5iName63iCallback)
    
    switch (
str_to_num(iData))
    {
        case 
0SetKnife(id 1)
        case 
1SetKnife(id 2)
        case 
2SetKnife(id 3)
    
    }
    return 
PLUGIN_HANDLED;
}   

public 
SetKnife(id Knife) {
    
knife_model[id] = Knife
    
    
new ClipAmmoWeapon get_user_weapon(idClipAmmo
    if ( 
Weapon != CSW_KNIFE )
        return 
PLUGIN_HANDLED
    
    
new vModel[56],pModel[56]
    
    switch(
Knife)
    {
        case 
1: {
            
format(vModel,55,"models/knife-mod/v_butcher.mdl")
            
format(pModel,55,"models/knife-mod/p_butcher.mdl")
        }
        case 
2: {
            
format(vModel,55,"models/v_knife.mdl")
            
format(pModel,55,"models/p_knife.mdl")
        }
        case 
3: {
            
format(vModel,55,"models/knife-mod/v_machete.mdl")
            
format(pModel,55,"models/knife-mod/p_machete.mdl")
        }
    } 
    
    
entity_set_string(idEV_SZ_viewmodelvModel)
    
entity_set_string(idEV_SZ_weaponmodelpModel)
    
    return 
PLUGIN_HANDLED;  
}

public 
event_damageid ) {
    
    new 
victim_id id;
    if( !
is_user_connectedvictim_id ) ) return PLUGIN_CONTINUE
    
new dmg_take read_data);
    new 
dmgtype read_data);
    new 
Float:multiplier get_pcvar_float(CVAR_DAMAGE);
    new 
Float:damage dmg_take multiplier;
    new 
health get_user_healthvictim_id );
    
    new 
iWeapIDattacker_id get_user_attackervictim_idiWeapID );
    
    if( !
is_user_connectedattacker_id ) || !is_user_alivevictim_id ) ) {
        return 
PLUGIN_HANDLED
    
}
    
    if( 
iWeapID == CSW_KNIFE && knife_model[attacker_id] == ) {
        
        if( 
floatround(damage) >= health ) {
            if( 
victim_id == attacker_id ) {
                return 
PLUGIN_CONTINUE
                
}else{
                
log_killattacker_idvictim_id"knife");
            }
            
            return 
PLUGIN_CONTINUE
            
}else {
            if( 
victim_id == attacker_id ) return PLUGIN_CONTINUE
            
            fakedamage
victim_id"weapon_knife"damagedmgtype );
        }
    }
    return 
PLUGIN_CONTINUE
}

public 
CurWeapon(id)
{
    new 
Weapon read_data(2)
    
    
// Set Knife Model
    
SetKnife(idknife_model[id])   
    
    
// Task Options
    
    
if(knife_model[id] == && !task_exists(id) && Weapon == CSW_KNIFE)
        
set_task(TASK_INTERVAL "task_healing",id,_,_,"b")
    else if(
task_exists(id))
        
remove_task(id)
    
    
// Abilities
    
set_user_footsteps(id , ( (knife_model[id] == && Weapon == CSW_KNIFE) ? 0) )
    
    new 
Float:Gravity = ((knife_model[id] == && Weapon == CSW_KNIFE) ? get_pcvar_float(CVAR_LOWGRAV) : get_pcvar_float(CVAR_NORMGRAV)) / 800.0
    set_user_gravity
(id Gravity)
    
    
// Speed
    
new Float:Speed
    
if(Weapon != CSW_KNIFE || knife_model[id] < 3)
        return 
PLUGIN_CONTINUE
    
else if(knife_model[id] == 3)
        
Speed get_pcvar_float(CVAR_HIGHSPEED)
    else if(
knife_model[id] == 4)
        
Speed get_pcvar_float(CVAR_LOWSPEED)
    
    
set_user_maxspeed(idSpeed)
    
    return 
PLUGIN_HANDLED   
    
}

stock log_kill(killervictimweapon[],headshot) {
    
user_silentkillvictim );
    
    
message_beginMSG_ALLget_user_msgid"DeathMsg" ), {0,0,0}, );
    
write_bytekiller );
    
write_bytevictim );
    
write_byteheadshot );
    
write_stringweapon );
    
message_end();
    
    new 
kfrags get_user_fragskiller );
    
set_user_fragskillerkfrags++ );
    new 
vfrags get_user_fragsvictim );
    
set_user_fragsvictimvfrags++ );
    
    return  
PLUGIN_CONTINUE



public 
task_healing(id) {  
    new 
addhealth get_pcvar_num(CVAR_HEALTH_ADD)  
    if (!
addhealth)
        return  
    
    new 
maxhealth get_pcvar_num(CVAR_HEALTH_MAX)  
    if (
maxhealth MAX_HEALTH) { 
        
set_pcvar_num(CVAR_HEALTH_MAXMAX_HEALTH)  
        
maxhealth MAX_HEALTH 
    
}  
    
    new 
health get_user_health(id)   
    
    if (
is_user_alive(id) && (health maxhealth)) { 
        
set_user_health(idhealth addhealth)
        
set_hudmessage(02550, -1.00.2501.02.00.10.14)
        
show_hudmessage(id,"<< !!HEAL IN PROGRESS!! >>")
        
message_begin(MSG_ONEget_user_msgid("ScreenFade"), {0,0,0}, id)
        
write_short(1<<10)
        
write_short(1<<10)
        
write_short(0x0000)
        
write_byte(0)
        
write_byte(200)
        
write_byte(0)
        
write_byte(75)
        
message_end()
    }
    
    else {
        if (
is_user_alive(id) && (health maxhealth))
            
remove_task(id)
    }
}  

public 
client_disconnect(id) {  
    if(
task_exists(id)) remove_task(id)  
    
SaveData(id)
}  


public 
kmodmsg() { 
    
    
client_print(0,print_chat,"[AMXX] Fait /knife pour avoir le gravity knife")
}  

public 
client_putinserver(id)
{
    
LoadData(id)
}

SaveData(id)

    
    new 
authid[32]
    
get_user_authid(idauthid31)
    
    new 
vaultkey[64]
    new 
vaultdata[64]
    
    
format(vaultkey63"KMOD_%s"authid)
    
format(vaultdata63"%d"knife_model[id])
    
set_vaultdata(vaultkeyvaultdata)
}

LoadData(id

    new 
authid[32
    
get_user_authid(id,authid,31)
    
    new 
vaultkey[64], vaultdata[64]
    
    
format(vaultkey63"KMOD_%s"authid)
    
get_vaultdata(vaultkeyvaultdata63)
    
knife_model[id] = str_to_num(vaultdata)
    

Thanks but it's same
akefis is offline
wickedd
Veteran Member
Join Date: Nov 2009
Old 02-01-2016 , 14:34   Re: VIP Knife
Reply With Quote #9

Quote:
Originally Posted by akefis View Post
When I write /knife menu are not oppened and i got an error
Code:
L 02/01/2016 - 19:10:06: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 02/01/2016 - 19:10:06: [AMXX]    [0] knife_mod2.sma::CurWeapon (line 180)
That's because get_pcvar_float is expecting a float. So CVAR_LOWGRAV and CVAR_NORMGRAV need to floats.
__________________
Just buy the fucking game!!!!
I hate No-Steamers and lazy ass people.
wickedd is offline
akefis
Junior Member
Join Date: Nov 2013
Location: France
Old 02-01-2016 , 16:38   Re: VIP Knife
Reply With Quote #10

Quote:
Originally Posted by wickedd View Post
That's because get_pcvar_float is expecting a float. So CVAR_LOWGRAV and CVAR_NORMGRAV need to floats.
I'm french i don't have understand
akefis is offline
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 09:28.


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