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

Mysql Not work for Diablo 2


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
WolfM3St3r
Junior Member
Join Date: Feb 2017
Location: Romania
Old 02-25-2017 , 08:34   Mysql Not work for Diablo 2
Reply With Quote #1

Problem connect mysql errors:
Code:
[diablo2LOD.amxx] [MYSQLX] You have an error in your SQ syntax; check the manual that corresponds to your MySQ server version for the right syntax to use near 'TYPE=MyISAM' at line 1L 02/25/2017 - 11:25:49:
[diablo2LOD.amxx] [MYSQLX] Table 'diablo2.d2_data' doesn't exist Load Fail!
L 02/25/2017 - 11:26:58: [admincmd.amxx] Cmd: "Wolf<1><STEAM_0:1:83414680><>" changelevel "de_dust2"
L 02/25/2017 - 11:27:01: [diablo2LOD.amxx] [MYSQLX] Table 'diablo2.d2_data' doesn't exist Save Fail!
Mysql include Diablo:
PHP Code:
// Player save/load data MYSQL
public MYSQLX_Init()
{
    if ( !
get_pcvar_num(d2_save_type) )
        return;

    
// Determine the database information
    
new szHost[64], szUser[32], szPass[32], szDB[128], szError[256], iErrNum;

    
get_pcvar_stringmysqlx_hostszHostcharsmaxszHost ) );
    
get_pcvar_stringmysqlx_userszUsercharsmaxszUser ) );
    
get_pcvar_stringmysqlx_passszPasscharsmaxszPass ) );
    
get_pcvar_stringmysqlx_dbszDBcharsmaxszDB ) );

    
// Set up the tuple that will be used for threading
    
g_DBTuple SQL_MakeDbTupleszHostszUserszPassszDB );

    
// Attempt to connect
    
g_DBConn SQL_Connectg_DBTupleiErrNumszErrorcharsmaxszError ) );

    if ( !
g_DBConn )
    {
        
log_amx"[MYSQLX] Database Connection Failed: [%d] %s"iErrNumszError );

        return;
    }

    
SQL_ThreadQueryg_DBTuple"QueryCreateTable"gTableCreateQuery)
}
public 
QueryCreateTableiFailStateHandle:hQueryszError[ ], iErroriData[ ], iDataSizeFloat:fQueueTime 

    if( 
iFailState == TQUERY_CONNECT_FAILED 
    
|| iFailState == TQUERY_QUERY_FAILED 
    { 
        
log_amx"[MYSQLX] %s"szError ); 
        
        return;
    } 
}

public 
MYSQLX_Save_Tid 

    
// Make sure our connection is working 
    
if ( !g_DBConn 
    { 
        return; 
    } 

    
// Save the user's XP! 
    
new iLen[3] = 0
    static 
szData[12000], szQuery[14000], szData2[12000], szData3[12000]; 
    
    
iLen[0] += formatexszDataiLen[0] ], charsmax(szData) - iLen[0], "%d %d#"g_PlayerChars[id], g_CurrentMana[id] );
    
    for(new 
hero_id 0hero_id MAX_CHARS hero_id++)
    {
        
iLen[0] += formatex szDataiLen[0] ], charsmax(szData) - iLen[0], "%d %d %d %d %d %d %d %d %d %d %d %d#"g_PlayerLevel[id][hero_id], g_PlayerXp[id][hero_id], g_PlayerSkPoints[id][hero_id], g_PlayerStPoints[id][hero_id], g_Strength[id][hero_id],
        
g_Dexterity[id][hero_id], g_Vitality[id][hero_id], g_Energy[id][hero_id], 
        
g_Coins[id][hero_id], g_CoinsInv[id][hero_id], g_PlayerHero[id][hero_id], g_PlayerCharActive[id][hero_id] )
    }    
    for( new 
iSkill 0iSkill <= g_skillcounteriSkill++ ) 
    {
        for(new 
hero_id 0hero_id MAX_CHARS hero_id++)
        {
            
iLen[0] += formatexszDataiLen[0] ], charsmax(szData) - iLen[0], "%d#"g_iSkills[id][hero_id][iSkill] );
        }    
    }

    
