AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Problem on my plugin (https://forums.alliedmods.net/showthread.php?t=245184)

Eviatar Mor 07-29-2014 12:08

Problem on my plugin
 
Hello,

i edit plugin and i want in round end its give xp to one player alive but i dont know how to do that here is the plugin:

PHP Code:

    

    
#include <amxmodx>  
    #include <amxmisc>  
    #include <engine>  
    #include <vault>  
    #include <hamsandwich>  
    #include <fvault>  
     
    #pragma tabsize 0
     
    #define is_valid_player(%1) (1 <= %1 <= 32)
     
    
new Scout_model[33];
     
    new const 
g_VAULTNAME[] = "Scout-Skins";
    new const 
VERSION[] = "2.2"  
    
new const AUTHOR[] = "SerMajor"  
     
     
    
new iLevel[33];
    new 
iXp[33];
     
    new 
scout_on;
     
    new 
MaxLevel;
    new 
StartedLevel;
    new 
g_msgSayText;
     
    new 
cvar_KillXp;
    new 
cvar_HsXp;
    new 
cvar_ScoutXp;
     
    new 
Forward_spawn;
    new 
Forward_levelup;
    new 
ForwardReturn;
     
    const 
MAX_SCOUTS 12
     
    
new const g_scoutNames[MAX_SCOUTS][32] =
    {
    
"Normal Scout",
    
"yellow Scout",
    
"steyr scout",
    
"sig sauer sg3000 scout",
    
"safari scout",
    
"pharaoh scout",
    
"komando steyrscout scout",
    
"default scout reskin gtwalq",
    
"crossbow scout",
    
"blue scout",
    
"badass m24 scout",
    
"ak scout"
    
};
     
    new const 
g_scoutLevels[MAX_SCOUTS] = { 01234567891011 }
     
    new const 
g_scoutvModels[MAX_SCOUTS][256] =
    {
    
"models/v_scout.mdl",
    
"models/lolscouthnr/v_scout_yellow.mdl",
    
"models/lolscouthnr/v_scout_steyr.mdl",
    
"models/lolscouthnr/v_scout_sg3000.mdl",
    
"models/lolscouthnr/v_scout_safari.mdl",
    
"models/lolscouthnr/v_scout_pharaoh.mdl",
    
"models/lolscouthnr/v_scout_komando.mdl",
    
"models/lolscouthnr/v_scout_default.mdl",
    
"models/lolscouthnr/v_scout_crossbow.mdl",
    
"models/lolscouthnr/v_scout_blue.mdl",
    
"models/lolscouthnr/v_scout_badass.mdl",
    
"models/lolscouthnr/v_scout_ak.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("scout_skins"VERSIONFCVAR_SERVER); // Find Servers on Game-Monitor
        
set_cvar_string("scout_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("scout_givexp" ,"givexp",ADMIN_RCON,"Add xp to a player")
        
register_concmd("scout_takexp""takexp",ADMIN_RCON,"Remove xp from a player")
         
        
//Clcmd's
         
        
scout_on register_cvar"Scout_skins""1" )
         
        
register_clcmd("say","HandleSay");  
        
register_clcmd("say_team","HandleSay")
        
register_clcmd("say /scout""ScoutSkinsMenu");
        
register_clcmd("say /level""PlayerLevelsMenu");
    
    
//logevent
    
register_logevent("logevent_round_end"2"1=Round_End"
         
        
//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_ScoutXp register_cvar"Scout_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"scoutmessage"0__"b")
        
set_task(35.0"Levelmessage"0__"b")
       
        
g_msgSayText get_user_msgid("SayText");
    }  
     
    public 
plugin_precache() {  
         
        
precache_model("models/lolscouthnr/v_scout_yellow.mdl")  
        
precache_model("models/lolscouthnr/v_scout_steyr.mdl")  
        
precache_model("models/lolscouthnr/v_scout_sg3000.mdl")  
        
precache_model("models/lolscouthnr/v_scout_safari.mdl")  
        
precache_model("models/lolscouthnr/v_scout_pharaoh.mdl")  
        
precache_model("models/lolscouthnr/v_scout_komando.mdl")  
        
precache_model("models/lolscouthnr/v_scout_default.mdl")  
        
precache_model("models/lolscouthnr/v_scout_crossbow.mdl")  
        
precache_model("models/lolscouthnr/v_scout_blue.mdl")  
        
precache_model("models/lolscouthnr/v_scout_badass.mdl")  
        
precache_model("models/lolscouthnr/v_scout_ak.mdl")  
         
    }
     
    public 
plugin_natives( )
    {
        
//Native's
         
        
register_library"scout-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(scout_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(scout_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"scout" ) )    
        {
            
XpAmount += get_pcvar_numcvar_ScoutXp );
        }
         
        
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_numscout_on ) == )
            return 
HAM_IGNORED;
         
        if( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_SCOUT )
        {
            
SetHamParamFloat(4damage Scout_model[attacker]);
             
            return 
HAM_HANDLED;
        }
         
        return 
HAM_IGNORED;
    }
     
    public 
ScoutSkinsMenu(id) {  
         
        if (!
get_pcvar_num(scout_on))
        {
            
ColorChat(id"The mod has been disabale.");
            return 
PLUGIN_HANDLED;
        }
         
        new 
szItem[256];
         
        new 
level iLevel[id] > iLevel[id] : 1;
         
        new 
xp level StartedLevel;
         
        if( 
iLevel[id] > )
        {
            
xp +=  ( xp );
        }
         
        
formatex(szItemcharsmax(szItem), "\w[ \r%s \w] \yScout 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);
        new 
menu menu_createszItem"ScoutSkinsMenu_Handler" );  
       
        for (new 
0MAX_SCOUTSi++)
        {
            
formatex(szItemcharsmax(szItem), iLevel[id] >= g_scoutLevels[i] ? "%s [\yUNLOCKED\w]" "\d%s [\rLEVEL %d REQUIRE\d]"iLevel[id] >= g_scoutLevels[i] ? g_scoutNames[i] : "?????????"g_scoutLevels[i]),
            
menu_additem(menuszItem, .paccess = (iLevel[id] >= g_scoutLevels[i]) ? 1);
        }
       
        
menu_display(idmenu);
         
        return 
PLUGIN_HANDLED;
    }  
     
    public 
ScoutSkinsMenu_Handler(idmenuitem)  
    {
        if(
item == MENU_EXIT)
        {
            
menu_destroy(menu)
            return 
PLUGIN_HANDLED
        
}
         
        
SetScout(iditem);
        
ColorChat(id"The Scout you chose is: ^4%s^1."g_scoutNames[item]);
         
        
SaveData(id);
        return 
PLUGIN_HANDLED;
    }
     
    public 
SetScout(iditem) {  
         
        
Scout_model[id] = item
         
        
new ClipAmmoWeapon get_user_weapon(idClipAmmo)  
        if ( 
Weapon != CSW_SCOUT )  
            return 
PLUGIN_HANDLED  
         
        
new vModel[56],pModel[56]  
         
        if (
get_pcvar_num(scout_on) == 0)
        {
            
format(vModel,55,"models/v_scout.mdl")  
            return 
PLUGIN_HANDLED;
        }
         
        
format(vModel,55g_scoutvModels[item])  
        
format(pModel,55,"models/p_Scout.mdl")
        
entity_set_string(idEV_SZ_viewmodelvModel)  
        
entity_set_string(idEV_SZ_weaponmodelpModel)  
         
        return 
PLUGIN_HANDLED;    
    }
     
    public 
PlayerLevelsMenu(id)
    {    
        if (
get_pcvar_num(scout_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
        
SetScout(idScout_model[id])
    }  
     
    public 
givexp(id) {
        if (
get_pcvar_num(scout_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(scout_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 
Scoutmessage(id) {  
         
        if (
get_pcvar_num(scout_on) == 0)
            return 
PLUGIN_HANDLED;
         
        
ColorChat(0"Type ^3/Scout ^1in chat to open the ^4Scout 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(scout_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"SCOUTMOD_%s"authid)  
        
format(vaultdata63"%d"Scout_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"SCOUTMOD_%s"authid)  
        
get_vaultdata(vaultkeyvaultdata63)  
        
Scout_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;
    if (!
len)
        
len formatexmsgcharsmaxmsg ), "^x04[^x01 Scout-Skins^x04 ]^x01 " );
     
    
vformatmsglen ], charsmaxmsg ) - lenstring);
     
    if( 
id )
        
players] = id;
        else
            
get_playersplayers,count,"ch" );
         
        for( new 
0counti++ )
        {
                
message_beginMSG_ONE_UNRELIABLEg_msgSayTextplayers] );
                
write_byteplayers] );
                
write_stringmsg );
                
message_end( );
        }
    }
    
    public 
logevent_round_endid ){
    if(
is_user_alive(id){
    
   }
  } 

edit the line 697 to xp...
i need this plugin for hit and run mod...
and i try natives but not work...
sorry about my bad english...

MrKiller2010 07-29-2014 12:43

Re: Problem on my plugin
 
You can change amount of XP check last row!
PHP Code:

#include <amxmodx>  
    #include <amxmisc>  
    #include <engine>  
    #include <vault>  
    #include <hamsandwich>  
    #include <fvault>  
     
    #pragma tabsize 0
     
    #define is_valid_player(%1) (1 <= %1 <= 32)
     
    
new Scout_model[33];
     
    new const 
g_VAULTNAME[] = "Scout-Skins";
    new const 
VERSION[] = "2.2"  
    
new const AUTHOR[] = "SerMajor"  
     
     
    
new iLevel[33];
    new 
iXp[33];
     
    new 
scout_on;
     
    new 
MaxLevel;
    new 
StartedLevel;
    new 
g_msgSayText;
     
    new 
cvar_KillXp;
    new 
cvar_HsXp;
    new 
cvar_ScoutXp;
     
    new 
Forward_spawn;
    new 
Forward_levelup;
    new 
ForwardReturn;
     
    const 
MAX_SCOUTS 12
     
    
new const g_scoutNames[MAX_SCOUTS][32] =
    {
    
"Normal Scout",
    
"yellow Scout",
    
"steyr scout",
    
"sig sauer sg3000 scout",
    
"safari scout",
    
"pharaoh scout",
    
"komando steyrscout scout",
    
"default scout reskin gtwalq",
    
"crossbow scout",
    
"blue scout",
    
"badass m24 scout",
    
"ak scout"
    
};
     
    new const 
g_scoutLevels[MAX_SCOUTS] = { 01234567891011 }
     
    new const 
g_scoutvModels[MAX_SCOUTS][256] =
    {
    
"models/v_scout.mdl",
    
"models/lolscouthnr/v_scout_yellow.mdl",
    
"models/lolscouthnr/v_scout_steyr.mdl",
    
"models/lolscouthnr/v_scout_sg3000.mdl",
    
"models/lolscouthnr/v_scout_safari.mdl",
    
"models/lolscouthnr/v_scout_pharaoh.mdl",
    
"models/lolscouthnr/v_scout_komando.mdl",
    
"models/lolscouthnr/v_scout_default.mdl",
    
"models/lolscouthnr/v_scout_crossbow.mdl",
    
"models/lolscouthnr/v_scout_blue.mdl",
    
"models/lolscouthnr/v_scout_badass.mdl",
    
"models/lolscouthnr/v_scout_ak.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("scout_skins"VERSIONFCVAR_SERVER); // Find Servers on Game-Monitor
        
set_cvar_string("scout_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("scout_givexp" ,"givexp",ADMIN_RCON,"Add xp to a player")
        
register_concmd("scout_takexp""takexp",ADMIN_RCON,"Remove xp from a player")
         
        
//Clcmd's
         
        
scout_on register_cvar"Scout_skins""1" )
         
        
register_clcmd("say","HandleSay");  
        
register_clcmd("say_team","HandleSay")
        
register_clcmd("say /scout""ScoutSkinsMenu");
        
register_clcmd("say /level""PlayerLevelsMenu");
    
     
//logevent
     
register_logevent("logevent_round_end"2"1=Round_End"
         
        
//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_ScoutXp register_cvar"Scout_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"scoutmessage"0__"b")
        
set_task(35.0"Levelmessage"0__"b")
       
        
g_msgSayText get_user_msgid("SayText");
    }  
     
    public 
plugin_precache() {  
         
        
precache_model("models/lolscouthnr/v_scout_yellow.mdl")  
        
precache_model("models/lolscouthnr/v_scout_steyr.mdl")  
        
precache_model("models/lolscouthnr/v_scout_sg3000.mdl")  
        
precache_model("models/lolscouthnr/v_scout_safari.mdl")  
        
precache_model("models/lolscouthnr/v_scout_pharaoh.mdl")  
        
precache_model("models/lolscouthnr/v_scout_komando.mdl")  
        
precache_model("models/lolscouthnr/v_scout_default.mdl")  
        
precache_model("models/lolscouthnr/v_scout_crossbow.mdl")  
        
precache_model("models/lolscouthnr/v_scout_blue.mdl")  
        
precache_model("models/lolscouthnr/v_scout_badass.mdl")  
        
precache_model("models/lolscouthnr/v_scout_ak.mdl")  
         
    }
     
    public 
plugin_natives( )
    {
        
//Native's
         
        
register_library"scout-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(scout_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(scout_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"scout" ) )    
        {
            
XpAmount += get_pcvar_numcvar_ScoutXp );
        }
         
        
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_numscout_on ) == )
            return 
