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

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

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

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

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

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

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

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

VIP Weapons, (исправить kick)

[РЕШЕНО]
Статус пользователя Andrey777best
сообщение 5.8.2016, 9:40
Сообщение #1


Стаж: 13 лет
Город: Харьков

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

Помогите сделать что бы пункт кик работал так же как и голосование за карту, а именно когда нет админов онлайн.
Cкрытый текст
Код:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <stripweapons>

#define VIP_FLAG ADMIN_LEVEL_H

new bool: g_bDamage[33]
new g_MsgSync, g_MaxPlayers
new round_number, g_round
new bool: has_used[33]

new const weapon_name[][] = { "Deagle", "USP", "AK47", "M4a1", "FAMAS", "AWP", "SCOUT" }

#define is_user_valid_connected(%1) (1 <= %1 <= g_MaxPlayers && is_user_connected(%1))

public plugin_init()
{
register_plugin("VIP Weapons", "1.3", "Player")

g_round = register_cvar("amx_vip_give", "4")

register_clcmd("vipmenu", "clcmd_vipmenu")

register_clcmd("say /adminka", "ShowMotdADM")

register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0")
register_logevent("event_RestartRound", 2, "1&Restart_Round_")
register_event("Damage", "event_Damage", "b", "2!0", "3=0", "4!0")

RegisterHam(Ham_Spawn, "player", "fw_PlayerRespawn", 1)

g_MsgSync = CreateHudSyncObj()
g_MaxPlayers = get_maxplayers()
}

public client_authorized(id)
{
if(!(get_user_flags(id) & VIP_FLAG))
return
g_bDamage[id] = true
client_cmd(id, "bind ^"F5^" ^"vipmenu^"")
}

public clcmd_vipmenu(id)
{
if(!(get_user_flags(id) & VIP_FLAG)) {
ChatColor(id, "^3[^4Випка|18+|^3]^1 Только для ^3V.I.P^1 персон!");
}
else {
showWeaponMenu(id);
}

return PLUGIN_HANDLED;
}

showWeaponMenu(id, page = 0)
{
static menu;

if (!menu) {
menu = menu_create("\w[\yV.I.P\w] \rОружейка:", "giveWeapon")
new menu_callback = menu_makecallback("showWeaponMenu_callback");

new szIteamName[64]

for(new i = 0; i < sizeof(weapon_name); i++)
{
formatex(szIteamName, charsmax(szIteamName), "\r[\y%s\r]", weapon_name[i])
menu_additem(menu, szIteamName)
}

menu_addblank(menu, 0)

menu_additem(menu, "Дамагер", .callback = menu_callback);
menu_additem(menu, "\r[\yКикнуть\r]");
menu_additem(menu, "Голосование за карту", .callback = menu_callback);

menu_setprop (menu, MPROP_BACKNAME, "Назад");
menu_setprop (menu, MPROP_NEXTNAME, "Вперед");
menu_setprop (menu, MPROP_EXITNAME, "Выход");
}

menu_display(id, menu, page)
}

public showWeaponMenu_callback(id, menu, item)
{
static players[32], pnum, item_name[128];

//Голосование за карту
if (item == 9) {
get_players(players, pnum, "ch");

for (new i; i < pnum; i++) {
if (get_user_flags(players[i]) & ADMIN_LEVEL_A) {
return ITEM_DISABLED;
}
}
}
else if (item == 7) {
formatex(item_name, charsmax(item_name), "Дамагер \r[%sключен\r]", g_bDamage[id] ? "\yВ" : "\dВы");
menu_item_setname (menu, item, item_name);
}

return ITEM_ENABLED;
}

