Raised This Month: $ Target: $400
 0% 

[Army Rank] Name to SteamID


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
master_biker
Junior Member
Join Date: Sep 2016
Old 09-07-2016 , 06:33   [Army Rank] Name to SteamID
Reply With Quote #1

Hello, i'm from Georgia, new member, i need help with Army Rank scripting. i have original scripting downloaded from that forum, but it have some problems in my opinion, because if player will change name, he's Rank is loosing, so i want to change it to his IP or SteamID, if you can help me.
army_ranks.sma
army_ranks.inc
master_biker is offline
7thSense
Member
Join Date: Jul 2016
Old 09-07-2016 , 07:16   Re: [Army Rank] Name to SteamID
Reply With Quote #2

Better put no change name plugin

here

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

#define PLUGIN_NAME "No Name Change"
#define PLUGIN_VERSION "0.1"
#define PLUGIN_AUTHOR "VEN"

new const g_reason[] = "[NNC] Sorry, name change isn't allowed on this server"

new const g_name[] = "name"

public plugin_init() {
    
register_plugin(PLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHOR)
    
register_forward(FM_ClientUserInfoChanged"fwClientUserInfoChanged")
}

public 
fwClientUserInfoChanged(idbuffer) {
    if (!
is_user_connected(id))
        return 
FMRES_IGNORED

    
static name[32], val[32]
    
get_user_name(idnamesizeof name 1)
    
engfunc(EngFunc_InfoKeyValuebufferg_namevalsizeof val 1)
    if (
equal(valname))
        return 
FMRES_IGNORED

    engfunc
(EngFunc_SetClientKeyValueidbufferg_namename)
    
console_print(id"%s"g_reason)

    return 
FMRES_SUPERCEDE

7thSense is offline
Bacardi
Veteran Member
Join Date: Jan 2010
Location: mom's basement
Old 09-07-2016 , 07:18   Re: [Army Rank] Name to SteamID
Reply With Quote #3

Hahaha
__________________
Do not Private Message @me
Bacardi is offline
HamletEagle
AMX Mod X Plugin Approver
Join Date: Sep 2013
Location: Romania
Old 09-07-2016 , 08:21   Re: [Army Rank] Name to SteamID
Reply With Quote #4

@master, I did not check the source, but you could simply replace get_user_name by get_user_authid. This should do the trick.
@7th, name is unreliable. Saving by steamid is the proper way.
__________________

Last edited by HamletEagle; 09-07-2016 at 08:21.
HamletEagle is offline
master_biker
Junior Member
Join Date: Sep 2016
Old 09-07-2016 , 09:26   Re: [Army Rank] Name to SteamID
Reply With Quote #5

i tried but couldn't done. if anyone can do it i'm glad. thanks
master_biker is offline
fysiks
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
Old 09-07-2016 , 19:55   Re: [Army Rank] Name to SteamID
Reply With Quote #6

If you replace get_user_name with get_user_authid on lines 345, 402, 458 and 499 (only these lines, no where else). This will do it. But note that everybody will be starting over unless you go in and do manual manipulations of the vault or database.

I'd also recommend that you change the version before compiling so that you can verify that the newest version is actually running on your server.
__________________

Last edited by fysiks; 09-07-2016 at 19:56.
fysiks is offline
master_biker
Junior Member
Join Date: Sep 2016
Old 09-08-2016 , 04:59   Re: [Army Rank] Name to SteamID
Reply With Quote #7

Quote:
Originally Posted by fysiks View Post
If you replace get_user_name with get_user_authid on lines 345, 402, 458 and 499 (only these lines, no where else). This will do it. But note that everybody will be starting over unless you go in and do manual manipulations of the vault or database.

I'd also recommend that you change the version before compiling so that you can verify that the newest version is actually running on your server.
sorry, but i dont know where are lines, i'm opening .sma files from txt document ( notepad ) and there aren't shown any lines
master_biker is offline
pupdebox
Senior Member
Join Date: Feb 2016
Location: Wakanda
Old 09-08-2016 , 05:06   Re: [Army Rank] Name to SteamID
Reply With Quote #8

ctrl + g
__________________
Quote:
Originally Posted by wickedd View Post
Make me or STFU boy
pupdebox is offline
master_biker
Junior Member
Join Date: Sep 2016
Old 09-08-2016 , 05:39   Re: [Army Rank] Name to SteamID
Reply With Quote #9

Quote:
Originally Posted by pupdebox View Post
ctrl + g
nothing doing ctrl + g
master_biker is offline
7thSense
Member
Join Date: Jul 2016
Old 09-08-2016 , 06:24   Re: [Army Rank] Name to SteamID
Reply With Quote #10

try
PHP Code:
/*     
    Обещанного три года ждут ;)
*/
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <fun>
#include <cstrike>
#include <nvault>
#include <sqlx>
#include <fakemeta> 
//
#define PLUGIN "Army Ranks"
#define VERSION "1.3.1"
#define AUTHOR "Arctic"
#pragma tabsize 0
#define ADM_MENU     ADMIN_IMMUNITY // menu access flag
//
new g_vault;
new 
Handle:g_SqlTuple;
new 
g_Error[512]; 
enum _:PlData
{
    
gId,gExp,gLevel,gTempKey
};
new 
UserData[33][PlData];
new 
gMessage[256];
new 
g_MsgHud,MaxPlayers,levelUp[33],gSayText,gStatusText
new bool:restr_blocked;
new const 
gRankNames[][] = 
{
    
"I_0","I_1","I_2","I_3","I_4","I_5","I_6","I_7","I_8","I_9","I_10","I_11","I_12","I_13","I_14",        
    
"I_15","I_16","I_17","I_18","I_19","I_20"
};
new const 
gLevels[] = 
{
    
0,15,30,60,100,180,350,750,999,1500,2200,2800,3200,3900,4500,5000,5500,6000,7000,8000
};
new const 
gNades[][] =
{
    {
0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
    {
0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1},
    {
0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1}
}
new const 
restrict_bonus[][] =
{
    
"35hp",
    
"most_wanted",
    
"ka_wintershank"
};
new 
gRestrictMaps,gAdminGMsg,gBonusLevel,gFlash,gSmoke,gHe,gHpbylevel,gApbylevel
,gArmyChat,gSaveType,gTableName,gHost,gUser,gPassword,gDbName,gSlash,
gTk,gLostXpTk,gLevelUpmsg,gAllChat,gProgressBar,gBombDefuseXp,gBombPlantXp,gBombgMinPlayers
//
public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
register_cvar("army_ranks",VERSIONFCVAR_SERVER FCVAR_SPONLY);
    
set_cvar_string("army_ranks",VERSION);
//
    
gRestrictMaps     register_cvar"restrict_maps",         "0");// вкл запрет бонусов на карте.    
    
gBonusLevel    register_cvar"level_bonus",         "0");// вкл оружие при получении уровня.
    