HAM_IGNORED;
         
        if( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_SCOUT )
        {
            
SetHamParamFloat(4damage Scout_model[attacker]);
             
            return 
HAM_HANDLED;
        }
         
        return 
HAM_IGNORED;
    }
     
    public 
ScoutSkinsMenu(id) {  
         
        if (!
get_pcvar_num(scout_on))
        {
            
ColorChat(id"The mod has been disabale.");
            return 
PLUGIN_HANDLED;
        }
         
        new 
szItem[256];
         
        new 
level iLevel[id] > iLevel[id] : 1;
         
        new 
xp level StartedLevel;
         
        if( 
iLevel[id] > )
        {
            
xp +=  ( xp );
        }
         
        
formatex(szItemcharsmax(szItem), "\w[ \r%s \w] \yScout 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);
        new 
menu menu_createszItem"ScoutSkinsMenu_Handler" );  
       
        for (new 
0MAX_SCOUTSi++)
        {
            
formatex(szItemcharsmax(szItem), iLevel[id] >= g_scoutLevels[i] ? "%s [\yUNLOCKED\w]" "\d%s [\rLEVEL %d REQUIRE\d]"iLevel[id] >= g_scoutLevels[i] ? g_scoutNames[i] : "?????????"g_scoutLevels[i]),
            
menu_additem(menuszItem, .paccess = (iLevel[id] >= g_scoutLevels[i]) ? 1);
        }
       
        
menu_display(idmenu);
         
        return 
PLUGIN_HANDLED;
    }  
     
    public 
ScoutSkinsMenu_Handler(idmenuitem)  
    {
        if(
item == MENU_EXIT)
        {
            
menu_destroy(menu)
            return 
PLUGIN_HANDLED
        
}
         
        
SetScout(iditem);
        
ColorChat(id"The Scout you chose is: ^4%s^1."g_scoutNames[item]);
         
        
SaveData(id);
        return 
PLUGIN_HANDLED;
    }
     
    public 
SetScout(iditem) {  
         
        
Scout_model[id] = item
         
        
new ClipAmmoWeapon get_user_weapon(idClipAmmo)  
        if ( 
Weapon != CSW_SCOUT )  
            return 
PLUGIN_HANDLED  
         
        
new vModel[56],pModel[56]  
         
        if (
get_pcvar_num(scout_on) == 0)
        {
            
format(vModel,55,"models/v_scout.mdl")  
            return 
PLUGIN_HANDLED;
        }
         
        
format(vModel,55g_scoutvModels[item])  
        
format(pModel,55,"models/p_Scout.mdl")
        
entity_set_string(idEV_SZ_viewmodelvModel)  
        
entity_set_string(idEV_SZ_weaponmodelpModel)  
         
        return 
PLUGIN_HANDLED;    
    }
     
    public 
PlayerLevelsMenu(id)
    {    
        if (
get_pcvar_num(scout_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
        
SetScout(idScout_model[id])
    }  
     
    public 
givexp(id) {
        if (
get_pcvar_num(scout_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(scout_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 
Scoutmessage(id) {  
         
        if (
get_pcvar_num(scout_on) == 0)
            return 
PLUGIN_HANDLED;
         
        
ColorChat(0"Type ^3/Scout ^1in chat to open the ^4Scout 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(scout_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"SCOUTMOD_%s"authid)  
        
format(vaultdata63"%d"Scout_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"SCOUTMOD_%s"authid)  
        
get_vaultdata(vaultkeyvaultdata63)  
        
Scout_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;
    if (!
len)
        
len formatexmsgcharsmaxmsg ), "^x04[^x01 Scout-Skins^x04 ]^x01 " );
     
    
vformatmsglen ], charsmaxmsg ) - lenstring);
     
    if( 
id )
        
players] = id;
        else
            
get_playersplayers,count,"ch" );
         
        for( new 
0counti++ )
        {
                
message_beginMSG_ONE_UNRELIABLEg_msgSayTextplayers] );
                
