1. Компилятор выдаёт такую ошибку:
Я сунул #define MAX_NAME_LENGHT 32 в инклуд aes_v, но всёрн не помогает
Что делать чтобы убрать эту ошибку?
2. Правильно ли я делаю?
Я хочу использовать бонусы (/anew) из aes как валюту в другом плагине.
правильно ли я сделал и вообщем как сделать так, чтобы работало?
Я сунул #define MAX_NAME_LENGHT 32 в инклуд aes_v, но всёрн не помогает
Что делать чтобы убрать эту ошибку?
2. Правильно ли я делаю?
Я хочу использовать бонусы (/anew) из aes как валюту в другом плагине.
правильно ли я сделал и вообщем как сделать так, чтобы работало?
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)