Преработка на VIP плъгина

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
southdivision
Извън линия
Потребител
Потребител
Мнения: 279
Регистриран на: 14 Окт 2016, 23:17
Местоположение: София
Се отблагодари: 8 пъти
Получена благодарност: 5 пъти
Обратна връзка:

Преработка на VIP плъгина

Мнение от southdivision » 15 Фев 2017, 18:47

Здравейте, искам нещата който са в менюто ако пример:
Играча Ivan има граната Smoke , пише /buy и до артикула на Smoke в менюто текста "Smoke Grenade" да бъде сив и да не може да бъде закупен. Tова нещо да го има на всички артикули не само на Smoke

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cl_buy>
#include <cstrike>
#include <fun>

#define ADMIN_ACCESS ADMIN_CVAR
#define TASK_BUYMENU 444777
#define MENU_ID 999444

enum _:Weapons
{
    Name[32],
    Id[20],
    CSW,
    Price,
    Ammo
}

new const g_eWeapons[][Weapons] = 
{
    { "Deagle", "weapon_deagle", CSW_DEAGLE, 650, 35 },
    { "MP5-Navy", "weapon_mp5navy", CSW_MP5NAVY, 1500, 120 },
    { "Smoke Grenade", "weapon_smokegrenade", CSW_SMOKEGRENADE, 300, 1 }
}

new g_iSayText
new bool:g_bActive
new bool:g_bUsed[33]
new Float:g_fBuyTime
new const g_szPrefix[] = "!g[VIP|WP]!n"

public plugin_init()
{
    register_plugin("Admin Weapons Menu", "1.0", "OciXCrom")
    register_logevent("OnRoundStart", 2, "1=Round_Start")  
    register_clcmd("say /buy", "OpenBuyMenu")
    register_clcmd("say_team /buy", "OpenBuyMenu")
    g_iSayText = get_user_msgid("SayText")
}

public plugin_cfg()
    g_fBuyTime = (get_cvar_float("mp_buytime") * 60)

public OnRoundStart()
{
    g_bActive = false
    arrayset(g_bUsed, false, sizeof(g_bUsed))
    remove_task(TASK_BUYMENU)
    set_task(g_fBuyTime, "EnableBuyMenu", TASK_BUYMENU)
}
    
public EnableBuyMenu()
{
    g_bActive = true
    
    new iPlayers[32], iPnum
    get_players(iPlayers, iPnum)
    
    for(new i, iPlayer; i < iPnum; i++)
    {
        iPlayer = iPlayers[i]
        
        if(has_access(iPlayer) && !g_bUsed[iPlayer])
            ColorChat(iPlayer, "!t%.0f !nsekundi iztekoha!", g_fBuyTime)
    }
    
    set_task(g_fBuyTime, "DisableBuyMenu", TASK_BUYMENU)
}

public DisableBuyMenu()
{
    g_bActive = false
    
    new iPlayers[32], iPnum
    get_players(iPlayers, iPnum)
    
    for(new i, iPlayer; i < iPnum; i++)
    {
        iPlayer = iPlayers[i]
        
        if(has_access(iPlayer) && !g_bUsed[iPlayer])
        {
            ColorChat(iPlayer, "!t/buy !nmenuto veche ne e aktivno!")
            CloseMenu(iPlayer)
        }
    }
}

public client_buy(id, iItem)
{
    if(!g_bUsed[id])
        g_bUsed[id] = true
}

public OpenBuyMenu(id)
{
    if(!has_access(id))
        ColorChat(id, "Nqmate dostup tuk!")
    else if(!is_user_alive(id))
        ColorChat(id, "Trqbva da si jiv!")
    else if(!g_bActive)
        ColorChat(id, "Menuto ne e aktivno v momenta.")
    else if(g_bUsed[id])
        ColorChat(id, "Veche si izpolzval menuto!")
    else
    {
        new iMenu = menu_create("\y[AMXX]\r Menu", "BuyMenu_Handler")
        
        for(new szItem[64], iMoney = cs_get_user_money(id), i; i < sizeof(g_eWeapons); i++)
        {
            formatex(szItem, charsmax(szItem), "%s%s - %i$", iMoney >= g_eWeapons[i][Price] ? "\w" : "\d", g_eWeapons[i][Name], g_eWeapons[i][Price])
            menu_additem(iMenu, szItem)
        }
        
        menu_display(id, iMenu, 0)
    }
    
    return PLUGIN_HANDLED
}

public BuyMenu_Handler(id, iMenu, iItem)
{
    if(iItem == MENU_EXIT || !is_user_alive(id) || !g_bActive)
        goto @DESTROY
    
    new iMoney = cs_get_user_money(id)
    
    if(iMoney >= g_eWeapons[iItem][Price])
    {    
        give_item(id, g_eWeapons[iItem][Id])
        cs_set_user_bpammo(id, g_eWeapons[iItem][CSW], g_eWeapons[iItem][Ammo])
        ColorChat(id, "Zakupi !t%s !nza !g%i$", g_eWeapons[iItem][Name], g_eWeapons[iItem][Price])
        g_bUsed[id] = true
    }
    else ColorChat(id, "Nqmash dostatuchno pari za da zakupish tova orujie!")
    
    @DESTROY:
    menu_destroy(iMenu)
    return PLUGIN_HANDLED
}

CloseMenu(id)
{
    new iNewMenu, iMenu = player_menu_info(id, iMenu, iNewMenu)
    
    if(iMenu)
        show_menu(id, 0, "^n", 1)
}

bool:has_access(id)
    return bool:(get_user_flags(id) & ADMIN_ACCESS)
    
ColorChat(const id, const szInput[], any:...)
{
    new iPlayers[32], iCount = 1
    static szMessage[191]
    vformat(szMessage, charsmax(szMessage), szInput, 3)
    format(szMessage[0], charsmax(szMessage), "%s %s", g_szPrefix, szMessage)
    
    replace_all(szMessage, charsmax(szMessage), "!g", "^4")
    replace_all(szMessage, charsmax(szMessage), "!n", "^1")
    replace_all(szMessage, charsmax(szMessage), "!t", "^3")
    
    if(id)
        iPlayers[0] = id
    else
        get_players(iPlayers, iCount, "ch")
    
    for(new i; i < iCount; i++)
    {
        if(is_user_connected(iPlayers[i]))
        {
            message_begin(MSG_ONE_UNRELIABLE, g_iSayText, _, iPlayers[i])
            write_byte(iPlayers[i])
            write_string(szMessage)
            message_end()
        }
    }
} 

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: Преработка на VIP плъгина

Мнение от OciXCrom » 15 Фев 2017, 22:23

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cl_buy>
#include <cstrike>
#include <fun>

#define ADMIN_ACCESS ADMIN_CVAR
#define TASK_BUYMENU 444777
#define MENU_ID 999444

enum _:Weapons
{
    Name[32],
    Id[20],
    CSW,
    Price,
    Ammo
}

new const g_eWeapons[][Weapons] =
{
    { "Deagle", "weapon_deagle", CSW_DEAGLE, 650, 35 },
    { "MP5-Navy", "weapon_mp5navy", CSW_MP5NAVY, 1500, 120 },
    { "Smoke Grenade", "weapon_smokegrenade", CSW_SMOKEGRENADE, 300, 1 }
}

new g_iSayText
new bool:g_bActive
new bool:g_bUsed[33]
new Float:g_fBuyTime
new const g_szPrefix[] = "!g[VIP|WP]!n"

public plugin_init()
{
    register_plugin("Admin Weapons Menu", "1.0", "OciXCrom")
    register_logevent("OnRoundStart", 2, "1=Round_Start") 
    register_clcmd("say /buy", "OpenBuyMenu")
    register_clcmd("say_team /buy", "OpenBuyMenu")
    g_iSayText = get_user_msgid("SayText")
}

public plugin_cfg()
    g_fBuyTime = (get_cvar_float("mp_buytime") * 60)

public OnRoundStart()
{
    g_bActive = false
    arrayset(g_bUsed, false, sizeof(g_bUsed))
    remove_task(TASK_BUYMENU)
    set_task(g_fBuyTime, "EnableBuyMenu", TASK_BUYMENU)
}
   
public EnableBuyMenu()
{
    g_bActive = true
   
    new iPlayers[32], iPnum
    get_players(iPlayers, iPnum)
   
    for(new i, iPlayer; i < iPnum; i++)
    {
        iPlayer = iPlayers[i]
       
        if(has_access(iPlayer) && !g_bUsed[iPlayer])
            ColorChat(iPlayer, "!t%.0f !nsekundi iztekoha!", g_fBuyTime)
    }
   
    set_task(g_fBuyTime, "DisableBuyMenu", TASK_BUYMENU)
}

public DisableBuyMenu()
{
    g_bActive = false
   
    new iPlayers[32], iPnum
    get_players(iPlayers, iPnum)
   
    for(new i, iPlayer; i < iPnum; i++)
    {
        iPlayer = iPlayers[i]
       
        if(has_access(iPlayer) && !g_bUsed[iPlayer])
        {
            ColorChat(iPlayer, "!t/buy !nmenuto veche ne e aktivno!")
            CloseMenu(iPlayer)
        }
    }
}

public client_buy(id, iItem)
{
    if(!g_bUsed[id])
        g_bUsed[id] = true
}

public OpenBuyMenu(id)
{
    if(!has_access(id))
        ColorChat(id, "Nqmate dostup tuk!")
    else if(!is_user_alive(id))
        ColorChat(id, "Trqbva da si jiv!")
    else if(!g_bActive)
        ColorChat(id, "Menuto ne e aktivno v momenta.")
    else if(g_bUsed[id])
        ColorChat(id, "Veche si izpolzval menuto!")
    else
    {
        new iMenu = menu_create("\y[AMXX]\r Menu", "BuyMenu_Handler")
       
        for(new szItem[64], iMoney = cs_get_user_money(id), i; i < sizeof(g_eWeapons); i++)
        {
            formatex(szItem, charsmax(szItem), "%s%s - %i$", (iMoney >= g_eWeapons[i][Price] && !user_has_weapon(id, g_eWeapons[i][CSW])) ? "\w" : "\d", g_eWeapons[i][Name], g_eWeapons[i][Price])
            menu_additem(iMenu, szItem)
        }
       
        menu_display(id, iMenu, 0)
    }
   
    return PLUGIN_HANDLED
}

public BuyMenu_Handler(id, iMenu, iItem)
{
    if(iItem == MENU_EXIT || !is_user_alive(id) || !g_bActive)
        goto @DESTROY
   
    new iMoney = cs_get_user_money(id)
   
    if(iMoney >= g_eWeapons[iItem][Price])
    {   
        give_item(id, g_eWeapons[iItem][Id])
        cs_set_user_bpammo(id, g_eWeapons[iItem][CSW], g_eWeapons[iItem][Ammo])
        ColorChat(id, "Zakupi !t%s !nza !g%i$", g_eWeapons[iItem][Name], g_eWeapons[iItem][Price])
        g_bUsed[id] = true
    }
    else ColorChat(id, "Nqmash dostatuchno pari za da zakupish tova orujie!")
   
    @DESTROY:
    menu_destroy(iMenu)
    return PLUGIN_HANDLED
}

CloseMenu(id)
{
    new iNewMenu, iMenu = player_menu_info(id, iMenu, iNewMenu)
   
    if(iMenu)
        show_menu(id, 0, "^n", 1)
}

bool:has_access(id)
    return bool:(get_user_flags(id) & ADMIN_ACCESS)
   
