AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   VIP Knife (https://forums.alliedmods.net/showthread.php?t=278393)

akefis 01-30-2016 18:57

VIP Knife
 
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

Croxeye 01-30-2016 19:40

Re: VIP Knife
 
Can you explain more what do you want ?

Craxor 01-31-2016 02:37

Re: VIP Knife
 
Quote:

Originally Posted by Croxeye (Post 2388541)
Can you explain more what do you want ?

Only admins with flag "c" can use first three cases ( case 1, case 2, case 3 ).

akefis 01-31-2016 11:57

Re: VIP Knife
 
Quote:

Originally Posted by Craxor (Post 2388608)
Only admins with flag "c" can use first three cases ( case 1, case 2, case 3 ).

No, only admin can use case 3

Croxeye 01-31-2016 14:51

Re: VIP Knife
 
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;



akefis 01-31-2016 15:20

Re: VIP Knife
 
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)


Croxeye 02-01-2016 13:48

Re: VIP Knife
 
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)
    



akefis 02-01-2016 14:13

Re: VIP Knife
 
Quote:

Originally Posted by Croxeye (Post 2389090)
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

wickedd 02-01-2016 14:34

Re: VIP Knife
 
Quote:

Originally Posted by akefis (Post 2388865)
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.

akefis 02-01-2016 16:38

Re: VIP Knife
 
Quote:

Originally Posted by wickedd (Post 2389122)
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


All times are GMT -4. The time now is 09:28.

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