Raised This Month: $ Target: $400
 0% 

Knife Selector


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
hosimosi
Senior Member
Join Date: Apr 2013
Old 04-22-2013 , 10:20   Knife Selector
Reply With Quote #1

hi guys
Can someone Edit ACCESS Please , Don't Work
Thank you!

PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

new const KNIFE_VERSION[] = "2.2"
new const KNIFE_FILE[] = "addons/amxmodx/configs/knifes.ini"

#define    KNIFE_NAME     0
#define    KNIFE_P_MODEL     1
#define    KNIFE_V_MODEL     2
#define KNIFE_ACCESS    12

new const g_TypeList[][] = { "NAME""P_MODEL""V_MODEL""DEPLOY""HIT1""HIT2""HIT3""HIT4",\
    
"HITWALL""SLASH1""SLASH2""STAB""ACCESS" }

new const 
g_Default_Knife[][] = { "Default""models/p_knife.mdl""models/v_knife.mdl""weapons/knife_deploy1.wav",\
    
"weapons/knife_hit1.wav""weapons/knife_hit2.wav""weapons/knife_hit3.wav""weapons/knife_hit4.wav",\
    
"weapons/knife_hitwall1.wav""weapons/knife_slash1.wav""weapons/knife_slash2.wav",\
    
"weapons/knife_stab.wav""" }

new Array:
gx_InfoData[13]
new Array:
gx_InfoCommands
new g_PlrModelNum[33]

new 
bool:g_bIsAlive[33]

#define    m_pPlayer    41
#define IsValidPlr(%1) ( 1 <= %1 <= g_iMaxPlayers )

new g_cvar_menu_dropg_cvar_enableg_cvar_menuname[64], g_cvar_no4you[32], g_cvar_current[32]
new 
g_iMaxPlayers

public plugin_precache() 
{
    
register_plugin("Knife Selector"KNIFE_VERSION"ReymonARG")
    
register_cvar("knife_selector"KNIFE_VERSIONFCVAR_SPONLY FCVAR_SERVER)
    
g_iMaxPlayers get_maxplayers()
    
    static 
i
    
for( 013i++)
    {
        
gx_InfoData[i] = ArrayCreate(1281)
    }
    
gx_InfoCommands ArrayCreate(321)
    
    
load_knifes_list()
    
    
register_clcmd("say""Hook_Say")
    
register_clcmd("say_team""Hook_Say")
    
    
RegisterHam(Ham_Item_Deploy"weapon_knife""weapon_change"1)
    
RegisterHam(Ham_CS_Item_CanDrop"weapon_knife""weapon_drop"1)
    
RegisterHam(Ham_Spawn"player""fw_Spawn_post"1)
    
RegisterHam(Ham_Killed"player""fw_Killed_post"1)
    
register_forward(FM_EmitSound"fw_EmitSound")
    
register_forward(FM_ClientPutInServer"fw_ClientPutInServer")
    
register_forward(FM_ClientDisconnect"fw_Killed_post")
}

