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

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

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

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

Не работает вип меню

Skywrath
сообщение 20.5.2015, 19:32
Сообщение #1
Стаж: 11 лет

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

установил данный плагин, и не пойму почему не работают эти пункты

Код:
if(!block)
{
len += formatex(menu[len], charsmax(menu) - len, "\r1. \wВзять \r[\yМ16+Граната\r]^n")
len += formatex(menu[len], charsmax(menu) - len, "\r2. \wВзять \r[\yАК-47+Граната\r]^n")
len += formatex(menu[len], charsmax(menu) - len, "\r3. \wВзять \r[\yАВП+Гранаты\r]^n^n")
}
else
{
len += formatex(menu[len], charsmax(menu) - len, "\d1. Взять [М16+Граната]^n")
len += formatex(menu[len], charsmax(menu) - len, "\d2. Взять [АК-47+Граната]^n")
len += formatex(menu[len], charsmax(menu) - len, "\d3. Взять [АВП+Гранаты]^n^n")


Код:
len += formatex(menu[len], charsmax(menu) - len, "\r7. \wДобавить 15HP \r[1 раз за раунд]^n")
len += formatex(menu[len], charsmax(menu) - len, "\r8. \wВзять 5000$ \r[1 раз за раунд]^n")
len += formatex(menu[len], charsmax(menu) - len, "\r9. \wВсе гранаты \r[1 раз за раунд]^n^n")
}
else
{
len += formatex(menu[len], charsmax(menu) - len, "\d7. Добавить 15HP [1 раз за раунд]^n")
len += formatex(menu[len], charsmax(menu) - len, "\d8. Взять 5000$ [1 раз за раунд]^n")
len += formatex(menu[len], charsmax(menu) - len, "\d9. Все гранаты [1 раз за раунд]^n^n")



Код:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fun>

#define VIP ADMIN_LEVEL_H
#define ADMIN ADMIN_BAN
#define MAX_MAPS 100

#pragma tabsize 0

new g_iConfigsDir[64]
new g_iMapList[64], g_iMap[MAX_MAPS][64], g_iMapNum

const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MEN
U_KEY_8|MENU_KEY_9|MENU_KEY_0

const PRIMARY_WEAPONS_BIT_SUM =
(1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<
CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)

new can_take_round, can_take[33], can_take_hp[33], g_wait_resp[33], can_take_money[33], can_take_nade[33]
new g_msgSayText, g_maxplayers, g_msgScoreAttrib
new block

public plugin_init()
{
register_plugin("Vip Menu", "1.0", "ill")

register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("TextMsg", "Event_Restart", "a", "2&#Game_C", "2&#Game_w")
register_clcmd("say /adminka", "ShowMotdAdm")
register_clcmd("say /vipka", "ShowMotdVip")
register_clcmd("say /admin", "print_adminlist")

register_clcmd("amx_vip", "press_menu")
register_menu("Vip Menu", KEYSMENU, "admin_menu")

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

g_maxplayers = get_maxplayers()
g_msgSayText = get_user_msgid("SayText")
g_msgScoreAttrib = get_user_msgid("ScoreAttrib")

static MapName[64]
get_mapname(MapName, 63)

new i = 0
while(i < g_iMapNum) {
if(containi(MapName, g_iMap[i++]) != -1) {
block = true
}
}
}


public plugin_precache() {
get_configsdir(g_iConfigsDir, charsmax(g_iConfigsDir))

format(g_iMapList, charsmax(g_iMapList), "%s/MapList.ini", g_iConfigsDir)
if(file_exists(g_iMapList)) {
new i = 0, iLen
while(i < MAX_MAPS && read_file(g_iMapList, i, g_iMap[g_iMapNum], charsmax(g_iMap), iLen)) {
i++
if(g_iMap[g_iMapNum][0] == ';' || !iLen)
continue
g_iMapNum++
}
} else {
write_file(g_iMapList, "; Map LIST")
}
}

public ShowMotdAdm(id)
{
show_motd(id, "adminka.txt")
return PLUGIN_HANDLED
}

public ShowMotdVip(id)
{
show_motd(id, "vip.txt")
return PLUGIN_HANDLED
}

public client_connect(id)
{
client_cmd(id, "^"bind^" ^"f3^" ^"amx_vip^"")
}

public client_putinserver(id)
{
if(get_user_flags(id) & VIP)
{
new name[33]
get_user_name(id, name, 32)
colored_print(0, "^x01Подключается^x04 VIP ^x01игрок ^x04%s", name)
}
}

public Event_Restart()
{
can_take_round = 0
}

public event_round_start()
{
can_take_round++

for (new id = 1; id <= g_maxplayers; id++)
{
if (g_wait_resp[id] > 0)
g_wait_resp[id]--

can_take[id] = true
can_take_hp[id] = true
can_take_money[id] = true
can_take_nade[id] = true


}
}

public fw_SpawnPost(id)
{
if(!is_user_alive(id))
return

if(!(get_user_flags(id) & VIP))
return

fm_set_user_scoreattrib(id, 4)

if(can_take_round >= 2)
{
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "item_assaultsuit");
}

if(can_take_round == 2)
{
colored_print(id, "^x04[VIP] ^x01Вип меню активировано.")
}
}

