View Single Post
Natsheh
Veteran Member
Join Date: Sep 2012
Old 10-18-2021 , 09:28   Re: hello, this hat system gives coins at a certain time, but when the map changes, t
Reply With Quote #19

Quote:
Originally Posted by Erra View Post
I'm looking forward to it sir
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <nvault>

#define TASK_FREE_COINS 779933
#define Kac_Dakikada_Bir 5

#if AMXX_VERSION_NUM > 182
#define client_disconnect client_disconnected
#endif

new const g_szTAG[] = "GitHub";

enum ENUM_HATS_DATA(+=1)
{
        
HAT_NAME[32],
        
HAT_MODEL[64],
        
HAT_PRICE
}

new const 
g_aHATS_DATA[][ENUM_HATS_DATA] = {
        { 
"Dede Sapkasi""models/hat/dede.mdl"100 },
        { 
"Suratsiz Sapkasi""models/hat/suratsiz.mdl"100 },
        { 
"Inek Sapkasi""models/hat/inek.mdl"200 },
        { 
"Palyaco Sapkasi""models/hat/palyaco.mdl"300 },
        { 
"Kedi Sapkasi""models/hat/kedi.mdl"400 },
        { 
"Korku Sapkasi""models/hat/korku.mdl"700 }
};

new     
g_pHats_Model_index[sizeof g_aHATS_DATA],
        
g_bHatAlreadyBeenBought[MAX_PLAYERS+1][sizeof g_aHATS_DATA],
        
g_iHat_Ent[MAX_PLAYERS+1],
        
g_iCoin[MAX_PLAYERS+1],
        
bool:g_bUserConnected[MAX_PLAYERS+1],
        
g_Coins_nVault INVALID_HANDLE;

public 
plugin_precache()
{
        for(new 
imaxloop sizeof g_aHATS_DATAmaxloopi++)
        {
                
g_pHats_Model_index[i] = precache_modelg_aHATS_DATA[i][HAT_MODEL] );
        }
}
public 
plugin_natives()
{
        
register_native("nGetUserCoin""NTV_CN");
}

public 
NTV_CN(pluginargc)
{
        new 
iPlayer get_param(1);

        if(!
g_bUserConnected[iPlayer])
        {
                
log_error(AMX_ERR_GENERAL"Player #%d is not connected!"iPlayer);
                return 
0;
        }

        return 
g_iCoin[iPlayer];
}
public 
plugin_init()
{
        
register_plugin("Sapka Menü""1.0""Natsheh");
 
        
register_clcmd("say /sapka""OpenHatMenu");
        
register_clcmd("say_team /sapka""OpenHatMenu");

        
register_clcmd("say /hat""OpenHatMenu");
        
register_clcmd("say_team /hat""OpenHatMenu");

        
register_clcmd("say /hats""OpenHatMenu");
        
register_clcmd("say_team /hats""OpenHatMenu");

        
register_cvar("Hats_Menu_By_Natsheh""v1.0"FCVAR_SERVER|FCVAR_SPONLY);

        
register_concmd("amx_give_coins""concmd_give_coins"ADMIN_KICK"<name> < +|- value>")
}

public 
concmd_give_coins(idlevelcid)
{
        if(!
cmd_access(idlevelcid2))
        {
                return 
1;
        }

        new 
szTarget[32], szValue[12];
        
read_argv(1szTargetcharsmax(szTarget));
        
read_argv(2szValuecharsmax(szValue));
        
remove_quotes(szTarget);
        
remove_quotes(szValue);


        new 
player cmd_target(idszTargetCMDTARGET_ALLOW_SELF);

        if(!
player) return 1;

        if(!
strlen(szValue) || str_to_num(szValue) == 0)
        {
                
console_print(id"^n* amx_give_coins < name > < amount >");
                
console_print(id"* The 2nd argument ( amount ) is missing!^n");
                return 
1;
        }

        if(!
is_str_num(szValue))
        {
                
console_print(id"^n* amx_give_coins < name > < amount >");
                
console_print(id"* The 2nd argument ( amount ) must be numbers only!^n");
                return 
1;
        }

        
g_iCoinplayer ] += str_to_num(szValue);
        return 
