editar Plugins de armas
#1
hola quiero cambair los modelos como lo hago

Código PHP:
#include <amxmodx> 
#include <amxmisc> 
#include <engine>  
#include <vault> 
#include <hamsandwich> 
#include <fvault> 

#pragma tabsize 0

#define is_valid_player(%1) (1 <= %1 <= 32)

new knife_model[33];



new 
iLevel[33];
new 
iXp[33];

new 
knife_on;

new 
MaxLevel;
new 
StartedLevel;

new 
cvar_KillXp;
new 
cvar_HsXp;
new 
cvar_KnifeXp;

new 
Forward_spawn;
new 
Forward_levelup;
new 
ForwardReturn;

new const 
g_KnifeNames[][32] =
{
};

new const 
g_KnifevModels[][256] =
{


"models/Knifes/v_knife_wolverine.mdl",
"models/Knifes/v_ultimo.mdl"
}

native register_maxlevelsmaxlevel 99started_xp_level 100 );
native get_user_levelindex );
native get_user_xpindex );

public 
plugin_init() {  
    
    
register_plugin(g_VAULTNAMEVERSIONAUTHOR);
    
register_cvar("knife_skins"VERSIONFCVAR_SERVER); // Find Servers on Game-Monitor
    
set_cvar_string("knife_skins"VERSION); // Find Servers on Game-Monitor
    
    // register max levels 13 is the top level, 100 is the started level xp.
    
register_maxlevels13100 );
    
    
//Admin commands
    
    
register_concmd("knife_givexp" ,"givexp",ADMIN_RCON,"Add xp to a player")
    
register_concmd("knife_takexp""takexp",ADMIN_RCON,"Remove xp from a player")
    
    
//Clcmd's
    
    
knife_on register_cvar"knife_skins""1" );
    
    
register_clcmd("say","HandleSay"); 
    
register_clcmd("say_team","HandleSay")
    
register_clcmd("say /knife""KnifeSkinsMenu");
    
register_clcmd("say /level""PlayerLevelsMenu");
    
    
//Event's
    
    
register_event("CurWeapon","CurWeapon","be","1=1");
    
register_event"DeathMsg""EventDeathMsg""a" );
    
    
//Cvar's
    
    
cvar_KillXp register_cvar"kill_xp""5" );
    
cvar_HsXp register_cvar"hs_xp""2" );
    
cvar_KnifeXp register_cvar"knife_xp""3" );
    
    
//Ham's
    
    
RegisterHamHam_Spawn"player""FwdPlayerSpawn");
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
    
//Forward's
    
    
Forward_levelup CreateMultiForward"forward_client_levelup"ET_IGNOREFP_CELLFP_CELLFP_CELL );
    
Forward_spawn CreateMultiForward"forward_client_spawn"ET_IGNOREFP_CELL FP_CELLFP_CELL );
    
    
set_task(15.0"Knifemessage"0__"b")
    
set_task(35.0"Levelmessage"0__"b")



public 
plugin_natives( )
{
    
//Native's
    
    
register_library"Knife-Skins" );
    
    
register_native"register_maxlevels""_register_maxlevels" );
    
register_native"get_user_level""_get_user_level" );
    
register_native"set_user_level""_set_user_level" );
    
register_native"get_user_xp""_get_user_xp" );
    
register_native"set_user_xp""_set_user_xp" );
}

public 
_register_maxlevelspluginparams )
{
    if( 
MaxLevel != && StartedLevel != )
    {
        return;
    }
    else
    {
        
MaxLevel get_param);
        
StartedLevel get_param);
    }
}

public 
_get_user_levelpluginparams )
{
    return 
iLevelget_param) ];
}

public 
_set_user_levelpluginparams )
{
    
iLevelget_param) ] = maxget_param), MaxLevel );
    
    
FlsahLevelUpget_param) );
    
    
SaveDataget_param) );
    
    
LoadDataget_param) );
}

public 
_get_user_xppluginparams )
{
    return 
iXpget_param) ];
}

public 
_set_user_xppluginparams )
{
    
iXpget_param) ] = get_param);
    
    
CheckLevelget_param) );
    
    
SaveDataget_param) );
    
    
LoadDataget_param) );
}

public 
CheckLevelid )
{
    if( 
iLevel[id] == MaxLevel )
    {
        return;
    }
    else
    {
        new 
level iLevel[id] > iLevel[id] : 1;
        
        new 
xp level StartedLevel;
        
        if( 
iLevel[id] > )
        {
            
xp +=  ( xp );
        }
        
        while( 
iXp[id] >= xp )
        {
            
iLevel[id]++;
            
            
ColorChat(id,"^4Congratulations!^1 You'r have level up! You'r new^4 LEVEL^1 is: ^3%i^1."iLevel[id]); 
            
ColorChat(0,"^3%s^1 has level up to^4 LEVEL^3 %i^1!",get_player_name(id), iLevel[id]); 
            
            
FlsahLevelUp(id);
            
            
ExecuteForwardForward_levelupForwardReturnidiLevel[id], iXp[id] );
            
            
SaveDataid );
            
            
CheckLevelid );
            
            break;
        }
    }
}

public 
FlsahLevelUpid )
{
    
message_beginMSG_ONEget_user_msgid"ScreenFade" ), { 000}, id );
    
write_short<< 10 );
    
write_short<< 10 );
    
write_short);
    
write_byte);
    
write_byte255 );
    
write_byte215 );
    
write_byte100 );
    
message_end( );
}


