Всем привет :-)
Имеется в наличии плагин випки помогите доработать его пожалуйста.
Надо сделать еще одно условие описываю подробно:
когда обычный игрок пишет команду /vipmenu
ему в ответ пишет - Вы не VIP игрок либо вы мертвы!
тоже самое пишет в ответ когда вип игрок мертв и прописывает команду /vipmenu
надо сделать что бы обычный игрок когда писал команду ему в ответ (Вы не VIP игрок)
а когда вип мертвый то вот это в ответ (Вы мертвы!)
----------------------------------------------------------------
Еще помогите исправить проблему в этом плагине описываю подробно:
Когда играешь за Т то при нажатии на TAB не видно значок VIP
А когда играешь за CT то видно
если возможно помогите исправить.
Код:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif
#define KEYS (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<9)
#define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2) %1 |= (1 << (%2 & 31))
#define clr_bit(%1,%2) %1 &= ~(1 << (%2 & 31))
new receivedPrimaryWeapons = 0,
receivedSecWeapons = 0
new const VIP_ACCESS = ADMIN_LEVEL_H
new g_roundCount
new bool:isWarmupRound = true,
bool:isFirstRound = true
new const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
new const SECONDARY_WEAPONS_BITSUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
public plugin_init()
{
register_plugin("VIP", "1.0", "neygomon")
register_event("TextMsg","eventRoundRestart","a","2&#Game_w")
register_event("TextMsg","eventCommencingRestart","a","2&#Game_C")
register_event("HLTV", "eventRoundStartHLTV", "a","1=0","2=0")
register_event("ResetHUD","Event_reset_hud","be")
RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1);
register_clcmd( "say /vipmenu", "CmdMenu" );
register_clcmd( "vipmenu", "CmdMenu" );
register_menucmd(register_menuid("VIP_MENU"), KEYS, "menu_handler");
}
public client_putinserver(id)
{
clr_bit(receivedPrimaryWeapons,id)
clr_bit(receivedSecWeapons,id)
}
public eventCommencingRestart()
isFirstRound = isWarmupRound = true
public eventRoundRestart()
g_roundCount = 0
public eventRoundStartHLTV()
{
if(isFirstRound){
isFirstRound = false
g_roundCount = 0
}
g_roundCount++
if(isWarmupRound){
isWarmupRound = false
g_roundCount = 0
}
receivedPrimaryWeapons = receivedSecWeapons = 0
}
public Event_reset_hud(id)
if(get_user_flags(id) & VIP_ACCESS) setVipScoreAttrib(id)
public Player_Spawn(id)
{
if(g_roundCount >= 3){
if(is_user_alive (id) && get_user_flags(id) & VIP_ACCESS){
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
give_item_ex(id,"weapon_deagle",35,1)
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
if(get_user_team(id) == 2)
cs_set_user_defuse(id, 1)
}
}
}
public CmdMenu(id)
{
if(is_user_alive (id) && get_user_flags(id) & VIP_ACCESS){
if(g_roundCount != 0){
if(g_roundCount >= 3){
if(!get_bit(receivedPrimaryWeapons,id)){
show_menu(id, KEYS, "\rVIP \yМЕНЮ\w^n^n\y1\w. \wВзять \rAK-47^n\y2\w. \wВзять \rM4A1^n\y3\w. \wВзять \rAWP^n\y4\w. \wВзять \rFamas^n^n\y0\w. \rВыход", -1, "VIP_MENU");
return PLUGIN_HANDLED;
}
else{
client_print_color(id, 0, "^1[^4VIP^1]: ^3Вы уже пользовались этой командой!")
}
}
else {
client_print_color(id, 0, "^1[^4VIP^1]: ^3Меню доступно только с^4 3 ^3раунда!")
}
return PLUGIN_HANDLED
}
client_print_color(id, 0, "^1[^4VIP^1]: Разминочный раунд. ^3Запрещено пользоваться командой!")
return PLUGIN_HANDLED
}
else{
client_print_color(id, 0, "^1[^4VIP^1]: ^3Вы не ^4VIP ^3игрок либо вы мертвы!")
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED;
}
public menu_handler(id, key)
{
switch(key)
{
case 0: {
give_item_ex(id,"weapon_ak47",90,1)
set_bit(receivedPrimaryWeapons,id)
}
case 1: {
give_item_ex(id,"weapon_m4a1",90,1)
set_bit(receivedPrimaryWeapons,id)
}
case 2: {
give_item_ex(id,"weapon_awp",30,1)
set_bit(receivedPrimaryWeapons,id)
}
case 3: {
give_item_ex(id,"weapon_famas",90,1)
set_bit(receivedPrimaryWeapons,id)
}
}
}
stock give_item_ex(id,currWeaponName[],ammoAmount,dropFlag=0)
{
static weaponsList[32],
weaponName[32],
weaponsNum,
currWeaponID
currWeaponID = get_weaponid(currWeaponName)
if(dropFlag){
weaponsNum = 0
get_user_weapons(id,weaponsList,weaponsNum)
for (new i = 0;i < weaponsNum;i++){
if(((1 << currWeaponID) & PRIMARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & PRIMARY_WEAPONS_BITSUM) | ((1 << currWeaponID) & SECONDARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & SECONDARY_WEAPONS_BITSUM)){
get_weaponname(weaponsList[i],weaponName,charsmax(weaponName))
engclient_cmd(id,"drop",weaponName)
}
}
}
give_item(id,currWeaponName)
cs_set_user_bpammo(id,currWeaponID,ammoAmount)
}
stock setVipScoreAttrib(id)
{
if(is_user_alive(id)){
message_begin(MSG_ALL,84,{0,0,0},id)
write_byte(id)
write_byte(4)
message_end()
}
}