write_byteplayers] );
                
write_stringmsg );
                
message_end( );
        }
    }
    
    public 
logevent_round_endid )
    {
    if(
is_user_alive(id))
    {
            
ColorChat(id,"You have received 300XP");
            
iXp[id]+= 300 //Change amount of XP
    
   
}
 } 


Eviatar Mor 07-29-2014 13:26

Re: Problem on my plugin
 
Quote:

Originally Posted by MrKiller2010 (Post 2175770)
You can change amount of XP check last row!
PHP Code:

#include <amxmodx>  
    #include <amxmisc>  
    #include <engine>  
    #include <vault>  
    #include <hamsandwich>  
    #include <fvault>  
     
    #pragma tabsize 0
     
    #define is_valid_player(%1) (1 <= %1 <= 32)
     
    
new Scout_model[33];
     
    new const 
g_VAULTNAME[] = "Scout-Skins";
    new const 
VERSION[] = "2.2"  
    
new const AUTHOR[] = "SerMajor"  
     
     
    
new iLevel[33];
    new 
iXp[33];
     
    new 
scout_on;
     
    new 
MaxLevel;
    new 
StartedLevel;
    new 
g_msgSayText;
     
    new 
cvar_KillXp;
    new 
cvar_HsXp;
    new 
cvar_ScoutXp;
     
    new 
Forward_spawn;
    new 
Forward_levelup;
    new 
ForwardReturn;
     
    const 
MAX_SCOUTS 12
     
    
new const g_scoutNames[MAX_SCOUTS][32] =
    {
    
"Normal Scout",
    
"yellow Scout",
    
"steyr scout",
    
"sig sauer sg3000 scout",
    
"safari scout",
    
"pharaoh scout",
    
"komando steyrscout scout",
    
"default scout reskin gtwalq",
    
"crossbow scout",
    
"blue scout",
    
"badass m24 scout",
    
"ak scout"
    
};
     
    new const 
g_scoutLevels[MAX_SCOUTS] = { 01234567891011 }
     
    new const 
g_scoutvModels[MAX_SCOUTS][256] =
    {
    
"models/v_scout.mdl",
    
"models/lolscouthnr/v_scout_yellow.mdl",
    
"models/lolscouthnr/v_scout_steyr.mdl",
    
"models/lolscouthnr/v_scout_sg3000.mdl",
    
"models/lolscouthnr/v_scout_safari.mdl",
    
"models/lolscouthnr/v_scout_pharaoh.mdl",
    
"models/lolscouthnr/v_scout_komando.mdl",
    
"models/lolscouthnr/v_scout_default.mdl",
    
"models/lolscouthnr/v_scout_crossbow.mdl",
    
"models/lolscouthnr/v_scout_blue.mdl",
    
"models/lolscouthnr/v_scout_badass.mdl",
    
"models/lolscouthnr/v_scout_ak.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("scout_skins"VERSIONFCVAR_SERVER); // Find Servers on Game-Monitor
        
set_cvar_string("scout_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("scout_givexp" ,"givexp",ADMIN_RCON,"Add xp to a player")
        
register_concmd("scout_takexp""takexp",ADMIN_RCON,"Remove xp from a player")
         
        
//Clcmd's
         
        
scout_on register_cvar"Scout_skins""1" )
         
        
register_clcmd("say","HandleSay");  
        
register_clcmd("say_team","HandleSay")
        
register_clcmd("say /scout""ScoutSkinsMenu");
        
register_clcmd("say /level""PlayerLevelsMenu");
    
     
//logevent
     
register_logevent("logevent_round_end"2"1=Round_End"
         
        
//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_ScoutXp register_cvar"Scout_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"scoutmessage"0__"b")
        
set_task(35.0"Levelmessage"0__"b")
       
        
g_msgSayText get_user_msgid("SayText");
    }  
     
    public 
plugin_precache() {  
         
        
precache_model("models/lolscouthnr/v_scout_yellow.mdl")  
        
precache_model("models/lolscouthnr/v_scout_steyr.mdl")  
        
precache_model("models/lolscouthnr/v_scout_sg3000.mdl")  
        
precache_model("models/lolscouthnr/v_scout_safari.mdl")  
        
precache_model("models/lolscouthnr/v_scout_pharaoh.mdl")  
        
precache_model("models/lolscouthnr/v_scout_komando.mdl")  
        
precache_model("models/lolscouthnr/v_scout_default.mdl")  
        
precache_model("models/lolscouthnr/v_scout_crossbow.mdl")  
        
precache_model("models/lolscouthnr/v_scout_blue.mdl")  
        
precache_model("models/lolscouthnr/v_scout_badass.mdl")  
        
precache_model("models/lolscouthnr/v_scout_ak.mdl")  
         
    }
     
    public 
plugin_natives( )
    {
        
//Native's
         
        
register_library"scout-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(scout_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(scout_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"scout" ) )    
        {
            
XpAmount += get_pcvar_numcvar_ScoutXp );
        }
         
        
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_numscout_on ) == )
            return 
HAM_IGNORED;
         
        if( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_SCOUT )
        {
            
SetHamParamFloat(4damage Scout_model[attacker]);
             
            return 
HAM_HANDLED;
        }
         
        return 
HAM_IGNORED;
    }
     
    public 