gFlash        register_cvar"flash_nades",         "0");// вкл бонуса флешек
    
gSmoke        register_cvar"smoke_nades",         "1");// вкл бонуса дымовых
    
gHe        register_cvar"he_nades",         "1");// вкл бонуса осколочных
    
gHpbylevel    register_cvar"hp_by_level",         "3");// кол-во хп, которое дается за лвл, если = 0 - то выкл
    
gApbylevel    register_cvar"ap_by_level",         "5");// кол-во брони, которое дается за лвл, если = 0 - то выкл
    
gArmyChat    register_cvar"army_chat",         "1");// использовать чат плагина, то есть приставка в чате, цвет сообщ. для админа
    
gAdminGMsg    register_cvar"admin_color",        "1");// 1 = сообщ.админа зеленое,0 = желтое, 2 = цвета команды
    
gSaveType     register_cvar"save_type",         "1");// 0 - nvault, 1- mysql.
    
gSlash         register_cvar"slash_messages",         "1");// не отображать команды со слэшем
    
gTk         register_cvar"team_kill_lost_xp",       "1");// терять exp при тимкилле
    
gLostXpTk     register_cvar"lost_xp_val",         "3");// кол-во теряемых exp при тк
    
gLevelUpmsg    register_cvar"level_up_msg",         "1");// сообщение при лвл-апе игрока : 1- вкл (всем), 2 - только игроку
    
gAllChat    register_cvar"all_chat",         "0");// 1 - чат для всех(метвые и живые), 0-живые не видят чат мертвых и наоборот
/***/    
gProgressBar    register_cvar"progress_bar_pos",       "0");// расположение данных игрока: 0 - hud(под радаром), 1 - под чатом
    
gMinPlayers    register_cvar"min_players",         "4");// мин.кол-во игроков для получения опыта за действия с бомбой
    
gBomb        register_cvar"bomb_xp",             "1");// вкл получения опыта над действиями с бомбой
    
gBombDefuseXp    register_cvar"bdefuse_xp",         "5");// кол-во получаемых exp при разминировании бомбы
    
gBombPlantXp    register_cvar"bplant_xp",         "4");// кол-во получаемых exp при минировании бомбы
// для mysql    
    
gHost        register_cvar"mysql_host",         "localhost");     // host
    
gUser        register_cvar"mysql_user",         "root");    // username
    
gPassword    register_cvar"mysql_password",     "qwerty");     // password
    
gDbName        register_cvar"mysql_db_name",     "database");     // database name
    
gTableName    register_cvar"mysql_table_name",     "army_ranks");     // название таблицы mysql
//
    
register_logevent"EventRoundStart"2"1=Round_Start" );
    
register_forward(FM_Sys_Error"fw_ServerDown");
    
register_forward(FM_GameShutdown"fw_ServerDown");
    
register_forward(FM_ServerDeactivate"fw_ServerDown");
    
register_event"DeathMsg","EventDeath","a");
    if(
get_pcvar_num(gProgressBar) != 0){
        
set_task(1.0,"StatusText",_,_,_"b");
    } else { 
        
set_task(1.0,"Info",_,_,_"b");
    }
//
    
register_message(get_user_msgid("SayText"), "msg_SayText");
    
gStatusText get_user_msgid("StatusText");
    
gSayText get_user_msgid ("SayText");
//
    
g_MsgHud CreateHudSyncObj();
    
MaxPlayers get_maxplayers();
    
register_dictionary("army.txt" );
//
    
if(get_pcvar_num(gRestrictMaps))
    {
        new 
szMapName[64];
        
get_mapname(szMapName,63);
        for(new 
0sizeof restrict_bonusa++)
        {
            if(
equal(szMapNamerestrict_bonus[a]))
            {
                
restr_blocked true;
                
log_amx("[army ranks] weapon menu is blocked on map [%s].",restrict_bonus[a]);
                break;
            } else {
                
restr_blocked false;
            }    
        }
    }
//
    
switch(get_pcvar_num(gSaveType))
    {
        case 
0
        {
            
g_vault nvault_open("army_ranks");
        }
        case 
1
        {
            
set_task(0.1"sql_init");
        }
        default: 
        {
            
g_vault nvault_open("army_ranks");
        }
    }
//
    