/*==================================================================================================
 [Stock`s & Some Func`s :D]
==================================================================================================*/
stock load_knifes_list()
{
    static 
StrData[150], StrLeft[32], StrRight[128], iInfoNumlenlen2
    
static fbool:IsInSettingsIsInSettings true
    
    
if( !(fopen(KNIFE_FILE"rt") ) )
        return 
set_fail_state("Plugin canīt Found Knife File")
    
    for( 
013i++)
        
ArrayPushString(gx_InfoData[i], g_Default_Knife[i])
    
    while( !
feof(f) )
    {
        
fgets(fStrData149)
        if( 
StrData[0] == '/' && StrData[1] == '/' || StrData[0] == ';' || StrData[0] == ' ' || StrData[0] == '^n') continue
        
replace(StrData149"^n""")
        
        if( 
StrData[0] != '[' && IsInSettings )
        {
            
strtok(StrDataStrLeft31StrRight127'=')
            
trim(StrLeft); trim(StrRight)
            
            if( 
equali(StrLeft"ENABLE") )
            {
                
g_cvar_enable str_to_num(StrRight)
            }
            else if( 
equali(StrLeft"MENU_IN_DROP") )
            {
                
g_cvar_menu_drop str_to_num(StrRight)
            }
            else if( 
equali(StrLeft"MENU_NAME") )
            {
                
copy(g_cvar_menuname63StrRight)
                
remove_quotes(g_cvar_no4you)
                
replace_menu_colors(g_cvar_menuname63)
            }
            else if( 
equali(StrLeft"NO_FOR_YOU") )
            {
                
copy(g_cvar_no4you31StrRight)
                
remove_quotes(g_cvar_no4you)
                
replace_menu_colors(g_cvar_no4you31)
            }
            else if( 
equali(StrLeft"CURRENT") )
            {
                
copy(g_cvar_current31StrRight)
                
remove_quotes(g_cvar_current)
                
replace_menu_colors(g_cvar_current31)
            }
            else if( 
equali(StrLeft"COMMANDS") )
            {
                while( 
StrRight[0] != && strtok(StrRightStrLeft31StrRight127',') )
                {
                    
trim(StrLeft); trim(StrRight); remove_quotes(StrLeft)
                    
ArrayPushString(gx_InfoCommandsStrLeft)
                }
            }
            
            continue
        }
        else if( 
StrData[0] == '[' && StrData[1] == '/' && IsInSettings )
        {
            
IsInSettings false
        
}
        else if( !
IsInSettings )
        {
            if( 
StrData[0] == '[' )
            {
                
len ArraySize(gx_InfoData[KNIFE_NAME])
                for( 
113i++)
                {
                    
len2 ArraySize(gx_InfoData[i] )
                    while( 
len len2 )
                    {
                        
ArrayPushCell(gx_InfoData[i], 0)
                        
len2++
                    }
                    while( 
len len2 )
                    {
                        
ArrayDeleteItem(gx_InfoData[i], --len2)
                    }
                }
                
                
replace(StrData149"]""")
                
ArrayPushString(gx_InfoData[0], StrData[1])
                
                continue
            }
            else
            {
                
strtok(StrDataStrLeft31StrRight127'=')
                
trim(StrLeft); trim(StrRight); remove_quotes(StrRight)
                
                
InfoNum search_array_num(StrLeft)
                if( 
InfoNum != -)
                {
                    
ArrayPushString(gx_InfoData[InfoNum], StrRight)
                }
                
                continue
            }
        }
    }
    
    
len ArraySize(gx_InfoData[KNIFE_NAME])
    for( 
113i++)
    {
        
len2 ArraySize(gx_InfoData[i] )
        while( 
len len2 )
        {
            
ArrayPushCell(gx_InfoData[i], 0)
            
len2++
        }
        while( 
len len2 )
        {
            
ArrayDeleteItem(gx_InfoData[i], --len2)
        }
    }
    
    
precache_knifes()
    return 
len
}

stock search_array_num( const StrData[] )
{
    static 
i
    
for( 1sizeof(g_TypeList); i++)
    {
        if( 
equali(g_TypeList[i], StrData) )
            return 
i
    
}
    
    return -
1
}

stock precache_knifes()
{
    static 
ijRStrData[128], lenlen ArraySize(gx_InfoData[KNIFE_NAME])
    
    for( 
0leni++)
    {
        for( 
112j++)
        {
            
ArrayGetString(gx_InfoData[j], iStrData127)
            if( 
StrData[0] )
            {
                
knifes_file_exists(jStrData)
                if( 
!= -)
                {
                    
engfunc(RStrData)
                }
                else
                {
                    
ArraySetCell(gx_InfoData[j], i0)
                }
            }
        }
        
        
ArrayGetString(gx_InfoData[KNIFE_ACCESS], iStrData127)
        
ArraySetCell(gx_InfoData[KNIFE_ACCESS], iread_flags(StrData))
    }
    
    return 
1
}

