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

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

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

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

Бинд в конфиге для Weaponmenu

Статус пользователя Bafteam
сообщение 10.9.2013, 11:46
Сообщение #1
Стаж: 14 лет

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

Столкнулся с такой проблемой, как долгая выдача себе оружия через weaponmenu, возник вопрос, возможно ли сделать бинд в конфиге, зная исходник плагина, для выдачи себе допустим комплекта из авп + дигл + броня + комплект всех гранат?
(Нужно зайти в weaponmenu, 4)Комплекты оружия, 3) AWP + Pack и среди 30 игроков найти себя)
Исходник прилагаю, буду благодарен любой помощи.

Скрытый текст
#include <amxmodx>
#include <fun>
#include <cstrike>

new givingweapon[33], givepack[33]

public plugin_init()
{
register_plugin("Weaponmenu", "1.0", "UNREAL")
register_clcmd("weaponmenu", "cmdmenu")
}

public cmdmenu(id)
{
if(!(get_user_flags(id) & ADMIN_MENU)) return PLUGIN_HANDLED
givingweapon[id] = 0
new menu = menu_create("Выберите раздел", "g_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)
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: cmdrifles(id)
case 3: cmdsecond(id)
case 4: 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
new menu = menu_create("Выберите игрока", "p2_menu_handler")
new s_Players[32], i_Num, i_Player
new s_Name[64], s_Player[10]
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]

get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
if(is_user_alive(i_Player))
format(s_Name, charsmax(s_Name), "w%s", s_Name)
else
format(s_Name, charsmax(s_Name), "d%s", s_Name)
menu_additem(menu, s_Name, s_Player, 0)
}
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
}

public p2_menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
cmdpistols(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 i_Player = str_to_num(s_Data)

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

menu_destroy(menu)
return PLUGIN_HANDLED
}

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
new menu = menu_create("Выберите игрока", "p_menu_handler")
new s_Players[32], i_Num, i_Player
new s_Name[64], s_Player[10]
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]

get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
if(is_user_alive(i_Player))
format(s_Name, charsmax(s_Name), "w%s", s_Name)
else
format(s_Name, charsmax(s_Name), "d%s", s_Name)
menu_additem(menu, s_Name, s_Player, 0)
}
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
}

public p_menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
if(givepack[id])
cmdpack(id)
else
cmdrifles(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 i_Player = str_to_num(s_Data)

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

menu_destroy(menu)
return PLUGIN_HANDLED
}

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
new menu = menu_create("Выберите игрока", "p3_menu_handler")
new s_Players[32], i_Num, i_Player
new s_Name[64], s_Player[10]
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]

get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
if(is_user_alive(i_Player))
format(s_Name, charsmax(s_Name), "w%s", s_Name)
else
format(s_Name, charsmax(s_Name), "d%s", s_Name)
menu_additem(menu, s_Name, s_Player, 0)
}
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
}

public p3_menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
cmdsecond(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 i_Player = str_to_num(s_Data)

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

menu_destroy(menu)
return PLUGIN_HANDLED
}

public cmdpack(id)
{
new menu = menu_create("Выберите оружие", "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
}


P.S В написании плагинов ничего не соображаю pardon.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя iLLuSioN
сообщение 10.9.2013, 12:49
Сообщение #2
Иконка группы

Стаж: 19 лет

Сообщений: 6911
Благодарностей: 7990
Полезность: 1639

Можно перейти только по конкретным пунктам, себя найти не получится


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bafteam
сообщение 10.9.2013, 13:10
Сообщение #3
Стаж: 14 лет

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

Цитата(iLLuSioN @ 10.9.2013, 13:49) *
Можно перейти только по конкретным пунктам, себя найти не получится

Тоесть нельзя на таком примере дойти хотя бы до ника, а ник выбирать?

Скрытый текст
bind "i" "weaponmenu;wait;case 4: cmdpack(id);wait;case 3: cmdgiverifle(id, 18, 1)"


И если указать в бинде ник Player то ему не получится все равно выдать оружие при нажатии одной клавиши?

Отредактировал: Bafteam, - 10.9.2013, 13:11
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя LaFA
сообщение 10.9.2013, 13:32
Сообщение #4


Стаж: 16 лет

Сообщений: 4505
Благодарностей: 3256
Полезность: 793

Код
bind f7 "weaponmenu;menuselect 2;menuselect 3" и т.д
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bafteam
сообщение 10.9.2013, 18:47
Сообщение #5
Стаж: 14 лет

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

Цитата(LaFA @ 10.9.2013, 14:32) *
Код
bind f7 "weaponmenu;menuselect 2;menuselect 3" и т.д

Спасибо работает, но при установке ника Player в конце, оружие игроку с ником Player не выдается, возможно ли как нибудь дать себе оружие указав ник или Steam ID вместо ника?


Цитата(LaFA @ 10.9.2013, 14:32) *
Код
bind f7 "weaponmenu;menuselect 2;menuselect 3" и т.д

Спасибо работает, но при установке ника Player в конце, оружие игроку с ником Player не выдается, возможно ли как нибудь дать себе оружие указав ник или Steam ID вместо ника?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bafteam
сообщение 10.9.2013, 18:53
Сообщение #6
Стаж: 14 лет

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

Цитата(Bafteam @ 10.9.2013, 19:47) *
Спасибо работает, но при установке ника Player в конце, оружие игроку с ником Player не выдается, возможно ли как нибудь дать себе оружие указав ник или Steam ID вместо ника?



Спасибо работает, но при установке ника Player в конце, оружие игроку с ником Player не выдается, возможно ли как нибудь дать себе оружие указав ник или Steam ID вместо ника?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя neverminde
сообщение 10.9.2013, 21:10
Сообщение #7


Стаж: 15 лет

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

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