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

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

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

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

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

Раздел для общения на любые темы, для которых не нашлось места в остальных разделах. Если Вашу тему можно отнести по смыслу к другому разделу, лучше создайте её там, иначе Вас накажут.

В данном форуме немного понижены требования к Общим правилам форума, а именно:
1. Информативность темы
2. Отходить от первоначального смысла темы

!
В разделе запрещено создавать темы связанные с раскруткой игровых серверов
2 страниц V   1 2

GOLD Weapon

, права
Статус пользователя LogCat
сообщение 16.1.2019, 12:30
Сообщение #1


Стаж: 8 лет 8 месяцев

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

Люди Что нужно выставить что-бы випка была доступна всем..не только админам?

ADMIN_LEVEL_H
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ddsyarik
сообщение 16.1.2019, 12:35
Сообщение #2
Стаж: 8 лет 1 месяц

Сообщений: 1004
Благодарности: выкл.

Цитата(LogCat @ 16.1.2019, 12:30) *
Люди Что нужно выставить что-бы випка была доступна всем..не только админам?

ADMIN_LEVEL_H

Флаг есть такой Z


Забудь о PROCESSCMD #cs-developer
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Tiproni
сообщение 16.1.2019, 12:40
Сообщение #3


Стаж: 6 лет
Город: Пермь

Сообщений: 278
Благодарностей: 129
Полезность: 576

addons\amxmodx\configs\amxx.cfg

amx_default_access "t"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adva
сообщение 16.1.2019, 12:41
Сообщение #4


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

Стаж: 10 лет

Сообщений: 2543
Благодарностей: 1676
Полезность: 819

Меценат Меценат

ADMIN_ALL
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Tiproni
сообщение 16.1.2019, 12:43
Сообщение #5


Стаж: 6 лет
Город: Пермь

Сообщений: 278
Благодарностей: 129
Полезность: 576

А если хочешь чтобы именно голд оружие было доступно всем, то поменяй проверку на флаг "ADMIN_USER"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя LogCat
сообщение 16.1.2019, 12:59
Сообщение #6


Стаж: 8 лет 8 месяцев

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

Цитата(Tiproni @ 16.1.2019, 13:43) *
А если хочешь чтобы именно голд оружие было доступно всем, то поменяй проверку на флаг "ADMIN_USER"


всё помогло) спасиб

как сделать что бы автоматом выводилсь меню?

Cкрытый текст
// Автор плагина: Leo_[BH] ( http://vk.com/id64427766 )

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <cstrike>
#include <fakemeta_util>

#define is_valid_player(%1) (1 <= %1 <= 32)

// // // // // // // // // // MODEL

new GoldModels[8][64] = {
"models/gold_s/v_deagle.mdl", "models/gold_s/p_deagle.mdl", // 0-1
"models/gold_s/v_awp.mdl", "models/gold_s/p_awp.mdl", // 2-3
"models/gold_black/v_ak47.mdl", "models/gold_black/p_ak47.mdl", // 4-5
"models/gold_black/v_m4a1.mdl", "models/gold_black/p_m4a1.mdl" } // 6-7

public plugin_precache()
{
for (new num = 0; num < 8; num++)
{
precache_model(GoldModels[num]);
}
}

// // // // // // // // // // // // // // // // // // // //

new round

new pistols[6] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_DEAGLE, CSW_USP, CSW_GLOCK18}
new primary[18] = {CSW_SCOUT, CSW_XM1014, CSW_MAC10, CSW_AUG, CSW_UMP45, CSW_SG550, CSW_GALIL, CSW_FAMAS, CSW_AWP,
CSW_MP5NAVY, CSW_M249, CSW_M3, CSW_M4A1, CSW_TMP, CSW_G3SG1, CSW_SG552, CSW_AK47, CSW_P90}

new bool:has_gold_m4a1[33], bool:has_gold_ak47[33], bool:has_gold_awp[33], bool:has_gold_deagle[33]

// // // // // // // // // //

public plugin_init()
{
register_plugin("Gold VIP Menu", "1.0", "Leo_[BH]")

register_event("TextMsg", "event_game_restart", "a", "2=#Game_will_restart_in")
register_event("TextMsg", "event_game_restart", "a", "2=#Game_Commencing")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")

register_event("WeapPickup","checkModel","b","1=19")
register_event("CurWeapon","checkWeapon","be","1=1")
register_event("DeathMsg", "Death", "a")

register_clcmd("vipmenu", "cmd_vip_menu")
register_clcmd("say vipmenu", "cmd_vip_menu")
register_clcmd("say /vipmenu", "cmd_vip_menu")
register_clcmd("say_team vipmenu", "cmd_vip_menu")
register_clcmd("say_team /vipmenu", "cmd_vip_menu")
}

