Raised This Month: $12 Target: $400
 3% 

Change to nvault


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
wicho
Veteran Member
Join Date: Feb 2012
Location: GuateAmala
Old 11-13-2018 , 19:52   Change to nvault
Reply With Quote #1

Hi everyone, could someone change this code to nvault please? ... Thanks in advance

PHP Code:
#include <amxmodx>
#include <fakemeta >
#include <hamsandwich>
#include <dhudmessage>
#include <zombieplague>
#include <sqlx>

#define MAX_CLIENTS 32

enum (+= 100)
{
    
TASK_SHOWHUD 4000,
    
TASK_LOAD_DATA
};

enum _:eData
{
    
Level 0,
    
Experience
};

// CBaseMonster
#define m_LastHitGroup    75

#define USERHUD_NOTICE    0, 255, 255, 0.02, 0.2

new const FloatflGetExpirenceForDamage 2500.0 
new const iGetExpirenceForKillZombie 
new const iGetExpirenceForKillZombieHead 
new const iExperienceMulti 10 

new const iMaxUserLevel 100 

#define SQL_HOST        ""
#define SQL_USER        ""
#define SQL_PASSWORD    ""
#define SQL_DATABASE    ""
#define SQL_TABLENAME    "zp_level_system"

new g_iUserData[MAX_CLIENTS 1][eData]

new 
boolg_bUserLoaded[MAX_CLIENTS +1]

new 
Floatg_flUserDamage[MAX_CLIENTS +1]

new 
g_szUserSteamID[MAX_CLIENTS +1][34]
new 
g_szQuery[512

new 
Handleg_hDBTuple 
new Handleg_hConnect

public plugin_init()
{
    
register_plugin("[ZP] Level System""Best""t3rkecorejz")
    
    
register_event("HLTV""EV_RoundStart""a""1=0""2=0")
    
    
RegisterHam(Ham_Killed"player""CPlayer__Killed_Post", .Post 1)
    
RegisterHam(Ham_TakeDamage"player""CPlayer__TakeDamage_Post", .Post 1)
}

public 
plugin_natives()
{
    
register_native("ZP_GetUserData""Native_GetUserData"1)
    
register_native("ZP_GetUserExpForNextLevel""Native_GetUserExpForNextLevel"1)
    
register_native("ZP_SetUserData""Native_SetUserData"1)
    
register_native("ZP_CheckUserNextLevel""Native_CheckUserNextLevel"1)
}

public 
plugin_cfg() SQL_LoadDebug()
public 
plugin_end() 
{
    if(
g_hDBTuple
        
SQL_FreeHandle(g_hDBTuple)
    
    if(
g_hConnect
        
SQL_FreeHandle(g_hConnect)
    
    return
}

public 
client_putinserver(iPlayer
{
    
set_task(random_float(1.03.0), "CTask__LoadData"iPlayer +TASK_LOAD_DATA)
    
set_task(1.0"CTask__ShowUserHud"iPlayer +TASK_SHOWHUD__, .flags "b")
}

public 
client_disconnect(iPlayer)
{
    if(!
g_bUserLoaded[iPlayer])
        return
    
    
formatex(g_szQuerycharsmaxg_szQuery), "UPDATE `%s` SET `Level` = '%d', `Experience` = '%d' WHERE `%s`.`SteamID` = '%s';"SQL_TABLENAMEg_iUserData[iPlayer][Level], g_iUserData[iPlayer][Experience], SQL_TABLENAMEg_szUserSteamID[iPlayer])
    
SQL_ThreadQuery(g_hDBTuple"SQL_ThreadQueryHandler"g_szQuery)
}

// Events
public EV_RoundStart()
{
    for(new 
iPlayer 1iPlayer <= MAX_CLIENTSiPlayer++)
    {
        if(!
is_user_connected(iPlayer))
            continue;
        
        if(!
g_bUserLoaded[iPlayer])
            return;
        
        
formatex(g_szQuerycharsmax(g_szQuery), "UPDATE `%s` SET `Level` = '%d', `Experience` = '%d' WHERE `%s`.`SteamID` = '%s';"SQL_TABLENAMEg_iUserData[iPlayer][Level], g_iUserData[iPlayer][Experience], SQL_TABLENAMEg_szUserSteamID[iPlayer])
        
SQL_ThreadQuery(g_hDBTuple"SQL_ThreadQueryHandler"g_szQuery)
    }
}

// Ham
public CPlayer__Killed_Post(iVictimiInflictoriAttacker)
{
    if(!
is_user_connected(iVictim) || !is_user_connected(iAttacker) || iVictim == iAttacker)
        return;
    
    if(
g_iUserData[iAttacker][Level] >= iMaxUserLevel)
        return;
    
    if(
zp_get_user_zombie(iVictim) && !zp_get_user_zombie(iAttacker))
    {
        if(
get_pdata_int(iVictimm_LastHitGroup5) == HIT_HEAD)
        {
            
g_iUserData[iAttacker][Experience] += iGetExpirenceForKillZombieHead
            
return
        }
        
        
g_iUserData[iAttacker][Experience] += iGetExpirenceForKillZombie
        Native_CheckUserNextLevel
(iAttacker)
    }
    return;
}

public 
CPlayer__TakeDamage_Post(iVictimiInflictoriAttackerFloatflDamage)
{
    if(!
is_user_connected(iVictim) || !is_user_connected(iAttacker) || iVictim == iAttacker)
        return
    
    if(
g_iUserData[iAttacker][Level] >= iMaxUserLevel)
        return
    
    if(
zp_get_user_zombie(iVictim) && !zp_get_user_zombie(iAttacker))
    {
        
g_flUserDamage[iAttacker] += flDamage
        
        
if(g_flUserDamage[iAttacker] >= flGetExpirenceForDamage)
        {
            while(
g_flUserDamage[iAttacker] >= flGetExpirenceForDamage)
            {
                
g_flUserDamage[iAttacker] -= flGetExpirenceForDamage
                g_iUserData
[iAttacker][Experience] += 1
            
}
        }
        
Native_CheckUserNextLevel(iAttacker)
    }
    return;
}

// Task
public CTask__LoadData(iTask)
{
    new 
iPlayer iTask -TASK_LOAD_DATA
    
    
if(!is_user_connected(iPlayer))
        return
    
    new 
iParams[1]
    
iParams [0] = iPlayer
    
    get_user_authid
(iPlayerg_szUserSteamID[iPlayer], charsmax(g_szUserSteamID[]))
    
    
formatex(g_szQuerycharsmax(g_szQuery), "SELECT * FROM `%s` WHERE (`%s`.`SteamID` = '%s')"SQL_TABLENAMESQL_TABLENAMEg_szUserSteamID[iPlayer])
    
SQL_ThreadQuery(g_hDBTuple"SQL_QueryConnection"g_szQueryiParamssizeof iParams)
}

public 
CTask__ShowUserHud(iTask)
{
    new 
iPlayer iTask -TASK_SHOWHUD
    
    
if(!is_user_alive(iPlayer))
        return
    
    
set_dhudmessage(USERHUD_NOTICE00.01.10.00.0false)
    
show_dhudmessage(iPlayer"[Level: %d | %d%%]"g_iUserData[iPlayer][Level], floatround(99.0 Native_GetUserExpForNextLevel(iPlayer) * g_iUserData[iPlayer][Experience]))
}

// MySQL
public SQL_LoadDebug() 
{
    new 
szError[512]
    new 
iErrorCode
    
    g_hDBTuple 
SQL_MakeDbTuple(SQL_HOSTSQL_USERSQL_PASSWORDSQL_DATABASE)
    
g_hConnect SQL_Connect(g_hDBTupleiErrorCodeszErrorcharsmax(szError))
    
    if(
g_hConnect == Empty_Handle)
        
set_fail_state(szError)
    
    if(!
SQL_TableExists(g_hConnectSQL_TABLENAME))
    {
        new 
HandlehQueries 
        
new szQuery[512]
        
        
formatex(szQuerycharsmax(szQuery), "CREATE TABLE IF NOT EXISTS `%s` (SteamID varchar(32) CHARACTER SET cp1250 COLLATE cp1250_general_ci NOT NULL, Level INT NOT NULL, Experience INT NOT NULL, PRIMARY KEY (SteamID))"SQL_TABLENAME)
        
hQueries SQL_PrepareQuery(g_hConnectszQuery)
        
        if(!
SQL_Execute(hQueries))
        {
            
SQL_QueryError(hQueriesszErrorcharsmax(szError))
            
set_fail_state(szError)
        }
        
SQL_FreeHandle(hQueries)    
    }
    
SQL_QueryAndIgnore(g_hConnect"SET NAMES utf8")
}

public 
SQL_QueryConnection(iStateHandlehQueryszError[], iErrorCodeiParams[], iParamsSize)
{
    switch(
iState)
    {
        case 
TQUERY_CONNECT_FAILEDlog_amx("Load - Could not connect to SQL database. [%d] %s"iErrorCodeszError)
        case 
TQUERY_QUERY_FAILEDlog_amx("Load Query failed. [%d] %s"iErrorCodeszError)
    }
    
    new 
iPlayer iParams[0]
    
g_bUserLoaded[iPlayer] = true
    
    
if(SQL_NumResults(hQuery) < 1)
    {
        if(
equal(g_szUserSteamID[iPlayer], "ID_PENDING"))
            return 
PLUGIN_HANDLED

        g_iUserData
[iPlayer] = {10}

        
formatex(g_szQuerycharsmax(g_szQuery), "INSERT INTO `%s` (`SteamID`, `Level`, `Experience`) VALUES ('%s', '%d', '%d');"SQL_TABLENAMEg_szUserSteamID[iPlayer], g_iUserData[iPlayer][Level], g_iUserData[iPlayer][Experience])
        
SQL_ThreadQuery(g_hDBTuple"SQL_ThreadQueryHandler"g_szQuery)
        
        return 
PLUGIN_HANDLED
    
}
    else
    {
        
g_iUserData[iPlayer][Level] = SQL_ReadResult(hQuery1)
        
g_iUserData[iPlayer][Experience] = SQL_ReadResult(hQuery2)
    }
    
    return 
PLUGIN_HANDLED
}

public 
SQL_ThreadQueryHandler(iStateHandlehQueryszError[], iErrorCodeiParams[], iParamsSize)
{
    if(
iState == 0)
        return
    
    
log_amx("SQL Error: %d (%s)"iErrorCodeszError)
}

// Natives
public Native_GetUserData(iPlayeriType)
    return 
g_iUserData[iPlayer][iType]

public 
Native_GetUserExpForNextLevel(iPlayer)
    return 
iExperienceMulti *(g_iUserData[iPlayer][Level] +1)

public 
Native_SetUserData(iPlayeriTypeiValue)
    
g_iUserData[iPlayer][iType] = iValue

public Native_CheckUserNextLevel(iPlayer)
{
    if(
g_iUserData[iPlayer][Experience] > Native_GetUserExpForNextLevel(iPlayer))
    {
        
g_iUserData[iPlayer][Experience] -= Native_GetUserExpForNextLevel(iPlayer)
        
g_iUserData[iPlayer][Level] += 1
    
}
}

// Stocks
stock boolSQL_TableExists(HandlehDataBase, const szTable[])
{
    new 
HandlehQuery SQL_PrepareQuery(hDataBase"SELECT * FROM information_schema.tables WHERE table_name = '%s' LIMIT 1;"szTable)
    new 
szError[512]
    
    if(!
SQL_Execute(hQuery))
    {
        
SQL_QueryError(hQueryszErrorcharsmax(szError))
        
set_fail_state(szError)
    }
    else if(!
SQL_NumResults(hQuery))
    {
        
SQL_FreeHandle(hQuery)
        return 
false
    
}
    
SQL_FreeHandle(hQuery)
    return 
true

wicho is offline
tarsisd2
Veteran Member
Join Date: Feb 2016
Location: brazil
Old 11-13-2018 , 22:13   Re: Change to nvault
Reply With Quote #2

why don't you try this one

https://forums.alliedmods.net/showthread.php?t=251356
tarsisd2 is offline
wicho
Veteran Member
Join Date: Feb 2012
Location: GuateAmala
Old 11-13-2018 , 23:00   Re: Change to nvault
Reply With Quote #3

It's fine but it has many things that I do not want to use. I want to use this one that is simpler and has what I need.
wicho is offline
Reply


Thread Tools
Display Modes

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 21:09.


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