1;
}

public 
client_putinserver(iPlayer)
{
        
g_iCoiniPlayer ] = 0;
        
g_bUserConnectediPlayer ] = true;

        if(
is_user_bot(iPlayer) || is_user_hltv(iPlayer)) return;

        if(
g_Coins_nVault == INVALID_HANDLE)
        {
                
g_Coins_nVault nvault_open("hats_players_coins");
        }

        if(
g_Coins_nVault != INVALID_HANDLE)
        {
                new 
szAuthID[32];
                
get_user_authid(iPlayerszAuthIDcharsmax(szAuthID));
                
g_iCoiniPlayer ] = nvault_get(g_Coins_nVaultszAuthID);

                
nvault_close(g_Coins_nVault);
                
g_Coins_nVault INVALID_HANDLE;
        }

        
set_task60.0 Kac_Dakikada_Bir"GiveCoin"iPlayer+TASK_FREE_COINS);
}

public 
client_disconnect(iPlayer)
{
        if(!
g_bUserConnectediPlayer ]) return;

        
SetUserHat(iPlayer,-1);
        
g_bUserConnectediPlayer ] = false;
        
arraysetg_bHatAlreadyBeenBoughtiPlayer ], falsesizeof g_bHatAlreadyBeenBought[] );

        if(
is_user_bot(iPlayer) || is_user_hltv(iPlayer)) return;

        if(
g_Coins_nVault == INVALID_HANDLE)
        {
                
g_Coins_nVault nvault_open("hats_players_coins");
        }

        if(
g_Coins_nVault != INVALID_HANDLE)
        {
                new 
szAuthID[32], szValue[12];
                
get_user_authid(iPlayerszAuthIDcharsmax(szAuthID));
                
num_to_str(g_iCoiniPlayer ], szValuecharsmax(szValue));
                
nvault_set(g_Coins_nVaultszAuthIDszValue);

                
nvault_close(g_Coins_nVault);
                
g_Coins_nVault INVALID_HANDLE;
        }
}

public 
GiveCoin(const iTaskID
{
        new 
iPlayer iTaskID-TASK_FREE_COINS;
        if(
g_bUserConnected[iPlayer])
        {
                
g_iCoin[iPlayer] += 10;
                
set_task60.0 Kac_Dakikada_Bir"GiveCoin"iPlayer TASK_FREE_COINS);
                
client_print_color(iPlayeriPlayer"^1[ ^3- ^4%s ^3- ^1] ^1Sunucuda %i dakika durdugunuz icin 10 Coin kazandiniz."g_szTAGfloatround(60.0*Kac_Dakikada_Bir))
        }
}

public 
TakeDamage(const pVictim, const pInflictor, const pAttackerFloat:flDamagebitsDamageType)
{
        if(!
g_bUserConnected[pAttacker]) || !rg_is_player_can_takedamage(pVictimpAttacker) || pVictim == pAttacker) return;
 
        
g_iCoin[pAttacker] += random_num(1,5);
}

public 
OpenHatMenu(const iPlayer)
{
        if(!
is_user_alive(iPlayer))
        {
                
client_print_color(iPlayeriPlayer"^1[ ^3- ^4%s ^3- ^1] ^1You must be alive in order to open the hats menu"g_szTAG);
                return;
        }

        new 
Menu menu_create(fmt("\d( \r%s \d) \y~> Sapka Menüsü \y~> \wSizdeki Coin: \r%i"g_szTAGg_iCoin[iPlayer]), "OpenHatMenu_");
        
        
menu_additem(Menu,fmt("\r[\y%s\r] \d~> \wSapkayi \rCikar^n"g_szTAG),"333");
        
        static 
maxloop 0; if(!maxloopmaxloop sizeof g_aHATS_DATA;

        for(new 
iMenuItemiMenuItem maxloop iMenuItem++)
        {
                if(
g_bHatAlreadyBeenBought[iPlayer][iMenuItem])
                        
menu_additem(Menufmt("\r[\y%s\r] \d~> \w%s"g_szTAGg_aHATS_DATA[iMenuItem][HAT_NAME]), fmt("%i",iMenuItem));
                else
                        
menu_additem(Menufmt("\r[\y%s\r] \d~> \w%s \d[\w%d \yCoin\d]"g_szTAGg_aHATS_DATA[iMenuItem][HAT_NAME], g_aHATS_DATA[iMenuItem][HAT_PRICE]), fmt("%i",iMenuItem));
        }

        
menu_setprop(MenuMPROP_BACKNAME,"Önceki Sayfa");
        
menu_setprop(MenuMPROP_NEXTNAME,"Sonraki Sayfa");
        
menu_setprop(MenuMPROP_EXITNAME,"\wKapat");
        
menu_display(iPlayerMenu);
}

public 
OpenHatMenu_(const iPlayer,const iMenu, const iItem)
{
        if(
iItem == MENU_EXIT)
        {
                
menu_destroy(iMenu);
                return 
PLUGIN_HANDLED;
        }

        if(!
is_user_alive(iPlayer))
        {
                
client_print_color(iPlayeriPlayer"^1[ ^3- ^4%s ^3- ^1] ^1You must be alive in order to use the hats menu"g_szTAG);
                
menu_destroy(iMenu);
                return 
PLUGIN_HANDLED;
        }

        new 
iData[6], iKey;
        
menu_item_getinfo(iMenuiItem_iDatacharsmax(iData));
        
iKey str_to_num(iData);

        if(
iKey == 333)
        {
                
SetUserHat(iPlayer,-1);
                
menu_destroy(iMenu);
                return 
PLUGIN_HANDLED;
        }

        if(
g_bHatAlreadyBeenBought[iPlayer][iKey])
        {
                
SetUserHat(iPlayer,-1);
                
SetUserHat(iPlayer,iKey);
        }
        else if(
g_iCoin[iPlayer] >= g_aHATS_DATA[iKey][HAT_PRICE])
        {
                
g_iCoin[iPlayer] -= g_aHATS_DATA[iKey][HAT_PRICE];
                
g_bHatAlreadyBeenBought[iPlayer][iKey] = true;
                
SetUserHat(iPlayer,-1);
                
SetUserHat(iPlayer,iKey);
        }
        else
        {
                
client_print_color(iPlayeriPlayer"^1[ ^3- ^4%s ^3- ^1] ^1Yeterli paraniz bulunmuyor! Gereken: ^3%i ^4Coin"g_szTAGg_aHATS_DATA[iKey][HAT_PRICE] - g_iCoin[iPlayer]);
                
OpenHatMenu(iPlayer);
        }

        
menu_destroy(iMenu);
        return 
PLUGIN_HANDLED;
}

public 
SetUserHat(const iPlayer, const iHatNum)
{
        switch(
iHatNum)
        {
                case -
1:
                {
                        if(
g_iHat_Ent[iPlayer] > 0rg_remove_entityg_iHat_Ent[iPlayer] );
                        
g_iHat_Ent[iPlayer] = 0;
                }
                default:
                {
                        
g_iHat_Ent[iPlayer] = rg_create_entity("info_target");
                        
set_entvar(g_iHat_Ent[iPlayer], var_movetypeMOVETYPE_FOLLOW);
                        
set_entvar(g_iHat_Ent[iPlayer], var_aimentiPlayer);
                        
set_entvar(g_iHat_Ent[iPlayer], var_rendermodekRenderNormal);
                        
set_entvar(g_iHat_Ent[iPlayer], var_modelindexg_aHATS_DATA[iHatNum][HAT_MODEL]);
                }
        }
}

rg_remove_entity(const iEnt)
{
        if(
is_entity(iEnt))
        {
                
set_entvar(iEnt,var_flags,FL_KILLME);
        }

Here you go...
__________________
@Jailbreak Main Mod v2.7.0 100%
@User Tag Prefix 100% done !
@Mystery Box 100% done !
@VIP System 100% done !


Last edited by Natsheh; 10-19-2021 at 00:13.
Natsheh is offline
Send a message via MSN to Natsheh Send a message via Skype™ to Natsheh