public event_round_start()
{
round++
}

public event_game_restart()
{
round = 0
}

// // // // // // // // // // MODEL

public checkModel(id)
{
new WeaponID = read_data(2)

switch(WeaponID)
{
case CSW_M4A1:
{
if(has_gold_m4a1[id])
{
set_pev(id, pev_viewmodel2, GoldModels[6])
set_pev(id, pev_weaponmodel2, GoldModels[7])
}
}
case CSW_AK47:
{
if(has_gold_ak47[id])
{
set_pev(id, pev_viewmodel2, GoldModels[4])
set_pev(id, pev_weaponmodel2, GoldModels[5])
}
}
case CSW_AWP:
{
if(has_gold_awp[id])
{
set_pev(id, pev_viewmodel2, GoldModels[2])
set_pev(id, pev_weaponmodel2, GoldModels[3])
}
}
case CSW_DEAGLE:
{
if(has_gold_deagle[id])
{
set_pev(id, pev_viewmodel2, GoldModels[0])
set_pev(id, pev_weaponmodel2, GoldModels[1])
}
}
}

return PLUGIN_CONTINUE
}

public checkWeapon(id)
{
checkModel(id)
}

public Death()
{
new id = read_data(2)
has_gold_m4a1[id] = false
has_gold_ak47[id] = false
has_gold_awp[id] = false
has_gold_deagle[id] = false
}

public client_connect(id)
{
has_gold_m4a1[id] = false
has_gold_ak47[id] = false
has_gold_awp[id] = false
has_gold_deagle[id] = false
}

// // // // // // // // // // MENU

public cmd_vip_menu(id)
{
if(get_user_flags(id) & ADMIN_USER)
{
vip_weaponmenu(id)
}
}

public vip_weaponmenu(id)
{
if(round < 1)
{
client_print(id, print_chat, "С 3-ого раунда!")
return PLUGIN_HANDLED;
}

new menu = menu_create("\yЗолотая \rОружейка", "handler_weaponmenu")

menu_additem(menu, "\wM4A1", "1")
menu_additem(menu, "\wAK47", "2")
menu_additem(menu, "\wAWP", "3")
menu_additem(menu, "\wDEAGLE", "4")

menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)

menu_display(id,menu,0)

return PLUGIN_HANDLED;
}

public handler_weaponmenu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

if(!is_user_alive(id))
{
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1: {
remove_primary(id)
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 120)
has_gold_m4a1[id] = true
}
case 2: {
remove_primary(id)
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 120)
has_gold_ak47[id] = true
}
case 3: {
remove_primary(id)
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 45)
has_gold_awp[id] = true
}
case 4: {
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 80)
has_gold_deagle[id] = true
}
}
return PLUGIN_HANDLED
}

// // // // // // // // // // remove primary

remove_primary(id)
{
for(new i = 0; i < 18; i++)
{
fm_strip_user_gun(id, primary[i])
}
}

public remove_secondary(id)
{
for(new i = 0; i < 6; i++)
{
fm_strip_user_gun(id, pistols[i])
}
}

// // // // // // // // // // // // // // // // // // // //
/// ///
///////////////////////////////////////////////////////////
// ///
// Автор плагина - Leo_[BH] ///
// Делаю, пишу плагины на заказ! ///
// http://vk.com/id64427766 ///
// http://vk.com/cs_rain ///
// Skype: bcnl_leon ///
// ///
// Мой Магазин плагинов: ///
// http://vk.cc/2pSEjN ///
// ///
///////////////////////////////////////////////////////////
/// ///
// // // // // // // // // // // // // // // // // // // /
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя LogCat
сообщение 16.1.2019, 13:34
Сообщение #7


Стаж: 8 лет 8 месяцев

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

как сделать что бы автоматом выводилсь меню?


Cкрытый текст
// Автор плагина: Leo_[BH] ( http://vk.com/id64427766 )

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <cstrike>
#include <fakemeta_util>

#define is_valid_player(%1) (1 <= %1 <= 32)

// // // // // // // // // // MODEL

new GoldModels[8][64] = {
"models/gold_s/v_deagle.mdl", "models/gold_s/p_deagle.mdl", // 0-1
"models/gold_s/v_awp.mdl", "models/gold_s/p_awp.mdl", // 2-3
"models/gold_black/v_ak47.mdl", "models/gold_black/p_ak47.mdl", // 4-5
"models/gold_black/v_m4a1.mdl", "models/gold_black/p_m4a1.mdl" } // 6-7

public plugin_precache()
{
for (new num = 0; num < 8; num++)
{
precache_model(GoldModels[num]);
}
}

// // // // // // // // // // // // // // // // // // // //

new round

new pistols[6] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_DEAGLE, CSW_USP, CSW_GLOCK18}
new primary[18] = {CSW_SCOUT, CSW_XM1014, CSW_MAC10, CSW_AUG, CSW_UMP45, CSW_SG550, CSW_GALIL, CSW_FAMAS, CSW_AWP,
CSW_MP5NAVY, CSW_M249, CSW_M3, CSW_M4A1, CSW_TMP, CSW_G3SG1, CSW_SG552, CSW_AK47, CSW_P90}

new bool:has_gold_m4a1[33], bool:has_gold_ak47[33], bool:has_gold_awp[33], bool:has_gold_deagle[33]

// // // // // // // // // //

public plugin_init()
{
register_plugin("Gold VIP Menu", "1.0", "Leo_[BH]")

register_event("TextMsg", "event_game_restart", "a", "2=#Game_will_restart_in")
register_event("TextMsg", "event_game_restart", "a", "2=#Game_Commencing")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")

register_event("WeapPickup","checkModel","b","1=19")
register_event("CurWeapon","checkWeapon","be","1=1")
register_event("DeathMsg", "Death", "a")

register_clcmd("vipmenu", "cmd_vip_menu")
register_clcmd("say vipmenu", "cmd_vip_menu")
register_clcmd("say /vipmenu", "cmd_vip_menu")
register_clcmd("say_team vipmenu", "cmd_vip_menu")
register_clcmd("say_team /vipmenu", "cmd_vip_menu")
}

public event_round_start()
{
round++
}

public event_game_restart()
{
round = 0
}

// // // // // // // // // // MODEL

public checkModel(id)
{
new WeaponID = read_data(2)

switch(WeaponID)
{
case CSW_M4A1:
{
if(has_gold_m4a1[id])
{
set_pev(id, pev_viewmodel2, GoldModels[6])
set_pev(id, pev_weaponmodel2, GoldModels[7])
}
}
case CSW_AK47:
{
if(has_gold_ak47[id])
{
set_pev(id, pev_viewmodel2, GoldModels[4])
set_pev(id, pev_weaponmodel2, GoldModels[5])
}
}
case CSW_AWP:
{
if(has_gold_awp[id])
{
set_pev(id, pev_viewmodel2, GoldModels[2])
set_pev(id, pev_weaponmodel2, GoldModels[3])
}
}
case CSW_DEAGLE:
{
if(has_gold_deagle[id])
{
set_pev(id, pev_viewmodel2, GoldModels[0])
set_pev(id, pev_weaponmodel2, GoldModels[1])
}
}
}

return PLUGIN_CONTINUE
}

public checkWeapon(id)
{
checkModel(id)
}

public Death()
{
new id = read_data(2)
has_gold_m4a1[id] = false
has_gold_ak47[id] = false
has_gold_awp[id] = false
has_gold_deagle[id] = false
}

public client_connect(id)
{
has_gold_m4a1[id] = false
has_gold_ak47[id] = false
has_gold_awp[id] = false
has_gold_deagle[id] = false
}

// // // // // // // // // // MENU

public cmd_vip_menu(id)
{
if(get_user_flags(id) & ADMIN_USER)
{
vip_weaponmenu(id)
}
}

public vip_weaponmenu(id)
{
if(round < 1)
{
client_print(id, print_chat, "С 3-ого раунда!")
return PLUGIN_HANDLED;
}

new menu = menu_create("\yЗолотая \rОружейка", "handler_weaponmenu")

menu_additem(menu, "\wM4A1", "1")
menu_additem(menu, "\wAK47", "2")
menu_additem(menu, "\wAWP", "3")
menu_additem(menu, "\wDEAGLE", "4")

menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)

menu_display(id,menu,0)

return PLUGIN_HANDLED;
}

public handler_weaponmenu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

if(!is_user_alive(id))
{
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1: {
remove_primary(id)
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 120)
has_gold_m4a1[id] = true
}
case 2: {
remove_primary(id)
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 120)
has_gold_ak47[id] = true
}
case 3: {
remove_primary(id)
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 45)
has_gold_awp[id] = true
}
case 4: {
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 80)
has_gold_deagle[id] = true
}
}
return PLUGIN_HANDLED
}

// // // // // // // // // // remove primary

remove_primary(id)
{
for(new i = 0; i < 18; i++)
{
fm_strip_user_gun(id, primary[i])
}
}

public remove_secondary(id)
{
for(new i = 0; i < 6; i++)
{
fm_strip_user_gun(id, pistols[i])
}
}

// // // // // // // // // // // // // // // // // // // //
/// ///
///////////////////////////////////////////////////////////
// ///
// Автор плагина - Leo_[BH] ///
// Делаю, пишу плагины на заказ! ///
// http://vk.com/id64427766 ///
// http://vk.com/cs_rain ///
// Skype: bcnl_leon ///
// ///
// Мой Магазин плагинов: ///
// http://vk.cc/2pSEjN ///
// ///
///////////////////////////////////////////////////////////
/// ///
// // // // // // // // // // // // // // // // // // // /
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DimkaZst
сообщение 17.1.2019, 8:54
Сообщение #8


Стаж: 7 лет 9 месяцев

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

LogCat, я не много фигею с людей , сделайте мне то , сделайте мне это !
зачем держите сервер если не можете элементарные вещи сделать ?!
почитайте внимательно и вы увидите
Цитата
// Автор плагина: Leo_[BH] ( http://vk.com/id64427766 )
Может быть к нему обратиться?!

Отредактировал: DimkaZst, - 17.1.2019, 8:54


https://www.bestchange.ru/?p=888336 Лучший обменик валюты =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя TaTaR
сообщение 17.1.2019, 9:42
Сообщение #9


Стаж: 5 лет 2 месяца

Сообщений: 135
Благодарностей: 18
Полезность: 95

там вроде выставляются флаги
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DimkaZst
сообщение 17.1.2019, 21:11
Сообщение #10


Стаж: 7 лет 9 месяцев

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

ему надо что бы автоматически меню открывалось .
Лично меня и большинство моих игроков , когда держал сервер , очень бесило что меню автоматически появлялось =)
Есть же плагин для вывода информации в чат.
Вот пример на память что бы не еб*ть мозги не себе не людям !
!n[!gChatBot!n] !tЧто бы открыть меню !nзабиндите кнопку в консоле !gbind !nВаша кнопка !gvipmenu
Элементарно ватсон !

Отредактировал: DimkaZst, - 17.1.2019, 21:11


https://www.bestchange.ru/?p=888336 Лучший обменик валюты =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя eat1k
сообщение 17.1.2019, 21:32
Сообщение #11
Стаж: 9 лет 9 месяцев

Сообщений: 52
Благодарностей: 25
Полезность: 272

Цитата(Tiproni @ 16.1.2019, 12:43) *
А если хочешь чтобы именно голд оружие было доступно всем, то поменяй проверку на флаг "ADMIN_USER"

Будет доступно не всем а игрокам с флагом "z". Это разные вещи.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Tiproni
сообщение 17.1.2019, 23:34
Сообщение #12


Стаж: 6 лет
Город: Пермь

Сообщений: 278
Благодарностей: 129
Полезность: 576

Цитата(eat1k @ 17.1.2019, 21:32) *
Будет доступно не всем а игрокам с флагом "z". Это разные вещи.

Я не любитель спорить, но все таки напишу... По дефолту практически на всех (99%) сборках серверов, в amxx.cfg прописан квар: amx_default_access "z"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя eat1k
сообщение 17.1.2019, 23:49
Сообщение #13
Стаж: 9 лет 9 месяцев

Сообщений: 52
Благодарностей: 25
Полезность: 272

Tiproni, логично, ведь у обычных игроков будет флаг z. А всем остальным игрокам у кого будет какой-либо другой флаг данный флаг "z" не выдаётся. Исходя из этого, можно догадаться что "z" только для игроков без прав.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Tiproni
сообщение 18.1.2019, 0:07
Сообщение #14


Стаж: 6 лет
Город: Пермь

Сообщений: 278
Благодарностей: 129
Полезность: 576

Ты прав, но надо учитывать то, что некоторые владельцы прописывают z флаг (до кучи ко всему)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DimkaZst
сообщение 18.1.2019, 5:34
Сообщение #15


Стаж: 7 лет 9 месяцев

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

Цитата(Tiproni @ 18.1.2019, 1:07) *
Ты прав, но надо учитывать то, что некоторые владельцы прописывают z флаг (до кучи ко всему)

Что то в первые слышу , что дефолтный флаг прописывают до кучи.
выше написали хочешь выдать всем права VIP и не парить себе мозг , есть такой файл amxx.cfg ( вообще он самый полезный файлик =)


https://www.bestchange.ru/?p=888336 Лучший обменик валюты =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя google.bsk
сообщение 1.8.2019, 11:40
Сообщение #16
Стаж: 11 лет

Сообщений: 1296
Благодарностей: 232
Полезность: 26

Помогите изменить в исходнике плагина параметры:
1) Запретить подбирать золотое оружие простым игрокам
2) Показать где там в исходнике изменять урон от золотого оружия. В дальнейшем самостоятельно тестировать буду
amxx_vip_gold.sma
#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta_util>

enum _:eVipType { Null = 0, ViP, ViPGold };
enum _:eGoldList{ Knife = 0, Deagle, Awp, Ak47, M4A1 };

#define VipFlag "b"
#define VipFlagGold "t"

#define MinRoundToOpenMenu 1
#define AWP_LIMIT 10
#define AK47_LIMIT 7
#define M4A1_LIMIT 5

#define Damage_Awp 1.1
#define Damage_Ak4 1.2
#define Damage_M4A1 1.2
#define Damage_Deagle 2.0

#define DROP_TYPE 2 // 1 - обычный дроп. 2 - удаляется из рук вообще

new szGoldV[eGoldList][32] = {
"models/gold/v_knife.mdl",
"models/gold/v_deagle.mdl",
"models/gold/v_awp.mdl",
"models/gold/v_ak47.mdl",
"models/gold/v_m4a1.mdl"
};

new szGoldP[eGoldList][32] = {
"models/gold/p_knife.mdl",
"models/gold/p_deagle.mdl",
"models/gold/p_awp.mdl",
"models/gold/p_ak47.mdl",
"models/gold/p_m4a1.mdl"
};

new szGoldW[eGoldList][32] = {
"",
"models/gold/w_deagle.mdl",
"models/gold/w_awp.mdl",
"models/gold/w_ak47.mdl",
"models/gold/w_m4a1.mdl"
};

enum _:eKeyGold{
_Deagle = 36895,
_Awp,
_Ak47,
_M4A1
};

enum _:eGoldCost{
Cost_Awp = 300,
Cost_Ak4 = 200,
Cost_M4A1 = 100
};

new iVipFlag[33], bool:bDefuse, iRoundNum;

public plugin_init()
{
register_plugin("[AMXX] ViP Gold", "1.0", "Flymic24");

register_event("TextMsg", "Event_RoundRestart", "a", "2&#Game_C", "2&#Game_w");
register_event("HLTV", "Event_RoundStart", "a", "1=0", "2=0");

register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib");

if(engfunc(EngFunc_FindEntityByString, FM_NULLENT, "classname", "func_bomb_target"))
bDefuse = true;

RegisterHam(Ham_Spawn, "player", "HamHook_Player_Spawn", true);

RegisterHam(Ham_Item_Deploy, "weapon_knife", "HamHook_Knife_Deploy", true);
RegisterHam(Ham_Item_Deploy, "weapon_ak47", "HamHook_Item_Deploy", true);
RegisterHam(Ham_Item_Deploy, "weapon_awp", "HamHook_Item_Deploy", true);
RegisterHam(Ham_Item_Deploy, "weapon_m4a1", "HamHook_Item_Deploy", true);
RegisterHam(Ham_Item_Deploy, "weapon_deagle","HamHook_Item_Deploy", true);

RegisterHam(Ham_Touch, "weapon_ak47", "HamHook_Item_AttachToPlayer", false);
RegisterHam(Ham_Touch, "weapon_m4a1", "HamHook_Item_AttachToPlayer", false);
RegisterHam(Ham_Touch, "weapon_awp", "HamHook_Item_AttachToPlayer", false);
RegisterHam(Ham_Touch, "weapon_deagle","HamHook_Item_AttachToPlayer", false);

RegisterHam(Ham_TraceAttack, "func_breakable", "HamHook_Entity_TraceAttack", false);
RegisterHam(Ham_TraceAttack, "hostage_entity", "HamHook_Entity_TraceAttack", false);
RegisterHam(Ham_TraceAttack, "info_target", "HamHook_Entity_TraceAttack", false);
RegisterHam(Ham_TraceAttack, "player", "HamHook_Entity_TraceAttack", false);

register_forward(FM_SetModel, "Fakemeta_SetModel")

register_clcmd("say /vipmenu", "WeaponMenu");
register_clcmd("vipmenu", "WeaponMenu");

register_menucmd(register_menuid("Vip Menu"), 1023, "VipHandler");
}

public plugin_precache()
{
for(new i = 0; i < sizeof(szGoldV); i++) if (szGoldV[i][0]) precache_model(szGoldV[i]);
for(new i = 0; i < sizeof(szGoldP); i++) if (szGoldP[i][0]) precache_model(szGoldP[i]);
for(new i = 0; i < sizeof(szGoldW); i++) if (szGoldW[i][0]) precache_model(szGoldW[i]);
}

