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 , 09:27   Knife Selector
Reply With Quote #1

hi guys
Can someone Edit ACCESS Please
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
^SmileY
Veteran Member
Join Date: Jan 2010
Location: Brazil [<o>]
Old 04-22-2013 , 09:48   Re: Knife Selector
Reply With Quote #2

Post in plugin thread or contact the author.

Wrong fórum
__________________
Projects:

- See my Git Hub: https://github.com/SmileYzn
PHP Code:
set_pcvar_num(pCvar, !get_pcvar_num(pCvar)); 
^SmileY is offline
Send a message via MSN to ^SmileY Send a message via Skype™ to ^SmileY
Old 04-25-2013, 06:12
Ranusttonia
This message has been deleted by YamiKaitou. Reason: spambot
Old 04-25-2013, 08:03
^SmileY
This message has been deleted by YamiKaitou. Reason: reply to deleted post
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