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

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

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

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

Помощь с плагином вип

, Ограничение оружие по раундам
Статус пользователя debars
сообщение 24.7.2014, 18:36
Сообщение #1


Стаж: 14 лет

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

Доброго дня Вам! Помогите, сделать ограничение оружие по раундам!

А точней:
dgl - 1 раунд
ak47 и m4a1 - 2 раунд
awp - 3 раунд

CODE
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>

#define PLUGIN_NAME ""
#define AUTHOR ""
#define VERSION ""

#define VIP_FLAG ADMIN_LEVEL_H

new bool:gUserVip[33], bool:gUserHud[33], bool:gPlugOn = true
new g_Used[33][4]
new g_iPlayerPos[33]
new round_number = 0

new const primaryWeapons[][] = {
"weapon_shield",
"weapon_scout",
"weapon_xm1014",
"weapon_mac10",
"weapon_aug",
"weapon_ump45",
"weapon_sg550",
"weapon_galil",
"weapon_famas",
"weapon_awp",
"weapon_mp5navy",
"weapon_m249",
"weapon_m3",
"weapon_m4a1",
"weapon_tmp",
"weapon_g3sg1",
"weapon_sg552",
"weapon_ak47",
"weapon_p90"
}

new const secondaryWeapons[][] = {
"weapon_p228",
"weapon_elite",
"weapon_fiveseven",
"weapon_usp",
"weapon_glock18",
"weapon_deagle"
}

new const Float:g_flCoords[][] =
{
{0.50, 0.40},
{0.56, 0.44},
{0.60, 0.50},
{0.56, 0.56},
{0.50, 0.60},
{0.44, 0.56},
{0.40, 0.50},
{0.44, 0.44}
}

public plugin_init()
{
register_plugin(PLUGIN_NAME, VERSION, AUTHOR)

register_clcmd("say /vipmenu", "function_menu")
register_clcmd("vipmenu", "function_menu")

register_event("Damage", "Event_Damage", "b", "2>0", "3=0")
register_event("TextMsg", "eventGameRestart", "a", "2=#Game_Commencing", "2=#Game_will_restart_in")

register_logevent("round_start", 2, "1=Round_Start")

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

public plugin_cfg()
{
new mapname[32]
get_mapname(mapname, charsmax(mapname))
if((containi(mapname, "awp_") != -1) || (containi(mapname, "35hp_") != -1))
gPlugOn = false
else
gPlugOn = true
}

public eventGameRestart()
{
round_number = 0
}

public round_start()
{
round_number++
}

public Event_Damage(iVictim)
{
new id = get_user_attacker(iVictim)
if(gUserVip[id] && gUserHud[id] && (read_data(4) || read_data(5) || read_data(6)))
{
if(is_user_alive(id))
{
new iPos = ++g_iPlayerPos[id]
if( iPos == sizeof(g_flCoords) )
{
iPos = g_iPlayerPos[id] = 0
}
set_hudmessage(255, 0, 0, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1)
show_hudmessage(id, "%d", read_data(2))
}
}
}

public function_menu(id)
{
if(!gUserVip[id])
return PLUGIN_HANDLED;

new menu = menu_create("\w[\y V.I.P \w] \r Меню", "menu_handler")

if(gPlugOn)
{
if(is_user_alive(id))
{
menu_additem(menu, "\yОружейка\r","1")
}
else
{
menu_additem(menu, "\dОружейка\r","1")
}
}

if(gUserHud[id])
{
menu_additem(menu, "\yДамагер включен\r", "2")
}
else
{
menu_additem(menu, "\yДамагер выключен\r", "2")
}

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

menu_display(id,menu,0)

return PLUGIN_HANDLED
}

public menu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
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:
{
if(is_user_alive(id))
weapon(id)
else
menu_display(id, menu, 0)
}
case 2:
{
if(gUserHud[id] == true)
{
gUserHud[id] = false
client_cmd(id, "setinfo _hud 0");
}
else
{
gUserHud[id] = true
client_cmd(id, "setinfo _hud 1");
}
// menu_display(id, menu, 0)
}
}
return PLUGIN_HANDLED
}

public weapon(id)
{
new wmenu = menu_create("\w[\y V.I.P \w] \r Оружейка", "wmenu_handler")

menu_additem(wmenu, "\wВзять \r[\y Deagle \r]\r","1")
menu_additem(wmenu, "\wВзять \r[\y AK47 \r]\r", "2")
menu_additem(wmenu, "\wВзять \r[\y M4A1 \r]\r","3")
menu_additem(wmenu, "\wВзять \r[\y AWP \r]\r","4")
menu_setprop(wmenu, MPROP_EXITNAME, "Выход")
menu_setprop(wmenu, MPROP_EXIT,MEXIT_ALL)

menu_display(id,wmenu,0)
return PLUGIN_HANDLED
}

public wmenu_handler(id, wmenu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(wmenu)
return PLUGIN_HANDLED
}

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

new key = str_to_num(data)

switch(key)
{
case 1:
{
if(!g_Used[id][0])
{
for(i = 0; i < sizeof secondaryWeapons; i++)
engclient_cmd(id, "drop", secondaryWeapons[i])
set_task(0.1,"give_dgl", id)
}
else
{
ChatColor(id, "!g[V.I.P]!team Вы уже брали данное оружие в этом раунде!");
}
}
case 2:
{
if(round_number>2)
{
if(!g_Used[id][1])
{
for(i = 0; i < sizeof primaryWeapons; i++)
engclient_cmd(id, "drop", primaryWeapons[i])
set_task(0.1,"give_ak", id)
}
else
{
ChatColor(id, "!g[V.I.P]!team Вы уже брали данное оружие в этом раунде!");
}
}
else
{
ChatColor(id , "!g[V.I.P]!team Данное оружие доступно с третьего раунда!")
}

}
case 3:
{
if(round_number>2)
{
if(!g_Used[id][2])
{
for(i = 0; i < sizeof primaryWeapons; i++)
engclient_cmd(id, "drop", primaryWeapons[i])
set_task(0.1,"give_m4", id)
}
else
{
ChatColor(id, "!g[V.I.P]!team Вы уже брали данное оружие в этом раунде!");
}
}
else
{
ChatColor(id , "!g[V.I.P]!team Данное оружие доступно с третьего раунда!")
}
}
case 4:
{
if(round_number>2)
{
if(!g_Used[id][3])
{
for(i = 0; i < sizeof primaryWeapons; i++)
engclient_cmd(id, "drop", primaryWeapons[i])
set_task(0.1,"give_awp", id)
}
else
{
ChatColor(id, "!g[V.I.P]!team Вы уже брали данное оружие в этом раунде!");
}
}
else
{
ChatColor(id , "!g[V.I.P]!team Данное оружие доступно с третьего раунда!")
}
}
}
menu_display(id,wmenu,0)
return PLUGIN_HANDLED;
}

public Player_Spawn(id)
{
if(gUserVip[id] && gPlugOn)
{
for(new j = 0; j < 4; j++)
g_Used[id][j] = 0
set_user_armor(id, 100)
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
}
}

public client_putinserver(id)
{
if (get_user_flags(id) & VIP_FLAG)
{
gUserVip[id] = true
new str[20];
get_user_info(id, "_hud", str, charsmax(str));
if(equal(str,"1"))
{
gUserHud[id] = true
}
else
{
gUserHud[id] = false
}
}
}

public client_disconnect(id)
{
gUserVip[id] = false
}

public give_dgl(id)
{
give_item(id, "weapon_deagle")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
g_Used[id][0] = 1
}

public give_ak(id)
{
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id , CSW_AK47, 90)
g_Used[id][1] = 1
}

public give_m4(id)
{
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id , CSW_M4A1, 90)
g_Used[id][2] = 1
}

public give_awp(id)
{
give_item(id, "weapon_awp")
cs_set_user_bpammo(id , CSW_AWP, 30)
g_Used[id][3] = 1
}

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();
}
}
}
}


Сам плагин
Прикрепленный файл  vips_new.sma ( 8,1 килобайт ) Кол-во скачиваний: 1


Отредактировал: debars, - 24.7.2014, 18:36
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legenda
сообщение 24.7.2014, 18:42
Сообщение #2


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

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

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

помочь сделать или сделать за тебя?
второе $$
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя debars
сообщение 24.7.2014, 18:51
Сообщение #3


Стаж: 14 лет

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

Цитата(Legenda @ 24.7.2014, 19:42) *
помочь сделать или сделать за тебя?
второе $$


Помочь, сделать за меня blush2.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 24.7.2014, 18:56
Сообщение #4


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

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

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

Цитата(debars @ 24.7.2014, 20:51) *
Помочь, сделать за меня blush2.gif

так у тебя уже есть ограничение
сделай так и перекомпилируй плагин
Код:

...........................................
case 2:
{
if(round_number>=2)
...........................................


Код:

...........................................
case 3:
{
if(round_number>=2)
...........................................


Код:

...........................................
case 4:
{
if(round_number>=3)
...........................................


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 24.7.2014, 18:59
Сообщение #5
Стаж: 12 лет

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

1) Отлавливаешь событие начало нового раунда
2) Создаешь переменную скажем g_Round
3) В событии отлова раунда пишешь g_Round++
4) Делаешь проверку, там где тебе нужно:

Код:
if(g_Round >= 3)
{
// source code here
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 24.7.2014, 19:01
Сообщение #6


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

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

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

Цитата(Esecman @ 24.7.2014, 20:59) *
1) Отлавливаешь событие начало нового раунда
2) Создаешь переменную скажем g_Round
3) В событии отлова раунда пишешь g_Round++
4) Делаешь проверку, там где тебе нужно:

Код:
if(g_Round >= 3)
{
// source code here
}

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