iLen[1] += formatexszData2iLen[1] ], charsmax(szData2) - iLen[1], "#" );
    
    for( new 
iPotions 0iPotions MAX_POTIONS iPotions++ )
    {
        for(new 
hero_id 0hero_id MAX_CHARS hero_id++)
        {
            
iLen[1] += formatexszData2iLen[1] ], charsmax(szData2) - iLen[1], "%d %d#",  g_iPlayerPotions[id][hero_id][iPotions], g_iPlayerPotionsInv[id][hero_id][iPotions] )
        }    
    }

    
iLen[2] += formatexszData3iLen[2] ], charsmax(szData3) - iLen[2], "#" );
    
    for( new 
iItems 0iItems <= g_charcounter iItems++ )
    {
        for(new 
hero_id 0hero_id MAX_CHARS hero_id++)
        {
            
iLen[2] += formatexszData3iLen[2] ], charsmax(szData3) - iLen[2], "%d %d %d %d %d#",  g_iPlayerItem[id][hero_id][iItems], g_iPlayerItemInv[id][hero_id][iItems], g_iPlayerItemBolts[id][hero_id][iItems], 
            
g_iPlayerItemWorn[id][hero_id][iItems], g_iPlayerItemRepair[id][hero_id][iItems] )
        }
    }

    new 
szKey[66], szKeyName[32];
    
Save_GetKeyidszKeycharsmaxszKey ) );
    
Save_GetKeyNameszKeyNamecharsmaxszKeyName ) );
    

    
formatexszQuerycharsmax(szQuery), "REPLACE INTO d2_data ( player_data, player_data2, player_data3, %s ) VALUES ( '%s', '%s', '%s', '%s' );"szKeyNameszDataszData2szData3szKey ); 
    
SQL_ThreadQueryg_DBTuple"_MYSQLX_Save_T"szQuery);
    
    return; 

public 
_MYSQLX_Save_TfailstateHandle:queryerror[], errnumdata[], size 

    if( 
failstate == TQUERY_CONNECT_FAILED  
    
|| failstate == TQUERY_QUERY_FAILED )  
    {  
        
log_amx"[MYSQLX] %s Save Fail!"error );  
         
        return; 
    }  

public 
MYSQLX_GetAllDataid 

    
// Make sure our connection is working 
    
if ( !g_DBConn 
    { 
        return; 
    } 
    
    new 
szKey[66], szKeyName[32];
    
Save_GetKeyidszKeycharsmaxszKey ) );
    
Save_GetKeyNameszKeyNamecharsmaxszKeyName ) );
         
    new 
szQuery512 ], iData];  
    
formatexszQuerycharsmaxszQuery ), "SELECT * FROM d2_data WHERE %s = '%s';"szKeyNameszKey );  
          
    
iData] = id
    
SQL_ThreadQueryg_DBTuple"_MYSQLX_GetAllData"szQueryiData); 

    return; 

public 
_MYSQLX_GetAllDataiFailStateHandle:hQueryszError[ ], iErroriData[ ], iDataSizeFloat:fQueueTime )  
{  
    if( 
iFailState == TQUERY_CONNECT_FAILED  
    
|| iFailState == TQUERY_QUERY_FAILED )  
    {  
        
log_amx"[MYSQLX] %s Load Fail!"szError ); 
         
        return; 
    }  
    else  
    {  
        new 
id iData]; 
         
        static 
szData[20000], szAllItems[20000], szData2[8000], szAllItems2[8000], szData3[8000], szAllItems3[8000]
        new 
szClassLevel[256], szSkills[256], szItems[256], szPotions[256];
        new 
szHero[126], szLevel[4], szXp[10], szSk[4], szSt[5], szCurMana[6], szStr[5], szDex[5], szVit[5], szEne[5], szCoin[10], szCoinInv[11],
        
szPItem[3], szPItemInv[3], szPItemW[3], szPItemRep[5], szItemB[5], szPotion[3], szPotionInv[4], szPlayerChars[4],
        
szActive[2];

        new 
ColData SQL_FieldNameToNum(hQuery"player_data")  
        new 
ColData2 SQL_FieldNameToNum(hQuery"player_data2")  
        new 
ColData3 SQL_FieldNameToNum(hQuery"player_data3")  

        while (
SQL_MoreResults(hQuery))  
        { 
            
SQL_ReadResult(hQueryColDataszDatacharsmaxszData ) ); 
            