ScoutSkinsMenu(id) {  
         
        if (!
get_pcvar_num(scout_on))
        {
            
ColorChat(id"The mod has been disabale.");
            return 
PLUGIN_HANDLED;
        }
         
        new 
szItem[256];
         
        new 
level iLevel[id] > iLevel[id] : 1;
         
        new 
xp level StartedLevel;
         
        if( 
iLevel[id] > )
        {
            
xp +=  ( xp );
        }
         
        
formatex(szItemcharsmax(szItem), "\w[ \r%s \w] \yScout 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);
        new 
menu menu_createszItem"ScoutSkinsMenu_Handler" );  
       
        for (new 
0MAX_SCOUTSi++)
        {
            
formatex(szItemcharsmax(szItem), iLevel[id] >= g_scoutLevels[i] ? "%s [\yUNLOCKED\w]" "\d%s [\rLEVEL %d REQUIRE\d]"iLevel[id] >= g_scoutLevels[i] ? g_scoutNames[i] : "?????????"g_scoutLevels[i]),
            
menu_additem(menuszItem, .paccess = (iLevel[id] >= g_scoutLevels[i]) ? 1);
        }
       
        
menu_display(idmenu);
         
        return 
PLUGIN_HANDLED;
    }  
     
    public 
ScoutSkinsMenu_Handler(idmenuitem)  
    {
        if(
item == MENU_EXIT)
        {
            
menu_destroy(menu)
            return 
PLUGIN_HANDLED
        
}
         
        
SetScout(iditem);
        
ColorChat(id"The Scout you chose is: ^4%s^1."g_scoutNames[item]);
         
        
SaveData(id);
        return 
PLUGIN_HANDLED;
    }
     
    public 
SetScout(iditem) {  
         
        
Scout_model[id] = item
         
        
new ClipAmmoWeapon get_user_weapon(idClipAmmo)  
        if ( 
Weapon != CSW_SCOUT )  
            return 
PLUGIN_HANDLED  
         
        
new vModel[56],pModel[56]  
         
        if (
get_pcvar_num(scout_on) == 0)
        {
            
format(vModel,55,"models/v_scout.mdl")  
            return 
PLUGIN_HANDLED;
        }
         
        
format(vModel,55g_scoutvModels[item])  
        
format(pModel,55,"models/p_Scout.mdl")
        
entity_set_string(idEV_SZ_viewmodelvModel)  
        
entity_set_string(idEV_SZ_weaponmodelpModel)  
         
        return 
PLUGIN_HANDLED;    
    }
     
    public 
PlayerLevelsMenu(id)
    {    
        if (
get_pcvar_num(scout_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
        
SetScout(idScout_model[id])
    }  
     
    public 
givexp(id) {
        if (
get_pcvar_num(scout_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(scout_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 
Scoutmessage(id) {  
         
        if (
get_pcvar_num(scout_on) == 0)
            return 
PLUGIN_HANDLED;
         
        
ColorChat(0"Type ^3/Scout ^1in chat to open the ^4Scout 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(scout_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"SCOUTMOD_%s"authid)  
        
format(vaultdata63"%d"Scout_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"SCOUTMOD_%s"authid)  
        
get_vaultdata(vaultkeyvaultdata63)  
        
Scout_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;
    if (!
len)
        
len formatexmsgcharsmaxmsg ), "^x04[^x01 Scout-Skins^x04 ]^x01 " );
     
    
vformatmsglen ], charsmaxmsg ) - lenstring);
     
    if( 
id )
        
players] = id;
        else
            
get_playersplayers,count,"ch" );
         
        for( new 
0counti++ )
        {
                
message_beginMSG_ONE_UNRELIABLEg_msgSayTextplayers] );
                
write_byteplayers] );
                
write_stringmsg );
                
message_end( );
        }
    }
    
    public 
logevent_round_endid )
    {
    if(
is_user_alive(id))
    {
            
ColorChat(id,"You have received 300XP");
            
iXp[id]+= 300 //Change amount of XP
    
   
}
 } 


mrkiller when i run the mod on my server my server shutdown..
why ?

MrKiller2010 07-29-2014 15:10

Re: Problem on my plugin
 
My code shouldn't effect server crash...
Test run with your edited code not mine and see if it crashes.


Here is a optimized code:

PHP Code:

#include <amxmodx>  
#include <amxmisc>  
#include <engine>  
#include <vault>  
#include <hamsandwich>  
#include <fvault>  

#pragma tabsize 0

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

new Scout_model[33];

new const 
g_VAULTNAME[] = "Scout-Skins";
new const 
VERSION[] = "2.2"  
new const AUTHOR[] = "SerMajor"  


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

new 
scout_on;

new 
MaxLevel;
new 
StartedLevel;
new 
g_msgSayText;

new 
cvar_KillXp;
new 
cvar_HsXp;
new 
cvar_ScoutXp;

new 
Forward_spawn;
new 
Forward_levelup;
new 
ForwardReturn;

const 
MAX_SCOUTS 12

new const g_scoutNames[MAX_SCOUTS][32] =
{
"Normal Scout",
"yellow Scout",
"steyr scout",
"sig sauer sg3000 scout",
"safari scout",
"pharaoh scout",
"komando steyrscout scout",
"default scout reskin gtwalq",
"crossbow scout",
"blue scout",
"badass m24 scout",
"ak scout"
};

new const 
g_scoutLevels[MAX_SCOUTS] = { 01234567891011 }

new const 
g_scoutvModels[MAX_SCOUTS][256] =
{
"models/v_scout.mdl",
"models/lolscouthnr/v_scout_yellow.mdl",
"models/lolscouthnr/v_scout_steyr.mdl",
"models/lolscouthnr/v_scout_sg3000.mdl",
"models/lolscouthnr/v_scout_safari.mdl",
"models/lolscouthnr/v_scout_pharaoh.mdl",
"models/lolscouthnr/v_scout_komando.mdl",
"models/lolscouthnr/v_scout_default.mdl",
"models/lolscouthnr/v_scout_crossbow.mdl",
"models/lolscouthnr/v_scout_blue.mdl",
"models/lolscouthnr/v_scout_badass.mdl",
"models/lolscouthnr/v_scout_ak.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("scout_skins"VERSIONFCVAR_SERVER); // Find Servers on Game-Monitor
set_cvar_string("scout_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("scout_givexp" ,"givexp",ADMIN_RCON,"Add xp to a player")
register_concmd("scout_takexp""takexp",ADMIN_RCON,"Remove xp from a player")

//Clcmd's

scout_on register_cvar"Scout_skins""1" )

register_clcmd("say","HandleSay");  
register_clcmd("say_team","HandleSay")
register_clcmd("say /scout""ScoutSkinsMenu");
register_clcmd("say /level""PlayerLevelsMenu");

//logevent
register_logevent("eventRoundEnd"2"1=Round_End"

//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_ScoutXp register_cvar"Scout_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"scoutmessage"0__"b")
set_task(35.0"Levelmessage"0__"b")

g_msgSayText get_user_msgid("SayText");
}  

public 
plugin_precache() {  

precache_model("models/lolscouthnr/v_scout_yellow.mdl")  
precache_model("models/lolscouthnr/v_scout_steyr.mdl")  
precache_model("models/lolscouthnr/v_scout_sg3000.mdl")  
precache_model("models/lolscouthnr/v_scout_safari.mdl")  
precache_model("models/lolscouthnr/v_scout_pharaoh.mdl")  
precache_model("models/lolscouthnr/v_scout_komando.mdl")  
precache_model("models/lolscouthnr/v_scout_default.mdl")  
precache_model("models/lolscouthnr/v_scout_crossbow.mdl")  
precache_model("models/lolscouthnr/v_scout_blue.mdl")  
precache_model("models/lolscouthnr/v_scout_badass.mdl")  
precache_model("models/lolscouthnr/v_scout_ak.mdl")  

}

public 
plugin_natives( )
{
//Native's

register_library"scout-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(scout_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(scout_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"scout" ) )    
{
    
XpAmount += get_pcvar_numcvar_ScoutXp );
}

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_numscout_on ) == )
    return 
HAM_IGNORED;
    
    if( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_SCOUT )
    {
        
SetHamParamFloat(4damage Scout_model[attacker]);
        
        return 
HAM_HANDLED;
    }
    
    return 
HAM_IGNORED;
}

public 
ScoutSkinsMenu(id) {  
    
    if (!
get_pcvar_num(scout_on))
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    new 
szItem[256];
    
    new 
level iLevel[id] > iLevel[id] : 1;
    
    new 
xp level StartedLevel;
    
    if( 
iLevel[id] > )
    {
        
xp +=  ( xp );
    }
    
    
formatex(szItemcharsmax(szItem), "\w[ \r%s \w] \yScout 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);
    new 
menu menu_createszItem"ScoutSkinsMenu_Handler" );  
    
    for (new 
0MAX_SCOUTSi++)
    {
        
formatex(szItemcharsmax(szItem), iLevel[id] >= g_scoutLevels[i] ? "%s [\yUNLOCKED\w]" "\d%s [\rLEVEL %d REQUIRE\d]"iLevel[id] >= g_scoutLevels[i] ? g_scoutNames[i] : "?????????"g_scoutLevels[i]),
        
menu_additem(menuszItem, .paccess = (iLevel[id] >= g_scoutLevels[i]) ? 1);
    }
    
    
menu_display(idmenu);
    
    return 
PLUGIN_HANDLED;
}  

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

public 
SetScout(iditem) {  
    
    
Scout_model[id] = item
    
    
new ClipAmmoWeapon get_user_weapon(idClipAmmo)  
    if ( 
Weapon != CSW_SCOUT )  
        return 
PLUGIN_HANDLED  
    
    
new vModel[56],pModel[56]  
    
    if (
get_pcvar_num(scout_on) == 0)
    {
        
format(vModel,55,"models/v_scout.mdl")  
        return 
PLUGIN_HANDLED;
    }
    
    
format(vModel,55g_scoutvModels[item])  
    
format(pModel,55,"models/p_Scout.mdl")
    
entity_set_string(idEV_SZ_viewmodelvModel)  
    
entity_set_string(idEV_SZ_weaponmodelpModel)  
    
    return 
PLUGIN_HANDLED;    
}

public 
PlayerLevelsMenu(id)
{    
    if (
get_pcvar_num(scout_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
    
SetScout(idScout_model[id])
}  

public 
givexp(id) {
    if (
get_pcvar_num(scout_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(scout_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 
Scoutmessage(id) {  
    
    if (
get_pcvar_num(scout_on) == 0)
        return 
PLUGIN_HANDLED;
    
    
ColorChat(0"Type ^3/Scout ^1in chat to open the ^4Scout 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(scout_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"SCOUTMOD_%s"authid)  
    
format(vaultdata63"%d"Scout_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"SCOUTMOD_%s"authid)  
    
get_vaultdata(vaultkeyvaultdata63)  
    
Scout_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;
if (!
len)
    
len formatexmsgcharsmaxmsg ), "^x04[^x01 Scout-Skins^x04 ]^x01 " );
    
    
vformatmsglen ], charsmaxmsg ) - lenstring);
    
    if( 
id )
        
players] = id;
    else
        
get_playersplayers,count,"ch" );
    
    for( new 
0counti++ )
    {
        
message_beginMSG_ONE_UNRELIABLEg_msgSayTextplayers] );
        
