Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Проблема с amxmodmenu

Статус пользователя bekasuper
сообщение 6.1.2016, 14:51
Сообщение #1
Стаж: 11 лет

Сообщений: 6
Благодарностей: 1
Полезность: 0

проблема в том что когда я прописываю админку на 30 дней или 106666 дней, да при любом значении выходит надпись "админка навсегда"
где ошибка?как сделать чтоб когда прописывал на 30дней показывало что у него на 30 дней,а когда на 1100 у него навсегда. помогите

Код:
#include <amxmodx>
#include <amxmisc>
#include <dhudmessage>

new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MEN
U_KEY_8|MENU_KEY_9|MENU_KEY_0

#define PLUGIN "amxmodmenu"
#define VERSION "1.0"
#define AUTHOR "beka"

#define map_timer_change 2
new g_Timer

new g_Data[32]

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_menu("Menu_2", keys, "func_menu2")
register_clcmd("amxmodmenu", "AmxMenu")

g_Timer = get_systime() + 60 * map_timer_change
}
public client_authorized(id)
{
if(is_user_admin(id))
{
new admin[32], pass[32], flags[32], x_access[32], x_days[32],bufferd[128],name[32], st[33]

new iFiled = fopen("/addons/amxmodx/configs/users.ini","r");

get_user_name(id, name, 31)
get_user_authid(id, st, 32)

while(!feof(iFiled))
{
fgets(iFiled,bufferd,255)
trim(bufferd)

if(bufferd[0]=='"')
{
parse(bufferd, admin, 31, pass, 31, flags, 31, x_access, 31, x_days, 31)

if(equal(admin, name) || equal(admin, st))
{
g_Data[id]=str_to_num(x_days)
return PLUGIN_HANDLED
}
}
}
fclose(iFiled)
}
return PLUGIN_HANDLED
}
public plugin_precache()
{
precache_sound("misc/admin_restart.wav" )
}
public AmxMenu(id)
{
static menu[650], iLen
iLen = 0
if(get_user_flags(id) & ADMIN_LEVEL_D)
if(g_Data[id])
iLen = formatex( menu[iLen], charsmax( menu ) - iLen, "\r[\yAmxModMenu\r] ^n \wВы: \rАдминистратор^n \wОсталось: \y[\r%d\y] \wдней.^n^n", g_Data[id] );
else
iLen = formatex( menu[iLen], charsmax( menu ) - iLen, "\r[\yAmxModMenu\r] ^n \wВы: \rАдминистратор^n \wАдминка \rнавсегда.^n^n" );
else
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\r[\yAmxModMenu\r] ^n \wВы: \rИгрок^n^n");

if(get_user_flags(id) & ADMIN_LEVEL_D)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y1. \wКикнуть^n")
keys |= MENU_KEY_1
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y1. \dКикнуть \d[\rНедоступно\d]^n")
keys &= ~MENU_KEY_1
}
if(get_user_flags(id) & ADMIN_LEVEL_D)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y2. \wЗабанить^n")
keys |= MENU_KEY_2
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y2. \dЗабанить \d[\rНедоступно\d]^n")
keys &= ~MENU_KEY_2
}
if(get_user_flags(id) & ADMIN_LEVEL_D)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y3. \wУбить^n")
keys |= MENU_KEY_3
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y3. \dУбить \d[\rНедоступно\d]^n")
keys &= ~MENU_KEY_3
}
if(get_user_flags(id) & ADMIN_LEVEL_D)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y4. \wКоманда Игрока^n")
keys |= MENU_KEY_4
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y4. \dКоманда Игрока \d[\rНедоступно\d]^n")
keys &= ~MENU_KEY_4
}
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
if(g_Timer < get_systime())
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y5. \wСменить карту^n")
else
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y5. \dСменить карту [\rПроиграно \y%d\r/\y%d \rмин\d]^n", map_timer_change - (g_Timer - get_systime()) / 60, map_timer_change)
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y5. \dСменить карту \d[\rНедоступно\d]^n")
}