ColorChat(const id, const szInput[], any:...)
{
    new iPlayers[32], iCount = 1
    static szMessage[191]
    vformat(szMessage, charsmax(szMessage), szInput, 3)
    format(szMessage[0], charsmax(szMessage), "%s %s", g_szPrefix, szMessage)
   
    replace_all(szMessage, charsmax(szMessage), "!g", "^4")
    replace_all(szMessage, charsmax(szMessage), "!n", "^1")
    replace_all(szMessage, charsmax(szMessage), "!t", "^3")
   
    if(id)
        iPlayers[0] = id
    else
        get_players(iPlayers, iCount, "ch")
   
    for(new i; i < iCount; i++)
    {
        if(is_user_connected(iPlayers[i]))
        {
            message_begin(MSG_ONE_UNRELIABLE, g_iSayText, _, iPlayers[i])
            write_byte(iPlayers[i])
            write_string(szMessage)
            message_end()
        }
    }
} 

Аватар
southdivision
Извън линия
Потребител
Потребител
Мнения: 279
Регистриран на: 14 Окт 2016, 23:17
Местоположение: София
Се отблагодари: 8 пъти
Получена благодарност: 5 пъти
Обратна връзка:

Re: Преработка на VIP плъгина

Мнение от southdivision » 16 Фев 2017, 16:56

За цвета - стана,но отново изписва,че съм го закупил вместо да изписва че вече имам Smoke

Аватар
TryAgain
Извън линия
Потребител
Потребител
Мнения: 182
Регистриран на: 25 Яну 2017, 16:59
Се отблагодари: 1 път
Получена благодарност: 26 пъти

Re: Преработка на VIP плъгина

Мнение от TryAgain » 16 Фев 2017, 17:05

Пробвай така.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cl_buy>
#include <cstrike>
#include <fun>

#define ADMIN_ACCESS ADMIN_CVAR
#define TASK_BUYMENU 444777
#define MENU_ID 999444

enum _:Weapons
{
Name[32],
Id[20],
CSW,
Price,
Ammo
}

new const g_eWeapons[][Weapons] =
{
{ "Deagle", "weapon_deagle", CSW_DEAGLE, 650, 35 },
{ "MP5-Navy", "weapon_mp5navy", CSW_MP5NAVY, 1500, 120 },
{ "Smoke Grenade", "weapon_smokegrenade", CSW_SMOKEGRENADE, 300, 1 }
}

new g_iSayText
new bool:g_bActive
new bool:g_bUsed[33]
new Float:g_fBuyTime
new const g_szPrefix[] = "!g[VIP|WP]!n"

public plugin_init()
{
register_plugin("Admin Weapons Menu", "1.0", "OciXCrom")
register_logevent("OnRoundStart", 2, "1=Round_Start") 
register_clcmd("say /buy", "OpenBuyMenu")
register_clcmd("say_team /buy", "OpenBuyMenu")
g_iSayText = get_user_msgid("SayText")
}

public plugin_cfg()
g_fBuyTime = (get_cvar_float("mp_buytime") * 60)

public OnRoundStart()
{
g_bActive = false
arrayset(g_bUsed, false, sizeof(g_bUsed))
remove_task(TASK_BUYMENU)
set_task(g_fBuyTime, "EnableBuyMenu", TASK_BUYMENU)
}

public EnableBuyMenu()
{
g_bActive = true

new iPlayers[32], iPnum
get_players(iPlayers, iPnum)

for(new i, iPlayer; i < iPnum; i++)
{
iPlayer = iPlayers[i]

if(has_access(iPlayer) && !g_bUsed[iPlayer])
ColorChat(iPlayer, "!t%.0f !nsekundi iztekoha!", g_fBuyTime)
}

set_task(g_fBuyTime, "DisableBuyMenu", TASK_BUYMENU)
}