public press_menu(id)
{
if(!(get_user_flags(id) & VIP))
{
colored_print(id, "^x04Недостаточно прав для использования команды")
return PLUGIN_HANDLED
}



show_vip_menu(id)

return PLUGIN_HANDLED
}

public show_vip_menu(id)
{
static menu[560], len
len = 0

len += formatex(menu[len], charsmax(menu) - len, "\rVIP МЕНЮ [Качественный Сервер]^n^n")

if(!block)
{
len += formatex(menu[len], charsmax(menu) - len, "\r1. \wВзять \r[\yМ16+Граната\r]^n")
len += formatex(menu[len], charsmax(menu) - len, "\r2. \wВзять \r[\yАК-47+Граната\r]^n")
len += formatex(menu[len], charsmax(menu) - len, "\r3. \wВзять \r[\yАВП+Гранаты\r]^n^n")
}
else
{
len += formatex(menu[len], charsmax(menu) - len, "\d1. Взять [М16+Граната]^n")
len += formatex(menu[len], charsmax(menu) - len, "\d2. Взять [АК-47+Граната]^n")
len += formatex(menu[len], charsmax(menu) - len, "\d3. Взять [АВП+Гранаты]^n^n")
}

len += formatex(menu[len], charsmax(menu) - len, "\r4. \wКикнуть^n")
len += formatex(menu[len], charsmax(menu) - len, "\r5. \wГолосование за карту^n")
len += formatex(menu[len], charsmax(menu) - len, "\r6. \wЗаткнуть игрока^n^n")

if(!block)
{

len += formatex(menu[len], charsmax(menu) - len, "\r7. \wДобавить 15HP \r[1 раз за раунд]^n")
len += formatex(menu[len], charsmax(menu) - len, "\r8. \wВзять 5000$ \r[1 раз за раунд]^n")
len += formatex(menu[len], charsmax(menu) - len, "\r9. \wВсе гранаты \r[1 раз за раунд]^n^n")
}
else
{
len += formatex(menu[len], charsmax(menu) - len, "\d7. Добавить 15HP [1 раз за раунд]^n")
len += formatex(menu[len], charsmax(menu) - len, "\d8. Взять 5000$ [1 раз за раунд]^n")
len += formatex(menu[len], charsmax(menu) - len, "\d9. Все гранаты [1 раз за раунд]^n^n")
}
len += formatex(menu[len], charsmax(menu) - len, "\r0.\y Выход")

show_menu(id, KEYSMENU, menu, -1, "Vip Menu")

return PLUGIN_CONTINUE
}