SQL_ReadResult(hQueryColData2szData2charsmaxszData2 ) ); 
            
SQL_ReadResult(hQueryColData3szData3charsmaxszData3 ) ); 

            
strtok(szDataszDatasizeofszData ) - 1szAllItemssizeofszAllItems ) - 1'#')
            
strtok(szData2szData2sizeofszData2 ) - 1szAllItems2sizeofszAllItems2 ) - 1'#')
            
strtok(szData3szData3sizeofszData3 ) - 1szAllItems3sizeofszAllItems3 ) - 1'#')
            
            
parse(szDataszPlayerCharscharsmax(szPlayerChars), szCurManacharsmax(szCurMana) );

            
g_PlayerChars[id] = str_to_numszPlayerChars );
            
g_CurrentMana[id] = str_to_numszCurMana );
            
            for(new 
hero_id 0hero_id MAX_CHARS hero_id++)
            {
                
strtok(szAllItemsszClassLevelsizeofszClassLevel ) - 1szAllItemssizeofszAllItems ) - 1'#')
                
strtok(szClassLevelszLevelsizeofszLevel ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszXpsizeofszXp ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszSksizeofszSk ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszStsizeofszSt ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszStrsizeofszStr ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszDexsizeofszDex ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszVitsizeofszVit ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszEnesizeofszEne ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszCoinsizeofszCoin ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszCoinInvsizeofszCoinInv ) - 1szClassLevelsizeofszClassLevel ) - 1' ')
                
strtok(szClassLevelszHerosizeofszHero ) - 1szActivesizeofszActive ) - 1' ')
                
                
g_PlayerLevel[id][hero_id] = str_to_numszLevel )
                
g_PlayerXp[id][hero_id] = str_to_numszXp )
                
g_PlayerSkPoints[id][hero_id] = str_to_numszSk )
                
g_PlayerStPoints[id][hero_id] = str_to_numszSt )
                
g_Strength[id][hero_id] = str_to_numszStr )
                
g_Dexterity[id][hero_id] = str_to_numszDex )
                
g_Vitality[id][hero_id] = str_to_numszVit )
                
g_Energy[id][hero_id] = str_to_numszEne )
                
g_Coins[id][hero_id] = str_to_numszCoin )
                
g_CoinsInv[id][hero_id] = str_to_numszCoinInv )
                
g_PlayerHero[id][hero_id] = str_to_numszHero );
                
g_PlayerCharActive[id][hero_id] = str_to_numszActive );
            }    
            
            for( new 
iSkill 0iSkill <= g_skillcounteriSkill++ ) 
            {
                for(new 
hero_id 0hero_id MAX_CHARS hero_id++)
                {
                    
strtok(szAllItemsszClassLevelsizeofszClassLevel ) - 1szAllItemssizeofszAllItems ) - 1'#')
                    
strtok(szClassLevelszSkillssizeofszSkills ) - 1szClassLevelsizeofszClassLevel ) - 1'#')

                    
g_iSkills[id][hero_id][iSkill] = str_to_numszSkills );
                }    
            }
            for( new 
iItems 0iItems <= g_charcounter iItems++ )
            {
                for(new 
hero_id 0hero_id MAX_CHARS hero_id++)
                {
                    
strtok(szAllItems3szItemssizeofszItems ) - 1szAllItems3sizeofszAllItems3 ) - 1'#')
            
                    
strtok(szItemsszPItemsizeofszPItem ) - 1szItemssizeofszItems ) - 1' ')
                    
strtok(szItemsszPItemInvsizeofszPItemInv ) - 1szItemssizeofszItems ) - 1' ')
                    
strtok(szItemsszItemBsizeofszItemB ) - 1szItemssizeofszItems ) - 1' ')
                    
strtok(szItemsszPItemWsizeofszPItemW ) - 1szPItemRepsizeofszPItemRep ) - 1' ')
                        
                    
g_iPlayerItem[id][hero_id][iItems] = str_to_numszPItem );
                    
g_iPlayerItemInv[id][hero_id][iItems] = str_to_numszPItemInv );
                    
g_iPlayerItemBolts[id][hero_id][iItems] = str_to_numszItemB );
                    
