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

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

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

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

> Полезные ссылки

плагин

Zoroark
сообщение 14.1.2014, 16:57
Сообщение #1
Стаж: 13 лет

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

Здравствуйте!
Плагин weaponmenu only admins
Кто хорошо в скриптинге разбираеться, сделайте чтобы (2,3,5 - на изображении пункты) можно было использовать только раз в раунд. Остальные пункты пусть будут как есть.
Изображение
http://imgdepo.ru/id/i5843287


Исходник
#include <amxmodx>
#include <fun>
#include <cstrike>

new givingweapon[33], givepack[33]

public plugin_init()
{
register_plugin("WeaponMenu Only Admins", "1.0", "UNREAL") // Название плагина (Не менять ***!)
register_clcmd("weaponmenu", "cmdmenu")
}

public cmdmenu(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H)) return PLUGIN_HANDLED
givingweapon[id] = 0
new menu = menu_create("\rВыберите раздел", "g_menu_handler")
menu_additem(menu, "Пистолеты", "1")
menu_additem(menu, "Автоматы", "2")
menu_additem(menu, "Винтовки", "3")
menu_additem(menu, "Снаряжение", "4")
menu_additem(menu, "Комплекты оружия", "5")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}

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

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new Key = str_to_num(s_Data)
switch(Key)
{
case 1: cmdpistols(id)
case 2: cmdautom(id)
case 3: cmdrifles(id)
case 4: cmdsecond(id)
case 5: cmdpack(id)
}

menu_destroy(menu)
return PLUGIN_HANDLED
}

public cmdpistols(id)
{
new menu = menu_create("\rВыберите оружие", "pi_menu_handler")
menu_additem(menu, "Glock 18", "1")
menu_additem(menu, "USP", "2")
menu_additem(menu, "P228", "3")
menu_additem(menu, "Deagle", "4")
menu_additem(menu, "FiveSeven", "5")
menu_additem(menu, "Elite", "6")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
}

public pi_menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
//cmdmenu(id)
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new Key = str_to_num(s_Data)
switch(Key)
{
case 1: cmdgivepist(id, 17)
case 2: cmdgivepist(id, 16)
case 3: cmdgivepist(id, 1)
case 4: cmdgivepist(id, 26)
case 5: cmdgivepist(id, 11)
case 6: cmdgivepist(id, 10)
}

menu_destroy(menu)
return PLUGIN_HANDLED
}


public cmdgivepist(id, weapon)
{
givingweapon[id] = weapon

if(is_user_alive(id))
{
switch(givingweapon[id])
{
case 17:
{
cs_set_user_bpammo(id, weapon, 120)
give_item(id, "weapon_glock18")
}
case 16:
{
cs_set_user_bpammo(id, weapon, 100)
give_item(id, "weapon_usp")
}
case 1:
{
cs_set_user_bpammo(id, weapon, 52)
give_item(id, "weapon_p228")
}
case 26:
{
cs_set_user_bpammo(id, weapon, 35)
give_item(id, "weapon_deagle")
}
case 11:
{
cs_set_user_bpammo(id, weapon, 100)
give_item(id, "weapon_fiveseven")
}
case 10:
{
cs_set_user_bpammo(id, weapon, 120)
give_item(id, "weapon_elite")
}
}
}
}

public cmdautom(id)
{
new menu = menu_create("\rВыберите оружие", "aut_menu_handler")
menu_additem(menu, "Benelli M3 Super", "1")
menu_additem(menu, "Benelli XM1014", "2")
menu_additem(menu, "Ingram MAC-10", "3")
menu_additem(menu, "Steyr TMP", "4")
menu_additem(menu, "HK MP5", "5")
menu_additem(menu, "HK UMP 45", "6")
menu_additem(menu, "FN P90", "7")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
}

public aut_menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
//cmdmenu(id)
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new Key = str_to_num(s_Data)
switch(Key)
{
case 1: cmdgiveautom(id, 21)
case 2: cmdgiveautom(id, 5)
case 3: cmdgiveautom(id, 7)
case 4: cmdgiveautom(id, 23)
case 5: cmdgiveautom(id, 19)
case 6: cmdgiveautom(id, 12)
case 7: cmdgiveautom(id, 30)
}

menu_destroy(menu)
return PLUGIN_HANDLED
}


public cmdgiveautom(id, weapon)
{
givingweapon[id] = weapon

if(is_user_alive(id))
{
switch(givingweapon[id])
{
case 21:
{
cs_set_user_bpammo(id, weapon, 32)
give_item(id, "weapon_m3")
}
case 5:
{
cs_set_user_bpammo(id, weapon, 32)
give_item(id, "weapon_xm1014")
}
case 7:
{
cs_set_user_bpammo(id, weapon, 100)
give_item(id, "weapon_mac10")
}
case 23:
{
cs_set_user_bpammo(id, weapon, 120)
give_item(id, "weapon_tmp")
}
case 19:
{
cs_set_user_bpammo(id, weapon, 120)
give_item(id, "weapon_mp5navy")
}
case 12:
{
cs_set_user_bpammo(id, weapon, 100)
give_item(id, "weapon_ump45")
}
case 30:
{
cs_set_user_bpammo(id, weapon, 100)
give_item(id, "weapon_p90")
}
}
}
}