public client_putinserver(iPlayer)
{
if (GetUserFlags(iPlayer) == Null)
return;

new szName[32]; get_user_name(iPlayer, szName, charsmax(szName));
UtilChatColor(0, "На сервер зашёл !gVIP !yклиент !team%s", szName);
}

public Event_RoundRestart() iRoundNum = 0;
public Event_RoundStart() iRoundNum++;

public MessageScoreAttrib(iMsgId, iDest, iReceiver)
{
new iPlayer = get_msg_arg_int(1);

if(iVipFlag[iPlayer] > Null && !get_msg_arg_int(2))
set_msg_arg_int(2, ARG_BYTE, (1<<2));
}

public HamHook_Knife_Deploy(const iItem)
{
if (pev_valid(iItem) != 2)
return HAM_IGNORED;

new iPlayer = get_pdata_cbase(iItem, 41, 4);

if(iVipFlag[iPlayer] != ViPGold)
return HAM_IGNORED;

set_pev(iPlayer, pev_viewmodel2, szGoldV[ Knife ]);
set_pev(iPlayer, pev_weaponmodel2, szGoldP[ Knife ]);

return HAM_IGNORED;
}

public HamHook_Item_Deploy(const iItem)
{
if (pev_valid(iItem) != 2)
return HAM_IGNORED;

new iIndex = 0;

switch(pev(iItem, pev_impulse))
{
case _Ak47: iIndex = Ak47;
case _Awp: iIndex = Awp;
case _M4A1: iIndex = M4A1;
case _Deagle: iIndex = Deagle;
default: return HAM_IGNORED;
}

if (iIndex)
{
new iPlayer = get_pdata_cbase(iItem, 41, 4);
set_pev(iPlayer, pev_viewmodel2, szGoldV[ iIndex ]);
set_pev(iPlayer, pev_weaponmodel2, szGoldP[ iIndex ]);
}

return HAM_IGNORED;
}

public HamHook_Item_AttachToPlayer(const iItem, const iPlayer)
{
if (!pev_valid(iItem))
return HAM_IGNORED;

switch(pev(iItem, pev_impulse))
{
case _Deagle.._M4A1:
{
if (iVipFlag[iPlayer] != ViPGold)
return HAM_SUPERCEDE;
}
default: return HAM_IGNORED;
}

return HAM_IGNORED;
}

public HamHook_Entity_TraceAttack(const iEntity, const iAttacker, Float:flDamage)
{
if (!is_user_alive(iAttacker) || !pev_valid(iEntity))
return HAM_IGNORED;

new iItem = get_pdata_cbase(iAttacker, 373, 5);

if (!pev_valid(iItem)) return HAM_IGNORED;

new Float:iIndex;

switch(pev(iItem, pev_impulse))
{
case _Ak47: iIndex = Damage_Ak4;
case _Awp: iIndex = Damage_Awp;
case _M4A1: iIndex = Damage_M4A1;
case _Deagle: iIndex = Damage_Deagle;
default: return HAM_IGNORED;
}

if (iIndex) SetHamParamFloat(3, flDamage * iIndex);

return HAM_IGNORED;
}

public HamHook_Player_Spawn(const iPlayer)
{
if (!is_user_alive(iPlayer) || is_user_bot(iPlayer))
return HAM_IGNORED;

if (iVipFlag[iPlayer] <= Null)
return HAM_IGNORED;

give_item_ex2(iPlayer, "weapon_hegrenade", 1);
give_item_ex2(iPlayer, "weapon_flashbang", 2);
give_item_ex2(iPlayer, "weapon_smokegrenade", 1);

if (!user_has_weapon(iPlayer, CSW_DEAGLE))
{
give_item_ex2(iPlayer, "weapon_deagle", 35, true, (iVipFlag[iPlayer] == ViPGold) ? _Deagle : Null);
}

cs_set_user_armor(iPlayer, 100, CS_ARMOR_VESTHELM);

if(bDefuse && cs_get_user_team(iPlayer) == CS_TEAM_CT)
cs_set_user_defuse(iPlayer, 1);

return HAM_IGNORED;
}

public Fakemeta_SetModel(const iEntity, szModel[])
{
if(!pev_valid(iEntity))
return FMRES_IGNORED;

new szClassName[32];
pev(iEntity, pev_classname, szClassName, charsmax(szClassName));

if (!equali(szClassName, "weaponbox"))
return FMRES_IGNORED;

for(new iSlot, iWeapon, iIndex; iSlot < 6; iSlot++)
{
iWeapon = get_pdata_cbase(iEntity, 34 + iSlot, 4);

if (pev_valid(iWeapon))
{
switch(pev(iWeapon, pev_impulse))
{
case _Ak47: iIndex = Ak47;
case _Awp: iIndex = Awp;
case _M4A1: iIndex = M4A1;
case _Deagle: iIndex = Deagle;
}

if (iIndex)
{
engfunc(EngFunc_SetModel, iEntity, szGoldW[iIndex]);
return FMRES_SUPERCEDE;
}
}
}

return FMRES_IGNORED;
}