if(get_pcvar_num(gArmyChat))
    {
        
register_clcmd("say""hookSay"
        
register_clcmd("say_team""hookSayTeam");
    }
    
register_clcmd("add_exp""add_exp_post")
    
register_clcmd("amx_setlevel""admin_menu")
}
public 
plugin_cfg()
{
    new 
szCfgDir[64], szFile[192];
    
get_configsdir(szCfgDircharsmax(szCfgDir));
    
formatex(szFile,charsmax(szFile),"%s/army_ranks.cfg",szCfgDir);
    if(
file_exists(szFile))
        
server_cmd("exec %s"szFile);
}
public 
bomb_defused(id)
{
    if(!
is_user_connected(id)|| !is_user_alive(id) || get_user_team(id) != || get_pcvar_num(gBombDefuseXp) < || get_pcvar_num(gBomb) !=1)
        return

    if(
get_playersnum() <= get_pcvar_num(gMinPlayers))
    {
        
ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MIN_PLAYERS")
    } else {
        
UserData[id][gExp] += get_pcvar_num(gBombDefuseXp);
        
ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"DEFUSE_XP",get_pcvar_num(gBombDefuseXp))
    }
}
public 
bomb_planted(id)
{
    if(!
is_user_connected(id)|| !is_user_alive(id) || get_user_team(id) != || get_pcvar_num(gBombPlantXp) < || get_pcvar_num(gBomb) !=1)
        return

    if(
get_playersnum() <= get_pcvar_num(gMinPlayers))
    {
        
ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MIN_PLAYERS")
    } else {
        
UserData[id][gExp] += get_pcvar_num(gBombPlantXp);
        
ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"PLANT_XP",get_pcvar_num(gBombPlantXp))
    }
}
//
public sql_init()
{
    new 
szTableName[64],szHost[64],szUser[64],szPassword[64],szDbName[64],ErrorCode;
    
get_pcvar_string(gTableName,szTableName,63);
    
get_pcvar_string(gHost,szHost,63);
    
get_pcvar_string(gUser,szUser,63);
    
get_pcvar_string(gPassword,szPassword,63);
    
get_pcvar_string(gDbName,szDbName,63);
    
g_SqlTuple SQL_MakeDbTuple(szHost,szUser,szPassword,szDbName);
    new 
Handle:SqlConnection SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
    if(
SqlConnection == Empty_Handle)
        
set_fail_state(g_Error);

    new 
Handle:Queries SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS `%s`(`id` INT(10) NOT NULL AUTO_INCREMENT,`name` VARCHAR(32) NOT NULL,`exp` INT(10) NOT NULL,`level` INT(10) NOT NULL,PRIMARY KEY (id));"szTableName)
    if(!
SQL_Execute(Queries))
    {
        
SQL_QueryError(Queries,g_Error,charsmax(g_Error))
        
set_fail_state(g_Error);
    }
    
SQL_FreeHandle(Queries)
    
SQL_FreeHandle(SqlConnection);
}
//
public plugin_end()
{
    switch(
get_pcvar_num(gSaveType))
    {
        case 
0
        {
            
nvault_close(g_vault);
        }
        case 
1
        {
            if(
g_SqlTuple != Empty_Handle)
                
SQL_FreeHandle(g_SqlTuple);
        }
        default: 
        {
            
nvault_close(g_vault);
        }
    }
}
//
public client_putinserver(id// путинсервер)
{
    for(new 
0i<PlData i++)
        
UserData[id][i] = 0;
    
    
load_data(id);
}
//
public client_disconnect(id)
{
    
save_usr(id);
    for(new 
0i<PlData i++)
        
UserData[id][i] = 0;
}
//
public check_level(id)
{
    if(
UserData[id][gLevel] <= 0)
        
UserData[id][gLevel] = 1;
        
    if(
UserData[id][gExp] < 0)
        
UserData[id][gExp] = 0;

    while(
UserData[id][gExp] >= gLevels[UserData[id][gLevel]]) 
    {
        
UserData[id][gLevel]++;
        
levelUp[id] = 1;
        switch(
get_pcvar_num(gLevelUpmsg))
        {
            case 
1
            {
                new 
szName[33];
                
get_user_name(idszName32);
                static 
buffer[192],len;
                
len format(buffercharsmax(buffer), "^4[^3Army Ranks^4]^1 %L ^4%s^1",LANG_PLAYER,"PLAYER",szName);
                
len += format(buffer[len], charsmax(buffer) - len" %L",LANG_PLAYER,"NEW_LEVEL"); 
                
len += format(buffer[len], charsmax(buffer) - len" ^4%L^1.",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);
                
len += format(buffer[len], charsmax(buffer) - len"%L",LANG_PLAYER,"CONTR");
                
ColorChat(0,NORMAL,buffer);
            }
            case 
2:
            {
                new 
szName[33];
                
get_user_name(idszName32);
                static 
buffer[192],len;
                
len format(buffercharsmax(buffer), "^4[^3Army Ranks^4]^1 %L ^4%s^1",LANG_PLAYER,"PLAYER",szName);
                
len += format(buffer[len], charsmax(buffer) - len" %L",LANG_PLAYER,"NEW_LEVEL"); 
                
len += format(buffer[len], charsmax(buffer) - len" ^4%L^1.",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);
                
len += format(buffer[len], charsmax(buffer) - len"%L",LANG_PLAYER,"CONTR");
                
ColorChat(id,NORMAL,buffer);
            }
        }
    }
}
public 
EventDeath()
{
    new 
iKiller read_data(1);
    new 
iVictim read_data(2);
    new 
head read_data(3);
    if(
iKiller != iVictim && is_user_connected(iKiller) && is_user_connected(iVictim) && UserData[iKiller][gLevel] <= 19)
    {
        
// if tk?
        
if(get_pcvar_num(gTk) && get_user_team(iKiller) == get_user_team(iVictim))
        {
            
UserData[iKiller][gExp] -= get_pcvar_num(gLostXpTk);
            return 
PLUGIN_CONTINUE;
        }
        new 
weapon get_user_weapon(iKiller);
        
UserData[iKiller][gExp] += 1;
        if(
weapon == CSW_KNIFE)
            
UserData[iKiller][gExp] += 3;
            
        if(
head)
            
UserData[iKiller][gExp] += 2;

        if(
weapon == CSW_HEGRENADE)
            
UserData[iKiller][gExp] += 1;

        
check_level(iKiller);
    }
    return 
PLUGIN_CONTINUE;
}
public 
EventRoundStart()
{
    for(new 
id 0id <= MaxPlayersid++)
    {
        if(
is_user_alive(id) && is_user_connected(id))
        {
            if(
restr_blocked)
                return 
PLUGIN_CONTINUE;
            
            if(
get_pcvar_num(gFlash) && gNades[0][UserData[id][gLevel]])
                
give_item(id,"weapon_flashbang");
            
            if(
get_pcvar_num(gSmoke) && gNades[1][UserData[id][gLevel]])
                
give_item(id,"weapon_smokegrenade");
                
            if(
get_pcvar_num(gHe) && gNades[2][UserData[id][gLevel]])
                
give_item(id,"weapon_hegrenade");
            
            if(
get_pcvar_num(gHpbylevel) != 0)
                
set_user_health(id,get_user_health(id)+get_pcvar_num(gHpbylevel)*UserData[id][gLevel]);
                
            if(
get_pcvar_num(gApbylevel) != 0)
                
set_user_armor(id,get_user_armor(id)+get_pcvar_num(gApbylevel)*UserData[id][gLevel]);    
                
            if(
levelUp[id] == && get_pcvar_num(gBonusLevel))
            {
                
GetWeapon(id);
                
levelUp[id] = 0;
            }
        }
    }
    return 
PLUGIN_CONTINUE;
}
////////// save
public load_data(id)
{
    new 
authid[32];
    
get_user_authid(idauthid,31);
    switch(
get_pcvar_num(gSaveType))
    {
        case 
0
        {
            static 
data[256], timestamp;
            if(
nvault_lookup(g_vaultauthiddatasizeof(data) - 1timestamp) )
            {
                
next_load_data(iddatasizeof(data) - 1);
                return;
            } else {
                
register_player(id,"");
            }
        }
        case 
1
        {
            new 
szTableName[32],ErrorCode;
            new 
Handle:SqlConnection SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
            
SQL_QuoteString(SqlConnectionauthid32authid);
            
get_pcvar_string(gTableName,szTableName,31);
            if(
SqlConnection == Empty_Handle)
            {
                
log_amx(g_Error);
                return ;
            }
            new 
Handle:Query SQL_PrepareQuery(SqlConnection,"SELECT id FROM %s WHERE name = '%s';",szTableName,authid)
            if(!
SQL_Execute(Query))
            {
                
SQL_QueryError(Query,g_Error,511);
                
log_amx(g_Error);
                return ;
            }
            if(
SQL_NumResults(Query) > )
            {
                
next_load_data(id""0);
            } else {
                
register_player(id,"");
            }
            
SQL_FreeHandle(Query);
            
SQL_FreeHandle(SqlConnection);
        }
        default: 
        {
            static 
data[256], timestamp;
            if(
nvault_lookup(g_vaultauthiddatasizeof(data) - 1timestamp) )
            {
                
next_load_data(iddatasizeof(data) - 1);
                return;
            } else {
                
register_player(id,"");
            }
        }
    }
}
public 
next_load_data(id,data[],len)
{
    new 
authid[32];
    
get_user_authid(idauthid,31);
    switch(
get_pcvar_num(gSaveType))
    {
        case 
0
        {
            
replace_all(data,len,"|"," ");
            new 
exp[5],level[5];
            
parse(data,exp,4,level,4);
            
UserData[id][gExp]= str_to_num(exp);
            
UserData[id][gLevel]= str_to_num(level);
        }
        case 
1
        {
            new 
szTableName[32],ErrorCode;
            new 
Handle:SqlConnection SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
            
SQL_QuoteString(SqlConnectionauthid32authid);
            
get_pcvar_string(gTableName,szTableName,31);
            if(
SqlConnection == Empty_Handle)
            {
                
log_amx(g_Error);
                return ;
            }
            new 
Handle:Query SQL_PrepareQuery(SqlConnection,"SELECT id,exp,level FROM %s WHERE name = '%s';",szTableName,authid)
            if(!
SQL_Execute(Query))
            {
                
SQL_QueryError(Query,g_Error,511)
                
log_amx(g_Error)
            }
            if( 
SQL_NumResults(Query) > 0)
            {
                
UserData[id][gId]= SQL_ReadResult(Query,0); 
                
UserData[id][gExp]= SQL_ReadResult(Query,1); 
                
UserData[id][gLevel]= SQL_ReadResult(Query,2); 
            }
            
SQL_FreeHandle(Query);
            
SQL_FreeHandle(SqlConnection);
        }
        default: 
        {
            
replace_all(data,len,"|"," ");
            new 
exp[5],level[5];
            
parse(data,exp,4,level,4);
            
UserData[id][gExp]= str_to_num(exp);
            
UserData[id][gLevel]= str_to_num(level);
        }
    }
// mini-check lvl_up
    
if(UserData[id][gLevel] <= 0)
        
UserData[id][gLevel] = 1;

    while(
UserData[id][gExp] >= gLevels[UserData[id][gLevel]]) 
        
UserData[id][gLevel]++;
}
public 
register_player(id,data[])
{
    new 
authid[32];
    
get_user_authid(idauthid,31);
    switch(
get_pcvar_num(gSaveType))
    {
        case 
0
        {
            
UserData[id][gExp]= 0
            UserData
[id][gLevel]= 1;
        }
        case 
1
        {
            new 
szTableName[32],ErrorCode;
            new 
Handle:SqlConnection SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
            
SQL_QuoteString(SqlConnectionauthid32authid);
            
get_pcvar_string(gTableName,szTableName,31);
            if(
SqlConnection == Empty_Handle)
            {
                
log_amx(g_Error);
                return ;
            }
            new 
Handle:Query SQL_PrepareQuery(SqlConnection,"INSERT INTO %s (`id`,`name`,`exp`,`level`) VALUES (NULL,'%s','0','1');",szTableName,authid);
            if(!
SQL_Execute(Query))
            {
                
SQL_QueryError(Query,g_Error,511)
                
log_amx(g_Error)
            }
            
SQL_FreeHandle(Query);
            
SQL_FreeHandle(SqlConnection);
            
UserData[id][gExp] = 0;
            
UserData[id][gLevel] = 1;
            
get_user_id(id);
        }
        default: 
        {
            
UserData[id][gExp]= 0;
            
UserData[id][gLevel]= 1;
        }
    }
}
public 
save_usr(id)
{
    new 
authid[32];
    
get_user_authid(idauthid,31);
    switch(
get_pcvar_num(gSaveType))
    {
        case 
0
        {
            static 
data[256];
            
formatex(data255"|%i|%i|"UserData[id][gExp],UserData[id][gLevel]);
            
nvault_set(g_vaultauthiddata);
        }
        case 
1
        {
            new 
szTemp[512],szTable[64];
            
get_pcvar_string(gTableName,szTable,63);
            
format(szTemp,charsmax(szTemp),"UPDATE `%s` SET `exp`='%d',`level`='%d' WHERE `id`='%d';",szTable,UserData[id][gExp],UserData[id][gLevel],UserData[id][gId]);
            
SQL_ThreadQuery(g_SqlTuple,"QueryHandler",szTemp)
            
            
server_print("==========================================");
            
server_print("UPDATE `%s` SET `exp`='%d',`level`='%d' WHERE `id`='%d';",szTable,UserData[id][gExp],UserData[id][gLevel],UserData[id][gId]);
            
        }
        default: 
        {
            static 
data[256];
            
formatex(data255"|%i|%i|"UserData[id][gExp],UserData[id][gLevel]);
            
nvault_set(g_vaultauthiddata);
        }
    }
}
stock get_user_id(id)
{
    new 
szName[33],ErrorCode;
    
get_user_name(id,szName,32);
    new 
Handle:SqlConnection SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
    
SQL_QuoteString(SqlConnectionszName32szName);
    if(
SqlConnection == Empty_Handle)
    {
        
log_amx(g_Error);
        return;
    }
    new 
Handle:Query SQL_PrepareQuery(SqlConnection,"SELECT id FROM hmm WHERE name = '%s';",szName)
    if(!
SQL_Execute(Query))
    {
        
SQL_QueryError(Query,g_Error,511);
        
log_amx(g_Error);
        return;
    }
    if(
SQL_NumResults(Query) > )
        
UserData[id][gId]= SQL_ReadResult(Query,0);
    
SQL_FreeHandle(Query);
    
SQL_FreeHandle(SqlConnection);
}
///////// chat event
public hookSay(id)
{
    if(
is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id))
        return 
PLUGIN_CONTINUE;

    new 
message[192],Len;
    
read_args(message191);
    
remove_quotes(message);
    if(
is_admin_msg(message))
        return 
PLUGIN_CONTINUE;
    
    if(
is_empty_message(message))
    {
        
ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"EMPTY_MSG")
        return 
PLUGIN_HANDLED
    
}
    if(
get_pcvar_num(gSlash))
    {
        if(
is_has_slash(message))
            return 
PLUGIN_HANDLED_MAIN
    
}
    new 
szName[32];
    
get_user_name(id,szName,31);
    if(
is_user_admin(id))
    {
        
Len format(gMessage[Len], charsmax(gMessage) - 1"^4[^3%L^4] ",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);
        switch(
get_pcvar_num(gAdminGMsg))
        {
            case 
1:
            {
                
Len += format(gMessage[Len], charsmax(gMessage) - 1"^3%s^4 : ",szName);
                
Len += format(gMessage[Len], charsmax(gMessage) - 1"%s",message);
            }
            case 
2:
            {
                
Len += format(gMessage[Len], charsmax(gMessage) - 1"^3%s^4 : ",szName);
                
Len += format(gMessage[Len], charsmax(gMessage) - 1"^3%s",message);
            }
            default:
            {
                
Len += format(gMessage[Len], charsmax(gMessage) - 1"^3%s^4 : ",szName);
                
Len += format(gMessage[Len], charsmax(gMessage) - 1"^1%s",message);
            }
        }
        
Chat(id,0,get_pcvar_num(gAllChat));
    }
    else 
    {
        
Len format(gMessage[Len], charsmax(gMessage) - 1"^4[^3%L^4] ",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);
        
Len += format(gMessage[Len], charsmax(gMessage) - 1"^3%s^4 : ",szName);
        
Len += format(gMessage[Len], charsmax(gMessage) - 1"^1%s",message);
        
Chat(id,0,get_pcvar_num(gAllChat));
    }
    return 
