Доброго времени суток.
Пожалуйста помогите найти ошибку. Всегда возвращает 1(или похожее) что в общем то в дальнейшем считается как первый игрок(красный)
Пожалуйста помогите найти ошибку. Всегда возвращает 1(или похожее) что в общем то в дальнейшем считается как первый игрок(красный)
Функция должна выбрать рандомного игрока из играющих людей и чтобы в массиве AccEmpPlayer[номер рандомного игрока] был false(Нет)
Принятый ответ
Должно работать:
function GetRandomPlayerIndex takes nothing returns integer
set udg_Buf_A = 0
set bj_forLoopAIndex=0 //red
set bj_forLoopAIndexEnd=10 //light blue
loop
exitwhen(bj_forLoopAIndex>bj_forLoopAIndexEnd)
if(GetPlayerSlotState(Player(bj_forLoopAIndex))==PLAYER_SLOT_STATE_PLAYING)and(GetPlayerController(Player(bj_forLoopAIndex)))==MAP_CONTROL_USER)and(udg_AccEmpPlayer[bj_forLoopAIndex]==false)then
set udg_PlayersPlay[udg_Buf_A]=Player(bj_forLoopAIndex)
set udg_Buf_A=(udg_Buf_A+1)
endif
set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
set udg_Random=GetRandomInt(0,udg_Buf_A)
set udg_RndPlayer=udg_PlayersPlay[udg_Random]
return udg_RndPlayer
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
судя у тя прибавляет +1 если данный игрок найден. Значит рандом должен
GetRandomInt(1,udg_Buf_A) - 1 возврашает 0 если только 1 красный играет, а если красный и синый то 0,1
Отредактирован DarKRs
Zahanc: Да по сети тесты проводились Игрок являющийся принимающей стороной. И должен быть выбран другой рандомный игрок который ею не является. Только 1(один) игрок может быть принимающей стороной.
Отредактирован N1ghtSiren
Закиньте оба(или все 3) IF на 1 строку, добавьте слово and (будет проще, меньше шансов запутаться)
Можете код в текстовом варианте скинуть?
Отредактирован DarKRs
Отредактирован N1ghtSiren
Спасибо PyCCKuu_4eJl: и pro100master,