public WeaponMenu(iPlayer)
{
if (!is_user_alive(iPlayer) || iVipFlag[iPlayer] <= Null)
return PLUGIN_HANDLED;

if (iRoundNum < MinRoundToOpenMenu)
{
UtilChatColor(iPlayer, "!g[!yViP!g] !yМеню не доступно. Жди ещё !team%i !yраунд", MinRoundToOpenMenu - iRoundNum);
return PLUGIN_HANDLED;
}

static szMenu[512], iLen;

iLen = formatex(szMenu, charsmax(szMenu), "\r[\yVIP\r] \wWeaponMenu^n^n");

iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y1. \wВзять AK47^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y2. \wВзять M4A1^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y3. \wВзять AWP^n");

if (iVipFlag[iPlayer] == ViPGold)
{
if(iRoundNum < AK47_LIMIT)
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y4. \dВзять AK47 Gold \r[c %d раунда]^n", AK47_LIMIT);
else
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y4. \wВзять AK47 Gold \y(\r%i$\y)^n", Cost_Ak4);

if(iRoundNum < M4A1_LIMIT)
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y5. \dВзять M4A1 Gold \r[c %d раунда]^n", M4A1_LIMIT);
else
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y5. \wВзять M4A1 Gold \y(\r%i$\y)^n", Cost_M4A1);

if(iRoundNum < AWP_LIMIT)
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y6. \dВзять AWP Gold \r[c %d раунда]^n", AWP_LIMIT);
else
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y6. \wВзять AWP Gold \y(\r%i$\y)^n", Cost_Awp);
}

iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y0. \wВыход");

set_pdata_int(iPlayer, 205, 0);

show_menu(iPlayer, 1023, szMenu, -1, "Vip Menu");

return PLUGIN_HANDLED;
}

public VipHandler(iPlayer, iKey)
{
if (!is_user_alive(iPlayer))
return PLUGIN_HANDLED;

new iNewKey = iKey + 1;

static szWeaponName[][] = { "", "AK", "M4", "AWP", "Gold AK", "Gold M4", "Gold AWP" };
static szChoosedWP[][] = { "", "weapon_ak47", "weapon_m4a1", "weapon_awp" };
static szChoosedBP[] = { 0, 90, 90, 90, 30 };
static iGoldKey[] = { 0, _Ak47, _M4A1, _Awp };
static iCost[] = { 0, Cost_Ak4, Cost_M4A1, Cost_Awp };
static iRoundLimit[] = { 0, AK47_LIMIT, M4A1_LIMIT, AWP_LIMIT };

switch (iNewKey)
{
case 1..3: give_item_ex2(iPlayer, szChoosedWP[iNewKey], szChoosedBP[iNewKey], true);
case 4..6:
{
new iMoney = cs_get_user_money(iPlayer);

if (iRoundNum < iRoundLimit[iNewKey - 3])
{
UtilChatColor(iPlayer, "!g[!yViP!g] !yДоступно только с !g%i !yраунда", iRoundLimit[iNewKey - 3]);
return PLUGIN_HANDLED;
}
if (iMoney < iCost[iNewKey - 3] || iVipFlag[iPlayer] != ViPGold)
{
UtilChatColor(iPlayer, "!g[!yViP!g] !yНе достаточно денег: !team%i!g$", iCost[iNewKey - 3]);
return PLUGIN_HANDLED;
}
else
{
give_item_ex2(iPlayer, szChoosedWP[iNewKey - 3], szChoosedBP[iNewKey - 3], true, iGoldKey[iNewKey - 3]);
cs_set_user_money(iPlayer, iMoney - iCost[iNewKey - 3]);
}
}
default: return PLUGIN_HANDLED;
}

UtilChatColor(iPlayer, "!g[!yViP!g] !yВы получили: !g[!team%s!g]", szWeaponName[iNewKey]);

return PLUGIN_HANDLED;
}

stock give_item_ex2(iPlayer, const szWeaponName[], iAmmo = 0, bool:bDrop = false, iKey = 0)
{
if (!equal(szWeaponName, "weapon_", 7))
return false;

new iWeapon = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, szWeaponName));

if (!pev_valid(iWeapon))
return false;

if (bDrop)
{
new szWeapon[ 32 ],
iSlot = ExecuteHamB(Ham_Item_ItemSlot, iWeapon),
iItem = get_pdata_cbase(iPlayer, 367 + iSlot, 5);

while ((pev_valid(iItem) == 2))
{
pev(iItem, pev_classname, szWeapon, charsmax(szWeapon));

switch(DROP_TYPE)
{
case 1: engclient_cmd(iPlayer, "drop", szWeapon);
case 2: ham_strip_weapon(iPlayer, szWeapon);
}

iItem = get_pdata_cbase(iItem, 42, 4);
}
}

set_pev(iWeapon, pev_spawnflags, pev(iWeapon, pev_spawnflags) | SF_NORESPAWN);

if (iKey > 0) set_pev(iWeapon, pev_impulse, iKey);
if (iAmmo > 0) cs_set_user_bpammo(iPlayer, get_weaponid(szWeaponName), iAmmo);

dllfunc(DLLFunc_Spawn, iWeapon);
dllfunc(DLLFunc_Touch, iWeapon, iPlayer);

return true;
}

stock ham_strip_weapon(id, weapon[])
{
if(!equal(weapon,"weapon_",7)) return 0

new wId = get_weaponid(weapon)
if(!wId) return 0

new wEnt
while((wEnt = engfunc(EngFunc_FindEntityByString, wEnt, "classname", weapon)) && pev(wEnt, pev_owner) != id) {}
if(!wEnt) return 0

new iTmp
if(get_user_weapon(id, iTmp, iTmp) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt)

if(!ExecuteHamB(Ham_RemovePlayerItem, id, any:wEnt)) return 0

ExecuteHamB(Ham_Item_Kill, wEnt)
set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wId))

return 1
}

stock GetUserFlags(const iPlayer)
{
if (!is_user_connected(iPlayer))
return -1;

new iFlags = get_user_flags(iPlayer);
new iReturnBit;

if (iFlags & read_flags(VipFlagGold))
{
iVipFlag[iPlayer] = ViPGold;
iReturnBit = ViPGold;
}
else if (iFlags & read_flags(VipFlag))
{
iVipFlag[iPlayer] = ViP;
iReturnBit = ViP;
}
else
{
iVipFlag[iPlayer] = Null;
iReturnBit = Null;
}

return iReturnBit;
}

stock UtilChatColor(const iPlayer, const szInput[], any:...)
{
new iCount = 1, szPlayers[32];
static szMessage[191];

vformat(szMessage, charsmax(szMessage), szInput, 3);

replace_all(szMessage, charsmax(szMessage), "!g", "^4"); // Green Color
replace_all(szMessage, charsmax(szMessage), "!y", "^1"); // Default Color
replace_all(szMessage, charsmax(szMessage), "!team", "^3"); // Team Color

static g_SayText;
if (!g_SayText) g_SayText = get_user_msgid("SayText");

if(iPlayer) szPlayers[0] = iPlayer; else get_players(szPlayers, iCount, "ch");
{
for(new i = 0; i < iCount; i++)
{
if(!is_user_connected(szPlayers[i])) continue;

message_begin(MSG_ONE_UNRELIABLE, g_SayText, _, szPlayers[i]);
write_byte(szPlayers[i]);
write_string(szMessage);
message_end();
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя pacumka
сообщение 1.8.2019, 12:08
Сообщение #17
Стаж: 6 лет

Сообщений: 1606
Благодарностей: 1117
Полезность: 1218

Меценат Меценат

урон

#define Damage_Awp 1.1
#define Damage_Ak4 1.2
#define Damage_M4A1 1.2
#define Damage_Deagle 2.0
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mOdest
сообщение 1.8.2019, 16:59
Сообщение #18


Стаж: 7 лет 8 месяцев

Сообщений: 1255
Благодарностей: 255
Полезность: 79

google.bsk, у тебя здесь нет отлова события поднятия оружия, нужно дописывать. если ты про выдачу с помощью меню, то добавь проверку на нужный тебе флаг
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя google.bsk
сообщение 1.8.2019, 18:26
Сообщение #19
Стаж: 11 лет

Сообщений: 1296
Благодарностей: 232
Полезность: 26

Цитата(mOdest @ 1.8.2019, 19:59) *
google.bsk, у тебя здесь нет отлова события поднятия оружия, нужно дописывать. если ты про выдачу с помощью меню, то добавь проверку на нужный тебе флаг

сможешь дописать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mOdest
сообщение 1.8.2019, 19:03
Сообщение #20


Стаж: 7 лет 8 месяцев

Сообщений: 1255
Благодарностей: 255
Полезность: 79

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