PLUGIN_HANDLED_MAIN
}
public 
hookSayTeam(id)
{
    if(
is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id))
        return 
PLUGIN_CONTINUE;

    new 
message[192],Len;
    
read_args(message191);
    
remove_quotes(message);
    if(
is_admin_msg(message))
        return 
PLUGIN_CONTINUE;
        
    if(
is_empty_message(message))
    {
        
ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"EMPTY_MSG");
        return 
PLUGIN_HANDLED
    
}
    if(
get_pcvar_num(gSlash))
    {
        if(
is_has_slash(message))
            return 
PLUGIN_HANDLED_MAIN
    
}
    new 
szName[32];
    
get_user_name(id,szName,31);
    if(
is_user_admin(id))
    {
        
Len format(gMessage[Len], charsmax(gMessage) - 1"^3%L^1 ^4[^3%L^4] ^3%s^4 : ",LANG_PLAYER,"SEND_TEAM",LANG_PLAYER,gRankNames[UserData[id][gLevel]],szName);        
        switch(
get_pcvar_num(gAdminGMsg))
        {
            case 
1:
            {
                
Len += format(gMessage[Len], charsmax(gMessage) - 1"%s",message);
            }
            case 
2:
            {
                
Len += format(gMessage[Len], charsmax(gMessage) - 1"^3%s",message);
            }
            default:
            {
                
Len += format(gMessage[Len], charsmax(gMessage) - 1"^1%s",message);
            }
        }
        
Chat(id,1,get_pcvar_num(gAllChat));
    }
    else 
    {
        
Len format(gMessage[Len], charsmax(gMessage) - 1"^3%L^1 ^4[^3%L^4] ",LANG_PLAYER,"SEND_TEAM",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);
        
Len += format(gMessage[Len], charsmax(gMessage) - 1"^3%s^4 : ",szName);
        
Len += format(gMessage[Len], charsmax(gMessage) - 1"^1%s",message);
        
Chat(id,1,get_pcvar_num(gAllChat));
    }
    return 
