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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

adminmenu c определённым флагом(HELP)

Статус пользователя firante
сообщение 5.3.2014, 17:49
Сообщение #1


Стаж: 12 лет

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

Пацаны помогите решить проблему!
Исходник
Код:
#include <amxmodx>
#include <amxmisc>
#include <colorchat>

#define PLUGIN "AdminMenuExample"
#define VERSION "1.0"
#define AUTHOR "SLIMSHADY"

new day[32]

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /adminmenu","main_menu")
register_clcmd("say /status","daychat")


}


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)

// Проверяем игрока через Name или Steam (проверку через IP сделаете сами если нужно)
if(equal(admin, name) || equal(admin, st))
{
day[id]=str_to_num(x_days)
return PLUGIN_HANDLED
}

}
}
fclose(iFiled)

}
return PLUGIN_HANDLED
}



public daychat(id)
if(is_user_admin(id))
//client_print_color(id, RED, "^4[^3ProStrike^4] ^4Ваши привилегии закончатся через ^3%d дней.", day[id])

public main_menu(id)
{
if(is_user_admin(id))
{
// Формируем заголовок меню для админа
new szArgs[256]
formatex(szArgs, charsmax(szArgs), "\yАдмин меню\w \d[\rProStrike\d]\w^n\yОсталось\w \d[\r%d\d]\w \yдней", day[id])

new i_Menu = menu_create(szArgs, "main_opt")
menu_additem(i_Menu, "\yКикнуть", "1", 0)
menu_additem(i_Menu, "\yЗабанить", "2", 0)
menu_additem(i_Menu, "\yУдарить/Убить", "3", 0)
menu_additem(i_Menu, "\yСменить команду", "4", 0)
menu_additem(i_Menu, "\yСменить карту", "5", 0)
menu_additem(i_Menu, "\yГолосование за карту", "6", 0)
menu_additem(i_Menu, "\yБесплатная оружейка", "7", 0)
menu_setprop(i_Menu, MPROP_EXITNAME, "\yВыход")

if(get_user_flags(id) & ADMIN_BAN){
menu_display(id, i_Menu, 0)
}else{
client_print_color(id, RED, "^4[^3ProStrike^4] ^3У вас не достаточно прав для использования данной команды.")
}
}

public main_opt(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Key = str_to_num(s_Data)
switch(i_Key)
{
case 1:
{
console_cmd(id, "amx_kickmenu")
}
case 2:
{
console_cmd(id, "amx_banmenu")
}
case 3:
{
console_cmd(id, "amx_slapmenu")
}
case 4:
{
console_cmd(id, "amx_teammenu")
}
case 5:
{
console_cmd(id, "amx_mapmenu")
}
case 6:
{
console_cmd(id, "amx_votemapmenu")
}
case 7:
{
console_cmd(id, "say /weaponmenu")
}
}
return PLUGIN_HANDLED
}
stock client_printcolor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}

Скрин


!
Предупреждение:
В данном разделе обсуждаются вопросы, связанные с клиентской частью.
Перемещено.


Отредактировал: Bloo, - 28.5.2014, 12:04
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Esecman
сообщение 5.3.2014, 17:55
Сообщение #2
Стаж: 12 лет

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

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

#define PLUGIN "AdminMenuExample"
#define VERSION "1.0"
#define AUTHOR "SLIMSHADY"

new day[32]

public plugin_init() {

register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /adminmenu","main_menu")
register_clcmd("say /status","daychat")
}


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)

// Проверяем игрока через Name или Steam (проверку через IP сделаете сами если нужно)
if(equal(admin, name) || equal(admin, st))
{
day[id]=str_to_num(x_days)
return PLUGIN_HANDLED
}

}
}
fclose(iFiled)

}
return PLUGIN_HANDLED
}


public main_menu(id)
{
if(is_user_admin(id))
{

new szArgs[256]
formatex(szArgs, charsmax(szArgs), "\yАдмин меню\w \d[\rProStrike\d]\w^n\yОсталось\w \d[\r%d\d]\w \yдней", day[id])

new i_Menu = menu_create(szArgs, "main_opt")
menu_additem(i_Menu, "\yКикнуть", "1", 0)
menu_additem(i_Menu, "\yЗабанить", "2", 0)
menu_additem(i_Menu, "\yУдарить/Убить", "3", 0)
menu_additem(i_Menu, "\yСменить команду", "4", 0)
menu_additem(i_Menu, "\yСменить карту", "5", 0)
menu_additem(i_Menu, "\yГолосование за карту", "6", 0)
menu_additem(i_Menu, "\yБесплатная оружейка", "7", 0)
menu_setprop(i_Menu, MPROP_EXITNAME, "\yВыход")

if(get_user_flags(id) & ADMIN_BAN){
menu_display(id, i_Menu, 0)
}else{
client_printcolor(id, "^4[^3ProStrike^4] ^3У вас не достаточно прав для использования данной команды.")
}
}
}

public main_opt(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Key = str_to_num(s_Data)
switch(i_Key)
{
case 1:
{
console_cmd(id, "amx_kickmenu")
}
case 2:
{
console_cmd(id, "amx_banmenu")
}
case 3:
{
console_cmd(id, "amx_slapmenu")
}
case 4:
{
console_cmd(id, "amx_teammenu")
}
case 5:
{
console_cmd(id, "amx_mapmenu")
}
case 6:
{
console_cmd(id, "amx_votemapmenu")
}
case 7:
{
console_cmd(id, "say /weaponmenu")
}
}
return PLUGIN_HANDLED
}
stock client_printcolor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя firante
сообщение 5.3.2014, 18:02
Сообщение #3


Стаж: 12 лет

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

Esecman
Спасибо проверил випом флаги (abt) всё как надо работает и сообщение выходит! Но зашёл простым игроком с флагом (Z) не выходит сообщение -> Это (У вас не достаточно прав для использования данной команды)

Отредактировал: firante, - 5.3.2014, 18:03
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 5.3.2014, 18:35
Сообщение #4
Стаж: 12 лет

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

Цитата(firante @ 5.3.2014, 19:02) *
Esecman
Спасибо проверил випом флаги (abt) всё как надо работает и сообщение выходит! Но зашёл простым игроком с флагом (Z) не выходит сообщение -> Это (У вас не достаточно прав для использования данной команды)

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

#define PLUGIN "AdminMenuExample"
#define VERSION "1.0"
#define AUTHOR "SLIMSHADY"

new day[32]

public plugin_init() {

register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /adminmenu","main_menu")
}


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)

// Проверяем игрока через Name или Steam (проверку через IP сделаете сами если нужно)
if(equal(admin, name) || equal(admin, st))
{
day[id]=str_to_num(x_days)
return PLUGIN_HANDLED
}

}
}
fclose(iFiled)

}
return PLUGIN_HANDLED
}


public main_menu(id)
{
if(is_user_admin(id))
{

new szArgs[256]
formatex(szArgs, charsmax(szArgs), "\yАдмин меню\w \d[\rProStrike\d]\w^n\yОсталось\w \d[\r%d\d]\w \yдней", day[id])

new i_Menu = menu_create(szArgs, "main_opt")
menu_additem(i_Menu, "\yКикнуть", "1", 0)
menu_additem(i_Menu, "\yЗабанить", "2", 0)
menu_additem(i_Menu, "\yУдарить/Убить", "3", 0)
menu_additem(i_Menu, "\yСменить команду", "4", 0)
menu_additem(i_Menu, "\yСменить карту", "5", 0)
menu_additem(i_Menu, "\yГолосование за карту", "6", 0)
menu_additem(i_Menu, "\yБесплатная оружейка", "7", 0)
menu_setprop(i_Menu, MPROP_EXITNAME, "\yВыход")

if(get_user_flags(id) & ADMIN_BAN){
menu_display(id, i_Menu, 0)
}
if(!(get_user_flags(id) & ADMIN_BAN)) {
client_printcolor(id, "^4[^3ProStrike^4] ^3У вас не достаточно прав для использования данной команды.")
}
}
}

public main_opt(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Key = str_to_num(s_Data)
switch(i_Key)
{
case 1:
{
console_cmd(id, "amx_kickmenu")
}
case 2:
{
console_cmd(id, "amx_banmenu")
}
case 3:
{
console_cmd(id, "amx_slapmenu")
}
case 4:
{
console_cmd(id, "amx_teammenu")
}
case 5:
{
console_cmd(id, "amx_mapmenu")
}
case 6:
{
console_cmd(id, "amx_votemapmenu")
}
case 7:
{
console_cmd(id, "say /weaponmenu")
}
}
return PLUGIN_HANDLED
}
stock client_printcolor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 5.3.2014, 18:52
Сообщение #5
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

firante,
!
Предупреждение:
Прежде чем тему создавать, раздел выбирайте правильный.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя firante
сообщение 5.3.2014, 18:58
Сообщение #6


Стаж: 12 лет

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

Esecman
Всё равно не работает пишу /adminmenu не выходит сообщение (
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 5.3.2014, 19:03
Сообщение #7
Стаж: 12 лет

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

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

#define PLUGIN "AdminMenuExample"
#define VERSION "1.0"
#define AUTHOR "SLIMSHADY"

new day[32]

public plugin_init() {

register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /adminmenu","main_menu")
}


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)

// Проверяем игрока через Name или Steam (проверку через IP сделаете сами если нужно)
if(equal(admin, name) || equal(admin, st))
{
day[id]=str_to_num(x_days)
return PLUGIN_HANDLED
}

}
}
fclose(iFiled)

}
return PLUGIN_HANDLED
}


public main_menu(id)
{
if(is_user_admin(id))
{

new szArgs[256]
formatex(szArgs, charsmax(szArgs), "\yАдмин меню\w \d[\rProStrike\d]\w^n\yОсталось\w \d[\r%d\d]\w \yдней", day[id])

new i_Menu = menu_create(szArgs, "main_opt")
menu_additem(i_Menu, "\yКикнуть", "1", 0)
menu_additem(i_Menu, "\yЗабанить", "2", 0)
menu_additem(i_Menu, "\yУдарить/Убить", "3", 0)
menu_additem(i_Menu, "\yСменить команду", "4", 0)
menu_additem(i_Menu, "\yСменить карту", "5", 0)
menu_additem(i_Menu, "\yГолосование за карту", "6", 0)
menu_additem(i_Menu, "\yБесплатная оружейка", "7", 0)
menu_setprop(i_Menu, MPROP_EXITNAME, "\yВыход")

if(get_user_flags(id) & ADMIN_BAN){
menu_display(id, i_Menu, 0)
}
}
if(!(get_user_flags(id) & ADMIN_BAN)) {
client_printcolor(id, "^4[^3ProStrike^4] ^3У вас не достаточно прав для использования данной команды.")
}
}

public main_opt(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Key = str_to_num(s_Data)
switch(i_Key)
{
case 1:
{
console_cmd(id, "amx_kickmenu")
}
case 2:
{
console_cmd(id, "amx_banmenu")
}
case 3:
{
console_cmd(id, "amx_slapmenu")
}
case 4:
{
console_cmd(id, "amx_teammenu")
}
case 5:
{
console_cmd(id, "amx_mapmenu")
}
case 6:
{
console_cmd(id, "amx_votemapmenu")
}
case 7:
{
console_cmd(id, "say /weaponmenu")
}
}
return PLUGIN_HANDLED
}
stock client_printcolor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}


{Должно работать};
Ошибочку нашел sad.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя firante
сообщение 5.3.2014, 19:07
Сообщение #8


Стаж: 12 лет

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

Теперь всё работает держи спасибо ) я заметил ты убрал /status почему? Она мешает ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 5.3.2014, 19:09
Сообщение #9
Стаж: 12 лет

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

Цитата(firante @ 5.3.2014, 20:07) *
Теперь всё работает держи спасибо ) я заметил ты убрал /status почему? Она мешает ?

А нафиг она нужна?
И не надо :-)

Чушь на 2 строчки.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя firante
сообщение 5.3.2014, 19:11
Сообщение #10


Стаж: 12 лет

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

Цитата(Esecman @ 5.3.2014, 19:09) *
А нафиг она нужна?
И не надо :-)

Чушь на 2 строчки.

Спасибо от души )) Последний вопрос Можно так же под випку сделать чтобы в менюшку випки тоже показывало сколько осталось дней?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 5.3.2014, 19:15
Сообщение #11
Стаж: 12 лет

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

Цитата(firante @ 5.3.2014, 20:11) *
Спасибо от души )) Последний вопрос Можно так же под випку сделать чтобы в менюшку випки тоже показывало сколько осталось дней?

Если кто бесплатно согласится помочь - поможет.

Просто сделай чтение из файла, затем юзани formatex и все :-)
Ах, да. Забыл. Добавить equal(сравнения) при чтение из файла(while(!feof(file))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя firante
сообщение 5.3.2014, 19:21
Сообщение #12


Стаж: 12 лет

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

Цитата(Esecman @ 5.3.2014, 19:15) *
Если кто бесплатно согласится помочь - поможет.

Просто сделай чтение из файла, затем юзани formatex и все :-)
Ах, да. Забыл. Добавить equal(сравнения) при чтение из файла(while(!feof(file))


И это ты говоришь тому человеку который не смог просто добавить флаг доступа для админки ))) А на счёт бесплатного то на врятли кроме тебя есть люди которые просто так помогают )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя firante
сообщение 5.3.2014, 19:37
Сообщение #13


Стаж: 12 лет

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

Esecman
Если за денежку за сколько сделаешь мне под випку?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 5.3.2014, 19:41
Сообщение #14
Стаж: 12 лет

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

Цитата(firante @ 5.3.2014, 20:37) *
Esecman
Если за денежку за сколько сделаешь мне под випку?

это лучше обсудить в ЛС или в icq(в профиле)
отходите от темы :D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: