|
15 | 15 | //-----------------------------------------------------// |
16 | 16 | // Consts |
17 | 17 | //-----------------------------------------------------// |
18 | | -#define MAX_VOTELIST_SIZE 8 |
| 18 | +#define MAX_VOTELIST_SIZE 9 |
19 | 19 | new const FILE_MAPS[] = "maps.ini"; |
20 | 20 | //-----------------------------------------------------// |
21 | 21 |
|
@@ -52,11 +52,13 @@ enum Cvars { |
52 | 52 | SHOW_SELECTS, |
53 | 53 | RANDOM_NUMS, |
54 | 54 | PREPARE_TIME, |
55 | | - VOTE_TIME |
| 55 | + VOTE_TIME, |
| 56 | + VOTE_ITEM_OFFSET |
56 | 57 | }; |
57 | 58 |
|
58 | 59 | new g_pCvars[Cvars]; |
59 | 60 |
|
| 61 | +new g_iOffset; |
60 | 62 | new g_iVoteItems; |
61 | 63 | new g_sVoteList[MAX_VOTELIST_SIZE + 1][MAPNAME_LENGTH]; |
62 | 64 | new g_iVotes[MAX_VOTELIST_SIZE + 1]; |
@@ -96,6 +98,7 @@ public plugin_init() |
96 | 98 | g_pCvars[RANDOM_NUMS] = register_cvar("mapm_random_nums", "0"); // 0 - disable, 1 - enable |
97 | 99 | g_pCvars[PREPARE_TIME] = register_cvar("mapm_prepare_time", "5"); // seconds |
98 | 100 | g_pCvars[VOTE_TIME] = register_cvar("mapm_vote_time", "10"); // seconds |
| 101 | + g_pCvars[VOTE_ITEM_OFFSET] = register_cvar("mapm_vote_item_offset", "0"); |
99 | 102 |
|
100 | 103 | g_hForwards[MAPLIST_LOADED] = CreateMultiForward("mapm_maplist_loaded", ET_IGNORE, FP_CELL); |
101 | 104 | g_hForwards[PREPARE_VOTELIST] = CreateMultiForward("mapm_prepare_votelist", ET_IGNORE, FP_CELL); |
@@ -391,6 +394,12 @@ prepare_vote(type) |
391 | 394 | } |
392 | 395 | } |
393 | 396 |
|
| 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 | + |
394 | 403 | g_iTimer = get_num(PREPARE_TIME) + 1; |
395 | 404 | countdown(TASK_PREPARE_VOTE); |
396 | 405 |
|
@@ -478,10 +487,10 @@ public show_votemenu(id) |
478 | 487 | len += formatex(menu[len], charsmax(menu) - len, "%s", (item == g_iVoteItems) ? "^n" : ""); |
479 | 488 |
|
480 | 489 | 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)); |
483 | 492 | } 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]); |
485 | 494 | } |
486 | 495 |
|
487 | 496 | percent = g_iTotalVotes ? floatround(g_iVotes[item] * 100.0 / g_iTotalVotes) : 0; |
@@ -517,7 +526,7 @@ public votemenu_handler(id, key) |
517 | 526 | return PLUGIN_HANDLED; |
518 | 527 | } |
519 | 528 |
|
520 | | - new original = get_original_num(key); |
| 529 | + new original = get_original_num(key - g_iOffset); |
521 | 530 | g_iVotes[original]++; |
522 | 531 | g_iTotalVotes++; |
523 | 532 | g_iVoted[id] = key; |
|
0 commit comments