PLUGIN_HANDLED_MAIN
}
stock is_admin_msg(const Message[])
{
    if(
Message[0] == '@')
        return 
true;
        
    return 
false;
}
stock is_empty_message(const Message[])
{
    if(
equal(Message"") || !strlen(Message))
        return 
true;
        
    return 
false;
}
stock Chat(id,team,chat_type)
{
    if(
team)
    {
        if(
chat_type)
        {
            for(new 
0<= MaxPlayersi++)
            {
                if(!
is_user_connected(i))
                    continue
            
                if(
get_user_team(id) == get_user_team(i))
                    
send_message(gMessageidi);
            }
        } else {
            if(
is_user_alive(id))
            {
                for(new 
0<= MaxPlayersi++)
                {
                    if(!
is_user_connected(i) || !is_user_alive(i))
                        continue
                
                    if(
get_user_team(id) == get_user_team(i))
                        
send_message(gMessageidi);
                }
            } else if(!
is_user_alive(id)){
                for(new 
0<= MaxPlayersi++)
                {
                    if(!
is_user_connected(i) || is_user_alive(i))
                        continue
                
                    if(
get_user_team(id) == get_user_team(i))
                        
send_message(gMessageidi);
                }
            }
        }
    } else{
        if(
chat_type)
        {
            for(new 
0<= MaxPlayersi++)
            {
                if(!
is_user_connected(i))
                    continue
            
                
send_message(gMessageidi);
            }
        } else {
            if(
is_user_alive(id))
            {
                for(new 
0<= MaxPlayersi++)
                {
                    if(!
is_user_connected(i) || !is_user_alive(i))
                        continue
                
                    
send_message(gMessageidi);
                }
            } else if(!
is_user_alive(id)){
                for(new 
0<= MaxPlayersi++)
                {
                    if(!
is_user_connected(i) || is_user_alive(i))
                        continue
                
                    
send_message(gMessageidi);
                }
            }
        }
    }
}
stock send_message(const message[], const id, const i)
{
    
message_begin(MSG_ONEgSayText, {000}, i)
    
write_byte(id)
    
write_string(message)
    
message_end()
}
stock is_has_slash(const Message[])
{
    if(
Message[0] == '/')
        return 
true;
        
    return 
false;
}

