Я сдела с группами и бот выбырает другого героя в зависимоти от того кого я взял и удаляет юнита из группы но мне приходиться обнулять группу иначе боту даеться сразу все те герои которы я не взял.Добавлено (05-01-2011, 21:19)---------------------------------------------Теперь надо ему обяснить чтобы он взял одного только героя. вот фигня
Видимо ты что то там намутил, ты же можешь задать действие "Создать Случайного юнита из группы юнитов "
Добавлено (05-01-2011, 21:33) --------------------------------------------- lawson, массиву все равно)))
local unit array hero set hero[0]=ля ля set hero[1]=лыя ля set hero[2]=ля ля set hero[3]=ля ля set hero[4]=ля ля set hero[5]=ля ля set hero[6]=ля ля set hero[7]=ля ля set hero[8]=ля ля set hero[9]=ля ля set hero[10]=ля ля
Юниты, которые тебе нужны! hero [0] - первый герой в таверне и т.д.
Добавлено (05-01-2011, 22:08) --------------------------------------------- lawson, я циклом ничего не делал... блин, был бы у меня WE по рукой я бы тебе наработку скинул!)
а обычная переменна яinteger как называеться целоисчислительная?
Добавлено (05-01-2011, 22:16) --------------------------------------------- Я запишу в integer всех герое а при вызове героя для бота буду создавать функцию где он будет проверять GetUnitID если совпадет то он удалит этот ID из обычной integer только как она называеться?
Добавлено (05-01-2011, 23:31) --------------------------------------------- Ну блин не че я не добился [я тупой] вот все что я знаю
function Trig_AI_Start_Choose_Actions takes nothing returns nothing set udg_hero[1] = 'H000' set udg_hero[2] = 'E003' set udg_hero[3] = 'E005' set udg_hero[4] = 'E006' set bj_forLoopAIndex = 1 set bj_forLoopAIndexEnd = 10 loop exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd call StartMeleeAI( Player(10), "map.ai" ) if (bot()) then call CreateNUnitsAtLoc( 1, udg_hero[GetRandomInt(1, 4)], ConvertedPlayer(GetForLoopIndexA()), GetRectCenter(gg_rct_BaseCenterSen), bj_UNIT_FACING ) call PolledWait( 0.1 ) call SetUnitOwner( udg_remove[GetConvertedPlayerId(GetOwningPlayer(GetLastCreatedUnit()))], Player(PLAYER_NEUTRAL_PASSIVE), false ) endif set bj_forLoopAIndex = bj_forLoopAIndex + 1 endloop endfunction
//=========================================================================== function InitTrig_AI_Start_Choose takes nothing returns nothing set gg_trg_AI_Start_Choose = CreateTrigger( ) call TriggerAddAction( gg_trg_AI_Start_Choose, function Trig_AI_Start_Choose_Actions ) endfunction
Добавлено (05-01-2011, 23:32) --------------------------------------------- Бот тупо выбирает героя. Я пытался сделать проверку на ID но если ID совпадало с ID предыдущего выбранного героя то весь цикл останавливался.
local integer idcount=10//количество героев if GetUnitTypeId(bj_lastCreatedUnit)==твой ID then set idcount=idcount-1 else call CreateNUnitsAtLoc( 1, udg_hero[GetRandomInt(1,idcount)], ConvertedPlayer(GetForLoopIndexA()), GetRectCenter(gg_rct_BaseCenterSen), bj_UNIT_FACING ) endif
Хахаха уже сделал кстати точно как ты но я сделал событие юнит входит в локацию(это после того как бот выбрал юнита) я проверяю их id записываю в переменную если id вошедшего совпадают с еще не появившемя то проиграть функцию еще раз. Все сделал
Добавлено (06-01-2011, 03:07) --------------------------------------------- udg_hero и это должно быть Integer.
Добавлено (06-01-2011, 03:11) --------------------------------------------- И у тебя не правильно все! А если я выберу героя не того у которго номер 1 а например 5 твой idcode всеравно сделает idcode - 1 цццц я писал об этом выше.
Добавлено (06-01-2011, 03:11) --------------------------------------------- Уже это невыжно я все сделал.