g_iPlayerItemWorn[id][hero_id][iItems] = str_to_numszPItemW );
                    
g_iPlayerItemRepair[id][hero_id][iItems] = str_to_numszPItemRep );
                }    
            }
            for( new 
iPotions 0iPotions MAX_POTIONS iPotions++ )
            {
                for(new 
hero_id 0hero_id MAX_CHARS hero_id++)
                {
                    
strtok(szAllItems2szPotionssizeofszPotions ) - 1szAllItems2sizeofszAllItems2 ) - 1'#')
                            
                    
strtokszPotionsszPotionsizeofszPotion ) - 1szPotionInvsizeofszPotionInv ) - 1' ')

                    
g_iPlayerPotions[id][hero_id][iPotions] = str_to_numszPotion )
                    
g_iPlayerPotionsInv[id][hero_id][iPotions] = str_to_numszPotionInv )
                }    
            }
         
            
SQL_NextRow(hQuery
        } 
    }  

// Function will return the appropriate key for a user
public Save_GetKeyidszKey[], len )
{
    switch( 
get_pcvar_numd2_save_by ) )
    {
        case 
2:
        {
            
get_user_nameidszKeylen );

            
replace_allszKeylen"'""\'" );
        }

        case 
1:    get_user_ipidszKeylen);
        case 
0:    get_user_authididszKeylen );
    }
}

// Function will return the keyname
public Save_GetKeyNameszKeyName[], len )
{
    switch( 
get_pcvar_numd2_save_by ) )
    {
        case 
2:    copyszKeyNamelen"player_name" );
        case 
1:    copyszKeyNamelen"player_ip" );
        case 
0:    copyszKeyNamelen"player_steamid" );
    }

Script DiabloLod.sma
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta>
#include <engine>
#include <nvault>
#include <sqlx>

#define VERSION    "2.3"

// Main includes
#include "diablo2LOD/const.inl"
#include "diablo2LOD/vars.inl"
#include "diablo2LOD/nvault.inl"
#include "diablo2LOD/events.inl"
#include "diablo2LOD/forwards.inl"
#include "diablo2LOD/cvars.inl"
#include "diablo2LOD/messages.inl"
#include "diablo2LOD/menu.inl"
#include "diablo2LOD/motd.inl"
#include "diablo2LOD/public.inl"
#include "diablo2LOD/entity.inl"
#include "diablo2LOD/commands.inl"
#include "diablo2LOD/items.inl"
#include "diablo2LOD/classes.inl"
#include "diablo2LOD/effects.inl"
#include "diablo2LOD/stocks.inl"
#include "diablo2LOD/mysql.inl"

public plugin_init()
{
    
register_plugin("Diablo II : Lord of Destruction"VERSION"xbatista");
    
    
register_cvar("d2lod_version"VERSIONFCVAR_SPONLY|FCVAR_SERVER)
    
set_cvar_string("d2lod_version"VERSION)

    
// Loads all cvars
    
LoadCvars();
    
    
// Events
    
register_event("HLTV""Event_New_Round""a""1=0""2=0");
    
register_event("CurWeapon""Ev_CurWeapon""be""1=1");
    
register_event"TeamInfo""Ev_JoinTeam""a")
    
register_logevent("Logevent_Round_Start"2"1=Round_Start");
    
register_logevent("Event_Round_End"2"1=Round_End");

    
register_touch("Coins""player""Coins_Pickup")
    
register_touch("ItemsDeath""player""Item_Touch")
    
register_touch("PotionsDeath""player""Potion_Touch")

    
register_think("trigger_camera""PlayerCamera_Think")

    
// Forwards
    
RegisterHam(Ham_TakeDamage"player""fwd_PlayerDamaged");
    
RegisterHam(Ham_TakeDamage"func_wall""fwd_PlayerDamagedMonster");
    
RegisterHam(Ham_Spawn"player""fwd_PlayerSpawn"1);
    
RegisterHam(Ham_TraceAttack"player""fwd_TraceAttack");
    
RegisterHam(Ham_Killed"player""fwd_Killed");
    
RegisterHam(Ham_Killed"player""fwd_KilledPost"1);
    
RegisterHam(Ham_Touch"weaponbox""Fwd_Touch");
    
RegisterHam(Ham_Touch"armoury_entity""Fwd_Touch");
    