public 
HandleSay(id){
    
    if (
get_pcvar_num(knife_on) == 0)
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    new 
iMsg[200], iArgs[4][60]; 
    new 
level iLevel[id] > iLevel[id] : 1;
    
    new 
xp level StartedLevel;
    
    if( 
iLevel[id] > )
    {
        
xp +=  ( xp );
    }
    
    
read_argv(1,iMsg ,sizeof iMsg 1); 
    
parse(iMsg,iArgs[0],charsmax(iArgs[]),iArgs[1],charsmax(iArgs[]),iArgs[2],charsmax(iArgs[]),iArgs[3],charsmax(iArgs[])); 
    
    if (
equali(iArgs[0],"/level") || equali(iArgs[0],"/lvl") || equali(iArgs[0],"/xp")) 
    {     
        new 
player cmd_target(id,iArgs[1],CMDTARGET_NO_BOTS); 
        
        if (!
player
        { 
            
ColorChatid"Your^4 LEVEL^1 is:^3 %i^4 |^1 Your^4 XP^1 is:^3 %i^1/^3%i^1."iLevel[id], iXp[id], xp );
        } 
    } 
    
    return 
0


public 
EventDeathMsg(id)
{
    if (
get_pcvar_num(knife_on) == 0)
        return 
PLUGIN_HANDLED;
    
    new 
killer read_data);
    new 
victim read_data);
    
    if( 
killer == victim || ! is_user_connectedkiller ) || ! is_user_connectedvictim ) )
    {
        return 
PLUGIN_HANDLED;
        
//return;
    
}
    
    new 
XpAmount get_pcvar_numcvar_KillXp );
    
    if( 
read_data) )
    {
        
XpAmount += get_pcvar_numcvar_HsXp );
    }
    
    static 
sWeapon26 ];
    
    
read_data4sWeaponsizeofsWeapon ) - );
    
    
    if( 
equalsWeapon"knife" ) )   
    {
        
XpAmount += get_pcvar_numcvar_KnifeXp );
    }
    
    
iXpkiller ] += XpAmount;
    
    
CheckLevelkiller );
    
    
SaveDatakiller );
    
    
ColorChatkiller"You have gained^3 %i^1 XP."XpAmount );
    
    return 
PLUGIN_HANDLED;
}

public 
FwdPlayerSpawnid )
{
    
ExecuteForwardForward_spawnForwardReturnidiLevel[id], iXp[id] );
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if( 
get_pcvar_numknife_on ) == )
        return 
HAM_IGNORED;
    
    if( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_KNIFE )
    {
        
SetHamParamFloat(4damage knife_model[attacker]);
        
        return 
HAM_HANDLED;
    }
    
    return 
HAM_IGNORED;
}

public 
KnifeSkinsMenu(id) { 
    
    if (
get_pcvar_num(knife_on) == 0)
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    new 
szItem[256], szAlien[50], szEllium[50], szDark[50], szTransparent[50], szGenuine[50], szHunt[50], szShadow[50], szSlaughterer[50], szKatana[50], szAssasins[50],
    
szLightsaber[50], szWolverine[50], szProton[50];
    
    new 
level iLevel[id] > iLevel[id] : 1;
    
    new 
xp level StartedLevel;
    
    if( 
iLevel[id] > )
    {
        
xp +=  ( xp );
    }
    
    
formatex(szItemcharsmax(szItem), "\w[ \r%s \w] \yKnife Skins Menu \rv%s^n\yYour Level: \r%d \w- \yYour XP: \r%d\w/\r%d\w.^n\yPage:\r"g_VAULTNAMEVERSION,iLevel[id],iXp[id], xp);
    
formatex(szAliencharsmax(szAlien),"%s"iLevel[id] >= "\wAlien Knife [\yUNLOCKED\w]" "\d???? ????? [\rLEVEL 1 REQUIRE\d]");
    
formatex(szElliumcharsmax(szEllium),"%s"iLevel[id] >= "\wEllium Knife [\yUNLOCKED\w]" "\d?????? ?????? [\rLEVEL 2 REQUIRE\d]");
    
formatex(szDarkcharsmax(szDark),"%s"iLevel[id] >= "\wDark Dagger [\yUNLOCKED\w]" "\d???? ?????? [\rLEVEL 3 REQUIRE\d]");
    
formatex(szTransparentcharsmax(szTransparent),"%s"iLevel[id] >= "\wTransparent Knife [\yUNLOCKED\w]" "\d??????????? ????? [\rLEVEL 4 REQUIRE\d]");
    
formatex(szGenuinecharsmax(szGenuine),"%s"iLevel[id] >= "\wGenuine Dagger [\yUNLOCKED\w]" "\d??????? ?????? [\rLEVEL 5 REQUIRE\d]");
    
formatex(szHuntcharsmax(szHunt),"%s"iLevel[id] >= "\wHunt Blade [\yUNLOCKED\w]" "\d???? ????? [\rLEVEL 6 REQUIRE\d]");
    
formatex(szShadowcharsmax(szShadow),"%s"iLevel[id] >= "\wShadow Blade [\yUNLOCKED\w]" "\d?????? ????? [\rLEVEL 7 REQUIRE\d]");
    
formatex(szSlaughterercharsmax(szSlaughterer),"%s"iLevel[id] >= "\wSlaughterer Axe [\yUNLOCKED\w]" "\d??????????? ??? [\rLEVEL 8 REQUIRE\d]");
    
formatex(szKatanacharsmax(szKatana),"%s"iLevel[id] >= "\wGolden Katana [\yUNLOCKED\w]" "\d?????? ?????? [\rLEVEL 9 REQUIRE\d]");
    
formatex(szAssasinscharsmax(szAssasins),"%s"iLevel[id] >= 10 "\wAssasin's Blade [\yUNLOCKED\w]" "\d???????? ????? [\rLEVEL 10 REQUIRE\d]");
    
formatex(szLightsabercharsmax(szLightsaber),"%s"iLevel[id] >= 11 "\wLightsaber [\yUNLOCKED\w]" "\d?????????? [\rLEVEL 11 REQUIRE\d]");
    
formatex(szWolverinecharsmax(szWolverine),"%s"iLevel[id] >= 12 "\wBloody Wolverine Claws [\yUNLOCKED\w]" "\d?????? ????????? ????? [\rLEVEL 12 REQUIRE\d]");
    
formatex(szProtoncharsmax(szProton),"%s"iLevel[id] >= 13 "\wProton Axe [\yUNLOCKED\w]" "\d?????? ??? [\rLEVEL 13 REQUIRE\d]");
    
    new 
menu menu_createszItem"KnifeSkinsMenu_Handler" ); 
    