stock knifes_file_exists(const num, const DIR[])
{
    static 
RBuffer[135]
    if( 
num != KNIFE_V_MODEL && num != KNIFE_P_MODEL )
    {
        
formatex(Buffer134"sound/")
        
EngFunc_PrecacheSound
    
}
    else
    {
        
Buffer[0] = '^0' // Reset Because is a static
        
EngFunc_PrecacheModel
    
}
    
add(Buffer134DIR)
    
    if( 
file_exists(Buffer) )
        return 
R
        
    
return -1
}

stock knifes_set_models(id)
{
    static 
StrData[128]

    
ArrayGetString(gx_InfoData[KNIFE_P_MODEL], g_PlrModelNum[id], StrData127)
    
set_pev(idpev_weaponmodel2StrData[0] ? StrData g_Default_Knife[KNIFE_P_MODEL])
    
    
ArrayGetString(gx_InfoData[KNIFE_V_MODEL], g_PlrModelNum[id], StrData127)
    
set_pev(idpev_viewmodel2StrData[0] ? StrData g_Default_Knife[KNIFE_V_MODEL])
    
    return 
1
}

stock replace_menu_colors(string[], len)
{
    
replace_all(stringlen"!r""\r")
    
replace_all(stringlen"!y""\y")
    
replace_all(stringlen"!w""\w")
    
replace_all(stringlen"!d""\d")
    
    return 
1
}

/*==================================================================================================
 [ForWard`s CallBack`s :D]
==================================================================================================*/
public weapon_changeiEnt )
{
    if( !
pev_valid(iEnt) )
        return 
HAM_IGNORED
        
    
static idid get_pdata_cbase(iEntm_pPlayer4)
    
knifes_set_models(id)
    
    return 
HAM_IGNORED
}

public 
weapon_dropiEnt )
{
    if( !
pev_valid(iEnt) || !g_cvar_menu_drop || !g_cvar_enable )
        return 
HAM_IGNORED
    
    
static idid get_pdata_cbase(iEntm_pPlayer4)
    
    
main_menu(id)
    
    return 
HAM_IGNORED
}

public 
fw_Spawn_postid )
{
    
g_bIsAlive[id] = true
}

public 
fw_Killed_postid )
{
    
g_bIsAlive[id] = false
}

public 
fw_ClientPutInServerid )
{
    
g_PlrModelNum[id] = 0
}

public 
fw_EmitSound(iEntiChannel, const Sound[] )
{
    if( !
IsValidPlr(iEnt) || !g_bIsAlive[iEnt] || ( iChannel != && iChannel != ) )
        return 
FMRES_IGNORED
        
    
static iStrData[128]
    for( 
313i++ )
    {
        if( 
equali(g_Default_Knife[i], Sound) )
        {
            
ArrayGetString(gx_InfoData[i], g_PlrModelNum[iEnt], StrData127)
            if( 
StrData[0] )
            {
                
engfunc(EngFunc_EmitSoundiEntCHAN_WEAPONStrData1.0ATTN_NORM0PITCH_NORM)
                return 
FMRES_SUPERCEDE
            
}
            else
            {
                return 
FMRES_IGNORED
            
}
        }
    }
    
    return 
FMRES_IGNORED
}

public 
Hook_Sayid )
{
    static 
iStrData[32], StrSay[32], len
    read_args
(StrSay31); len ArraySize(gx_InfoCommands)
    
remove_quotes(StrSay)
    
    for( 
0leni++)
    {
        
ArrayGetString(gx_InfoCommandsiStrData31)
        
        if( 
equali(StrDataStrSay) )
        {
            
main_menu(id)
            return 
PLUGIN_HANDLED
        
}
    }
    
    return 
PLUGIN_CONTINUE
}    

