Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
Максим_SerJanT » 17 ноя 2019, 15:04
Стоит прем менюшка, а в ней антидот, всё хорошо, но её можно использовать когда остался последний человек, а нужно как то запретить. Игрался с плагином, что только не делал, ничего не получается. Помогите пж)
- Код: Выделить всё
new g_szNamesArmor[1090], g_szNamesHp[1090], g_szNamesHuman[1090]
public plugin_init()
{
register_plugin("VIP menu", "1.0", "Dorus")
register_clcmd("prem_menu", "vipmenu")
}
public vipmenu(id)
{
if(~get_user_flags(id) & VIP_FLAG)
{
ChatColor(id, "%s Доступно !gпремиум !yигрокам!", PREFIX)
return
}
if(!is_user_alive(id))
{
ChatColor(id, "%s Доступно живым игрокам!", PREFIX)
return
}
new iMenu = menu_create("\yПремиум меню", "menu_vip_handler")
new szBuffer[100], szName[33]
get_user_name(id, szName, charsmax(szName))
if(containi(g_szNamesArmor, szName) == -1)
format(szBuffer, charsmax(szBuffer), "Взять 50 брони")
else
format(szBuffer, charsmax(szBuffer), "\dВзять 50 брони")
menu_additem(iMenu, szBuffer, "1")
if(containi(g_szNamesHp, szName) == -1)
format(szBuffer, charsmax(szBuffer), "Взять 50 здоровья")
else
format(szBuffer, charsmax(szBuffer), "\dВзять 50 здоровья")
menu_additem(iMenu, szBuffer, "2")
if(containi(g_szNamesHuman, szName) == -1)
format(szBuffer, charsmax(szBuffer), "Взять антидот")
else
format(szBuffer, charsmax(szBuffer), "\dВзять антидот")
menu_additem(iMenu, szBuffer, "3")
menu_setprop(iMenu, MPROP_EXITNAME, "Выход")
menu_display(id, iMenu, 0)
}
public menu_vip_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return
}
new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
if(!is_user_alive(id))
{
ChatColor(id, "%s Доступно только живым!", PREFIX)
return
}
new key = str_to_num(data)
new szName[33]
get_user_name(id, szName, charsmax(szName))
switch(key)
{
case 1:
{
if(!zp_get_user_zombie(id))
{
if(containi(g_szNamesArmor, szName) == -1)
{
set_pev(id, pev_armorvalue, pev(id, pev_armorvalue) + float(ARMOR))
ChatColor(id, "%s Вы взяли !g%d брони", PREFIX, ARMOR)
add(g_szNamesArmor, charsmax(g_szNamesArmor), szName, charsmax(szName))
}
else
ChatColor(id, "%s Можно брать !g1 раз !yза карту", PREFIX)
}
else
ChatColor(id, "%s Вы должны быть !gчеловеком", PREFIX)
}
case 2:
{
if(!zp_get_user_zombie(id))
{
if(containi(g_szNamesHp, szName) == -1)
{
set_pev(id, pev_health, pev(id, pev_health) + float(HP))
ChatColor(id, "%s Вы взяли !g%d здоровья", PREFIX, HP)
add(g_szNamesHp, charsmax(g_szNamesHp), szName, charsmax(szName))
}
else
ChatColor(id, "%s Можно брать !g1 раз !yза карту", PREFIX)
}
else
ChatColor(id, "%s Вы должны быть !gчеловеком", PREFIX)
}
case 3:
{
if(zp_get_user_zombie(id))
{
if(!zp_is_nemesis_round() && !zp_is_survivor_round() && !zp_is_swarm_round() && !zp_is_plague_round())
{
if(containi(g_szNamesHuman, szName) == -1)
{
zp_disinfect_user(id, 0)
ChatColor(id, "%s Вы использовали !gАнтидот", PREFIX)
add(g_szNamesHuman, charsmax(g_szNamesHuman), szName, charsmax(szName))
}
else
ChatColor(id, "%s Можно брать !g1 раз !yза карту", PREFIX)
}
else
ChatColor(id, "%s В этом раунде недоступно!", PREFIX)
}
else
ChatColor(id, "%s Доступно только для !gзомби", PREFIX)
}
}
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4");
replace_all(msg, 190, "!y", "^1");
replace_all(msg, 190, "!t", "^3");
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();
}
}
}
}
-
Максим_SerJanT
-
- Сообщения: 75
- Зарегистрирован: 16 авг 2017, 01:32
- Благодарил (а): 7 раз.
- Поблагодарили: 1 раз.
RSO_ » 17 ноя 2019, 22:28
я как всегда не понял чонадо если совсем вырезать то вроде так
но это не точно
- Код: Выделить всё
new g_szNamesArmor[1090], g_szNamesHp[1090] public plugin_init()
{
register_plugin("VIP menu", "1.0", "Dorus")
register_clcmd("prem_menu", "vipmenu")
}
public vipmenu(id)
{
if(~get_user_flags(id) & VIP_FLAG)
{
ChatColor(id, "%s Доступно !gпремиум !yигрокам!", PREFIX)
return
}
if(!is_user_alive(id))
{
ChatColor(id, "%s Доступно живым игрокам!", PREFIX)
return
}
new iMenu = menu_create("\yПремиум меню", "menu_vip_handler")
new szBuffer[100], szName[33]
get_user_name(id, szName, charsmax(szName))
if(containi(g_szNamesArmor, szName) == -1)
format(szBuffer, charsmax(szBuffer), "Взять 50 брони")
else
format(szBuffer, charsmax(szBuffer), "\dВзять 50 брони")
menu_additem(iMenu, szBuffer, "1")
if(containi(g_szNamesHp, szName) == -1)
format(szBuffer, charsmax(szBuffer), "Взять 50 здоровья")
else
format(szBuffer, charsmax(szBuffer), "\dВзять 50 здоровья")
menu_additem(iMenu, szBuffer, "2")
menu_setprop(iMenu, MPROP_EXITNAME, "Выход")
menu_display(id, iMenu, 0)
}
public menu_vip_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return
}
new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
if(!is_user_alive(id))
{
ChatColor(id, "%s Доступно только живым!", PREFIX)
return
}
new key = str_to_num(data)
new szName[33]
get_user_name(id, szName, charsmax(szName))
switch(key)
{
case 1:
{
if(!zp_get_user_zombie(id))
{
if(containi(g_szNamesArmor, szName) == -1)
{
set_pev(id, pev_armorvalue, pev(id, pev_armorvalue) + float(ARMOR))
ChatColor(id, "%s Вы взяли !g%d брони", PREFIX, ARMOR)
add(g_szNamesArmor, charsmax(g_szNamesArmor), szName, charsmax(szName))
}
else
ChatColor(id, "%s Можно брать !g1 раз !yза карту", PREFIX)
}
else
ChatColor(id, "%s Вы должны быть !gчеловеком", PREFIX)
}
case 2:
{
if(!zp_get_user_zombie(id))
{
if(containi(g_szNamesHp, szName) == -1)
{
set_pev(id, pev_health, pev(id, pev_health) + float(HP))
ChatColor(id, "%s Вы взяли !g%d здоровья", PREFIX, HP)
add(g_szNamesHp, charsmax(g_szNamesHp), szName, charsmax(szName))
}
else
ChatColor(id, "%s Можно брать !g1 раз !yза карту", PREFIX)
}
else
ChatColor(id, "%s Вы должны быть !gчеловеком", PREFIX)
}
}
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4");
replace_all(msg, 190, "!y", "^1");
replace_all(msg, 190, "!t", "^3");
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();
}
}
}
}
слава великой сонтаранской империи !
-
RSO_
-
- Сообщения: 280
- Зарегистрирован: 20 окт 2019, 21:40
- Откуда: от верблюда
- Благодарил (а): 45 раз.
- Поблагодарили: 20 раз.
- Опыт программирования: Меньше недели
- Языки программирования: . . . 100 ISQ
-
Максим_SerJanT » 17 ноя 2019, 22:38
Ты полностью антидот вырезал, а надо запретить, когда остаётся последний кт
-
Максим_SerJanT
-
- Сообщения: 75
- Зарегистрирован: 16 авг 2017, 01:32
- Благодарил (а): 7 раз.
- Поблагодарили: 1 раз.
RSO_ » 17 ноя 2019, 23:27
- Код: Выделить всё
new cs_get_ct = 0
new cs_get_tt = 0
new g_szNamesArmor[1090], g_szNamesHp[1090], g_szNamesHuman[1090]
public plugin_init()
{
register_plugin("VIP menu", "1.0", "Dorus")
register_clcmd("prem_menu", "vipmenu")
}
public vipmenu(id)
{
if(~get_user_flags(id) & VIP_FLAG)
{
ChatColor(id, "%s Доступно !gпремиум !yигрокам!", PREFIX)
return
}
if(!is_user_alive(id))
{
ChatColor(id, "%s Доступно живым игрокам!", PREFIX)
return
}
new iMenu = menu_create("\yПремиум меню", "menu_vip_handler")
new szBuffer[100], szName[33]
get_user_name(id, szName, charsmax(szName))
if(containi(g_szNamesArmor, szName) == -1)
format(szBuffer, charsmax(szBuffer), "Взять 50 брони")
else
format(szBuffer, charsmax(szBuffer), "\dВзять 50 брони")
menu_additem(iMenu, szBuffer, "1")
if(containi(g_szNamesHp, szName) == -1)
format(szBuffer, charsmax(szBuffer), "Взять 50 здоровья")
else
format(szBuffer, charsmax(szBuffer), "\dВзять 50 здоровья")
menu_additem(iMenu, szBuffer, "2")
if(containi(g_szNamesHuman, szName) == -1)
format(szBuffer, charsmax(szBuffer), "Взять антидот")
else
format(szBuffer, charsmax(szBuffer), "\dВзять антидот")
menu_additem(iMenu, szBuffer, "3")
menu_setprop(iMenu, MPROP_EXITNAME, "Выход")
menu_display(id, iMenu, 0)
}
public menu_vip_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return
}
new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
if(!is_user_alive(id))
{
ChatColor(id, "%s Доступно только живым!", PREFIX)
return
}
new key = str_to_num(data)
new szName[33]
get_user_name(id, szName, charsmax(szName))
koli4estva_jblvblx()
switch(key)
{
case 1:
{
if(!zp_get_user_zombie(id))
{
if(containi(g_szNamesArmor, szName) == -1)
{
set_pev(id, pev_armorvalue, pev(id, pev_armorvalue) + float(ARMOR))
ChatColor(id, "%s Вы взяли !g%d брони", PREFIX, ARMOR)
add(g_szNamesArmor, charsmax(g_szNamesArmor), szName, charsmax(szName))
}
else
ChatColor(id, "%s Можно брать !g1 раз !yза карту", PREFIX)
}
else
ChatColor(id, "%s Вы должны быть !gчеловеком", PREFIX)
}
case 2:
{
if(!zp_get_user_zombie(id))
{
if(containi(g_szNamesHp, szName) == -1)
{
set_pev(id, pev_health, pev(id, pev_health) + float(HP))
ChatColor(id, "%s Вы взяли !g%d здоровья", PREFIX, HP)
add(g_szNamesHp, charsmax(g_szNamesHp), szName, charsmax(szName))
}
else
ChatColor(id, "%s Можно брать !g1 раз !yза карту", PREFIX)
}
else
ChatColor(id, "%s Вы должны быть !gчеловеком", PREFIX)
}
case 3:
{
if(zp_get_user_zombie(id) && cs_get_ct > 1) {
if(!zp_is_nemesis_round() && !zp_is_survivor_round() && !zp_is_swarm_round() && !zp_is_plague_round())
{
if(containi(g_szNamesHuman, szName) == -1)
{
zp_disinfect_user(id, 0)
ChatColor(id, "%s Вы использовали !gАнтидот", PREFIX)
add(g_szNamesHuman, charsmax(g_szNamesHuman), szName, charsmax(szName))
}
else
ChatColor(id, "%s Можно брать !g1 раз !yза карту", PREFIX)
}
else
ChatColor(id, "%s В этом раунде недоступно!", PREFIX)
}
else
ChatColor(id, "%s Доступно только для !gзомби", PREFIX)
}
}
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4");
replace_all(msg, 190, "!y", "^1");
replace_all(msg, 190, "!t", "^3");
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();
}
}
}
}
public koli4estva_jblvblx()
{
new MaxPlayers = get_maxplayers()
cs_get_ct = 0
cs_get_tt = 0
for (new i=1; i <= MaxPlayers; i++)
{
if(is_user_alive(i) && !is_user_hltv(i))
{
if(cs_get_user_team(i) == CS_TEAM_CT)
{
cs_get_ct++
}
else if(cs_get_user_team(i) == CS_TEAM_T)
{
cs_get_tt++
}
}
}
}
не тэстил не знаю как на зомби моде пашет
слава великой сонтаранской империи !
-
RSO_
-
- Сообщения: 280
- Зарегистрирован: 20 окт 2019, 21:40
- Откуда: от верблюда
- Благодарил (а): 45 раз.
- Поблагодарили: 20 раз.
- Опыт программирования: Меньше недели
- Языки программирования: . . . 100 ISQ
-
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8