menu_additem(menu"\wNormal Knife [\yUNLOCKED\w]""");
    
menu_additem(menuszAlien""iLevel[id] >= 1);
    
menu_additem(menuszEllium""iLevel[id] >= 1);
    
menu_additem(menuszDark""iLevel[id] >= 1);
    
menu_additem(menuszTransparent""iLevel[id] >= 1);
    
menu_additem(menuszGenuine""iLevel[id] >= 1);
    
menu_additem(menuszHunt""iLevel[id] >= 1);
    
menu_additem(menuszShadow""iLevel[id] >= 1);
    
menu_additem(menuszSlaughterer""iLevel[id] >= 1);
    
menu_additem(menuszKatana""iLevel[id] >= 1);
    
menu_additem(menuszAssasins""iLevel[id] >= 10 1);
    
menu_additem(menuszLightsaber""iLevel[id] >= 11 1);
    
menu_additem(menuszWolverine""iLevel[id] >= 12 1);
    
menu_additem(menuszProton""iLevel[id] >= 13 1);
    
    
menu_setprop(menuMPROP_EXITMEXIT_ALL );
    
menu_display(idmenu);
    
    return 
PLUGIN_HANDLED;


public 
KnifeSkinsMenu_Handler(idmenuitem
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    
SetKnife(iditem);
    
ColorChat(id"The knife you chose is: ^4%s^1."g_KnifeNames[item]);
    
    
SaveData(id);
    return 
PLUGIN_HANDLED;
}

public 
SetKnife(iditem) { 
    
    
knife_model[id] = item
    
    
new ClipAmmoWeapon get_user_weapon(idClipAmmo)  
    if ( 
Weapon != CSW_KNIFE 
        return 
PLUGIN_HANDLED 
    
    
new vModel[56],pModel[56
    
    if (
get_pcvar_num(knife_on) == 0)
    {
        
format(vModel,55,"models/v_knife.mdl"
        return 
PLUGIN_HANDLED;
    }
    
    
format(vModel,55g_KnifevModels[item]) 
    
format(pModel,55,"models/p_knife.mdl")
    
entity_set_string(idEV_SZ_viewmodelvModel
    
entity_set_string(idEV_SZ_weaponmodelpModel
    
    return 
PLUGIN_HANDLED;   
}

public 
PlayerLevelsMenu(id)
{    
    if (
get_pcvar_num(knife_on) == 0)
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    new 
some[256], menu;
    
    static 
players[32],szTemp[10],pnum;    
    
get_players(players,pnum,"ch");
    
    
formatex(some,255,"\w[ \r%s \w] \yPlayer's Level:\r"g_VAULTNAME);
    
    
menu menu_create(some,"PlayerLevelsMenu_Handler");
    
    for (new 
ipnumi++)
    {
        new 
level iLevel[players[i]] > iLevel[players[i]] : 1;
        
        new 
xp level StartedLevel;
        
        if( 
iLevel[players[i]] > )
        {
            
xp +=  ( xp );
        }
        
        
formatex(some,256,"%s \y(Level: \r%i\y) \w- \y(XP: \r%i\w/\r%i\y)",get_player_name(players[i]), iLevel[players[i]], iXp[players[i]], xp);
        
num_to_str(players[i],szTemp,charsmax(szTemp));
        
menu_additem(menusomeszTemp);
    }
    
    
menu_setprop(menuMPROP_EXITMEXIT_ALL );
    
menu_display(idmenu);
    
    return 
PLUGIN_HANDLED;
}

public 
PlayerLevelsMenu_Handler(id,menuitem){
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu);
        return;
    }
    
    new 
data[6] ,szName[64],access,callback;
    
    
menu_item_getinfo(menuitemaccessdatacharsmax(data), szNamecharsmax(szName), callback);
    
    new 
player str_to_num(data);
    
    new 
level iLevel[player] > iLevel[player] : 1;
    
    new 
xp level StartedLevel;
    
    if( 
iLevel[player] > )
    {
        
xp +=  ( xp );
    }
    
    
ColorChat(id,"^3%s's ^4LEVEL ^1is: ^3%i ^1with ^3%i^1/^3%i ^4XP^1.",get_player_name(player), iLevel[player], iXp[player], xp);
    
PlayerLevelsMenu(id);
}

public 
CurWeapon(id
{
    
// Set Knife Model
    
SetKnife(idknife_model[id])


public 
givexp(id) {
    if (
get_pcvar_num(knife_on) == 0)
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    if( 
get_user_flagsid ) & ADMIN_RCON ) {
        
        new 
PlayerToGive[32], XP[32]
        
read_argv(1,PlayerToGive,31)
        
read_argv(2,XP31)
        new 
Player cmd_target(id,PlayerToGive,9)
        
        if(!
Player) {
            
            return 
PLUGIN_HANDLED
            
        
}
        
        new 
XPtoGive str_to_num(XP)
        new 
name[32],owner[32]
        
get_user_name(id,owner,31)
        
get_user_name(Player,name,31)
        
ColorChat(0,"^4ADMIN^3 %s^1 give to^4 %s^3 %s^1 XP."owner,name,XP );
        
iXp[Player]+= XPtoGive
        CheckLevel
(Player);
        
SaveData(id)
        
    }
    
    else {
        
        
client_print(id,print_console,"You have no acces to that command")
        
        return 
PLUGIN_HANDLED
    
}
    
    return 
PLUGIN_HANDLED;
}

public 
takexp(id) {
    if (
get_pcvar_num(knife_on) == 0)
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    if(
get_user_flags(id) & ADMIN_RCON ) {
        
        
        new 
PlayerToTake[32], XP[32]
        
read_argv(1,PlayerToTake,31 )
        
read_argv(2,XP,31 )
        new 
Player cmd_target(id,PlayerToTake,9)
        
        if(!
Player) {
            
            return 
PLUGIN_HANDLED
            
        
}
        
        new 
XPtoTake str_to_num(XP)
        new 
name[32],owner[32]
        
get_user_name(id,owner,31)
        
get_user_name(Player,name,31)
        
ColorChat(0,"^4ADMIN^3 %s^1 take to^4 %s^3 %s^1 XP."owner,name,XP );
        
iXpPlayer ]-=XPtoTake
        CheckLevel
(Player);
        
SaveData(id)
        
    }
    
    else {
        
        
client_print(id,print_console,"You have no acces to that command.")
        
        return 
PLUGIN_HANDLED
        
    
}
    
    return 
PLUGIN_HANDLED;
}

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


public 
Knifemessage(id) { 
    
    if (
get_pcvar_num(knife_on) == 0)
        return 
PLUGIN_HANDLED;
    
    
ColorChat(0"Type ^3/knife ^1in chat to open the ^4Knife Skins Menu^1."); 
    
ColorChat(0"This server is running ^4%s ^3v%s^1 by ^4%s^1.",g_VAULTNAMEVERSIONAUTHOR)
    return 
PLUGIN_HANDLED;
}   

public 
Levelmessage(id) { 
    
    if (
get_pcvar_num(knife_on) == 0)
        return 
PLUGIN_HANDLED;
    
    
ColorChat(0,"To see other ^4Players Level ^1type ^3/level ^1in chat."); 
    return 
PLUGIN_HANDLED;
}

public 
client_putinserver(idLoadData(id);

public 
SaveData(id){ 
    
    new 
authid[32
    
get_user_authid(idauthid31
    
    new 
vaultkey[64
    new 
vaultdata[64
    
    
format(vaultkey63"KNIFEMOD_%s"authid
    
format(vaultdata63"%d"knife_model[id]) 
    
set_vaultdata(vaultkeyvaultdata)
    
    new 
data16 ];
    
    
get_user_authididauthidsizeofauthid ) - );
    
    
formatexdatasizeofdata ) - 1"%d %d"iLevel[id], iXp[id] );
    
    
fvault_set_data(g_VAULTNAMEauthiddata );
    
    return;
    
    


public 
LoadData(id){ 
    
    new 
authid[32]  
    
get_user_authid(id,authid,31
    
    new 
vaultkey[64], vaultdata[64
    
    
format(vaultkey63"KNIFEMOD_%s"authid
    
get_vaultdata(vaultkeyvaultdata63
    
knife_model[id] = str_to_num(vaultdata)
    
    new 
data16 ], szLevel], szXp];
    
    
get_user_authididauthidsizeofauthid ) - );
    
    if( 
fvault_get_data(g_VAULTNAMEauthiddatasizeofdata ) - ) )
    {
        
strbreakdataszLevelsizeofszLevel ) - 1szXpsizeofszXp ) - );
        
        
iLevel[id] = str_to_numszLevel );
        
iXp[id] = str_to_numszXp );
        
        return;
    }
    else
    {
        
iLevel[id] = 0;
        
iXp[id] = 0;
        
        return;
    }
}