/*==================================================================================================
 [Menu Settings Part :D]
==================================================================================================*/
stock main_menu(idpage=0)
{
    if( !
g_cvar_enable )
        return 
PLUGIN_HANDLED
    
    
static menumenu menu_create(g_cvar_menuname"main_menu_func")
    
    static 
iStrData[64], lenPlrFlagsFlags
    len 
ArraySize(gx_InfoData[KNIFE_NAME]); PlrFlags get_user_frags(id)
    for( 
0leni++)
    {
        
ArrayGetString(gx_InfoData[KNIFE_NAME], iStrData63)
        
Flags ArrayGetCell(gx_InfoData[KNIFE_ACCESS], i)
        if( !(
PlrFlags Flags) && Flags )
        {
            
format(StrData63"\d%s \R%s"StrDatag_cvar_no4you)
        }
        else if( 
== g_PlrModelNum[id] )
        {
            
format(StrData63"\d%s \R%s"StrDatag_cvar_current)
        }
        
        
menu_additem(menuStrData)
    }
    
    
menu_display(idmenupage)
    
    return 
PLUGIN_HANDLED
}

/*==================================================================================================
 [Menu Exec Settings Part :D]
==================================================================================================*/
public main_menu_func(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        return 
PLUGIN_HANDLED
    
}
    
    static 
Flags
    Flags 
ArrayGetCell(gx_InfoData[KNIFE_ACCESS], item)
    
    if( (
get_user_frags(id) & Flags || !Flags) && item != g_PlrModelNum[id] )
    {
        
g_PlrModelNum[id] = item
    
}
    else
    {
        
main_menu(iditem/7)
    }
    
    if( 
get_user_weapon(id) == CSW_KNIFE )
    {
        
knifes_set_models(id)
    }
    
    return 
PLUGIN_HANDLED

hosimosi is offline
YamiKaitou
Has a lovely bunch of coconuts
Join Date: Apr 2006
Location: Texas
Old 04-22-2013 , 10:21   Re: Knife Selector
Reply With Quote #2

What is ACCESS? What do you want it changed to?
__________________
ProjectYami Laboratories

I do not browse the forums regularly anymore. If you need me for anything (asking questions or anything else), then PM me (be descriptive in your PM, message containing only a link to a thread will be ignored).
YamiKaitou is offline
hosimosi
Senior Member
Join Date: Apr 2013
Old 04-22-2013 , 10:24   Re: Knife Selector
Reply With Quote #3

in knife.ini
ex :
[SETTINGS]
ENABLE = 1
MENU_NAME = Knife Model Selector
MENU_IN_DROP = 1
NO_FOR_YOU = "!r(Only Admins)"
CURRENT = "!y(Current)"
COMMANDS = /knifes
[/]

[Fish]
P_MODEL = models/cuchis/fish/p_knife.mdl
V_MODEL = models/cuchis/fish/v_knife.mdl
ACCESS = t

dont work

Last edited by hosimosi; 04-22-2013 at 10:28.
hosimosi is offline
YamiKaitou
Has a lovely bunch of coconuts
Join Date: Apr 2006
Location: Texas
Old 04-22-2013 , 10:27   Re: Knife Selector
Reply With Quote #4

Then you should probably be posting in the thread where you found the plugin so the Author can fix the bug
__________________
ProjectYami Laboratories

I do not browse the forums regularly anymore. If you need me for anything (asking questions or anything else), then PM me (be descriptive in your PM, message containing only a link to a thread will be ignored).
YamiKaitou is offline
hosimosi
Senior Member
Join Date: Apr 2013
Old 04-22-2013 , 10:29   Re: Knife Selector
Reply With Quote #5

ok thank you sir
but if someone can help me , please post!

Last edited by hosimosi; 04-22-2013 at 10:30.
hosimosi 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 00:40.


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