• Гость, перед открытием темы прочитай описание раздела, чтобы не ошибиться. Любые вопросы по настройке сервера создаются в разделе Технической Поддержки.

Помощь инклюды aes_v и работа с нативами (памагити :с)

Romik67ru

Участник
Сообщения
22
Симпатии
0
Баллы
57
#1
1. Компилятор выдаёт такую ошибку:

1616872894448.png

Я сунул #define MAX_NAME_LENGHT 32 в инклуд aes_v, но всёрн не помогает

1616872960318.png

Что делать чтобы убрать эту ошибку?

2. Правильно ли я делаю?

Я хочу использовать бонусы (/anew) из aes как валюту в другом плагине.

1616873055921.png

правильно ли я сделал и вообщем как сделать так, чтобы работало?

C++:
#include <amxmodx>
#include <aes_v>

#pragma compress 1
#pragma tabsize 0

#define PLUGIN "ShopMenu"
#define VERSION "1.0"
#define AUTHOR "Juvinium"

public plugin_init(){
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_clcmd("shoppmenu", "Show_ShopMenu")
        
        register_menucmd(register_menuid("Show_ShopMenu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<7|1<<9), "Handle_ShopMenu");
}

public Show_ShopMenu(id)
{
        new bonuses = aes_get_player_bonus(id)   
        
        new szMenu[512], iKeys = (1<<9), iLen
        iLen = formatex(szMenu[iLen], charsmax(szMenu), "\yМагазин^n\dУ тебя: %s-JC^n", bonuses)
 
        if (aes_get_player_bonus(id) >= 1 && is_user_alive(id))
        {
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\w1\r] \wЧё-то \r[\y1-JC\r]^n")
        iKeys |= (1<<0)
        }
        else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\d#\r] \dЧё-то \r[\d1-JC\r]^n")
        
        
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\w8\r] \wНазад^n")
        iKeys |= (1<<7)
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\d#\r] \dДалее^n")
        iKeys |= (1<<8)
 
        formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\w0\r] \wВыход")
        iKeys |= (1<<9)
        return show_menu(id, iKeys, szMenu, -1, "Show_ShopMenu");
}
 
public Handle_ShopMenu(id, iKey)
{
        switch(iKey)
    {
        case 0: if (aes_get_player_bonus(id) >=1)
        {
            print_color_chat(id, "!g[!nМагазин!g] !nТы !nкупил себе !tЧё-то!n.");
            aes_set_player_bonus(id, aes_get_player_bonus(id) - 1)
        }

        case 7: client_cmd(id, "privmenu")
        case 9: return PLUGIN_HANDLED;
    }
        return Show_ShopMenu(id);
}

stock print_color_chat(const index, const input[], any:...) {
        #define gmsg_SayText 76
        static msg[191];
        new count = 1,players[32];
        vformat(msg, 190, input, 3);
        replace_all(msg,sizeof(msg),"!g","^4");
        replace_all(msg,sizeof(msg),"!t","^3");
        replace_all(msg,sizeof(msg),"!n","^1");
        if(index) players[0] = index; else get_players(players,count,"ch");
        for(new i = 0; i < count; i++) {
                if(!is_user_connected(players[i])) return;
                message_begin(MSG_ONE_UNRELIABLE,gmsg_SayText,_,players[i]);
                write_byte(players[i]);
                write_string(msg);
                message_end();
        }
}

C++:
//
//    Advanced Experience System
//    by serfreeman1337    http://gf.hldm.org/
//

enum _:
{
    AES_RT_NO,
    AES_RT_YES,
    AES_RT_LEVEL_DOWN,
    AES_RT_LEVEL_UP
}

//
// Array structure for get stats with aes_find_stats_thread native
//
enum _:aes_stats_struct
{
    AES_S_NAME[MAX_NAME_LENGTH],
    AES_S_STEAMID[30],
    AES_S_IP[16],
    
    Float:AES_S_EXP,
    AES_S_LEVEL,
    AES_S_BONUS,
    
    AES_S_ID
}

#define AES_MAX_LEVEL_LENGTH 32
#define MAX_NAME_LENGTH 32

//
// Returns player experience
//    @player - player id
//   
//    @return - player experience or -1.0 if player not tracked yet
//
native Float:aes_get_player_exp(player)

//
// Sets player experience
//    @player - player id
//    @exp - experience value
//    @no_forward - dont trigger forward functions on level up or level down
//    @force - force even if track paused
//
//    @return
//        AES_RT_NO - on track pause or player not tracked yet
//        AES_RT_YES - on success
//        AES_RT_LEVLE_DOWN - on level down
//        AES_RT_LEVEL_UP - on level up
//
native aes_set_player_exp(player,Float:exp,bool:no_forward = false,bool:force = false)

//
// Returns player required experience to next level
//    @player - player id
//
//    @return - required experience value
//
native Float:aes_get_player_reqexp(player)

//
// Returns player bonus points
//    @player - player id
//
//    @return - player bonus points or -1 if player
//
native aes_get_player_bonus(player)

//
// Sets player bonus points
//    @player - player id
//    @bonus - bonus value
//    @force - force even if track paused
//
//    @return
//        AES_RT_NO - on track pause or player not tracked yet
//        AES_RT_YES - on success
//
native aes_set_player_bonus(player,bonus,bool:force = false)

//
// Returns current player level
//    @player - player id
//
//    @return - current player level or -1 if player not tracked yet
//
native aes_get_player_level(player)

//
// Sets player level
//    @player - player id
//    @level - level
//    @force - force even if track paused
//
//    @return
//        AES_RT_NO - on track pause or player not tracked yet
//        AES_RT_YES - on success
//
native aes_set_player_level(player,level,bool:force = false)

//
// Returns maximum level
//
native aes_get_max_level()

//
// Returns level name for level num.
//   
//    @level - level number
//    @level[] - level name output
//    @len - len
//    @idLang - language id
//   
//    @return - len
//
native aes_get_level_name(level,level_name[],len,idLang = LANG_SERVER)

//
// Returns level for experience
//    @exp - experience value
//   
//    @return - level num or -1 of fail
//
native aes_get_exp_level(Float:exp)

//
// Returns required experience to pass level
//    @lvl - level
//
//    @return - required experience value or -1.0 on fail
//
native Float:aes_get_level_reqexp(level)

//
// Thread search for aes stats witch given array track_ids
//    @id - player id
//    @track_ids - dynamic array with track ids for search
//    @callback - your callback function
//        public my_callback(id,Array:aes_stats,stats_data[])
//    @data[] - custom data
//    @data_size - custom data size
//
//    @return - true or false
//
native aes_find_stats_thread(id = 0,Array:track_ids,callback[],data[] = "",datasize = 0)

//
// Called on player level up.
//
forward aes_player_levelup(id,new_level,old_level)

//
// Called on player level down.
//
forward aes_player_leveldown(id,new_level,old_level)

#define aes_add_player_exp_f(%0,%1) aes_set_player_exp(%0,aes_get_player_exp(%0) + %1)
#define aes_add_player_bonus_f(%0,%1) aes_set_player_bonus(%0,aes_get_player_bonus(%0) + %1)
 

Romik67ru

Участник
Сообщения
22
Симпатии
0
Баллы
57
#2
Решено.
#define MAX_NAME_LENGHT 32 нужно было вставить в начало инклуда или плагина.
 
Сверху