write_byteplayers] );
        
write_stringmsg );
        
message_end( );
    }
}

public 
eventRoundEndid )
{
    if(
is_user_alive(id))
    {
        new 
XPtoGive 400 // Change amount of XP
        
ColorChat(id,"You have received %s for surviving the round"XPtoGive);
        
iXp[id]+= XPtoGive
        
    
}



Eviatar Mor 07-29-2014 15:56

Re: Problem on my plugin
 
Quote:

Originally Posted by MrKiller2010 (Post 2175869)
My code shouldn't effect server crash...
Test run with your edited code not mine and see if it crashes.


Here is a optimized code:

PHP Code:

#include <amxmodx>  
#include <amxmisc>  
#include <engine>  
#include <vault>  
#include <hamsandwich>  
#include <fvault>  

#pragma tabsize 0

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

new Scout_model[33];

new const 
g_VAULTNAME[] = "Scout-Skins";
new const 
VERSION[] = "2.2"  
new const AUTHOR[] = "SerMajor"  


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

new 
scout_on;

new 
MaxLevel;
new 
StartedLevel;
new 
g_msgSayText;

new 
cvar_KillXp;
new 
cvar_HsXp;
new 
cvar_ScoutXp;

new 
Forward_spawn;
new 
Forward_levelup;
new 
ForwardReturn;

const 
MAX_SCOUTS 12

new const g_scoutNames[MAX_SCOUTS][32] =
{
"Normal Scout",
"yellow Scout",
"steyr scout",
"sig sauer sg3000 scout",
"safari scout",
"pharaoh scout",
"komando steyrscout scout",
"default scout reskin gtwalq",
"crossbow scout",
"blue scout",
"badass m24 scout",
"ak scout"
};

new const 
g_scoutLevels[MAX_SCOUTS] = { 01234567891011 }

new const 
g_scoutvModels[MAX_SCOUTS][256] =
{
"models/v_scout.mdl",
"models/lolscouthnr/v_scout_yellow.mdl",
"models/lolscouthnr/v_scout_steyr.mdl",
"models/lolscouthnr/v_scout_sg3000.mdl",
"models/lolscouthnr/v_scout_safari.mdl",
"models/lolscouthnr/v_scout_pharaoh.mdl",
"models/lolscouthnr/v_scout_komando.mdl",
"models/lolscouthnr/v_scout_default.mdl",
"models/lolscouthnr/v_scout_crossbow.mdl",
"models/lolscouthnr/v_scout_blue.mdl",
"models/lolscouthnr/v_scout_badass.mdl",
"models/lolscouthnr/v_scout_ak.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("scout_skins"VERSIONFCVAR_SERVER); // Find Servers on Game-Monitor
set_cvar_string("scout_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("scout_givexp" ,"givexp",ADMIN_RCON,"Add xp to a player")
register_concmd("scout_takexp""takexp",ADMIN_RCON,"Remove xp from a player")

//Clcmd's

scout_on register_cvar"Scout_skins""1" )

register_clcmd("say","HandleSay");  
register_clcmd("say_team","HandleSay")
register_clcmd("say /scout""ScoutSkinsMenu");
register_clcmd("say /level""PlayerLevelsMenu");

//logevent
register_logevent("eventRoundEnd"2"1=Round_End"

//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_ScoutXp register_cvar"Scout_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"scoutmessage"0__"b")
set_task(35.0"Levelmessage"0__"b")

g_msgSayText get_user_msgid("SayText");
}  

public 
plugin_precache() {  

precache_model("models/lolscouthnr/v_scout_yellow.mdl")  
precache_model("models/lolscouthnr/v_scout_steyr.mdl")  
precache_model("models/lolscouthnr/v_scout_sg3000.mdl")  
precache_model("models/lolscouthnr/v_scout_safari.mdl")  
precache_model("models/lolscouthnr/v_scout_pharaoh.mdl")  
precache_model("models/lolscouthnr/v_scout_komando.mdl")  
precache_model("models/lolscouthnr/v_scout_default.mdl")  
precache_model("models/lolscouthnr/v_scout_crossbow.mdl")  
precache_model("models/lolscouthnr/v_scout_blue.mdl")  
precache_model("models/lolscouthnr/v_scout_badass.mdl")  
precache_model("models/lolscouthnr/v_scout_ak.mdl")  

}

public 
plugin_natives( )
{
//Native's

register_library"scout-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(scout_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(scout_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"scout" ) )    
{
    
XpAmount += get_pcvar_numcvar_ScoutXp );
}

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_numscout_on ) == )
    return 
HAM_IGNORED;
    
    if( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_SCOUT )
    {
        
SetHamParamFloat(4damage Scout_model[attacker]);
        
        return 
HAM_HANDLED;
    }
    
    return 
HAM_IGNORED;
}

public 
ScoutSkinsMenu(id) {  
    
    if (!
get_pcvar_num(scout_on))
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    new 
szItem[256];
    
    new 
level iLevel[id] > iLevel[id] : 1;
    
    new 
xp level StartedLevel;
    
    if( 
iLevel[id] > )
    {
        
xp +=  ( xp );
    }
    
    
formatex(szItemcharsmax(szItem), "\w[ \r%s \w] \yScout 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);
    new 
menu menu_createszItem"ScoutSkinsMenu_Handler" );  
    
    for (new 
0MAX_SCOUTSi++)
    {
        
formatex(szItemcharsmax(szItem), iLevel[id] >= g_scoutLevels[i] ? "%s [\yUNLOCKED\w]" "\d%s [\rLEVEL %d REQUIRE\d]"iLevel[id] >= g_scoutLevels[i] ? g_scoutNames[i] : "?????????"g_scoutLevels[i]),
        
menu_additem(menuszItem, .paccess = (iLevel[id] >= g_scoutLevels[i]) ? 1);
    }
    
    
menu_display(idmenu);
    
    return 
PLUGIN_HANDLED;
}  

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