if(get_user_flags(id) & ADMIN_LEVEL_A)
{
if(g_Timer < get_systime())
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y6. \wГолосование^n")
else
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y6. \dГолосование [\rПроиграно \y%d\r/\y%d \rмин\d]^n", map_timer_change - (g_Timer - get_systime()) / 60, map_timer_change)
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y6. \dГолосование \d[\rНедоступно\d]^n")
}
if(get_user_flags(id) & ADMIN_RCON)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y7. \wСделать Рестарт^n")
keys |= MENU_KEY_7
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y7. \dСделать Рестарт \d[\rНедоступно\d]^n")
keys &= ~MENU_KEY_7
}
if(get_user_flags(id) & ADMIN_LEVEL_D)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y8. \wСделать Скриншот^n")
keys |= MENU_KEY_8
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y8. \dСделать Скриншот \d[\rНедоступно\d]^n")
keys &= ~MENU_KEY_8
}
if(get_user_flags(id) & ADMIN_LEVEL_D)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y9. \wЗаткнуть игрока^n")
keys |= MENU_KEY_9
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y9. \dЗаткнуть игрока \d[\rНедоступно\d]^n")
keys &= ~MENU_KEY_9
}
if(get_user_flags(id) & ADMIN_LEVEL_D)
{

}

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\y0. \wВыход^n")
keys |= MENU_KEY_0

show_menu(id, keys, menu, -1, "Menu_2");
return PLUGIN_HANDLED
}
public func_menu2(id, key)
{
switch(key)
{
case 0: client_cmd(id, "amx_kickmenu")
case 1: client_cmd(id, "amx_banmenu")
case 2: client_cmd(id, "amx_slapmenu")
case 7: client_cmd(id, "amx_ssbanmenu")
case 8: client_cmd(id, "amx_gagmenu")
case 3: client_cmd(id, "amx_teammenu")
case 4:
{
if(g_Timer < get_systime())
client_cmd(id, "amx_mapmenu")
else
AmxMenu(id)
}
case 5:
{
if(g_Timer < get_systime())
client_cmd(id, "amx_votemapmenu")
else
AmxMenu(id)
}
case 6:
{
server_cmd("sv_restartround 3")
new name[32]
get_user_name(id, name, 31)
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.50, 1, 3.0, 4.0, 0.1, 0.2);
show_dhudmessage(id, "Администратор %s Сделал Рестарт", name)
emit_sound(id, CHAN_VOICE, "misc/admin_restart.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}

}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1251\\ deff0\\ deflang1049{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1251\\ deff0\\ deflang1049{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1251\\ deff0\\ deflang1049{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя DRIVE37
сообщение 6.1.2016, 22:49
Сообщение #2


Стаж: 11 лет

Сообщений: 146
Благодарностей: 14
Полезность: 69

Код:
parse(bufferd, admin, 31, pass, 31, flags, 31, x_access, 31, x_days, 31)

попробуй заменить на
Код:
parse(bufferd, admin, 91, pass, 91, flags, 91, x_access, 91, x_days, 91)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bekasuper
сообщение 7.1.2016, 9:00
Сообщение #3
Стаж: 11 лет

Сообщений: 6
Благодарностей: 1
Полезность: 0

Цитата(DRIVE37 @ 7.1.2016, 2:44) *
Код:
parse(bufferd, admin, 31, pass, 31, flags, 31, x_access, 31, x_days, 31)

попробуй заменить на
Код:
parse(bufferd, admin, 91, pass, 91, flags, 91, x_access, 91, x_days, 91)

Изменил,но в админке показывает что админка навсегда при любом значении.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
sevcs
сообщение 7.1.2016, 14:52
Сообщение #4
Стаж: 11 лет

Сообщений: 407
Благодарностей: 169
Полезность: 254

Тут же прописано для игроков с флагом:
Код
if(get_user_flags(id) & ADMIN_LEVEL_D)

Код
iLen = formatex( menu[iLen], charsmax( menu ) - iLen, "\r[\yAmxModMenu\r] ^n \wВы: \rАдминистратор^n \wАдминка \rнавсегда.^n^n" );

По-этому и пишет что навсегда.
Замени слово на: Бесконечно, будет тебе писать:
Код
iLen = formatex( menu[iLen], charsmax( menu ) - iLen, "\r[\yAmxModMenu\r] ^n \wВы: \rАдминистратор^n \wАдминка \rБесконечно.^n^n" );


И к тому же, этот плаг берёт инфу только из файла: users.ini (если админки прописаны именно в нём, тогда тебе будет показывать остаток дней.)
В users.ini должно быть прописано так:
Код
"My Name" "my_password" "abcdefghijklmnopqrstu" "a" "31"

Где 31, кол-во дней.
Соответственно будет тебе писать:
Код
iLen = formatex( menu[iLen], charsmax( menu ) - iLen, "\r[\yAmxModMenu\r] ^n \wВы: \rАдминистратор^n \wОсталось: \y[\r31\y] \wдней.^n^n", g_Data[id] );
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bekasuper
сообщение 7.1.2016, 17:57
Сообщение #5
Стаж: 11 лет

Сообщений: 6
Благодарностей: 1
Полезность: 0

Цитата(sevcs @ 7.1.2016, 18:48) *
Тут же прописано для игроков с флагом:
Код
if(get_user_flags(id) & ADMIN_LEVEL_D)

Код
iLen = formatex( menu[iLen], charsmax( menu ) - iLen, "\r[\yAmxModMenu\r] ^n \wВы: \rАдминистратор^n \wАдминка \rнавсегда.^n^n" );

По-этому и пишет что навсегда.
Замени слово на: Бесконечно, будет тебе писать:
Код
iLen = formatex( menu[iLen], charsmax( menu ) - iLen, "\r[\yAmxModMenu\r] ^n \wВы: \rАдминистратор^n \wАдминка \rБесконечно.^n^n" );


И к тому же, этот плаг берёт инфу только из файла: users.ini (если админки прописаны именно в нём, тогда тебе будет показывать остаток дней.)
В users.ini должно быть прописано так:
Код
"My Name" "my_password" "abcdefghijklmnopqrstu" "a" "31"

Где 31, кол-во дней.
Соответственно будет тебе писать:
Код
iLen = formatex( menu[iLen], charsmax( menu ) - iLen, "\r[\yAmxModMenu\r] ^n \wВы: \rАдминистратор^n \wОсталось: \y[\r31\y] \wдней.^n^n", g_Data[id] );

Спасибо за отзыв. Но теперь другая проблема. Теперь при любом значении показывает что до конца админки 31 день.
У меня мысль можно ли сделать так: Если админка прописана на 1100 или больше то у него в админке показывает "Админка бессрочно". И если админка прописана между 1-1099 то показывает обычно.Например. В users.ini прописано на 42 дня и в админке показывает "До конца админки осталось 42 дней". Я это все пробовал. Но так и не смог. Помогите
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
sevcs
сообщение 7.1.2016, 18:26
Сообщение #6
Стаж: 11 лет

Сообщений: 407
Благодарностей: 169
Полезность: 254

Правильно, у вас и будет всё время показывать 31 день если вы исправили:
Код
iLen = formatex( menu[iLen], charsmax( menu ) - iLen, "\r[\yAmxModMenu\r] ^n \wВы: \rАдминистратор^n \wОсталось: \y[\r31\y] \wдней.^n^n", g_Data[id] );

Надо оставить так:
Код
iLen = formatex( menu[iLen], charsmax( menu ) - iLen, "\r[\yAmxModMenu\r] ^n \wВы: \rАдминистратор^n \wОсталось: \y[\r%d\y] \wдней.^n^n", g_Data[id] );

В users.ini надо прописать так: (пример с днями: 60)
Код
"My Name" "my_password" "abcdefghijklmnopqrstu" "a" "60"

Тогда в меню будет писать:
Код
[AmxModMenu] Вы: Администратор. Осталось: [60] дней.

А вот по поводу этих строк, мне кажется они вообще лишнии или им не хватает какого-то параметра: (попробуйте удалить эти строчки.)
Код
else
                                iLen = formatex( menu[iLen], charsmax( menu ) - iLen, "\r[\yAmxModMenu\r] ^n \wВы: \rАдминистратор^n \wАдминка \rнавсегда.^n^n" );
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bekasuper
сообщение 7.1.2016, 19:04
Сообщение #7
Стаж: 11 лет

Сообщений: 6
Благодарностей: 1
Полезность: 0


Спасибо. А как сделать чтоб кто купил админку навсегда чтоб у них писало ваша админка навсегда. админка навсегда будет прописываться так
"My Name" "my_password" "abcdefghijklmnopqrstu" "a" "100666"
А те кто купили на месяц чтоб у них шел отсчет до конца админки

Отредактировал: GOOD FELLOW, - 10.1.2016, 21:07
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя georgeml
сообщение 8.1.2016, 9:31
Сообщение #8
Стаж: 12 лет

Сообщений: 1467
Благодарностей: 439
Полезность: 423

bekasuper, админка навсегда
"My Name" "my_password" "abcdefghijklmnopqrstu" "a" "0"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bekasuper
сообщение 8.1.2016, 9:41
Сообщение #9
Стаж: 11 лет

Сообщений: 6
Благодарностей: 1
Полезность: 0

Цитата(georgeml @ 8.1.2016, 13:26) *
bekasuper, админка навсегда
"My Name" "my_password" "abcdefghijklmnopqrstu" "a" "0"

Там же в amxmodmenu не будет же писать "Ваша админка бессрочно"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: