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

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

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

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

Изменить код

Статус пользователя default67
сообщение 16.2.2015, 23:48
Сообщение #1


Стаж: 11 лет

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

Всем Привет!)
Есть у меня плагин Respawn Menu Player, нужно сделать выбор игроков через len += formatex, там стоит через menu_additem, я не знаю что на что менять, даже не пытался этого сделать, так как этим мог бы испортить сам плагин.
Заранее Благодарю!)
Код:
#include <amxmodx>
#include <cstrike>
#include <hamsandwich>

public plugin_init()
{
register_clcmd("res_menu", "respawn_menu")
}

public respawn_menu(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
new i_Menu = menu_create("\yВыбирай игрока", "menu_handler")
new s_Players[32], i_Num, i_Player, msg[222]
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
if(is_user_alive(i_Player))
{
formatex(msg, charsmax(msg), "\d%s (\rживой\d)", s_Name)
menu_additem(i_Menu, msg, s_Player, 0)
}
else
{
formatex(msg, charsmax(msg), "%s", s_Name)
menu_additem(i_Menu, msg, s_Player, 0)
}
menu_setprop(i_Menu, MPROP_NEXTNAME, "Дальше")
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад")
menu_setprop(i_Menu, MPROP_EXITNAME, "Закрыть")
}
menu_display(id, i_Menu, 0)
}
}

public menu_handler(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_Player = str_to_num(s_Data)
new name[32]
new name2[32]
get_user_name(id, name, 31)
get_user_name(i_Player, name2, 31)
if(is_user_alive(i_Player))
{
respawn_menu(id)
}
else
{
ExecuteHam(Ham_CS_RoundRespawn, i_Player)
Color_Print(0, "!y[!gRespawn!y] !tАдминистратор !g%s !yвоскресил игрока !g%s", name, name2)
}

menu_destroy(menu)
return PLUGIN_HANDLED
}

stock Color_Print(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, "!t", "^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();
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 17.2.2015, 0:00
Сообщение #2


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

А разница? Смысла 0 в этом
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя default67
сообщение 17.2.2015, 0:02
Сообщение #3


Стаж: 11 лет

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

Цитата(GOOD FELLOW @ 17.2.2015, 1:00) *
А разница? Смысла 0 в этом

Мне через formatex удобнее!))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 17.2.2015, 0:06
Сообщение #4


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Вы конечно простите, но уже ерундой занимаетесь.
Во первых, чтобы сделать так, как просите - нужно меню полностью переписывать.
Во вторых, через то, что щас есть еще удобнее
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя default67
сообщение 17.2.2015, 0:11
Сообщение #5


Стаж: 11 лет

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

Цитата(GOOD FELLOW @ 17.2.2015, 1:06) *
Вы конечно простите, но уже ерундой занимаетесь.
Во первых, чтобы сделать так, как просите - нужно меню полностью переписывать.
Во вторых, через то, что щас есть еще удобнее

Учту.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 17.2.2015, 0:21
Сообщение #6
Стаж: 14 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

GOOD FELLOW, Как раз таки старая система удобнее, хотя тут дело привычки.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 17.2.2015, 0:30
Сообщение #7


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

proff_q, мне лично всё равно какая система, но в данный момент гонять из А в В, чтобы получить одно и тоже, нет смысла
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 17.2.2015, 0:32
Сообщение #8
Стаж: 14 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

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

#define KEYS (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9)

new g_aplayers[33]
new g_players[33][32]

public plugin_init() {
register_clcmd("say /1", "pshow_menu")

register_menu("Players", KEYS, "handler_players", 0)
}

public pshow_menu(id) players_menu(id, 0)

public players_menu(id, page) {
if(page < 0) return PLUGIN_HANDLED

new players[32], aplayers, message[1256], name[32], player
new len = 0

get_players(players, aplayers)

new i = min(page * 8, aplayers)
new start = i - (i % 8)
new end = min(start + 8, aplayers)
page = start / 8

g_players[id] = players
g_aplayers[id] = page

len = formatex(message[len], charsmax(message), "\wВыбор игрока:^n^n")

new bitskeys = MENU_KEY_0
new item

for(i = start; i < end; i++) {
player = players[i]
get_user_name(player, name, 31)

bitskeys |= (1 << item)

len += formatex(message[len], charsmax(message) - len, "%d %s ^n", ++item, name)
}

if(end < aplayers) {
bitskeys |= MENU_KEY_9
formatex(message[len], charsmax(message) - len, "^n9 Далее^n0 %s", page ? "Назад" : "Выход")
}
else
formatex(message[len], charsmax(message) - len, "^n0 %s", page ? "Назад" : "Выход")

show_menu(id, bitskeys, message, -1, "Players")

return PLUGIN_HANDLED
}

public handler_players(id, key) {
switch(key) {
case 8: players_menu(id, ++g_aplayers[id])
case 9: players_menu(id, --g_aplayers[id])
default: {
new player = g_players[id][(g_aplayers[id] * 8) + key]

if(!is_user_connected(player)) {
players_menu(id, g_aplayers[id])

return PLUGIN_HANDLED
}

/*Tut delaem chto-to*/
}
}

return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: