Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
dvahitov95 » 16 сен 2017, 12:56
Всем привет. Как сделать ограничение на пункт в меню для всех игроков?
- Код: Выделить всё
new g_limit[33]
public plugin_init()
{
register_event("HLTV", "new_round", "a", "1=0", "2=0")
register_clcmd("menu", "show_menu")
}
public new_round()
{
for(new id = 1; id < MAX_PLAYERS+1; ++id)
{
g_limit[id] = 3
}
}
public show_amxmodmenu(id)
{
new menu = menu_create("\yMenu:", "func_menu")
menu_additem(menu, "Пункт 1 (%d/3)", g_limit[id])
menu_additem(menu, "Пункт 2")
menu_additem(menu, "Пункт 3")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
public func_menu(id, menu, key)
{
key ++
switch(key)
{
case 1:
{
client_print(id, print_chat, "бла")
g_limit[id] = g_limit[id] -1
}
case 2:
{
client_print(id, print_chat, "бла-бла")
}
case 3:
{
client_print(id, print_chat, "бла-бла-бла")
}
}
}
Вот например чтобы 1 пункт можно было купить 3 раза (сам 1 раз и другие игроки 2 раза)
-
dvahitov95
-
- Сообщения: 133
- Зарегистрирован: 07 авг 2017, 17:48
- Благодарил (а): 16 раз.
- Поблагодарили: 1 раз.
- Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#
ALIK » 16 сен 2017, 13:59
- Код: Выделить всё
new g_limit
- Код: Выделить всё
public new_round()
{
g_limit = 0;
}
- Код: Выделить всё
menu_additem(menu, "Пункт 1 (%d/%d)", g_limit, LIMIT)
- Код: Выделить всё
case 1:
{
if(g_limit == LIMIT)
{
client_print(id, print_chat, "LIMIT"); return;
}
g_limit++
client_print(id, print_chat, "бла")
}
-
ALIK
-
- Сообщения: 227
- Зарегистрирован: 01 июн 2010, 23:05
- Благодарил (а): 116 раз.
- Поблагодарили: 55 раз.
- Опыт программирования: Меньше недели
- Языки программирования: Pawn
-
dvahitov95 » 16 сен 2017, 16:17
А так же лимит у меня ток будет не? Если я использую один раз, то у других будет так - "Пункт 1 (2/3)"?
-
dvahitov95
-
- Сообщения: 133
- Зарегистрирован: 07 авг 2017, 17:48
- Благодарил (а): 16 раз.
- Поблагодарили: 1 раз.
- Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing [Bot], xhewal и гости: 7