public cmdrifles(id)
{
new menu = menu_create("\rВыберите оружие", "r_menu_handler")
menu_additem(menu, "M4A1", "1")
menu_additem(menu, "AK47", "2")
menu_additem(menu, "AWP", "3")
menu_additem(menu, "AUG", "4")
menu_additem(menu, "SG552", "5")
menu_additem(menu, "Famas", "6")
menu_additem(menu, "Galil", "7")
menu_additem(menu, "Scout", "8")
menu_additem(menu, "G3SG1", "9")
menu_additem(menu, "SG550", "10")
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
}

public r_menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
//cmdmenu(id)
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new Key = str_to_num(s_Data)
switch(Key)
{
case 1: cmdgiverifle(id, 22, 0)
case 2: cmdgiverifle(id, 28, 0)
case 3: cmdgiverifle(id, 18, 0)
case 4: cmdgiverifle(id, 8, 0)
case 5: cmdgiverifle(id, 27, 0)
case 6: cmdgiverifle(id, 15, 0)
case 7: cmdgiverifle(id, 14, 0)
case 8: cmdgiverifle(id, 3, 0)
case 9: cmdgiverifle(id, 24, 0)
case 10: cmdgiverifle(id, 13, 0)
}

menu_destroy(menu)
return PLUGIN_HANDLED
}

public cmdgiverifle(id, weapon, pack)
{
givingweapon[id] = weapon
givepack[id] = pack

if(is_user_alive(id))
{
cs_set_user_bpammo(id, weapon, 90)
switch(givingweapon[id])
{
case 22: give_item(id, "weapon_m4a1")
case 28: give_item(id, "weapon_ak47")
case 18: give_item(id, "weapon_awp")
case 8: give_item(id, "weapon_aug")
case 27: give_item(id, "weapon_sg552")
case 15: give_item(id, "weapon_famas")
case 14: give_item(id, "weapon_galil")
case 3: give_item(id, "weapon_scout")
case 24: give_item(id, "weapon_g3sg1")
case 13: give_item(id, "weapon_sg550")
}
if(givepack[id])
{
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_smokegrenade")
if(cs_get_user_team(id) == CS_TEAM_CT)
cs_set_user_defuse(id, 1)
cs_set_user_armor(id, 100, CsArmorType:2)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
give_item(id, "weapon_deagle")
}
}
}

public cmdsecond(id)
{
new menu = menu_create("\rВыберите предмет", "se_menu_handler")
menu_additem(menu, "Кусачки", "1")
menu_additem(menu, "Щит", "2")
menu_additem(menu, "Все гранаты", "3")
menu_additem(menu, "Бронежилет", "4")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
}

public se_menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
//cmdmenu(id)
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new Key = str_to_num(s_Data)
switch(Key)
{
case 1: cmdgivesec(id, 1)
case 2: cmdgivesec(id, 2)
case 3: cmdgivesec(id, 3)
case 4: cmdgivesec(id, 4)
}

menu_destroy(menu)
return PLUGIN_HANDLED
}

public cmdgivesec(id, item)
{
givingweapon[id] = item

if(is_user_alive(id))
{
switch(givingweapon[id])
{
case 1: cs_set_user_defuse(id, 1)
case 2: give_item(id, "weapon_shield")
case 3:
{
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_smokegrenade")
}
case 4: cs_set_user_armor(id, 100, CsArmorType:2)
}
}
}

public cmdpack(id)
{
new menu = menu_create("\rВыберите оружие", "pa_menu_handler")
menu_additem(menu, "M4A1 + Pack", "1")
menu_additem(menu, "AK47 + Pack", "2")
menu_additem(menu, "AWP + Pack", "3")
menu_additem(menu, "AUG + Pack", "4")
menu_additem(menu, "SG552 + Pack", "5")
menu_additem(menu, "Famas + Pack", "6")
menu_additem(menu, "Galil + Pack", "7")
menu_additem(menu, "Scout + Pack", "8")
menu_additem(menu, "G3SG1 + Pack", "9")
menu_additem(menu, "SG550 + Pack", "10")
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
}

public pa_menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
//cmdmenu(id)
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new Key = str_to_num(s_Data)
switch(Key)
{
case 1: cmdgiverifle(id, 22, 1)
case 2: cmdgiverifle(id, 28, 1)
case 3: cmdgiverifle(id, 18, 1)
case 4: cmdgiverifle(id, 8, 1)
case 5: cmdgiverifle(id, 27, 1)
case 6: cmdgiverifle(id, 15, 1)
case 7: cmdgiverifle(id, 14, 1)
case 8: cmdgiverifle(id, 3, 1)
case 9: cmdgiverifle(id, 24, 1)
case 10: cmdgiverifle(id, 13, 1)
}

menu_destroy(menu)
return PLUGIN_HANDLED
}


Отредактировал: Zoroark, - 14.1.2014, 17:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Safety1st
сообщение 15.1.2014, 11:00
Сообщение #2
Стаж: 14 лет
Город: Moscow

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

Лимит на пункты 2,3,5 - общий или раздельный?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 15.1.2014, 11:45
Сообщение #3
Стаж: 12 лет

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

\=
Попробуй сделать так :-)
Попробуемс
Код:
 new g_counter[33]

public plugin_init() {
register_event("ResetHUD", "startround", "be")
}

public startround(id) {
g_counter[id] = 0
}


Ну и дальше код....
Естественно добавить if :d
Код:
 public blablabla_function(id) {
if(g_counter[id] < 1) {
// source code here...
g_counter[id]++
}
else {
client_print(id, print_chat, "Вы не можете использовать больше :-)")
}
}


/ UPD :-0

Отредактировал: Esecman, - 15.1.2014, 18:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Zoroark
сообщение 15.1.2014, 14:59
Сообщение #4
Стаж: 13 лет

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

Цитата(Safety1st @ 15.1.2014, 12:00) *
Лимит на пункты 2,3,5 - общий или раздельный?


Я не понял!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 15.1.2014, 15:03
Сообщение #5
Стаж: 14 лет
Город: Moscow

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

Это печально.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 15.1.2014, 15:06
Сообщение #6
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

печален код помощи

< 1

когда нужно > 1) return

про startround(id)
я вообще молчу

ts - если тебе нужен блок использования меню отдельных пунктов, то нужно делать счетчик для каждого из них и обнулять в начале нового раунда и будьте добры код выкладывать с тегами // pawn]

Отредактировал: csnet, - 15.1.2014, 15:12


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 15.1.2014, 17:48
Сообщение #7
Стаж: 12 лет

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

Цитата(csnet @ 15.1.2014, 16:06) *
печален код помощи

< 1

когда нужно > 1) return

про startround(id)
я вообще молчу

ts - если тебе нужен блок использования меню отдельных пунктов, то нужно делать счетчик для каждого из них и обнулять в начале нового раунда и будьте добры код выкладывать с тегами // pawn]

А с чего это он бредовый то?
> 1? Зачем так то?
< 1 :-)
а потом в конце кода g_conter[id] ++
Вот и будет тебе ограничение, и каждое такое условие if(g_counter[id] < 1) Добавить куда нужно :=)
startround работает ;-)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 15.1.2014, 17:53
Сообщение #8
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

Цитата
The correct method that can be used to detect the "Round Start" is shown below:
PHP Code:
register_logevent("logevent_round_start", 2, "1=Round_Start")



http://amx-x.ru/viewtopic.php?f=8&t=14092

в начале раунда нет индекса. только цикл.

Код:
  for (new i = 1; i <= get_maxplayers(); i++)
{


Отредактировал: csnet, - 15.1.2014, 17:53


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 15.1.2014, 18:07
Сообщение #9
Стаж: 12 лет

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

Цитата(csnet @ 15.1.2014, 18:53) *
http://amx-x.ru/viewtopic.php?f=8&t=14092

в начале раунда нет индекса. только цикл.

Код:
  for (new i = 1; i <= get_maxplayers(); i++)
{

Скрытый текст
Код:

#include <amxmodx>
#include <dhudmessage>

#define PLUGIN "New"
#define VERSION "1.0"
#define AUTHOR "Esecman"

new g_counter[33]

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("ResetHUD", "startround", "be")
register_clcmd("say /hi", "some_function")
}

public startround(id) {
g_counter[id] = 0
}

public some_function(id) {
if(g_counter[id] < 1) {
set_dhudmessage(0, 255, 0, -1.0, 0.01, 0, 0.0, 3.0, 2.0, 1.0, false )
show_dhudmessage(0, "Привет :-)")
g_counter[id]++
}
else {
client_print(id, print_chat, "Вы не можете использовать больше :-)")
}
}

Ну, ради Вас проверил, не поленился :)
// Работает , что и соответствует коду выше(моему посту :D)

Отредактировал: Esecman, - 15.1.2014, 18:12
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 15.1.2014, 18:08
Сообщение #10
Стаж: 14 лет
Город: Moscow

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

csnet, с тобой всё в порядке? Я тебя не узнаю: второй день пишешь умные мысли, всё по делу...

Так-то у Esecman'а и правда быдлокод. Лучше не связываться: у него ЧСВ высокое, а так сам опозорится несколько раз перед тем, кому помогает, будет уроком.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Esecman
сообщение 15.1.2014, 18:16
Сообщение #11
Стаж: 12 лет

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

Цитата(Safety1st @ 15.1.2014, 19:08) *
csnet, с тобой всё в порядке? Я тебя не узнаю: второй день пишешь умные мысли, всё по делу...

Так-то у Esecman'а и правда быдлокод. Лучше не связываться: у него ЧСВ высокое, а так сам опозорится несколько раз перед тем, кому помогает, будет уроком.

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