public giveWeapon(id, menu, item)
{
if(item == MENU_EXIT) {
return PLUGIN_HANDLED;
}

if(0 <= item <= 6)
{
if(!is_user_alive(id))
{
ChatColor(id, "^3[^4Випка|18+|^3]^1 Вы мертвы!")
return PLUGIN_HANDLED
}

if(round_number < get_pcvar_num(g_round))
{
ChatColor(id, "^3[^4Випка|18+|^3]^1 Доступно с %d раунда!", get_pcvar_num(g_round))
return PLUGIN_HANDLED
}

if(has_used[id])
{
ChatColor(id, "^3[^4Випка|18+|^3]^1 Вы уже использовали! Подождите...")
return PLUGIN_HANDLED
}

has_used[id] = true

switch(item)
{
case 0:
{
drop_weapons(id, .slot = 2)
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id , CSW_DEAGLE, 35)
}
case 1:
{
drop_weapons(id, .slot = 2)
give_item(id, "weapon_usp")
cs_set_user_bpammo(id , CSW_USP, 100)
}
case 2:
{
drop_weapons(id, .slot = 1)
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id , CSW_AK47, 90)
}
case 3:
{
drop_weapons(id, .slot = 1)
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id , CSW_M4A1, 90)
}
case 4:
{
drop_weapons(id, .slot = 1)
give_item(id, "weapon_famas")
cs_set_user_bpammo(id , CSW_FAMAS, 90)
}
case 5:
{
drop_weapons(id, .slot = 1)
give_item(id, "weapon_awp")
cs_set_user_bpammo(id , CSW_AWP, 30)
}
case 6:
{
drop_weapons(id, .slot = 1)
give_item(id, "weapon_scout")
cs_set_user_bpammo(id , CSW_SCOUT, 90)
}
}
}
else if (item == 7) {
g_bDamage[id] = !g_bDamage[id]

showWeaponMenu(id, 2);
}
else if (item == 8) {
client_cmd(id, "amx_kickmenu");
}
else if (item == 9) {
client_cmd(id, "amx_votemapmenu");
}

return PLUGIN_HANDLED
}

public fw_PlayerRespawn(id)
{
if(!is_user_alive(id) || !(get_user_flags(id) & VIP_FLAG))
return

drop_weapons(id, .slot = 2)

give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)

give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_smokegrenade")
give_item(id,"item_assaultsuit")
give_item(id, "item_thighpack")

message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
write_byte(id)
write_byte(4)
message_end()
}

public ShowMotdADM(id)
show_motd(id, "adminka.txt", "Покупка - Админки!")

public ShowMotdVIP(id)
show_motd(id, "vip.txt", "Покупка - Випка|18+|!")

public event_RoundStart()
{
round_number++
arrayset(has_used, false, 32)
}

public event_RestartRound()
round_number = 0

public event_Damage(id)
{
if(!is_user_valid_connected(id))
return

static attacker; attacker = get_user_attacker(id)
static damage; damage = read_data(2)

if(is_user_valid_connected(attacker) && g_bDamage[attacker] && (get_user_flags(attacker) & VIP_FLAG))
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_MsgSync, "%i", damage)
}
}

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") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color
replace_all(msg, 190, "!team2", "^0") // Team2 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();
}
}
}
}

stock drop_weapons(id, slot = 0)
{
static weapons[32], num, iId
num = 0
get_user_weapons(id, weapons, num)

for(new i = 0; i < num; i++)
{
iId = weapons[i]
ham_strip_user_weapon(id, iId, slot)
}
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя BaJIepbI4
сообщение 5.8.2016, 11:28
Сообщение #2


Стаж: 11 лет

Сообщений: 457
Благодарностей: 115
Полезность: 456

Код:

//Голосование за карту и кик
if (item==8 || item == 9) {
get_players(players, pnum, "ch");

for (new i; i < pnum; i++) {
if (get_user_flags(players[i]) & ADMIN_LEVEL_A) {
return ITEM_DISABLED;
}
}
}



Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Andrey777best
сообщение 5.8.2016, 11:42
Сообщение #3


Стаж: 13 лет
Город: Харьков

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

BaJIepbI4, Не получается, кнопка Голосование за карту не активна а кик работает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BaJIepbI4
сообщение 5.8.2016, 12:01
Сообщение #4


Стаж: 11 лет

Сообщений: 457
Благодарностей: 115
Полезность: 456

Цитата(Andrey777best @ 5.8.2016, 12:42) *
BaJIepbI4, Не получается, кнопка Голосование за карту не активна а кик работает.

А ну да :)
Забыл еще сказать, что надо заменить
Код:
menu_additem(menu, "\r[\yКикнуть\r]");

на
Код:
menu_additem(menu, "\r[\yКикнуть\r]", .callback = menu_callback);



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