public 
client_infochanged(id)
{
    new 
newname[32],oldname[32]
    
get_user_info(id"name"newname,31)
    
get_user_name(id,oldname,31)
    if(!
is_user_connected(id) || is_user_bot(id)) 
        return 
PLUGIN_CONTINUE
        
    
if(!equali(newnameoldname))
    {
        new 
szTemp[512],szTable[64];
        
get_pcvar_string(gTableName,szTable,63);
        
format(szTemp,charsmax(szTemp),"UPDATE `%s` SET `name`='%s' WHERE `id`='%d';",szTable,newname,UserData[id][gId]);
        
SQL_ThreadQuery(g_SqlTuple,"QueryHandler",szTemp)    
    }
    return 
PLUGIN_CONTINUE
}
public 
msg_SayText()
{
    new 
arg[32]
    
get_msg_arg_string(2arg31)
    if(
containi(arg,"name")!=-1)
        return 
PLUGIN_HANDLED

    
return PLUGIN_CONTINUE
}
/////////// natives
public plugin_natives()
{
    
register_native("get_user_exp""native_get_user_exp"1);
    
register_native("get_user_lvl""native_get_user_lvl"1);
    
register_native("set_user_exp""native_set_user_exp"1);
    
register_native("set_user_lvl""native_set_user_lvl"1);
    
register_native("get_user_rankname""native_get_user_rankname"1);
}
public 
native_set_user_exp(id,num)
{
    
UserData[id][gExp] = num;
}
public 
native_set_user_lvl(id,num)
{
    
UserData[id][gLevel] = num;
}
public 
native_get_user_exp(id)
{
    return 
UserData[id][gExp];
}
public 
native_get_user_lvl(id)
{
    return 
UserData[id][gLevel];
}
public 
native_get_user_rankname(id)
{
    static 
szRankName[64];
    
format(szRankNamecharsmax(szRankName), "%L",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);
    return 
szRankName;
}
//////// informer
public Info()
{
    for(new 
id 0id <= MaxPlayersid++)
    {
        if(!
is_user_bot(id) && is_user_connected(id))
        {
            
set_hudmessage(1001001000.010.1301.01.0__, -1)
            
            static 
buffer[192], len;
            
len format(buffercharsmax(buffer), "%L",LANG_PLAYER,"ZVANIE");
            
len += format(buffer[len], charsmax(buffer) - len" %L",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);
            if(
UserData[id][gLevel] <= 19)
            {
                
len += format(buffer[len], charsmax(buffer) - len"^n%L",LANG_PLAYER,"PL_XP",UserData[id][gExp],gLevels[UserData[id][gLevel]]);
            } else {
                
len += format(buffer[len], charsmax(buffer) - len"^n%L",LANG_PLAYER,"PL_MAX");
            }
            
ShowSyncHudMsg(idg_MsgHud"%s"buffer);
        }
    }
    return 
PLUGIN_CONTINUE
}
public 
StatusText()
{
    for(new 
id 0id <= MaxPlayersid++)
    {
        if(!
is_user_bot(id) && is_user_connected(id) && is_user_alive(id))
        {
            static 
buffer[100], len;
            
len format(buffercharsmax(buffer), "%L",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);
            if(
UserData[id][gLevel] <= 19)
            {
                
len += format(buffer[len], charsmax(buffer) - len" | %L",LANG_PLAYER,"PL_XP_STEXT",UserData[id][gExp],gLevels[UserData[id][gLevel]]);
            } else {
                
len += format(buffer[len], charsmax(buffer) - len" | %L",LANG_PLAYER,"PL_MAX");
            }
            
message_begin(MSG_ONE_UNRELIABLEgStatusText_id)
            
write_byte(0)
            
write_string(buffer)
            
message_end();
        }
    }
}
/////// weap menu per lvl
public GetWeapon(id)
{
    new 
szText[700 char];
    
formatexszTextcharsmaxszText ), "%L"id"GW_TITLE");
    new 
menu menu_createszText"gw_menu" );
//
    
formatexszTextcharsmaxszText ), "awp");
    
menu_additemmenuszText"1");
//
    
formatexszTextcharsmaxszText ), "ak-47");
    
menu_additemmenuszText"2");
//
    
formatexszTextcharsmaxszText ), "m4a1");
    
menu_additemmenuszText"3");
//
    
formatexszTextcharsmaxszText ), "famas");
    
menu_additemmenuszText"4");
//
    
menu_setpropmenuMPROP_EXITMEXIT_ALL );
    
menu_displayidmenu,0);
    return 
PLUGIN_CONTINUE;
}
public 
gw_menu(id,menu,item)
{
    if( 
item == MENU_EXIT )
    {
        return 
PLUGIN_HANDLED;
    }
    
    new 
data], iName64 ], accesscallback;
    
menu_item_getinfomenuitemaccessdatacharsmaxdata ), iNamecharsmaxiName ), callback );
    new 
key str_to_numdata );
    switch( 
key )
    {
        case 
1:
        {
            
give_item(id,"weapon_awp");
            
cs_set_user_bpammoidCSW_AWP100);
        }
        case 
2:
        {
            
give_item(id,"weapon_ak47");
            
cs_set_user_bpammoidCSW_AK47200);
        }
        case 
3:
        {
            
give_item(id,"weapon_m4a1");
            
cs_set_user_bpammoidCSW_M4A1200);
        }
        case 
4:
        {
            
give_item(id,"weapon_famas");
            
cs_set_user_bpammoidCSW_FAMAS200);
        }
    }
    
    return 
PLUGIN_HANDLED;
}
public 
QueryHandler(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    switch(
FailState)
    {
        case -
2log_amx("[Army Ranks] Failed to connect (%d): %s"ErrcodeError);
        case -
1log_amx("[Army Ranks] (%d): %s"ErrcodeError);
    }
    return 
PLUGIN_HANDLED
}
public 
fw_ServerDown() 

    for(new 
0<= MaxPlayersi++)
    {
        if(
is_user_connected(i))
            
save_usr(i)
    }
}
public 
admin_menu(id)
{
    new 
szText[700 char];
    
formatexszTextcharsmaxszText ), "%L"id"ARMY_MENU");
    new 
menu menu_createszText"admin_menu_hl" );
//
    
formatexszTextcharsmaxszText ), "%L"id"ADD_EXP");
    
menu_additemmenuszText"1");
    
formatexszTextcharsmaxszText ), "%L"id"SET_LVL");
    
menu_additemmenuszText"2");
//
    
menu_setpropmenuMPROP_EXITMEXIT_ALL );
    
menu_displayidmenu,0);
    return 
PLUGIN_CONTINUE;
}
public 
admin_menu_hl(id,menu,item)
{
    if( 
item == MENU_EXIT )
    {
        return 
PLUGIN_HANDLED;
    }
    
    new 
data], iName64 ], accesscallback;
    
menu_item_getinfomenuitemaccessdatacharsmaxdata ), iNamecharsmaxiName ), callback );
    new 