public admin_menu(id, key)
{
switch (key)
{
case 0:
{
if(block)
{
colored_print(id, "^x04На этой карте запрещено");
return PLUGIN_HANDLED
}

if(can_take_round < 2)
{
colored_print(id, "^x03Доступно только с 2го раунда")
return PLUGIN_HANDLED
}

if(!can_take[id])
{
colored_print(id, "^x03Можно взять в след. раунде!")
return PLUGIN_HANDLED
}

drop_weapons(id, 1)
drop_weapons(id, 2)

give_item(id,"weapon_hegrenade")
give_item(id,"weapon_deagle")
give_item(id,"weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 90)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
new name[32]
get_user_name(id, name, 31)
colored_print(id, "^x04[Админ] ^x03%s взял M4A1+DGL+HE", name)

can_take[id] = false
}
case 1:
{
if(block)
{
colored_print(id, "^x04На этой карте запрещено");
return PLUGIN_HANDLED
}

if(can_take_round < 3)
{
colored_print(id, "^x03Доступно только с 2го раунда")
return PLUGIN_HANDLED
}

if(!can_take[id])
{
colored_print(id, "^x0Можно взять в след. раунде!")
return PLUGIN_HANDLED
}

drop_weapons(id, 1)
drop_weapons(id, 2)

give_item(id,"weapon_hegrenade")
give_item(id,"weapon_deagle")
give_item(id,"weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
new name[32]
get_user_name(id, name, 31)
colored_print(id, "^x04[Вип меню] ^x03%s взял AK47+DGL+HE", name)

can_take[id] = false
}
case 2:
{
if(block)
{
colored_print(id, "^x04На этой карте запрещено");
return PLUGIN_HANDLED
}
if(can_take_round < 3)
{
colored_print(id, "^x03Доступно только с 3го раунда")
return PLUGIN_HANDLED
}

if(!can_take[id])
{
colored_print(id, "^x03Можно взять в след. раунде!")
return PLUGIN_HANDLED
}

drop_weapons(id, 1)
drop_weapons(id, 2)

give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_smokegrenade")
set_user_armor(id, 100)
give_item(id,"weapon_deagle")
give_item(id,"weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 30)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
new name[32]
get_user_name(id, name, 31)
colored_print(id, "^x04[Вип меню] ^x03%s взял AWP+DGL+HE+ARMOR", name)

can_take[id] = false
}
case 3:
{
client_cmd(id, "amx_kickmenu")
}
case 4:
{
client_cmd(id, "amx_votemapmenu")
}
case 5:
{
client_cmd(id, "amx_gagmenu")
}
case 6:
{
if(block)
{
colored_print(id, "^x04На этой карте запрещено");
return PLUGIN_HANDLED
}
if(!is_user_alive(id))
{
colored_print(id, "^x03Вы мертвы");
return PLUGIN_HANDLED
}

if(!can_take_hp[id])
{
colored_print(id, "^x03Можно взять в след. раунде!")
return PLUGIN_HANDLED
}

if(get_user_health(id) >= 50)
{
colored_print(id, "^x03Можно взять только когда меньше 50 НР")
return PLUGIN_HANDLED
}
set_user_health(id, get_user_health(id) + 15)
new name[32]
get_user_name(id, name, 31)
colored_print(id, "^x04[Вип меню] ^x03%s Вы добавили +15 HP", name)
can_take_hp[id] = false
}
case 7:
{
if(block)
{
colored_print(id, "^x04На этой карте запрещено");
return PLUGIN_HANDLED
}

if(can_take_round < 5)
{
colored_print(id, "^x03Доступно только с 5го раунда")
return PLUGIN_HANDLED
}

if(!can_take_money[id])
{
colored_print(id, "^x03Можно взять только раз за раунд")
return PLUGIN_HANDLED
}
cs_set_user_money(id, cs_get_user_money(id) + 5000)
new name[32]
get_user_name(id, name, 31)
colored_print(id, "^x04[Вип меню] ^x03%s взял 5000$", name)
can_take_money[id] = false
}
case 8:
{
if(block)
{
colored_print(id, "^x04На этой карте запрещено");
return PLUGIN_HANDLED
}

if(can_take_round < 3)
{
colored_print(id, "^x03Доступно только с 3го раунда")
return PLUGIN_HANDLED
}

if(!can_take_nade[id])
{
colored_print(id, "^x03Можно взять только раз за раунд")
return PLUGIN_HANDLED
}
give_item(id, "weapon_flashbang")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_smokegrenade")

new name[32]
get_user_name(id, name, 31)
colored_print(id, "^x04[Вип меню] ^x03%s взял все гранаты", name)
can_take_nade[id] = false
}
}
return PLUGIN_CONTINUE
}

public print_viplist(user)
{
new adminnames[33][32]
new message[256]
new id, count, x, len

for(id = 1 ; id <= g_maxplayers ; id++)
if(is_user_connected(id))
if(get_user_flags(id) & VIP)
get_user_name(id, adminnames[count++], 31)

len = format(message, 255, "Випы онлайн: ")
if(count > 0) {
for(x = 0 ; x < count ; x++) {
len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
if(len > 96 ) {
colored_print(user, "^x04%s", message)
len = format(message, 255, "")
}
}
colored_print(user, "^x04%s", message)
}
else {
len += format(message[len], 255-len, "Отсутствуют")
colored_print(user, "^x04%s", message)
}
}

public print_adminlist(user)
{
new adminnames[33][32]
new message[256]
new id, count, x, len

for(id = 1 ; id <= g_maxplayers ; id++)
if(is_user_connected(id))
if(get_user_flags(id) & ADMIN)
get_user_name(id, adminnames[count++], 31)

len = format(message, 255, "Админы онлайн: ")
if(count > 0) {
for(x = 0 ; x < count ; x++) {
len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
if(len > 96 ) {
colored_print(user, "^x04%s", message)
len = format(message, 255, "")
}
}
colored_print(user, "^x04%s", message)
}
else {
len += format(message[len], 255-len, "Отсутствуют")
colored_print(user, "^x04%s", message)
}

print_viplist(user)
}

stock fm_set_user_scoreattrib(id, attrib=4)
{
message_begin(MSG_BROADCAST, g_msgScoreAttrib, _, 0);
write_byte(id);
write_byte(attrib);
message_end();
}

stock drop_weapons(id, dropwhat)
{
static weapons[32], num, i, weaponid
num = 0
get_user_weapons(id, weapons, num)

for (i = 0; i < num; i++)
{
weaponid = weapons[i]

if ((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
{
static wname[32]
get_weaponname(weaponid, wname, sizeof wname - 1)
engclient_cmd(id, "drop", wname)
}
}
}

stock colored_print( target, const message[], any:... )
{
static buffer[ 512 ]

if( !target )
{
static player
for( player = 1; player <= g_maxplayers; player++ )
{
if ( !is_user_connected( player ) )
continue;

vformat( buffer, charsmax( buffer ), message, 3 )

message_begin( MSG_ONE_UNRELIABLE, g_msgSayText, _, player )
write_byte( player )
write_string( buffer )
message_end()
}
}

else
{
vformat( buffer, charsmax( buffer ), message, 3 )

message_begin( MSG_ONE, g_msgSayText, _, target )
write_byte( target )
write_string( buffer )
message_end()
}
}


Отредактировал: Skywrath, - 20.5.2015, 19:33
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя sana666
сообщение 22.5.2015, 10:24
Сообщение #2


Стаж: 12 лет
Город: Новосибирск

Сообщений: 235
Благодарностей: 39
Полезность: 29

Скинь plugins.inip


Звукозапись:
VK - vk.com/zvuk_off
TG - @zvuk_off
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 23.5.2015, 1:10
Сообщение #3
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(Skywrath)
не пойму почему не работают эти пункты

В чём именно заключается неработа?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Skywrath
сообщение 23.5.2015, 8:18
Сообщение #4
Стаж: 11 лет

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

Safety1st,
я разобрался с этой проблемой!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mertka4
сообщение 26.5.2015, 12:15
Сообщение #5


Стаж: 12 лет

Сообщений: 285
Благодарностей: 130
Полезность: 191

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

Прикрепленные файлы:
Прикрепленный файл  c_vip.sma ( 12,91 килобайт ) Кол-во скачиваний: 21


Интернет - как жизнь, смысла нет, а уходить не хочется..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 26.5.2015, 12:22
Сообщение #6


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

mertka4, нет инклуда колорчата
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mertka4
сообщение 26.5.2015, 12:23
Сообщение #7


Стаж: 12 лет

Сообщений: 285
Благодарностей: 130
Полезность: 191

Цитата(Bloo @ 26.5.2015, 16:22) *
mertka4, нет инклуда колорчата

а где можно взять инклуд у этому плагину?


Интернет - как жизнь, смысла нет, а уходить не хочется..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 26.5.2015, 12:25
Сообщение #8


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

mertka4, https://c-s.net.ua/compiler/includes.php
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mertka4
сообщение 26.5.2015, 12:29
Сообщение #9


Стаж: 12 лет

Сообщений: 285
Благодарностей: 130
Полезность: 191

Цитата(Bloo @ 26.5.2015, 16:25) *

не помоголо :(
Скрытый текст
Welcome to the AMX Mod X 1.8.2 Compiler.
Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Team

c_vip.sma(311) : error 017: undefined symbol "CHATTAG"
c_vip.sma(311) : error 029: invalid expression, assumed zero
c_vip.sma(311) : warning 215: expression has no effect
c_vip.sma(312) : error 014: invalid statement; not in switch
c_vip.sma(312) : warning 215: expression has no effect
c_vip.sma(312) : error 001: expected token: ";", but found ":"
c_vip.sma(312) : error 029: invalid expression, assumed zero
c_vip.sma(312) : fatal error 107: too many error messages on one line

Compilation aborted.
6 Errors.

terminate called after throwing an instance of 'std::bad_alloc'
what(): St9bad_alloc


Интернет - как жизнь, смысла нет, а уходить не хочется..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 26.5.2015, 12:32
Сообщение #10


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

mertka4, помогло, ошибки уже другие. Зачем закоментировал #define CHATTAG "^3[^4VIPMenu^3]^4" ? Раскоментируй и все будет.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя mertka4
сообщение 26.5.2015, 12:34
Сообщение #11


Стаж: 12 лет

Сообщений: 285
Благодарностей: 130
Полезность: 191

Цитата(Bloo @ 26.5.2015, 16:32) *
mertka4, помогло, ошибки уже другие. Зачем закоментировал #define CHATTAG "^3[^4VIPMenu^3]^4" ? Раскоментируй и все будет.

так он мне не нужен, будет с другим плагином чата конфликтовать, ведь у меня приставки другие для всех

Отредактировал: mertka4, - 26.5.2015, 12:36


Интернет - как жизнь, смысла нет, а уходить не хочется..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 26.5.2015, 12:37
Сообщение #12


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

mertka4, чего? Как приставка в начале сообщения рекламного в чате будет с чем то конфликтовать? Тогда убирайте все сообщения в чат которые пишет этот плагин, или убирайте из этих сообщений подстановку этого префикса.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mertka4
сообщение 26.5.2015, 12:38
Сообщение #13


Стаж: 12 лет

Сообщений: 285
Благодарностей: 130
Полезность: 191

Цитата(Bloo @ 26.5.2015, 16:37) *
mertka4, чего? Как приставка в начале сообщения рекламного в чате будет с чем то конфликтовать? Тогда убирайте все сообщения в чат которые пишет этот плагин, или убирайте из этих сообщений подстановку этого префикса.

хорошо спасибо.


Интернет - как жизнь, смысла нет, а уходить не хочется..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bandit123
сообщение 26.5.2015, 12:38
Сообщение #14


Стаж: 12 лет

Сообщений: 85
Благодарностей: 19
Полезность: 175

mertka4, исходник в студию
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mertka4
сообщение 26.5.2015, 12:45
Сообщение #15


Стаж: 12 лет

Сообщений: 285
Благодарностей: 130
Полезность: 191

Цитата(bandit123 @ 26.5.2015, 16:38) *
mertka4, исходник в студию

Глаза открой.


Интернет - как жизнь, смысла нет, а уходить не хочется..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bandit123
сообщение 26.5.2015, 12:54
Сообщение #16


Стаж: 12 лет

Сообщений: 85
Благодарностей: 19
Полезность: 175

mertka4, я имел ввиду код в pawn
Скрытый текст
Код:
/*                        VIP для пабликов.
Автор: neygomon. Помощь по коду: s1lent

Возможности:
* Чат-тег сообщений от випки [Не игрока в чате, а от плагина]
* Звук и соощение при подключении игрока
* WeaponMenu for VIP(vipmenu, /vipmenu) - оружия: ak47, m4a1, awp, пулемет.
Так же чат команды: /ak47, /m4a1, /awp, /b51.
* Damager
* Доп HP за убийства
* VIP статус в TAB (нормальным способом, а не через ж... как в предыдущей версии)
* При спавне VIP игрока выдает дигл(отключаемо), гранаты(отключаемо), броню.

Используемые модули: cstrike, fakemeta, hamsandwich, colorchat
*/
#include <amxmodx>
#include <cstrike>
#include <fakemeta_util>
#include <hamsandwich>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif

// #### Конфигурационные defines ####
#define VIP_ACCESS ADMIN_LEVEL_H // Флаг доступа VIP (по дефолту флаг "t" ADMIN_LEVEL_H)
//#define CHATTAG "^3[^4VIPMenu^3]^4" // Префикс перед сообщениями || ^1 - желтый ^3 - цвет команды ^4 - зеленый
//#define VIPCONNECTED_SOUND "misc/neugomon/vip.wav" // Звук при заходе VIP игрока на сервер
#define VIPROUND 2 // C какого раунда можно открыть вип меню
#define AWPM249RND 3 // С какого раунда доступны AWP и пулемет

#define ADDHP_HS 10 // Кол-во HP за убийство в голову
#define ADDHP 5 // Кол-во HP за убийство в тело
#define MAXHP 100 // Максимальное количество HP

// #define AUTOVIPMENU // Автоматически открывать в начале рануда Вип меню (выключено по дефолту)
#define VIPAUTODEAGLE // В начале каждого раунда давать Дигл
#define VIPAUTOGRENADE // Давать в начале каждого раунда гранаты
#define VIPTAB // Показывать статус VIP в таблице на tab
// #### Конфигурационные defines ####

#define is_user_vip(%0) (get_user_flags(%0) & VIP_ACCESS)

new g_roundCount, g_HudSyncMsg;

new bool:isWarmupRound = true, bool:isFirstRound = true, bool:iUseWeapon[33] = false, bool:bDefuse = false;

new const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
new const SECONDARY_WEAPONS_BITSUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);

//public plugin_precache() precache_sound(VIPCONNECTED_SOUND);

new iMaxPlayers;
new bool:g_iBlockBonus;

public plugin_init()
{
register_plugin("VIPka", "1.2", "neygomon");

register_event("TextMsg","eventRoundRestart","a","2&#Game_w");
register_event("TextMsg","eventCommencingRestart","a","2&#Game_C");
register_event("Damage","eventDamage","b","2!0","3=0","4!0");
register_event("DeathMsg","eventDeathMsg","a","1>0");
register_event("HLTV","eventRoundStartHLTV","a","1=0","2=0");

#if defined VIPTAB
if(engfunc(EngFunc_FindEntityByString,FM_NULLENT,"classname","func_vip_safetyzone"))
register_message(get_user_msgid("ScoreAttrib"),"messageScoreAttrib");
#endif
if(engfunc(EngFunc_FindEntityByString,FM_NULLENT,"classname","func_bomb_target"))
bDefuse = true;

RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1);

register_clcmd("say /vipmenu", "CmdMenu");
register_clcmd("vipmenu", "CmdMenu");
register_clcmd("say", "hook_say");
register_clcmd("say_team", "hook_say");

register_menucmd(register_menuid("Vip Menu"), MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4, "handler");

iMaxPlayers = get_maxplayers();
g_HudSyncMsg = CreateHudSyncObj();

new iMap_Name[32], iMap_Prefix[][] = { "awp_", "aim_", "35hp", "fy_"}
get_mapname(iMap_Name, charsmax(iMap_Name))
for(new i; i < sizeof(iMap_Prefix); i++)
{
if(containi(iMap_Name, iMap_Prefix[i]) != -1)
g_iBlockBonus = true
}
}

public client_putinserver(id)
{
if(is_user_vip(id)) VipConnectNotice(id);
}

public eventCommencingRestart() isFirstRound = isWarmupRound = true;

public eventRoundRestart() g_roundCount = 0;

public eventRoundStartHLTV()
{
if(isFirstRound)
{
isFirstRound = false;
g_roundCount = 0;
}
g_roundCount++;
if(isWarmupRound)
{
isWarmupRound = false;
g_roundCount = 0;
}
arrayset(iUseWeapon, false, iMaxPlayers);
}

public eventDamage(id)
{
static attID, dmg
attID = get_user_attacker(id)
dmg = read_data(2)
if(is_user_connected(attID) && is_user_vip(attID))
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attID, g_HudSyncMsg, "", dmg)
}
}

public eventDeathMsg()
{
static killerID
killerID = read_data(1)
if(is_user_vip(killerID))
{
static killer_HP, addHP
killer_HP = get_user_health(killerID)
addHP = ((read_data(3) == 1)) ? ADDHP_HS : ADDHP
fm_set_user_health(killerID,((killer_HP += addHP) > MAXHP)? MAXHP : killer_HP)
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
ShowSyncHudMsg(killerID, g_HudSyncMsg, "", addHP)
}
}

public Player_Spawn(id)
{
if(g_iBlockBonus) return;

if(is_user_alive(id) && is_user_vip(id))
{
#if defined VIPAUTOGRENADE
fm_give_item(id, "weapon_hegrenade");
fm_give_item(id, "weapon_flashbang");
fm_give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
#endif
#if defined VIPAUTODEAGLE
give_item_ex(id,"weapon_deagle",35,1)
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
#endif
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
if(bDefuse && cs_get_user_team(id) == CS_TEAM_CT) cs_set_user_defuse(id, 1);

#if defined AUTOVIPMENU
CmdMenu(id);
#endif
}
}

public hook_say(id)
{
static szMsg[256];
read_args(szMsg,255);
remove_quotes(szMsg);

if(szMsg[0] != '/')
{
return 0;
}
static a;
static const szChoosedWP[][] = { "/ak47", "/m4a1", "/awp", "/b51" };
for(a = 0; a < sizeof szChoosedWP; a++)
{
if(equal(szMsg,szChoosedWP[a]))
{
if(!is_allow_use(id))
{
break;
}
if(a > 1 && g_roundCount < AWPM249RND)
{
return chat_message(id, 6);
}
return handler(id,a);
}
}
return 0;
}

public CmdMenu(id)
{
if(is_user_vip(id))
{
if(is_user_alive(id))
{
if(g_roundCount > 0)
{
if(!iUseWeapon[id])
{
if(g_roundCount >= VIPROUND)
{
static szMenu[512],iLen,iKey;

iKey = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2;
iLen = formatex(szMenu,511,"\r[\yVIPMenu\r]\w Меню^n^n\w1. AK47 \r(\d1 раз за раунд\r)^n\w2. M4A1 \r(\d1 раз за раунд\r)^n");

if(g_roundCount < AWPM249RND)
{
iLen += formatex(szMenu[iLen],511 - iLen,"\w3. AWP \r(\dДоступно с \y%d \dраунда\r)^n\w4. \dПулемет \r(\dДоступно с \y%d \dраунда\r)^n^n",AWPM249RND,AWPM249RND);
}
else
{
iKey |= MENU_KEY_3|MENU_KEY_4;
iLen += formatex(szMenu[iLen],511 - iLen,"\w3. AWP \r(\d1 раз за раунд\r)^n\w4. Пулемет \r(\d1 раз за раунд\r)^n^n");
}
formatex(szMenu[iLen],511 - iLen,"\w0. Выход");
set_pdata_int(id, 205, 0);
return show_menu(id,iKey,szMenu,-1,"Vip Menu");
}
else chat_message(id, 0);
}
else chat_message(id, 1);
}
else chat_message(id, 2);
}
else chat_message(id, 3);
}
else chat_message(id, 4);
return PLUGIN_HANDLED;
}

public handler(id, key)
{
switch(key)
{
case 0:
{
give_item_ex(id,"weapon_ak47",90,1);
iUseWeapon[id] = true;
}
case 1:
{
give_item_ex(id,"weapon_m4a1",90,1);
iUseWeapon[id] = true;
}
case 2:
{
if(g_roundCount < AWPM249RND)
chat_message(id, 6);
else
{
give_item_ex(id,"weapon_awp",30,1);
iUseWeapon[id] = true;
}
}
case 3:
{
if(g_roundCount < AWPM249RND)
chat_message(id, 6);
else
{
give_item_ex(id,"weapon_m249",250,1);
iUseWeapon[id] = true;
}
}
}
return 1
}

stock give_item_ex(id,currWeaponName[],ammoAmount,dropFlag=0)
{
static weaponsList[32], weaponName[32], weaponsNum, currWeaponID;
currWeaponID = get_weaponid(currWeaponName);
if(dropFlag)
{
weaponsNum = 0;
get_user_weapons(id,weaponsList,weaponsNum);
for (new i;i < weaponsNum;i++)
{
if(((1 << currWeaponID) & PRIMARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & PRIMARY_WEAPONS_BITSUM) | ((1 << currWeaponID) & SECONDARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & SECONDARY_WEAPONS_BITSUM))
{
get_weaponname(weaponsList[i],weaponName,charsmax(weaponName));
engclient_cmd(id,"drop",weaponName);
}
}
}
fm_give_item(id,currWeaponName);
cs_set_user_bpammo(id,currWeaponID,ammoAmount);
}

public VipConnectNotice(id)
{
chat_message(0, 5);
// client_cmd(0,"spk ^"%s^"", VIPCONNECTED_SOUND);
}

stock chat_message(id, message=0)
{
switch(message)
{
case 0: client_print_color(id, 0, "Доступно с^3 %d ^1раунда!", VIPROUND);
case 1: client_print_color(id, 0, "^3Можно использовать только^4 1 ^1раз за раунд!");
case 2: client_print_color(id, 0, "^3Запрещено пользоваться командой в разминочном раунде!");
case 3: client_print_color(id, 0, "Доступно только ^3живым.");
case 4: client_print_color(id, 0, "У Вас нет доступа к данной команде.");
case 5:
{
new name[32];
get_user_name(id, name, charsmax(name));
client_print_color(id, 0, "", name);
}
case 6: client_print_color(id, 0, "Данное оружие доступно с^3 %d ^1раунда!", AWPM249RND);
}
return 1
}

bool:is_allow_use(id)
{
if(!is_user_vip(id))
{
chat_message(id, 4);
return false;
}
if(!is_user_alive(id))
{
chat_message(id, 3);
return false;
}
if(!g_roundCount)
{
chat_message(id, 2);
return false;
}
if(iUseWeapon[id])
{
chat_message(id, 1);
return false;
}
if(g_roundCount < VIPROUND)
{
chat_message(id, 0);
return false;
}
return true;
}

#if defined VIPTAB
public MessageScoreAttrib(iMsgId, iDest, iReceiver)
{
static id; id = get_msg_arg_int(1);
if(is_user_vip(id) && !get_msg_arg_int(2))
{
set_msg_arg_int(2, ARG_BYTE, 4);
}
}
#endif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя X1sHo
сообщение 31.8.2017, 11:27
Сообщение #17
Стаж: 14 лет

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

mojno skinut ini fail i sma pajalusta budu ochen blogadaren zaranie spasibo
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: