View Single Post
Erra
Member
Join Date: Jun 2021
Old 10-13-2021 , 19:48   Re: hello, this hat system gives coins at a certain time, but when the map changes, t
Reply With Quote #8

Quote:
Originally Posted by CrazY. View Post
Code:
#include <amxmodx>
#include <nvault>
#include <reapi>
#define Kac_Dakikada_Bir 5

new const sTag[] = "GitHub";

new g_vault

new const sHats[][][] = { {"","",0},
        {"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 iHatModels[sizeof(sHats)+1],iHatEnt[MAX_PLAYERS+1],iCoin[MAX_PLAYERS+1];
new g_authid[MAX_PLAYERS+1][MAX_AUTHID_LENGTH]
public plugin_precache() {
        for(new i=1; i < sizeof(sHats);i++)
                iHatModels[i] = precache_model(sHats[i][1][0]);
}
public plugin_natives() {
        register_native("nGetUserCoin","@NTV_CN");
}
@NTV_CN() {
        new iJlayer = get_param(1);
        return iCoin[iJlayer];
}
public plugin_init() {
        register_plugin("Sapka Menü", "1.0", "PawNod'");
 
        register_clcmd("say /sapka","@OpenHatMenu");
        register_clcmd("say /hat","@OpenHatMenu");

        g_vault = nvault_open("coins")
}

public plugin_end()
{
        if (g_vault != INVALID_HANDLE)
                nvault_close(g_vault)
}
public client_authorized(id, const authid[])
{
        if (!is_user_bot(id) && !is_user_hltv(id) && g_vault != INVALID_HANDLE)
        {
                copy(g_authid[id], charsmax(g_authid[]), authid)
                iCoin[id] = nvault_get(g_vault, authid)
        }
}
public client_disconnected(id)
{

        if (!is_user_bot(id) && !is_user_hltv(id) && g_vault != INVALID_HANDLE)
        {
                new value[32]
                formatex(value, charsmax(value), "%d", iCoin[id])
                nvault_set(g_vault, g_authid[id], value)
        }
        
        iCoin[id] = 0
}
public client_putinserver(iPlayer) {
        set_task(60.0*Kac_Dakikada_Bir,"@GiveCoin",iPlayer+779933);
        @SetUserHat(iPlayer,0);
}
@GiveCoin(const iTaskID) {
        new iPlavyer = iTaskID-779933;
        if(is_user_connected(iPlavyer)) {
                iCoin[iPlavyer] += 10;
                set_task(60.0*Kac_Dakikada_Bir,"@GiveCoin",iPlavyer+779933);
                client_print_color(iPlavyer, iPlavyer, "^1[ ^3- ^4%s ^3- ^1] ^1Sunucuda %i dakika durdugunuz icin 10 Coin kazandiniz.",sTag,floatround(60.0*Kac_Dakikada_Bir))
        }
}
@TakeDamage(const pVictim, const pInflictor, const pAttacker, Float:flDamage, bitsDamageType) {
        if(!is_user_connected(pAttacker) || !rg_is_player_can_takedamage(pVictim, pAttacker) || pVictim == pAttacker) return;
 
        iCoin[pAttacker] += random_num(1,5);
}
@OpenHatMenu(const iPlayer) {
        new Menu = menu_create(fmt("\d( \r%s \d) \y~> Sapka Menüsü \y~> \wSizdeki Coin: \r%i",sTag,iCoin[iPlayer]), "@OpenHatMenu_");
        menu_additem(Menu,fmt("\r[\y%s\r] \d~> \wSapkayi \rCikar^n",sTag),"333");
        for(new fMenu=1;fMenu<sizeof(sHats);fMenu++)
                menu_additem(Menu,fmt("\r[\y%s\r] \d~> \w%s \d[\w%d \yCoin\d]", sTag,sHats[fMenu][0][0],sHats[fMenu][2][0]),fmt("%i",fMenu));
        menu_setprop(Menu, MPROP_BACKNAME,"Önceki Sayfa"),menu_setprop(Menu, MPROP_NEXTNAME,"Sonraki Sayfa"),menu_setprop(Menu, MPROP_EXITNAME,"\wKapat");
        menu_display(iPlayer, Menu);
}
@OpenHatMenu_(const iPlayer,const iMenu, const iItem) {
        if(iItem == MENU_EXIT) { menu_destroy(iMenu);return PLUGIN_HANDLED; }
        new iData[6], iKey;
        menu_item_getinfo(iMenu, iItem, _, iData, charsmax(iData));
        iKey = str_to_num(iData);
        if(iKey == 333) {
                @SetUserHat(iPlayer,0);
                menu_destroy(iMenu);return PLUGIN_HANDLED;
        }
        if(iCoin[iPlayer] >= sHats[iKey][2][0]) {
                iCoin[iPlayer] -= sHats[iKey][2][0];
                @SetUserHat(iPlayer,0),@SetUserHat(iPlayer,iKey);
        }
        else client_print_color(iPlayer, iPlayer, "^1[ ^3- ^4%s ^3- ^1] ^1Yeterli paraniz bulunmuyor! Gereken: ^3%i ^4Coin",sTag,sHats[iKey][2][0]-iCoin[iPlayer]),@OpenHatMenu(iPlayer)
        menu_destroy(iMenu);return PLUGIN_HANDLED;
}
@SetUserHat(const iPlayer, const iHatNum) {
        switch(iHatNum) {
                case 0: {
                        iHatEnt[iPlayer] > 0 ? rg_remove_entity(iHatEnt[iPlayer]):(iHatEnt[iPlayer] = 0);
                }
                default: {
                        iHatEnt[iPlayer] = rg_create_entity("info_target");
                        set_entvar(iHatEnt[iPlayer],var_movetype,MOVETYPE_FOLLOW);
                        set_entvar(iHatEnt[iPlayer],var_aiment,iPlayer);
                        set_entvar(iHatEnt[iPlayer],var_rendermode,kRenderNormal);
                        set_entvar(iHatEnt[iPlayer],var_modelindex,iHatModels[iHatNum]);
                }
        }
}
rg_remove_entity(const iEnt){
        if(is_entity(iEnt))
                set_entvar(iEnt,var_flags,FL_KILLME);
}
thanks a lot but coins are spent when hats are purchased, any chance to fix this?
Erra is offline