Femidion писал(а): Ты вот пришёл в мою ветку, выкабениваешься здесь, пишешь охинею, пытаешься всё высмеять... пользы от тебя никакой, только понты и хамство... зачем? Может ты тот самый лживый чурка-паразит?
Модераторы: Subb98, liFe iS GoOD
new g_AlreadyUsed[33][4]
g_AlreadyUsed[33][0] = true // блокируем первый пункт после нажатия
g_AlreadyUsed[33][1] = true // блокируем второй пункт после нажатия
NEoMASTERR писал(а):У вас в коде так и остался массив одномерным, кроме объявления
- Код: Выделить всё
new g_AlreadyUsed[33][4]
Если у вас 4 пункта меню, то в каждом пункте надо соответствующую ячейку массива заполнять
- Код: Выделить всё
g_AlreadyUsed[33][0] = true // блокируем первый пункт после нажатия
- Код: Выделить всё
g_AlreadyUsed[33][1] = true // блокируем второй пункт после нажатия
И тд.
Так же в новом раунде надо обнулять все пункты всем игрокам
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <engine>
#include <hamsandwich>
#define SOMEFLAGS "t"
#define PLUGIN "Vip System By abcs-servera.tk"
#define VERSION "0.1"
#define AUTHOR "Zloy-DED"
new bool:g_AlreadyUsed[33][3]
new g_F_counter[33] = 0
new g_RoundCount;
new customflags;
public plugin_init()
{
register_clcmd( "vipabcsone", "VIPMenu_level_one" );
register_event("ResetHUD", "ResetHUD", "be");
register_event("HLTV", "Event_RoundStart", "a", "1=0", "2=0");
register_logevent("Event_GameCommencing", 2, "1=Game_Commencing");
RegisterHam(Ham_Spawn, "player", "resetModel_vip");
customflags = read_flags(SOMEFLAGS);
return PLUGIN_CONTINUE
}
public Event_RoundStart()
{
g_RoundCount++;
g_AlreadyUsed[33][1] = false
g_AlreadyUsed[33][2] = false
g_AlreadyUsed[33][3] = false
}
public Event_GameCommencing()
{
g_RoundCount = 0
}
public ResetHUD(id)
{
set_task(0.5, "VIPTAB", id + 6910)
}
public plugin_precache() {
precache_model("models/player/vip_ct_abcs/vip_ct_abcs.mdl")
precache_model("models/player/vip_te_abcs/vip_te_abcs.mdl")
return PLUGIN_CONTINUE
}
public VIPMenu_level_one( id )
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
{
new vip_menu = menu_create( "\yÂèï ìåíþ^n \r[1 Óðîâåíü]^n\dBy Zloy-DED", "menu_handler" );
menu_additem( vip_menu, "Âçÿòü \r[\dAK47\r+\dDEAGLE\r]", "1", 0 );
menu_additem( vip_menu, "Âçÿòü \r[\dM4A1\r+\dDEAGLE\r]", "2", 0 );
menu_additem( vip_menu, "Âçÿòü \r[\dAWP\r+\dDEAGLE\r]", "3", 0 );
menu_additem( vip_menu, "Âîñêðåñíóòü", "4", 0 );
menu_additem( vip_menu, "Âçÿòü 16000$ ", "5", 0 );
menu_setprop(vip_menu,MPROP_NEXTNAME,"Äàëåå")
menu_setprop(vip_menu,MPROP_BACKNAME,"Íàçàä")
menu_setprop(vip_menu,MPROP_EXITNAME,"Âûõîä")
menu_setprop(vip_menu,MPROP_EXIT,MEXIT_ALL);
menu_display( id, vip_menu, 0 );
}
else
{
ChatColor(id,"!g[!tABCS-SERVERA.TK!g] !têóäà òû ëåçåø òû íå âèï!!!")
}
}
public Spawn_player(id)
{
if(is_user_alive(id) && is_user_connected(id))
{
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal,0)
set_view( id, 0 )
cs_set_user_armor(id, 0, CS_ARMOR_NONE)
set_user_maxspeed(id, 250.0)
set_user_gravity( id, 1.0 )
set_user_health( id, 100 )
set_user_noclip(id, 0)
set_user_godmode(id, 0)
}
}
public menu_handler( id, menu, item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new name[32]; get_user_name(id, name, sizeof(name) - 1);
new access, callback;
menu_item_getinfo( menu, item, access, data,5, iName, 63, callback );
new key = str_to_num( data );
switch( key )
{
case 1:
{
if(g_RoundCount < 2)
{
ChatColor(id,"!g[!tABCS-SERVERA.TK!g] !yÑåé÷àñ %d ðàóíä, ïîëó÷åíèå AK47 äîñòóïíî òîëüêî ñ 2 ðàóíäà", g_RoundCount);
return PLUGIN_HANDLED;
}
if (g_AlreadyUsed[id])
{
ChatColor(id,"!g[!tABCS-SERVERA.TK!g] !Âû óæå áðàëè AK47", g_AlreadyUsed);
return
}
strip_user_weapons (id);
ChatColor(0,"!g[!tABCS-SERVERA.TK!g] !tÂèï %s Âçÿë AK47+DEAGLE!!!", name)
give_item(id, "weapon_ak47");
give_item(id, "weapon_deagle");
give_item(id, "weapon_knife");
cs_set_user_bpammo(id, CSW_AK47, 90)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_smokegrenade")
give_item(id,"item_assaultsuit")
g_AlreadyUsed[33][1] = true
}
case 2:
{
if(g_RoundCount < 2)
{
ChatColor(id,"!g[!tABCS-SERVERA.TK!g] Ñåé÷àñ %d ðàóíä, ïîëó÷åíèå M4A1 äîñòóïíî òîëüêî ñ 2 ðàóíäà", g_RoundCount);
return PLUGIN_HANDLED;
}
if (g_AlreadyUsed[id])
{
ChatColor(id,"!g[!tABCS-SERVERA.TK!g] !Âû óæå áðàëè M4A1", g_AlreadyUsed);
return
}
strip_user_weapons (id);
ChatColor(0,"!g[!tABCS-SERVERA.TK!g] !tÂèï %s Âçÿë Ì4À1+DEAGLE!!!", name)
give_item( id, "weapon_m4a1" );
give_item(id, "weapon_deagle");
give_item(id, "weapon_knife");
cs_set_user_bpammo(id, CSW_M4A1, 90)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_smokegrenade")
give_item(id,"item_assaultsuit")
g_AlreadyUsed[33][2] = true
}
case 3:
{
if(g_RoundCount < 3)
{
ChatColor(id,"!g[!tABCS-SERVERA.TK!g] Ñåé÷àñ %d ðàóíä, ïîëó÷åíèå AWP äîñòóïíî òîëüêî ñ 3 ðàóíäà", g_RoundCount);
return PLUGIN_HANDLED;
}
if (g_AlreadyUsed[id])
{
ChatColor(id,"!g[!tABCS-SERVERA.TK!g] !Âû óæå áðàëè AWP", g_AlreadyUsed);
return
}
strip_user_weapons (id);
ChatColor(0,"!g[!tABCS-SERVERA.TK!g] !tÂèï %s Âçÿë AWP+DEAGLE!!!", name)
give_item(id, "weapon_awp");
give_item(id, "weapon_deagle");
give_item(id, "weapon_knife");
cs_set_user_bpammo(id, CSW_AWP, 30)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_smokegrenade")
give_item(id,"item_assaultsuit")
g_AlreadyUsed[33][3] = true
}
case 4:
{
if(g_RoundCount < 5)
{
ChatColor(id,"!g[!tABCS-SERVERA.TK!g] !yÑåé÷àñ !t %d !y ðàóíä, Âîñêðåøåíèå äîñòóïíî òîëüêî ñ !g 5 !y ðàóíäà", g_RoundCount);
return PLUGIN_HANDLED;
}
spawn(id)
}
case 5:
{
cs_set_user_money(id,16000)
}
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
public VIPTAB(TaskID)
{
new id = TaskID - 6910
if (is_user_admin(id))
{
message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
write_byte(id)
write_byte(4)
message_end()
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_smokegrenade")
give_item(id,"item_assaultsuit")
}
return PLUGIN_HANDLED
}
public resetModel_vip(id) {
new PlayerFlags = get_user_flags(id);
if( (PlayerFlags & customflags) == customflags ) return PLUGIN_CONTINUE;
if (PlayerFlags & ADMIN_LEVEL_H) {
new CsTeams:userTeam = cs_get_user_team(id)
if (userTeam == CS_TEAM_T) {
cs_set_user_model(id, "vip_te_abcs")
}
else if(userTeam == CS_TEAM_CT) {
cs_set_user_model(id, "vip_ct_abcs")
}
else {
cs_reset_user_model(id)
}
}
return PLUGIN_CONTINUE
}
stock ChatColor(const id, const input[], any:...) {
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!t", "^3") // Team Color
if (id) players[0] = id; else get_players(players, count, "ch"); {
for (new i = 0; i < count; i++) {
if (is_user_connected(players[i])) {
message_begin(MSG_ONE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
new blabla[5]
blabla[10] = 123
NEoMASTERR писал(а):Array index out of bounds - индекс выходит за границы
Происходит когда индекс больше или меньше размеров массива
Как например тут:
- Код: Выделить всё
new blabla[5]
blabla[10] = 123
new bool:g_AlreadyUsed[33][3]
g_AlreadyUsed[33][1] = false
g_AlreadyUsed[33][2] = false
g_AlreadyUsed[33][3] = false
NEoMASTERR писал(а):Нет не верно, индексы начинаются с нуля, если максимум [3] значит это 0, 1, 2. Либо сделайте [4], либо нумерацию с нуля
public Event_RoundStart()
{
g_RoundCount++;
g_AlreadyUsed[33][0] = false
g_AlreadyUsed[33][1] = false
g_AlreadyUsed[33][2] = false
}
new bool:g_AlreadyUsed[33][3]
case 1:
{
if(g_RoundCount < 2)
{
ChatColor(id,"!g[!tABCS-SERVERA.TK!g] !yÑåé÷àñ %d ðàóíä, ïîëó÷åíèå AK47 äîñòóïíî òîëüêî ñ 2 ðàóíäà", g_RoundCount);
return PLUGIN_HANDLED;
}
if (g_AlreadyUsed[id])
{
ChatColor(id,"!g[!tABCS-SERVERA.TK!g] !Âû óæå áðàëè AK47", g_AlreadyUsed);
return
}
g_AlreadyUsed[33][0] = true
strip_user_weapons (id);
ChatColor(0,"!g[!tABCS-SERVERA.TK!g] !tÂèï %s Âçÿë AK47+DEAGLE!!!", name)
give_item(id, "weapon_ak47");
give_item(id, "weapon_deagle");
give_item(id, "weapon_knife");
cs_set_user_bpammo(id, CSW_AK47, 90)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_smokegrenade")
give_item(id,"item_assaultsuit")
}
g_AlreadyUsed[33][0] = false
g_AlreadyUsed[11][0] = false
g_AlreadyUsed[сюда вставлять id игрока][сюда пункт меню]
public Event_RoundStart()
{
g_RoundCount++;
g_AlreadyUsed[33][0] = false
g_AlreadyUsed[33][1] = false
g_AlreadyUsed[33][2] = false
}
NEoMASTERR писал(а):
- Код: Выделить всё
g_AlreadyUsed[сюда вставлять id игрока][сюда пункт меню]
Вот это не сработает
- Код: Выделить всё
public Event_RoundStart()
{
g_RoundCount++;
g_AlreadyUsed[33][0] = false
g_AlreadyUsed[33][1] = false
g_AlreadyUsed[33][2] = false
}
Надо каждому игроку обнулять, куда вставлять id игрока я вам сказал, как делается цикл загуглите/посмотрите в предыдущих моих сообщениях
Добавлено спустя 27 секунд:
На этом мои полномочия всё, усюсю пусю - не моё
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12