public 
SetScout(iditem) {  
    
    
Scout_model[id] = item
    
    
new ClipAmmoWeapon get_user_weapon(idClipAmmo)  
    if ( 
Weapon != CSW_SCOUT )  
        return 
PLUGIN_HANDLED  
    
    
new vModel[56],pModel[56]  
    
    if (
get_pcvar_num(scout_on) == 0)
    {
        
format(vModel,55,"models/v_scout.mdl")  
        return 
PLUGIN_HANDLED;
    }
    
    
format(vModel,55g_scoutvModels[item])  
    
format(pModel,55,"models/p_Scout.mdl")
    
entity_set_string(idEV_SZ_viewmodelvModel)  
    
entity_set_string(idEV_SZ_weaponmodelpModel)  
    
    return 
PLUGIN_HANDLED;    
}

public 
PlayerLevelsMenu(id)
{    
    if (
get_pcvar_num(scout_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
    
SetScout(idScout_model[id])
}  

public 
givexp(id) {
    if (
get_pcvar_num(scout_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(scout_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 
Scoutmessage(id) {  
    
    if (
get_pcvar_num(scout_on) == 0)
        return 
PLUGIN_HANDLED;
    
    
ColorChat(0"Type ^3/Scout ^1in chat to open the ^4Scout 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(scout_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"SCOUTMOD_%s"authid)  
    
format(vaultdata63"%d"Scout_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"SCOUTMOD_%s"authid)  
    
get_vaultdata(vaultkeyvaultdata63)  
    
Scout_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;
if (!
len)
    
len formatexmsgcharsmaxmsg ), "^x04[^x01 Scout-Skins^x04 ]^x01 " );
    
    
vformatmsglen ], charsmaxmsg ) - lenstring);
    
    if( 
id )
        
players] = id;
    else
        
get_playersplayers,count,"ch" );
    
    for( new 
0counti++ )
    {
        
message_beginMSG_ONE_UNRELIABLEg_msgSayTextplayers] );
        
write_byteplayers] );
        
write_stringmsg );
        
message_end( );
    }
}

public 
eventRoundEndid )
{
    if(
is_user_alive(id))
    {
        new 
XPtoGive 400 // Change amount of XP
        
ColorChat(id,"You have received %s for surviving the round"XPtoGive);
        
iXp[id]+= XPtoGive
        
    
}



The Mod Work But i not got xp when round end...

MrKiller2010 07-29-2014 16:05

Re: Problem on my plugin
 
Change:
PHP Code:

public eventRoundEndid )
{
    if(
is_user_alive(id))
    {
        new 
XPtoGive 400 // Change amount of XP
        
ColorChat(id,"You have received %s for surviving the round"XPtoGive);
        
iXp[id]+= XPtoGive
        
    
}


To:
PHP Code:

public eventRoundEndid )
{
    if(
is_user_alive(id))
    {
        
ColorChat(id,"You have received 400 for surviving the round");
        
iXp[id]+= 400
        
    
}



NikKOo31 07-29-2014 16:11

Re: Problem on my plugin
 
PHP Code:

register_logevent("round_end"2"1=Round_End"

PHP Code:

public round_end()
{
    new 
players[32], num
    get_players
(playersnum"a"// alive players
    
    
for(new 0numi++)
    {
        
ColorChat(players[i],"You have received 200 xp for surviving the round")
        
iXp[players[i]]+= 200 // or whatever xp you want to give
        
CheckLevel(players[i])
        
SaveData(players[i])
    }



schmurgel1983 07-29-2014 16:25

Re: Problem on my plugin
 
Quote:

Originally Posted by MrKiller2010 (Post 2175893)
Change:
PHP Code:

public eventRoundEndid )
{
    if(
is_user_alive(id))
    {
        new 
XPtoGive 400 // Change amount of XP
        
ColorChat(id,"You have received %s for surviving the round"XPtoGive);
        
iXp[id]+= XPtoGive
        
    
}


To:
PHP Code:

public eventRoundEndid )
{
    if(
is_user_alive(id))
    {
        
ColorChat(id,"You have received 400 for surviving the round");
        
iXp[id]+= 400
        
    
}



xD

EDIT: btw NikKOo31 good work ^^

Eviatar Mor 07-29-2014 16:49

Re: Problem on my plugin
 
Quote:

Originally Posted by NikKOo31 (Post 2175896)
PHP Code:

register_logevent("round_end"2"1=Round_End"

PHP Code:

public round_end()
{
    new 
players[32], num
    get_players
(playersnum"a"// alive players
    
    
for(new 0numi++)
    {
        
ColorChat(players[i],"You have received 200 xp for surviving the round")
        
iXp[players[i]]+= 200 // or whatever xp you want to give
        
CheckLevel(players[i])
        
SaveData(players[i])
    }



not work...

Eviatar Mor 07-29-2014 16:51

Re: Problem on my plugin
 
Quote:

Originally Posted by MrKiller2010 (Post 2175893)
Change:
PHP Code:

public eventRoundEndid )
{
    if(
is_user_alive(id))
    {
        new 
XPtoGive 400 // Change amount of XP
        
ColorChat(id,"You have received %s for surviving the round"XPtoGive);
        
iXp[id]+= XPtoGive
        
    
}


To:
PHP Code:

public eventRoundEndid )
{
    if(
is_user_alive(id))
    {
        
ColorChat(id,"You have received 400 for surviving the round");
        
iXp[id]+= 400
        
    
}



not work...


All times are GMT -4. The time now is 13:16.

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