RegisterHamHam_Weapon_PrimaryAttack"weapon_knife""fwd_AttackSpeed" );
    
RegisterHamHam_Item_Deploy "weapon_knife""fwd_AttackSpeed"1);
    new 
szWeaponName24 ];
    for ( new 
WeaponId 1WeaponId <= 30WeaponId++ )
    {
        if ( 
get_weaponname WeaponIdszWeaponNamecharsmax szWeaponName ) ) )
        {
            
RegisterHamHam_CS_Item_GetMaxSpeed szWeaponName"fwd_ItemGetMaxSpeed");
        }
    }
    
    
register_forward(FM_ClientKill"fwd_ClientKill");
    
register_forward(FM_CmdStart"fwd_CmdStart");
    
register_forward(FM_GetGameDescription,    "fwd_GameDescription");
    
register_forward(FM_ClientUserInfoChanged"ClientUserInfoChanged");
    
register_forward(FM_Touch"Entity_Touched");

    
// Get/register messages
    
MsgSayText get_user_msgid("SayText");
    
MsgHideWeapon    get_user_msgid("HideWeapon")
    
MsgHideCrosshair get_user_msgid("Crosshair")
    
gmsgClCorpse get_user_msgid("ClCorpse")

    
register_message(get_user_msgid("StatusIcon"),    "Message_StatusIcon")
    
register_message(get_user_msgid("VGUIMenu"), "Message_VGUIMenu")

    
g_iItemTook CreateMultiForward("D2_Item_Gone"ET_IGNOREFP_CELLFP_CELL);
    
g_DamagedbySkill CreateMultiForward("d2_skill_takedamage"ET_IGNOREFP_CELLFP_CELLFP_ARRAY);
    
g_SkillSelected CreateMultiForward("d2_skill_selected"ET_IGNOREFP_CELLFP_CELL);
    
g_SkillFired CreateMultiForward("d2_skill_fired"ET_IGNOREFP_CELL);
    
g_TakeDamage CreateMultiForward("d2_takedamage"ET_IGNOREFP_CELLFP_CELLFP_ARRAY);
    
g_iLog CreateMultiForward("d2_logged"ET_IGNOREFP_CELLFP_CELL);
    
g_RangedDamage CreateMultiForward("d2_ranged_takedamage"ET_IGNOREFP_CELLFP_CELLFP_ARRAY);
    
g_DaggerPoisonDamage CreateMultiForward("d2_dagger_poisondamage"ET_IGNOREFP_CELLFP_CELLFP_ARRAY);
    
g_ActRangedShoot CreateMultiForward("d2_ranged_actshoot"ET_IGNOREFP_CELLFP_CELL);
    
    
    
// Other
    
g_iMaxPlayers get_maxplayers();
    
g_SyncHudCreate CreateHudSyncObj();
    
g_SyncHudCreate_Avade CreateHudSyncObj();

    if ( 
get_pcvar_num(d2_advert) )
    {
        
set_taskget_pcvar_float(d2_advert_time), "Adv_Message"0__"b");
    }

    
// Connect to MYSQL.
    
set_task1.0"MYSQLX_Init");
    
    new 
EntCount;
        
    while( ( 
Ent find_ent_by_classEnt"info_player_start" ) ) > )
        if( 
Count++ > )
            break;
        
    if( 
Count <= )
        
g_iFakeplayer = -1;

    
set_task2.0"AddFakeClient" );

    
set_task1.0"Spawn_Items");
    
set_task1.0"Spawn_Items_Charsi")
    
set_task1.0"Spawn_Items_Akara")
}

