Позволих си да го редактирам и да добавя някои неща.
Какво промених във версия 2.0:
1. Добавих цветен чат за да имат възможността да си оцветяват съобщенията!
2. Добавих променлива за заглавие на менюто за да могат по-лесно да го променят!
3. Добавих променлива за префикс на съобщенията за да могат по-лесно да си го сменят!
4. Добавих променлива, в която могат да си добавят командите с които ще отворят менюто!
Също така, открих някои "бъгове", ако може да съм по точен - пропуски, които не съм оправил нарочно. Тях ще си ги фикснеш ти!
1. Редактирай оригиналния код на ред 106-ти, префикса ти е объркан, написал си: [VIPBonus}
2. Ще е добре, ако решиш да добавиш и още неща към това меню. Нека сам се сетиш какво още може.
3. При даване на Deagle не премахваш предишния пистолет, който е имал играча и така имат два!
4. Какво ще се случи, ако вече имат Deagle, но го изберат от менюто? Нека ти подскажа няма да се случи нищо. Просто ще си изхабят правото!
5. Когато изберат Deagle, получават само 7 "ammo" нямат никакви "backpack аmmo".
Идеи:
1. Можеш да добавиш още item-и!
2. Можеш да добавиш квар с който да си изберат колко "backpack ammo" да получават играчите!
3. Добави някакво условие, с което да провериш дали вече имат Deagle!
4. Можеш да добавиш и квар, дали менюто да е на умиране или на всеки "spawn"!
Код за потвърждение: Избери целия код
//26.10.2020 Version 2.0
//VM Bonus
//1. HP
//2. Grenades Pack
//3. Deagle
//4. Armor Kevlar + Helm
#include <amxmodx>
#include <fun>
#include <cstrike>
#define CC_COLORS_TYPE CC_COLORS_SHORT
#tryinclude <cromchat>
#if !defined _cromchat_included
#error The following file is missing in your library: "cromchat.inc". Download it from: "https://amxx-bg.info/forum/inc/"
#endif
#define ACCESS_FLAG ADMIN_IMMUNITY
new const g_szCommands[] = {
"vipbonus",
"vm",
"vipmenu",
"vmenu"
}
new bool:g_Bonus_Used[33]
new gVipHP
new gHPEnabled
new gDeagleEnabled
new gBombsEnabled
new gArmorEnabled
new Title[64] = "\r[VIPBonus] \yby Ibrahim ^n\yChoose a bonus.", PREFIX[24] = "!g[!tVIPBonus!g]"
public plugin_init()
{
register_plugin("VIPRoundStartBonus", "2.0", "Ibrahim");
for(new i = 0, szCmd1[20], szCmd2[20]; i < sizeof(g_szCommands); i++)
{
formatex(szCmd1, charsmax(szCmd1), "say /%s", g_szCommands[i])
formatex(szCmd2, charsmax(szCmd2), "say_team /%s", g_szCommands[i])
register_clcmd(szCmd1, "VipBonus")
register_clcmd(szCmd2, "VipBonus")
}
gVipHP = register_cvar("amx_vmbonus_hp", "25")
gHPEnabled = register_cvar("amx_vmbonus_hp_enabled", "1");
gDeagleEnabled = register_cvar("amx_vmbonus_deagle_enabled", "1");
gBombsEnabled = register_cvar("amx_vmbonus_bombs_enabled", "1");
gArmorEnabled = register_cvar("amx_vmbonus_armor_enabled", "1");
register_event("DeathMsg", "Death", "a")
}
public VipBonus(id)
{
if(!is_user_alive(id))
{
CromChat(id, "%s !nDead players can't use this!", PREFIX);
return PLUGIN_HANDLED
}
if(g_Bonus_Used[id] == true)
{
CromChat(id, "%s !nThe bonus can be used only once per life!", PREFIX);
return PLUGIN_HANDLED
}
else
{
VipBonusMenu(id)
}
return PLUGIN_CONTINUE
}
public VipBonusMenu(id)
{
formatex(Title, charsmax(Title), "%s", Title)
new menu = menu_create(Title, "menu_handler")
menu_additem(menu, "\wBonus HP", "", ACCESS_FLAG);
menu_additem(menu, "\wGrenades Pack", "", ACCESS_FLAG);
menu_additem(menu, "\wDeagle", "", ACCESS_FLAG);
menu_additem(menu, "\wKevlar Armor", "", ACCESS_FLAG);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id , menu, 0)
}
public menu_handler(id, menu, item)
{
switch(item)
{
case 0:
{
if(get_pcvar_num(gHPEnabled) != 1)
{
CromChat(id, "%s !nThis item is turned !roff!n!", PREFIX);
return PLUGIN_HANDLED
}
set_user_health(id, get_user_health(id) + get_pcvar_num(gVipHP))
CromChat(id, "%s !nYou have gained bonus !t%i HP!n!", PREFIX, get_pcvar_num(gVipHP));
g_Bonus_Used[id] = true
menu_destroy(menu)
return PLUGIN_HANDLED
}
case 1:
{
if(get_pcvar_num(gBombsEnabled) != 1)
{
CromChat(id, "%s !nThis item is turned off!", PREFIX);
return PLUGIN_HANDLED
}
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
CromChat(id, "%s !nYou have received a !tGrenade Pack!n!", PREFIX);
g_Bonus_Used[id] = true
}
case 2:
{
if(get_pcvar_num(gDeagleEnabled) != 1)
{
CromChat(id, "%s !nThis item is turned !roff!n!", PREFIX);
return PLUGIN_HANDLED
}
give_item(id, "weapon_deagle");
CromChat(id, "%s !nYou have received a !tDeagle!n!", PREFIX);
g_Bonus_Used[id] = true
}
case 3:
{
if(get_pcvar_num(gArmorEnabled) != 1)
{
CromChat(id, "%s !nThis item is turned !roff!n!", PREFIX);
return PLUGIN_HANDLED
}
give_item(id, "item_kevlar");
CromChat(id, "%s !nYou have received !tArmor!n!", PREFIX);
g_Bonus_Used[id] = true
}
}
return PLUGIN_HANDLED
}
public Death()
{
g_Bonus_Used[read_data(2)] = false
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1026\\ f0\\ fs16 \n\\ par }
*/
Едит: Сетих се че ще е добре да зададеш буула за лимита на false, когато напуснат сървъра. Ако използват менюто и лефтнат играта, без да са умирали, най-вероятно при следващото влизане ще трябва да умрът, за да го използват. Или при "connect" можеш да го зададеш на false.