Skip to content

Commit 87673c8

Browse files
committed
core: added new cvar mapm_vote_item_offset
1 parent a247590 commit 87673c8

File tree

3 files changed

+19
-13
lines changed

3 files changed

+19
-13
lines changed

addons/amxmodx/configs/map_manager.cfg

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ mapm_prepare_time "5"
3131
// seconds
3232
mapm_vote_time "10"
3333

34+
// Смещение пунктов голосования.
35+
// По умолчанию пункты начинаются с 1, ставите квар равным 4 и начало будет с 5.
36+
mapm_vote_item_offset "0"
37+
3438

3539
// Scheduler
3640

addons/amxmodx/scripting/include/map_manager_stocks.inc

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,6 @@ stock trim_bracket(text[])
4545
}
4646
}
4747
}
48-
stock string_with_space(string[])
49-
{
50-
for(new i; string[i]; i++) {
51-
if(string[i] == ' ') return 1;
52-
}
53-
return 0;
54-
}
5548
stock intermission()
5649
{
5750
emessage_begin(MSG_ALL, SVC_INTERMISSION);

addons/amxmodx/scripting/map_manager_core.sma

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
//-----------------------------------------------------//
1616
// Consts
1717
//-----------------------------------------------------//
18-
#define MAX_VOTELIST_SIZE 8
18+
#define MAX_VOTELIST_SIZE 9
1919
new const FILE_MAPS[] = "maps.ini";
2020
//-----------------------------------------------------//
2121

@@ -52,11 +52,13 @@ enum Cvars {
5252
SHOW_SELECTS,
5353
RANDOM_NUMS,
5454
PREPARE_TIME,
55-
VOTE_TIME
55+
VOTE_TIME,
56+
VOTE_ITEM_OFFSET
5657
};
5758

5859
new g_pCvars[Cvars];
5960

61+
new g_iOffset;
6062
new g_iVoteItems;
6163
new g_sVoteList[MAX_VOTELIST_SIZE + 1][MAPNAME_LENGTH];
6264
new g_iVotes[MAX_VOTELIST_SIZE + 1];
@@ -96,6 +98,7 @@ public plugin_init()
9698
g_pCvars[RANDOM_NUMS] = register_cvar("mapm_random_nums", "0"); // 0 - disable, 1 - enable
9799
g_pCvars[PREPARE_TIME] = register_cvar("mapm_prepare_time", "5"); // seconds
98100
g_pCvars[VOTE_TIME] = register_cvar("mapm_vote_time", "10"); // seconds
101+
g_pCvars[VOTE_ITEM_OFFSET] = register_cvar("mapm_vote_item_offset", "0");
99102

100103
g_hForwards[MAPLIST_LOADED] = CreateMultiForward("mapm_maplist_loaded", ET_IGNORE, FP_CELL);
101104
g_hForwards[PREPARE_VOTELIST] = CreateMultiForward("mapm_prepare_votelist", ET_IGNORE, FP_CELL);
@@ -391,6 +394,12 @@ prepare_vote(type)
391394
}
392395
}
393396

397+
g_iOffset = get_num(VOTE_ITEM_OFFSET);
398+
399+
if(g_iOffset + g_iVoteItems + g_bCanExtend >= MAX_VOTELIST_SIZE + 1) {
400+
g_iOffset = MAX_VOTELIST_SIZE + 1 - g_iVoteItems - g_bCanExtend;
401+
}
402+
394403
g_iTimer = get_num(PREPARE_TIME) + 1;
395404
countdown(TASK_PREPARE_VOTE);
396405

@@ -478,10 +487,10 @@ public show_votemenu(id)
478487
len += formatex(menu[len], charsmax(menu) - len, "%s", (item == g_iVoteItems) ? "^n" : "");
479488

480489
if(g_iVoted[id] == NOT_VOTED) {
481-
len += formatex(menu[len], charsmax(menu) - len, "\r%d.\w %s", g_iRandomNums[item] + 1, g_sVoteList[item]);
482-
keys |= (1 << g_iRandomNums[item]);
490+
len += formatex(menu[len], charsmax(menu) - len, "\r%d.\w %s", (g_iRandomNums[item] + 1 + g_iOffset == 10 ? 0 : g_iRandomNums[item] + 1 + g_iOffset), g_sVoteList[item]);
491+
keys |= (1 << (g_iRandomNums[item] + g_iOffset));
483492
} else {
484-
len += formatex(menu[len], charsmax(menu) - len, "%s%s", (g_iRandomNums[item] == g_iVoted[id]) ? "\r" : "\d", g_sVoteList[item]);
493+
len += formatex(menu[len], charsmax(menu) - len, "%s%s", (g_iRandomNums[item] + g_iOffset == g_iVoted[id]) ? "\r" : "\d", g_sVoteList[item]);
485494
}
486495

487496
percent = g_iTotalVotes ? floatround(g_iVotes[item] * 100.0 / g_iTotalVotes) : 0;
@@ -517,7 +526,7 @@ public votemenu_handler(id, key)
517526
return PLUGIN_HANDLED;
518527
}
519528

520-
new original = get_original_num(key);
529+
new original = get_original_num(key - g_iOffset);
521530
g_iVotes[original]++;
522531
g_iTotalVotes++;
523532
g_iVoted[id] = key;

0 commit comments

Comments
 (0)