public 
plugin_natives()
{
    
register_native("get_current_speed""native_get_current_speed"1);
    
register_native("get_player_logged""native_get_player_logged"1);
    
register_native("set_p_xp""Set_Player_Xp"1);
    
register_native("get_p_xp""native_get_p_xp"1);
    
register_native("get_p_hero""native_get_p_hero"1);
    
register_native("get_p_level""native_get_p_level"1);
    
register_native("set_p_mana""Set_Player_Mana"1);
    
register_native("get_p_mana""native_get_p_mana"1);
    
register_native("get_p_vitality""native_get_p_vitality"1);
    
register_native("set_p_vitality""native_set_p_vitality"1);
    
register_native("set_p_gold""Set_Player_Coins"1);
    
register_native("set_p_gold_inventory""Set_Player_CoinsInv"1);
    
register_native("get_p_gold_inventory""native_get_p_gold_inventory"1);
    
register_native("get_p_gold""native_get_p_gold"1);
    
register_native("get_p_item_wear_type""Player_WItemType"1);
    
register_native("get_p_item_wear_data""Player_WItemDataActive"1);
    
register_native("MAX_SKILLS_ACTIVE""native_MAX_SKILLS_ACTIVE"1);
    
register_native("MAX_ITEMS_ACTIVE""native_MAX_ITEMS_ACTIVE"1);
    
register_native("get_p_in_safezone""native_get_p_in_safezone"1);
    
register_native("is_p_protected""native_is_p_protected"1);
    
register_native("dmg_kill_player""Native_Dmg_Kill_Player");
    
register_native("get_p_skill""native_get_p_skill"1);
    
register_native("is_freezetime""native_is_freezetime"1);
    
register_native("reset_p_model""Set_Custom_Model"1);
    
register_native("get_p_item_count""native_get_p_item_count"1);
    
register_native("get_p_item_is_worn""native_get_p_item_is_worn"1);
    
register_native("get_p_maxhealth""native_get_p_maxhealth"1);
    
register_native("set_p_maxhealth""native_set_p_maxhealth"1);
    
register_native("IsPlayerNearByMonster""native_get_p_near_monster"1);
    
register_native("drop_coins""Native_Create_Coins");
    
register_native("set_user_model""native_set_user_model");
}

public 
client_connect(id)
{
    
set_user_info(id"_vgui_menus""1");

    
client_cmd(id"cl_corpsestay %f"get_pcvar_float(d2_cl_corpsestay) );

    
g_Player_FirstTime_Connected[id] = true;

    
// Resets all players Data
    
Reset_Data(id);
    
    
// Loads all player's Data
    
if ( !is_user_bot(id) && g_iFakeplayer != id )
    {
        if ( !
get_pcvar_num(d2_save_type) )
        {
            
Load_Data(id);
        }
        else
        {
            
set_task1.0"MYSQLX_GetAllData"id);
        }
    }
}
public 
client_disconnect(id)
{
    
End_poison_damage(id);

    
// Remove some task
    
remove_taskid TASKID_FIRSTCONNECT );

    if ( 
get_pcvar_num(d2_3rdperson) )
    {
        new 
iEnt g_iCam[id]
        if( 
is_valid_ent(iEnt) )
        {
            
g_iCam[id] = 0
            remove_entity
(iEnt)
        }
    }

    
// Reset some bools
    
g_Player_FirstTime_Connected[id] = false;
    
g_Player_Info[id] = false;
    
g_iLogged[id] = false;

    if( 
g_iFakeplayer == id 
    {
        
g_iFakeplayer 0;
        
set_task1.5"AddFakeClient" );
    }

    
// Reset model's forwards
    
g_szModel[id][0] = 0
    Set_Plugin_State
(idfalse)

    
// Saves all player's Data
    
if ( !is_user_bot(id) && g_iFakeplayer != id )
    {
        if ( !
get_pcvar_num(d2_save_type) )
        {
            
Save_Dataid );
        }
        else
        {

            
MYSQLX_Save_Tid );
        }
    }
}