public DisableBuyMenu()
{
g_bActive = false

new iPlayers[32], iPnum
get_players(iPlayers, iPnum)

for(new i, iPlayer; i < iPnum; i++)
{
iPlayer = iPlayers[i]

if(has_access(iPlayer) && !g_bUsed[iPlayer])
{
ColorChat(iPlayer, "!t/buy !nmenuto veche ne e aktivno!")
CloseMenu(iPlayer)
}
}
}

public client_buy(id, iItem)
{
if(!g_bUsed[id])
g_bUsed[id] = true
}

public OpenBuyMenu(id)
{
if(!has_access(id))
ColorChat(id, "Nqmate dostup tuk!")
else if(!is_user_alive(id))
ColorChat(id, "Trqbva da si jiv!")
else if(!g_bActive)
ColorChat(id, "Menuto ne e aktivno v momenta.")
else if(g_bUsed[id])
ColorChat(id, "Veche si izpolzval menuto!")
else
{
new iMenu = menu_create("\y[AMXX]\r Menu", "BuyMenu_Handler")

for(new szItem[64], iMoney = cs_get_user_money(id), i; i < sizeof(g_eWeapons); i++)
{
formatex(szItem, charsmax(szItem), "%s%s - %i$", (iMoney >= g_eWeapons[i][Price] && !user_has_weapon(id, g_eWeapons[i][CSW])) ? "\w" : "\d", g_eWeapons[i][Name], g_eWeapons[i][Price])
menu_additem(iMenu, szItem)
}

menu_display(id, iMenu, 0)
}

return PLUGIN_HANDLED
}

public BuyMenu_Handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT || !is_user_alive(id) || !g_bActive)
goto @DESTROY

new iMoney = cs_get_user_money(id)

if(iMoney >= g_eWeapons[iItem][Price])
{
if(user_has_weapon(id, g_eWeapons[iItem][CSW]))
{
ColorChat(id, "Vie imate !t%s",g_eWeapons[iItem][Name])
}
else
{
give_item(id, g_eWeapons[iItem][Id])
cs_set_user_bpammo(id, g_eWeapons[iItem][CSW], g_eWeapons[iItem][Ammo])
ColorChat(id, "Zakupi !t%s !nza !g%i$", g_eWeapons[iItem][Name], g_eWeapons[iItem][Price])
g_bUsed[id] = true
}
}
else ColorChat(id, "Nqmash dostatuchno pari za da zakupish tova orujie!")

@DESTROY:
menu_destroy(iMenu)
return PLUGIN_HANDLED
}

CloseMenu(id)
{
new iNewMenu, iMenu = player_menu_info(id, iMenu, iNewMenu)

if(iMenu)
show_menu(id, 0, "^n", 1)
}

bool:has_access(id)
return bool:(get_user_flags(id) & ADMIN_ACCESS)

ColorChat(const id, const szInput[], any:...)
{
new iPlayers[32], iCount = 1
static szMessage[191]
vformat(szMessage, charsmax(szMessage), szInput, 3)
format(szMessage[0], charsmax(szMessage), "%s %s", g_szPrefix, szMessage)

replace_all(szMessage, charsmax(szMessage), "!g", "^4")
replace_all(szMessage, charsmax(szMessage), "!n", "^1")
replace_all(szMessage, charsmax(szMessage), "!t", "^3")

if(id)
iPlayers[0] = id
else
get_players(iPlayers, iCount, "ch")

for(new i; i < iCount; i++)
{
if(is_user_connected(iPlayers[i]))
{
message_begin(MSG_ONE_UNRELIABLE, g_iSayText, _, iPlayers[i])
write_byte(iPlayers[i])
write_string(szMessage)
message_end()
}
}
} 

Аватар
southdivision
Извън линия
Потребител
Потребител
Мнения: 279
Регистриран на: 14 Окт 2016, 23:17
Местоположение: София
Се отблагодари: 8 пъти
Получена благодарност: 5 пъти
Обратна връзка:

Re: Преработка на VIP плъгина

Мнение от southdivision » 16 Фев 2017, 20:17

Благодаря! Лок

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 22 госта