stock get_player_name(id){
    static 
szName[32];
    
get_user_name(id,szName,31);
    return 
szName;
}

stock ColorChat( const id, const string[ ], { FloatSqlResul} : ... )
{
new 
msg191 ], players32 ], count 1;

static 
len;
len formatexmsgcharsmaxmsg ), "^x04[^x01 Knife-Skins^x04 ]^x01 " );
vformatmsglen ], charsmaxmsg ) - lenstring);

if( 
id )
    
players] = id;
    else
        
get_playersplayers,count,"ch" );
    
    for( new 
0counti++ )
    {
        if( 
is_user_connectedplayers[i] ) )
        {
            
message_beginMSG_ONE_UNRELIABLEget_user_msgid"SayText" ), players] );
            
write_byteplayers] );
            
write_stringmsg );
            
message_end( );
        }
    }

Responder
#2
para eso tenes que tener los models p_ no podes hacerlo solo con los models v_
Responder
#3
a ya ok si los tengo vale .. osea si los pongo los veran ?

agrege el p_knife_alien_Prueba.mdl

al plugins y al models

"models/Knifes/p_knife_alien_Prueba.mdl",
precache_model("models/Knifes/p_knife_alien_Prueba.mdl")



pero aun le veo el cuchillo normal
Responder
#4
Código PHP:
#include <amxmodx> 
#include <amxmisc> 
#include <engine>  
#include <vault> 
#include <hamsandwich> 
#include <fvault> 

#pragma tabsize 0

#define is_valid_player(%1) (1 <= %1 <= 32)

new knife_model[33];

new const 
g_VAULTNAME[] = "Knife-Skins";
new const 
VERSION[] = "2.2" 
new const AUTHOR[] = "Asafmazon." 


new iLevel[33];
new 
iXp[33];

new 
knife_on;

new 
MaxLevel;
new 
StartedLevel;

new 
cvar_KillXp;
new 
cvar_HsXp;
new 
cvar_KnifeXp;

new 
Forward_spawn;
new 
Forward_levelup;
new 
ForwardReturn;

new const 
g_KnifeNames[][32] =
{
"Normal Knife",
"Alien Knife",
"Ellium Dagger",
"Dark Dagger",
"Transparent Knife",
"Genuine Dagger",
"Hunt Blade",
"Shadow Blade",
"Slaughterer Axe",
"Golden Katana",
"Assasin's Blade",
"Lightsaber",
"Bloody Wolverine Claws",
"Proton Axe"
};

new const 
g_KnifevModels[][256] =
{
"models/Knifes/v_knife_alien_Prueba.mdl",
"models/Knifes/v_Laser.mdl",
"models/Knifes/v_banana.mdl",
"models/Knifes/v_palo.mdl",
"models/Knifes/v_vip.mdl",
"models/Knifes/v_knife_hunt.mdl",
"models/Knifes/v_duuu.mdl",
"models/Knifes/v_knife_slaughterer.mdl",
"models/Knifes/v_knife_katana.mdl",
"models/Knifes/v_knife_assasins.mdl",
"models/Knifes/v_knife_lightsaber.mdl",
"models/Knifes/v_knife_wolverine.mdl",
"models/Knifes/v_ultimo.mdl"
}

new const 
g_KnifepModels[][256] =
{
"models/Knifes/p_knife_alien_Prueba.mdl",
"models/Knifes/p_Laser.mdl",
"models/Knifes/p_banana.mdl",
"models/Knifes/p_palo.mdl",
"models/Knifes/p_vip.mdl",
"models/Knifes/p_knife_hunt.mdl",
"models/Knifes/p_duuu.mdl",
"models/Knifes/p_knife_slaughterer.mdl",
"models/Knifes/p_knife_katana.mdl",
"models/Knifes/p_knife_assasins.mdl",
"models/Knifes/p_knife_lightsaber.mdl",
"models/Knifes/p_knife_wolverine.mdl",
"models/Knifes/p_ultimo.mdl"
}

native register_maxlevelsmaxlevel 99started_xp_level 100 );
native get_user_levelindex );
native get_user_xpindex );

public 
plugin_init() {  
    
    
register_plugin(g_VAULTNAMEVERSIONAUTHOR);
    
register_cvar("knife_skins"VERSIONFCVAR_SERVER); // Find Servers on Game-Monitor
    
set_cvar_string("knife_skins"VERSION); // Find Servers on Game-Monitor
    
    // register max levels 13 is the top level, 100 is the started level xp.
    
register_maxlevels13100 );
    
    
//Admin commands
    
    
register_concmd("knife_givexp" ,"givexp",ADMIN_RCON,"Add xp to a player")
    
register_concmd("knife_takexp""takexp",ADMIN_RCON,"Remove xp from a player")
    
    
//Clcmd's
    
    
knife_on register_cvar"knife_skins""1" );
    
    
register_clcmd("say","HandleSay"); 
    
register_clcmd("say_team","HandleSay")
    
register_clcmd("say /knife""KnifeSkinsMenu");
    
register_clcmd("say /level""PlayerLevelsMenu");
    
    
//Event's
    
    
register_event("CurWeapon","CurWeapon","be","1=1");
    
register_event"DeathMsg""EventDeathMsg""a" );
    
    
//Cvar's
    
    
cvar_KillXp register_cvar"kill_xp""5" );
    
cvar_HsXp register_cvar"hs_xp""2" );
    
cvar_KnifeXp register_cvar"knife_xp""3" );
    
    
//Ham's
    
    
RegisterHamHam_Spawn"player""FwdPlayerSpawn");
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
    
//Forward's
    
    
Forward_levelup CreateMultiForward"forward_client_levelup"ET_IGNOREFP_CELLFP_CELLFP_CELL );
    
Forward_spawn CreateMultiForward"forward_client_spawn"ET_IGNOREFP_CELL FP_CELLFP_CELL );
    
    
set_task(15.0"Knifemessage"0__"b")
    
set_task(35.0"Levelmessage"0__"b")


public 
plugin_precache() {  
    
    
precache_model("models/Knifes/v_knife_alien_Prueba.mdl")  
    
precache_model("models/Knifes/v_Laser.mdl")  
    
precache_model("models/Knifes/v_banana.mdl"
    
precache_model("models/Knifes/v_palo.mdl"
    
precache_model("models/Knifes/v_vip.mdl"
    
precache_model("models/Knifes/v_knife_hunt.mdl"
    
precache_model("models/Knifes/v_duuu.mdl"
    
precache_model("models/Knifes/v_knife_slaughterer.mdl"
    
precache_model("models/Knifes/v_knife_katana.mdl"
    
precache_model("models/Knifes/v_knife_assasins.mdl"
    
precache_model("models/Knifes/v_knife_lightsaber.mdl"
    
precache_model("models/Knifes/v_knife_wolverine.mdl"
    
precache_model("models/Knifes/v_ultimo.mdl"

    
precache_model("models/Knifes/p_knife_alien_Prueba.mdl")  
    
precache_model("models/Knifes/p_Laser.mdl")  
    
precache_model("models/Knifes/p_banana.mdl"
    
precache_model("models/Knifes/p_palo.mdl"
    
precache_model("models/Knifes/p_vip.mdl"
    
precache_model("models/Knifes/p_knife_hunt.mdl"
    
precache_model("models/Knifes/p_duuu.mdl"
    
precache_model("models/Knifes/p_knife_slaughterer.mdl"
    
precache_model("models/Knifes/p_knife_katana.mdl"
    
precache_model("models/Knifes/p_knife_assasins.mdl"
    
precache_model("models/Knifes/p_knife_lightsaber.mdl"
    
precache_model("models/Knifes/p_knife_wolverine.mdl"
    
precache_model("models/Knifes/p_ultimo.mdl"
    
}

public 
plugin_natives( )
{
    
//Native's
    
    
register_library"Knife-Skins" );
    
    
register_native"register_maxlevels""_register_maxlevels" );
    
register_native"get_user_level""_get_user_level" );
    
register_native"set_user_level""_set_user_level" );
    
register_native"get_user_xp""_get_user_xp" );
    
register_native"set_user_xp""_set_user_xp" );
}

public 
_register_maxlevelspluginparams )
{
    if( 
MaxLevel != && StartedLevel != )
    {
        return;
    }
    else
    {
        
MaxLevel get_param);
        
StartedLevel get_param);
    }
}

public 
_get_user_levelpluginparams )
{
    return 
iLevelget_param) ];
}

public 
_set_user_levelpluginparams )
{
    
iLevelget_param) ] = maxget_param), MaxLevel );
    
    
FlsahLevelUpget_param) );
    
    
SaveDataget_param) );
    
    
LoadDataget_param) );
}

public 
_get_user_xppluginparams )
{
    return 
iXpget_param) ];
}

public 
_set_user_xppluginparams )
{
    
iXpget_param) ] = get_param);
    
    
CheckLevelget_param) );
    
    
SaveDataget_param) );
    
    
LoadDataget_param) );
}

public 
CheckLevelid )
{
    if( 
iLevel[id] == MaxLevel )
    {
        return;
    }
    else
    {
        new 
level iLevel[id] > iLevel[id] : 1;
        
        new 
xp level StartedLevel;
        
        if( 
iLevel[id] > )
        {
            
xp +=  ( xp );
        }
        
        while( 
iXp[id] >= xp )
        {
            
iLevel[id]++;
            
            
ColorChat(id,"^4Congratulations!^1 You'r have level up! You'r new^4 LEVEL^1 is: ^3%i^1."iLevel[id]); 
            
ColorChat(0,"^3%s^1 has level up to^4 LEVEL^3 %i^1!",get_player_name(id), iLevel[id]); 
            
            
FlsahLevelUp(id);
            
            
ExecuteForwardForward_levelupForwardReturnidiLevel[id], iXp[id] );
            
            
SaveDataid );
            
            
CheckLevelid );
            
            break;
        }
    }
}

public 
FlsahLevelUpid )
{
    
message_beginMSG_ONEget_user_msgid"ScreenFade" ), { 000}, id );
    
write_short<< 10 );
    
write_short<< 10 );
    
write_short);
    
write_byte);
    
write_byte255 );
    
write_byte215 );
    
write_byte100 );
    
message_end( );
}


public 
HandleSay(id){
    
    if (
get_pcvar_num(knife_on) == 0)
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    new 
iMsg[200], iArgs[4][60]; 
    new 
level iLevel[id] > iLevel[id] : 1;
    
    new 
xp level StartedLevel;
    
    if( 
iLevel[id] > )
    {
        
xp +=  ( xp );
    }
    
    
read_argv(1,iMsg ,sizeof iMsg 1); 
    
parse(iMsg,iArgs[0],charsmax(iArgs[]),iArgs[1],charsmax(iArgs[]),iArgs[2],charsmax(iArgs[]),iArgs[3],charsmax(iArgs[])); 
    
    if (
equali(iArgs[0],"/level") || equali(iArgs[0],"/lvl") || equali(iArgs[0],"/xp")) 
    {     
        new 
player cmd_target(id,iArgs[1],CMDTARGET_NO_BOTS); 
        
        if (!
player
        { 
            
ColorChatid"Your^4 LEVEL^1 is:^3 %i^4 |^1 Your^4 XP^1 is:^3 %i^1/^3%i^1."iLevel[id], iXp[id], xp );
        } 
    } 
    
    return 
0


public 
EventDeathMsg(id)
{
    if (
get_pcvar_num(knife_on) == 0)
        return 
PLUGIN_HANDLED;
    
    new 
killer read_data);
    new 
victim read_data);
    
    if( 
killer == victim || ! is_user_connectedkiller ) || ! is_user_connectedvictim ) )
    {
        return 
PLUGIN_HANDLED;
        
//return;
    
}
    
    new 
XpAmount get_pcvar_numcvar_KillXp );
    
    if( 
read_data) )
    {
        
XpAmount += get_pcvar_numcvar_HsXp );
    }
    
    static 
sWeapon26 ];
    
    
read_data4sWeaponsizeofsWeapon ) - );
    
    
    if( 
equalsWeapon"knife" ) )   
    {
        
XpAmount += get_pcvar_numcvar_KnifeXp );
    }
    
    
iXpkiller ] += XpAmount;
    
    
CheckLevelkiller );
    
    
SaveDatakiller );
    
    
ColorChatkiller"You have gained^3 %i^1 XP."XpAmount );
    
    return 
PLUGIN_HANDLED;
}

public 
FwdPlayerSpawnid )
{
    
ExecuteForwardForward_spawnForwardReturnidiLevel[id], iXp[id] );
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if( 
get_pcvar_numknife_on ) == )
        return 
HAM_IGNORED;
    
    if( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_KNIFE )
    {
        
SetHamParamFloat(4damage knife_model[attacker]);
        
        return 
HAM_HANDLED;
    }
    
    return 
HAM_IGNORED;
}

public 
KnifeSkinsMenu(id) { 
    
    if (
get_pcvar_num(knife_on) == 0)
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    new 
szItem[256], szAlien[50], szEllium[50], szDark[50], szTransparent[50], szGenuine[50], szHunt[50], szShadow[50], szSlaughterer[50], szKatana[50], szAssasins[50],
    
szLightsaber[50], szWolverine[50], szProton[50];
    
    new 
level iLevel[id] > iLevel[id] : 1;
    
    new 
xp level StartedLevel;
    
    if( 
iLevel[id] > )
    {
        
xp +=  ( xp );
    }
    
    
formatex(szItemcharsmax(szItem), "\w[ \r%s \w] \yKnife Skins Menu \rv%s^n\yYour Level: \r%d \w- \yYour XP: \r%d\w/\r%d\w.^n\yPage:\r"g_VAULTNAMEVERSION,iLevel[id],iXp[id], xp);
    
formatex(szAliencharsmax(szAlien),"%s"iLevel[id] >= "\wAlien Knife [\yUNLOCKED\w]" "\d???? ????? [\rLEVEL 1 REQUIRE\d]");
    
formatex(szElliumcharsmax(szEllium),"%s"iLevel[id] >= "\wEllium Knife [\yUNLOCKED\w]" "\d?????? ?????? [\rLEVEL 2 REQUIRE\d]");
    
formatex(szDarkcharsmax(szDark),"%s"iLevel[id] >= "\wDark Dagger [\yUNLOCKED\w]" "\d???? ?????? [\rLEVEL 3 REQUIRE\d]");
    
formatex(szTransparentcharsmax(szTransparent),"%s"iLevel[id] >= "\wTransparent Knife [\yUNLOCKED\w]" "\d??????????? ????? [\rLEVEL 4 REQUIRE\d]");
    
formatex(szGenuinecharsmax(szGenuine),"%s"iLevel[id] >= "\wGenuine Dagger [\yUNLOCKED\w]" "\d??????? ?????? [\rLEVEL 5 REQUIRE\d]");
    
formatex(szHuntcharsmax(szHunt),"%s"iLevel[id] >= "\wHunt Blade [\yUNLOCKED\w]" "\d???? ????? [\rLEVEL 6 REQUIRE\d]");
    
formatex(szShadowcharsmax(szShadow),"%s"iLevel[id] >= "\wShadow Blade [\yUNLOCKED\w]" "\d?????? ????? [\rLEVEL 7 REQUIRE\d]");
    
formatex(szSlaughterercharsmax(szSlaughterer),"%s"iLevel[id] >= "\wSlaughterer Axe [\yUNLOCKED\w]" "\d??????????? ??? [\rLEVEL 8 REQUIRE\d]");
    
formatex(szKatanacharsmax(szKatana),"%s"iLevel[id] >= "\wGolden Katana [\yUNLOCKED\w]" "\d?????? ?????? [\rLEVEL 9 REQUIRE\d]");
    
formatex(szAssasinscharsmax(szAssasins),"%s"iLevel[id] >= 10 "\wAssasin's Blade [\yUNLOCKED\w]" "\d???????? ????? [\rLEVEL 10 REQUIRE\d]");
    
formatex(szLightsabercharsmax(szLightsaber),"%s"iLevel[id] >= 11 "\wLightsaber [\yUNLOCKED\w]" "\d?????????? [\rLEVEL 11 REQUIRE\d]");
    
formatex(szWolverinecharsmax(szWolverine),"%s"iLevel[id] >= 12 "\wBloody Wolverine Claws [\yUNLOCKED\w]" "\d?????? ????????? ????? [\rLEVEL 12 REQUIRE\d]");
    
formatex(szProtoncharsmax(szProton),"%s"iLevel[id] >= 13 "\wProton Axe [\yUNLOCKED\w]" "\d?????? ??? [\rLEVEL 13 REQUIRE\d]");
    
    new 
menu menu_createszItem"KnifeSkinsMenu_Handler" ); 
    
menu_additem(menu"\wNormal Knife [\yUNLOCKED\w]""");
    
menu_additem(menuszAlien""iLevel[id] >= 1);
    
menu_additem(menuszEllium""iLevel[id] >= 1);
    
menu_additem(menuszDark""iLevel[id] >= 1);
    
menu_additem(menuszTransparent""iLevel[id] >= 1);
    
menu_additem(menuszGenuine""iLevel[id] >= 1);
    
menu_additem(menuszHunt""iLevel[id] >= 1);
    
menu_additem(menuszShadow""iLevel[id] >= 1);
    
menu_additem(menuszSlaughterer""iLevel[id] >= 1);
    
menu_additem(menuszKatana""iLevel[id] >= 1);
    
menu_additem(menuszAssasins""iLevel[id] >= 10 1);
    
menu_additem(menuszLightsaber""iLevel[id] >= 11 1);
    
menu_additem(menuszWolverine""iLevel[id] >= 12 1);
    
menu_additem(menuszProton""iLevel[id] >= 13 1);
    
    
menu_setprop(menuMPROP_EXITMEXIT_ALL );
    
menu_display(idmenu);
    
    return 
PLUGIN_HANDLED;


public 
KnifeSkinsMenu_Handler(idmenuitem
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    
SetKnife(iditem);
    
ColorChat(id"The knife you chose is: ^4%s^1."g_KnifeNames[item]);
    
    
SaveData(id);
    return 
PLUGIN_HANDLED;
}

public 
SetKnife(iditem) { 
    
    
knife_model[id] = item
    
    
new ClipAmmoWeapon get_user_weapon(idClipAmmo)  
    if ( 
Weapon != CSW_KNIFE 
        return 
PLUGIN_HANDLED 
    
    
new vModel[56],pModel[56
    
    if (
get_pcvar_num(knife_on) == 0)
    {
        
format(vModel,55,"models/v_knife.mdl"
        return 
PLUGIN_HANDLED;
    }
    
    
format(vModel,55g_KnifevModels[item]) 
    
format(pModel,55g_KnifepModels[item])
    
entity_set_string(idEV_SZ_viewmodelvModel
    
entity_set_string(idEV_SZ_weaponmodelpModel
    
    return 
PLUGIN_HANDLED;   
}

public 
PlayerLevelsMenu(id)
{    
    if (
get_pcvar_num(knife_on) == 0)
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    new 
some[256], menu;
    
    static 
players[32],szTemp[10],pnum;    
    
get_players(players,pnum,"ch");
    
    
formatex(some,255,"\w[ \r%s \w] \yPlayer's Level:\r"g_VAULTNAME);
    
    
menu menu_create(some,"PlayerLevelsMenu_Handler");
    
    for (new 
ipnumi++)
    {
        new 
level iLevel[players[i]] > iLevel[players[i]] : 1;
        
        new 
xp level StartedLevel;
        
        if( 
iLevel[players[i]] > )
        {
            
xp +=  ( xp );
        }
        
        
formatex(some,256,"%s \y(Level: \r%i\y) \w- \y(XP: \r%i\w/\r%i\y)",get_player_name(players[i]), iLevel[players[i]], iXp[players[i]], xp);
        
num_to_str(players[i],szTemp,charsmax(szTemp));
        
menu_additem(menusomeszTemp);
    }
    
    
menu_setprop(menuMPROP_EXITMEXIT_ALL );
    
menu_display(idmenu);
    
    return 
PLUGIN_HANDLED;
}

public 
PlayerLevelsMenu_Handler(id,menuitem){
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu);
        return;
    }
    
    new 
data[6] ,szName[64],access,callback;
    
    
menu_item_getinfo(menuitemaccessdatacharsmax(data), szNamecharsmax(szName), callback);
    
    new 
player str_to_num(data);
    
    new 
level iLevel[player] > iLevel[player] : 1;
    
    new 
xp level StartedLevel;
    
    if( 
iLevel[player] > )
    {
        
xp +=  ( xp );
    }
    
    
ColorChat(id,"^3%s's ^4LEVEL ^1is: ^3%i ^1with ^3%i^1/^3%i ^4XP^1.",get_player_name(player), iLevel[player], iXp[player], xp);
    
PlayerLevelsMenu(id);
}

public 
CurWeapon(id
{
    
// Set Knife Model
    
SetKnife(idknife_model[id])


public 
givexp(id) {
    if (
get_pcvar_num(knife_on) == 0)
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    if( 
get_user_flagsid ) & ADMIN_RCON ) {
        
        new 
PlayerToGive[32], XP[32]
        
read_argv(1,PlayerToGive,31)
        
read_argv(2,XP31)
        new 
Player cmd_target(id,PlayerToGive,9)
        
        if(!
Player) {
            
            return 
PLUGIN_HANDLED
            
        
}
        
        new 
XPtoGive str_to_num(XP)
        new 
name[32],owner[32]
        
get_user_name(id,owner,31)
        
get_user_name(Player,name,31)
        
ColorChat(0,"^4ADMIN^3 %s^1 give to^4 %s^3 %s^1 XP."owner,name,XP );
        
iXp[Player]+= XPtoGive
        CheckLevel
(Player);
        
SaveData(id)
        
    }
    
    else {
        
        
client_print(id,print_console,"You have no acces to that command")
        
        return 
PLUGIN_HANDLED
    
}
    
    return 
PLUGIN_HANDLED;
}

public 
takexp(id) {
    if (
get_pcvar_num(knife_on) == 0)
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    if(
get_user_flags(id) & ADMIN_RCON ) {
        
        
        new 
PlayerToTake[32], XP[32]
        
read_argv(1,PlayerToTake,31 )
        
read_argv(2,XP,31 )
        new 
Player cmd_target(id,PlayerToTake,9)
        
        if(!
Player) {
            
            return 
PLUGIN_HANDLED
            
        
}
        
        new 
XPtoTake str_to_num(XP)
        new 
name[32],owner[32]
        
get_user_name(id,owner,31)
        
get_user_name(Player,name,31)
        
ColorChat(0,"^4ADMIN^3 %s^1 take to^4 %s^3 %s^1 XP."owner,name,XP );
        
iXpPlayer ]-=XPtoTake
        CheckLevel
(Player);
        
SaveData(id)
        
    }
    
    else {
        
        
client_print(id,print_console,"You have no acces to that command.")
        
        return 
PLUGIN_HANDLED
        
    
}
    
    return 
PLUGIN_HANDLED;
}

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


public 
Knifemessage(id) { 
    
    if (
get_pcvar_num(knife_on) == 0)
        return 
PLUGIN_HANDLED;
    
    
ColorChat(0"Type ^3/knife ^1in chat to open the ^4Knife Skins Menu^1."); 
    
ColorChat(0"This server is running ^4%s ^3v%s^1 by ^4%s^1.",g_VAULTNAMEVERSIONAUTHOR)
    return 
PLUGIN_HANDLED;
}   

public 
Levelmessage(id) { 
    
    if (
get_pcvar_num(knife_on) == 0)
        return 
PLUGIN_HANDLED;
    
    
ColorChat(0,"To see other ^4Players Level ^1type ^3/level ^1in chat."); 
    return 
PLUGIN_HANDLED;
}

public 
client_putinserver(idLoadData(id);

public 
SaveData(id){ 
    
    new 
authid[32
    
get_user_authid(idauthid31
    
    new 
vaultkey[64
    new 
vaultdata[64
    
    
format(vaultkey63"KNIFEMOD_%s"authid
    
format(vaultdata63"%d"knife_model[id]) 
    
set_vaultdata(vaultkeyvaultdata)
    
    new 
data16 ];
    
    
get_user_authididauthidsizeofauthid ) - );
    
    
formatexdatasizeofdata ) - 1"%d %d"iLevel[id], iXp[id] );
    
    
fvault_set_data(g_VAULTNAMEauthiddata );
    
    return;
    
    


public 
LoadData(id){ 
    
    new 
authid[32]  
    
get_user_authid(id,authid,31
    
    new 
vaultkey[64], vaultdata[64
    
    
format(vaultkey63"KNIFEMOD_%s"authid
    
get_vaultdata(vaultkeyvaultdata63
    
knife_model[id] = str_to_num(vaultdata)
    
    new 
data16 ], szLevel], szXp];
    
    
get_user_authididauthidsizeofauthid ) - );
    
    if( 
fvault_get_data(g_VAULTNAMEauthiddatasizeofdata ) - ) )
    {
        
strbreakdataszLevelsizeofszLevel ) - 1szXpsizeofszXp ) - );
        
        
iLevel[id] = str_to_numszLevel );
        
iXp[id] = str_to_numszXp );
        
        return;
    }
    else
    {
        
iLevel[id] = 0;
        
iXp[id] = 0;
        
        return;
    }
}

stock get_player_name(id){
    static 
szName[32];
    
get_user_name(id,szName,31);
    return 
szName;
}

stock ColorChat( const id, const string[ ], { FloatSqlResul} : ... )
{
new 
msg191 ], players32 ], count 1;

static 
len;
len formatexmsgcharsmaxmsg ), "^x04[^x01 Knife-Skins^x04 ]^x01 " );
vformatmsglen ], charsmaxmsg ) - lenstring);

if( 
id )
    
players] = id;
    else
        
get_playersplayers,count,"ch" );
    
    for( new 
0counti++ )
    {
        if( 
is_user_connectedplayers[i] ) )
        {
            
message_beginMSG_ONE_UNRELIABLEget_user_msgid"SayText" ), players] );
            
write_byteplayers] );
            
write_stringmsg );
            
message_end( );
        }
    }

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)