public 
plugin_precache()  
{
    
LoadIniItems();

    
engfunc(EngFunc_PrecacheSoundLevelUp);
    
engfunc(EngFunc_PrecacheSoundg_crossbow_shoot_sound);

    
engfunc(EngFunc_PrecacheModel"models/rpgrocket.mdl");

    
engfunc(EngFunc_PrecacheModelg_w_mp);
    
engfunc(EngFunc_PrecacheModelg_w_hp);
    
engfunc(EngFunc_PrecacheModelg_w_coins);
    
engfunc(EngFunc_PrecacheModelg_w_item);
    
engfunc(EngFunc_PrecacheModelg_w_inventory);
    
engfunc(EngFunc_PrecacheModelg_w_charsi);
    
engfunc(EngFunc_PrecacheModelg_w_akara);
    
engfunc(EngFunc_PrecacheModelg_brassknuckles);

    
engfunc(EngFunc_PrecacheModelg_w_crossbow);
    
engfunc(EngFunc_PrecacheModelg_v_crossbow);
    
engfunc(EngFunc_PrecacheModelg_p_crossbow);

    
// Forward to kill all entities :)
    
register_forward(FM_Spawn"fwd_Remove_Ents");

    for (new 
item_id 0item_id <= g_charcounteritem_id++)
    {
        if ( 
item_data[item_id][CHAR_TYPE] != TYPE_WEAPON )
            continue;
        
        if ( 
equal(item_vmodel[item_id], "models/"7) )
        {
            
engfunc(EngFunc_PrecacheModelitem_vmodel[item_id]);
        }

        if ( 
equal(item_pmodel[item_id], "models/"7) )
        {
            
engfunc(EngFunc_PrecacheModelitem_pmodel[item_id]);
        }
    }

    new 
Mdl_Path[100];

    for(new 
0MAX_HEROESi++)
    {
        
formatexMdl_Pathsizeof Mdl_Path 1"models/player/%s/%s.mdl"Custom_Models[i], Custom_Models[i])

        
engfunc(EngFunc_PrecacheModelMdl_Path);

        
formatexMdl_Pathsizeof Mdl_Path 1"models/player/%s/%sT.mdl"Custom_Models[i], Custom_Models[i])
        if ( 
file_existsMdl_Path ) )
        {
            
engfunc(EngFunc_PrecacheModelMdl_Path);
        }

    }
}

public 
plugin_cfg()
{
    
get_configsdir(g_ConfigsDir63);
    
formatex(g_ItemOriginDir63"%s/%s"g_ConfigsDirinventory_dir_name);

    new 
File[192];
    
    
formatexFilecharsmaxFile ), "%s/d2conf.cfg"g_ConfigsDir );
    
    if( !
file_existsFile ) )
    {
        
server_print"File %s doesn't exist!"File );
        
write_fileFile" ", -);
    }
    else
    {    
        
server_print"%s successfully loaded."File );
        
server_cmd"exec %s"File );
    }

    if( !
dir_exists(g_ItemOriginDir) ) 
    {
        
mkdir(g_ItemOriginDir);
    } 
    else 
    {
        new 
CurMap[32];
        
get_mapname(CurMap31);
        
Load_Origins(CurMap);
        
Load_Origins_Charsi(CurMap);
        
Load_Origins_Akara(CurMap);
    }

    
//Open our vault and have g_Vault store the handle.
    
g_Nvault nvault_open"d2lod" );
    
g_Nvault2 nvault_open"d2lod2" );
    
g_Nvault3 nvault_open"d2lod3" );
}

public 
plugin_end()
{
    
//Close the vault when the plugin ends (map change\server shutdown\restart)
    
nvault_closeg_Nvault );
    
nvault_closeg_Nvault2 );
    
nvault_closeg_Nvault3 );
}

public 
Float:native_get_current_speed(id)
{
    return 
Current_Speed[id];
}
public 
native_get_player_logged(id)
{
    return 
g_iLogged[id];
}
public 
native_get_p_xp(id)
{
    return 
g_PlayerXp[id][g_CurrentChar[id]];
}
public 
native_get_p_hero(id)
{
    return 
g_PlayerHero[id][g_CurrentChar[id]];
}
public 
native_get_p_level(id)
{
    return 
g_PlayerLevel[id][g_CurrentChar[id]];
}
public 
native_get_p_mana(id)
{
    return 
g_CurrentMana[id];
}
public 
native_get_p_vitality(id)
{
    return 
g_Vitality[id][g_CurrentChar[id]];
}
public 
native_set_p_vitality(idvalue)
{
    
g_Vitality[id][g_CurrentChar[id]] = value;
}
public 
native_get_p_gold_inventory(id)
{
    return 
g_CoinsInv[id][g_CurrentChar[id]];
}
public 
native_get_p_gold(id)
{
    return 
g_Coins[id][g_CurrentChar[id]];
}
public 
native_MAX_SKILLS_ACTIVE()
{
    return 
g_skillcounter 1;
}
public 
native_MAX_ITEMS_ACTIVE()
{
    return 
g_charcounter 1;
}
public 
bool:native_get_p_in_safezone(id)
{
    if ( !
is_user_alive(id) || DISTANCE_INVENTORY_PLAYER <= 0.0 ) return false;

    new 
Float:Porigin[3];
    
entity_get_vectoridEV_VEC_originPorigin);

    new 
ent = -1
    
while( (ent find_ent_in_sphereentPoriginDISTANCE_INVENTORY_PLAYER)) != 0
    {
        static 
classname[32];
        
peventpev_classnameclassnamecharsmax(classname) );

        if( 
equal(classname"Inventory") || equal(classname"Charsi")
        || 
equal(classname"Akara") )
        {
            return 
true;
        }
    }

    return 
false;
}
public 
bool:native_get_p_near_charsi(id)
{
    if ( !
is_user_alive(id) || DISTANCE_INVENTORY_PLAYER <= 0.0 ) return false;

    new 
Float:Porigin[3];
    
entity_get_vectoridEV_VEC_originPorigin);

    new 
ent = -1
    
while( (ent find_ent_in_sphereentPoriginDISTANCE_INVENTORY_PLAYER)) != 0
    {
        static 
classname[32];
        
peventpev_classnameclassnamecharsmax(classname) );

        if( 
equal(classname"Charsi") )
        {
            return 
true;
        }
    }

    return 
false;
}
public 
bool:native_get_p_near_akara(id)
{
    if ( !
is_user_alive(id) || DISTANCE_INVENTORY_PLAYER <= 0.0 ) return false;

    new 
Float:Porigin[3];
    
entity_get_vectoridEV_VEC_originPorigin);

    new 
ent = -1
    
while( (ent find_ent_in_sphereentPoriginDISTANCE_INVENTORY_PLAYER)) != 0
    {
        static 
classname[32];
        
peventpev_classnameclassnamecharsmax(classname) );

        if( 
equal(classname"Akara") )
        {
            return 
true;
        }
    }

    return 
false;
}
public 
bool:native_get_p_near_inventory(id)
{
    if ( !
is_user_alive(id) || DISTANCE_INVENTORY_PLAYER <= 0.0 ) return false;

    new 
Float:Porigin[3];
    
entity_get_vectoridEV_VEC_originPorigin);

    new 
ent = -1
    
while( (ent find_ent_in_sphereentPoriginDISTANCE_INVENTORY_PLAYER)) != 0
    {
        static 
classname[32];
        
peventpev_classnameclassnamecharsmax(classname) );

        if( 
equal(classname"Inventory") )
        {
            return 
true;
        }
    }

    return 
false;
}
public 
bool:native_is_p_protected(id)
{
    if ( 
g_PlayerProtected[id] )
        return 
true;
    
    return 
false;
}
public 
native_get_p_skill(idskill_id)
{
    return 
g_iSkills[id][g_CurrentChar[id]][skill_id];
}
public 
native_is_freezetime()
{
    return 
g_FreezeTime;
}
public 
native_get_p_item_count(iditem_id)
{
    return 
g_iPlayerItem[id][g_CurrentChar[id]][item_id];
}
public 
native_get_p_item_is_worn(iditem_id)
{
    return 
g_iPlayerItemWorn[id][g_CurrentChar[id]][item_id];
}
public 
native_get_p_maxhealth(id)
{
    return 
g_MaxHealth[id];
}
public 
native_set_p_maxhealth(idvalue)
{
    
g_MaxHealth[id] = value;

    if ( 
g_MaxHealth[id] < )
    {
        
g_MaxHealth[id] = 0;
    }
}
// Checks if is player near monster
public bool:native_get_p_near_monster(id)
{
    if ( !
is_user_alive(id) || DISTANCE_NEAR_MONSTER <= 0.0 ) return false;

    new 
Float:Porigin[3];
    
entity_get_vectoridEV_VEC_originPorigin);

    new 
ent = -1
    
while( (ent find_ent_in_sphereentPoriginDISTANCE_NEAR_MONSTER)) != 0
    {
        if ( 
peventpev_flags ) & FL_MONSTER )
        {
            return 
true;
        }
    }

    return 
false;


Last edited by WolfM3St3r; 02-25-2017 at 08:36.
WolfM3St3r is offline
Send a message via Yahoo to WolfM3St3r Send a message via Skype™ to WolfM3St3r
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 16:22.


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