key str_to_numdata );
    switch( 
key )
    {
        case 
1:
        {
            
give_exp_menu(id);
        }
        case 
2:
        {
            
set_level_menu(id)
        }
    }
    
    return 
PLUGIN_HANDLED;
}
public 
give_exp_menu(id)
{
    if(
get_user_flags(id) & ADM_MENU)
    {
        new 
players[32], num;
        
get_players(playersnum)
        new 
tempname[32], info[10];
        new 
players_menu menu_create("Выберите РёРіСЂРѕРєР° :""give_exp_hl")
        for(new 
0numi++)
        {
            
get_user_name(players[i], tempname31);
            
num_to_str(players[i], info9);
            
menu_additem(players_menutempnameinfo0);
        }
        
menu_setprop(players_menuMPROP_EXITMEXIT_ALL);
        
menu_display(idplayers_menu0);
    }
    return 
PLUGIN_CONTINUE
}
public 
give_exp_hl(idplayers_menuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(players_menu)
        return 
PLUGIN_HANDLED
    
}
    new 
data[6],accessmenuiName[64], callback;
    
menu_item_getinfo(players_menuitemaccessmenudatacharsmax(data), iNamecharsmax(iName), callback)
    new 
player str_to_num(data)
    
client_cmd(id"messagemode ^"add_exp %i^""player);
    
ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"TYPE_AMOUNT");
    return 
PLUGIN_CONTINUE
}

public 
add_exp_post(id)
{
    if(
get_user_flags(id) & ADM_MENU)
    {
        new 
param[10]
        
read_argv(2paramcharsmax(param))
        for (new 
xstrlen(param); x++)
        {
            if(!
isdigit(param[x]))
            { 
                
ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MUST_NUM")
                
give_exp_menu(id)
                return 
PLUGIN_HANDLED
            
}
        }
        new 
amount str_to_num(param);
        if (
amount 1)
        {
            
ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MIN_EXP"
            
give_exp_menu(id)
            return 
PLUGIN_HANDLED
        
}
        if (
amount 999)
        {
            
ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MAX_EXP")  
            
give_exp_menu(id)
            return 
PLUGIN_HANDLED
        
}
        
read_argv(1paramcharsmax(param))
        new 
player str_to_num(param)    
//
        
UserData[player][gExp] += amount;
        if(
UserData[player][gLevel] <= 0)
            
UserData[player][gLevel] = 1;
    
        while(
UserData[player][gExp] >= gLevels[UserData[player][gLevel]]) 
            
UserData[player][gLevel]++;
//        
        
new names[2][32]
        
get_user_name(idnames[0], 31)
        
get_user_name(playernames[1], 31)
        
ColorChat(0NORMAL"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"ADMIN_ADD"names[0], amountnames[1]);
        
save_usr(player);
    }
    return 
PLUGIN_HANDLED
}
public 
set_level_menu(id)
{
    if(
get_user_flags(id) & ADM_MENU)
    {
        
UserData[id][gTempKey] = 0;
        new 
players[32], num;
        
get_players(playersnum)
        new 
tempname[32], info[10];
        new 
players_menu menu_create("Выберите РёРіСЂРѕРєР° :""set_level_hl")
        for(new 
0numi++)
        {
            
get_user_name(players[i], tempname31);
            
num_to_str(players[i], info9);
            
menu_additem(players_menutempnameinfo0);
        }
        
menu_setprop(players_menuMPROP_EXITMEXIT_ALL);
        
menu_display(idplayers_menu0);
    }
    return 
PLUGIN_CONTINUE
}
public 
set_level_hl(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    new 
data[6], _accesscallback;
    
menu_item_getinfomenuitem_accessdatacharsmax(data), __callback);
    
UserData[id][gTempKey] = str_to_num(data);
    
set_level_pl(id);
    return 
PLUGIN_CONTINUE
}
public 
set_level_pl(id)
{
    static 
szText[1024];
    
formatex(szText,charsmax(szText), "%L"id"CHOOSE_RANKN");
    new 
menu menu_createszText"set_level_phl");
    
//======
    
for(new 1sizeof(gRankNames); i++)
    {
        new 
szItem[100],lang[10],num[5];
        
format(lang,9,"I_%d",i);
        
format(num,4,"%d",i);
        
formatex(szItem,charsmax(szItem),"%L",id,lang);
        
menu_additem(menu,szItem,num);
    }
    
//======
    
menu_setprop(menuMPROP_BACKNAME"Назад ");
    
menu_setprop(menuMPROP_NEXTNAME"Далее ");
    
menu_setprop(menuMPROP_EXITNAME"Выход ");
    
menu_displayidmenu,0);
    return 
PLUGIN_CONTINUE;
}
public 
set_level_phl(id,menu,item)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    new 
data[6], _accesscallback;
    
menu_item_getinfomenuitem_accessdatacharsmax(data), __callback);
    new 
level str_to_num(data);
    if(
UserData[id][gTempKey] >= && UserData[id][gTempKey] <= 32)
    {
        
UserData[UserData[id][gTempKey]][gLevel] = level;
        
UserData[UserData[id][gTempKey]][gExp] = gLevels[level-1];
        new 
szName[2][32];
        
get_user_name(idszName[0], 31);
        
get_user_name(UserData[id][gTempKey], szName[1], 31);
        
ColorChat(0NORMAL"^4[^3Army Ranks^4]^1 %L %L %s",LANG_PLAYER,"ADMIN_LEVEL"szName[0],LANG_PLAYER,gRankNames[level],szName[1])
        
save_usr(UserData[id][gTempKey]);
        } else {
        
set_level_menu(id);
    }
    
UserData[id][gTempKey] = 0;
    return 
PLUGIN_HANDLED;

7thSense is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 23:36.


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