ошибка скорее всего тут:
команда /base [id] вот в этом фрагменте
if(!Voting)
{
Voting = true;
new i;
while((i < MAX_BASES) || (i < MAX_PLAYERS))
{
if(i < MAX_BASES) Votes[i] = 0;
if(i < MAX_PLAYERS) Player[i][pVoted] = false;
i++;
}
VotingTime = 20;
votetim = SetTimer("VoteMove",0,0);
}
Замени строчку if(i < MAX_PLAYERS) Player[i][pVoted] = false; на
if(i < MAX_PLAYERS && i != playerid) Player[i][pVoted] = false;
Должно помочь, но если вдруг не помогло, то не ругать 
Добавлено (08.05.2009, 19:54)
---------------------------------------------
еще вот эту наверное строчку
if(i < MAX_BASES) Votes[i] = 0;
на
if(i < MAX_BASES && i != baseid) Votes[i] = 0;
так как при первом голосовании надо занулить все флаги голосов за базы и игроков, кроме текущей базы и первого голосующего