Помните тему с заменой расы НЕ на Альянс? Когда игрок или АИ выбирает НЕ, играть он будет не НЕ а Альянсом. Тогда я смог реализовать это чудо, заменив стартовых юнитов, интерфейс и АИ. Однако мне ещё нужно как то поменять набор эльфийских звуков на альянсовые. Но самое главное - недавно я обнаружил новую проблему. АИ игрока выбравшего НЕ и получившего Альянсовых нитов и АИ, играть то играет, но он не улучшает свою ратушу. АИ не переходит на Тир2. Представьте себе компьютер, играющий всю игру одним героем и горсткой Тир1 юнитов.
Вот то, что я реализовал на данный момент, что бы заменялись юниты и скрипт АИ (БЖ я не раскрывал. По моему мало чего даст раскрытие БЖ функции которая запускается всего 1 раз):
Инит - действия (Trig_Melee_Initialization_Actions). Тет не все её действия, а только те что связаны с этой темой:
Code
function Trig_Melee_Initialization_Actions takes nothing returns nothing local integer i = 0 set udg_Hash=InitHashtable()
loop exitwhen i > 7 call SetPlayerAllianceStateBJ( Player(11), Player(i), bj_ALLIANCE_UNALLIED_VISION ) if GetPlayerRace( Player(i) ) == RACE_NIGHTELF then call SetPlayerRacePreference( Player(i), RACE_PREF_HUMAN ) endif set i = i + 1 endloop
Вот обычная функция MeleeStartingUnits(), но немного переделанная, поэтому я назвал её MeleeStartingUnitsCustom(). На самом деле там отличается всего одна строка, где вместо MeleeStartingUnitsNightElf написано MeleeStartingUnitsHuman.
Code
function MeleeStartingUnitsCustom takes nothing returns nothing local integer index local player indexPlayer local location indexStartLoc local race indexRace
call Preloader( "scripts\\SharedMelee.pld" )
set index = 0 loop set indexPlayer = Player(index) if (GetPlayerSlotState(indexPlayer) == PLAYER_SLOT_STATE_PLAYING) then set indexStartLoc = GetStartLocationLoc(GetPlayerStartLocation(indexPlayer)) set indexRace = GetPlayerRace(indexPlayer)
Вот обычная функция MeleeStartingAI(), но немного переделанная, поэтому я назвал её MeleeStartingAICustom(). На самом деле там отличается всего одна строка, где вместо elf.ai написано human.ai.
Code
function MeleeStartingAICustom takes nothing returns nothing local integer index local player indexPlayer local race indexRace
set index = 0 loop set indexPlayer = Player(index) if (GetPlayerSlotState(indexPlayer) == PLAYER_SLOT_STATE_PLAYING) then set indexRace = GetPlayerRace(indexPlayer) if (GetPlayerController(indexPlayer) == MAP_CONTROL_COMPUTER) then if (indexRace == RACE_HUMAN) then call PickMeleeAI(indexPlayer, "human.ai", null, null) elseif (indexRace == RACE_ORC) then call PickMeleeAI(indexPlayer, "orc.ai", null, null) elseif (indexRace == RACE_UNDEAD) then call PickMeleeAI(indexPlayer, "undead.ai", null, null) call RecycleGuardPosition(bj_ghoul[index]) elseif (indexRace == RACE_NIGHTELF) then call PickMeleeAI(indexPlayer, "human.ai", null, null) endif call ShareEverythingWithTeamAI(indexPlayer) endif endif
set index = index + 1 exitwhen index > 7 endloop endfunction
Ещё я уменьшил количество игроков в этих функциях, с максимального количества до 8. И так 2 вопроса: 1) Первое, и конечно же важное, это всё то что я написал выше про проблему с АИ "замененных эльфов", что АИ не апгрейдит на Тир2. 2) Раса полностью заменена, но бабские звуки эльфов остались. Как заменить набор звуков с эльфийских на альянсовые. Желательно без импортирования тех же звуков с другим путём. Сами знаете, звуки много весят.
2-рое ты найдеш в коснтантах или интерфес но точно не помню dunno
В интерфейсе они есть, но там не видно их пути в архиве, и нету возможности прописать другой путь. Кроме того там звук выбирается 1, но в архиве на него есть 4 варианта, или даже 5. Мне нужно либо настроить звуки для каждой расы, либо в крайнем случае выбрать 1 для всех раз.
vov68, нет, это не глюк. Когда выбирается альянс, АИ норм играет, а когда выбираются Эльфы, и им меняешь скрипты АИ и юнитов на Альянсовые, то он играет только на Тир1.
ещё и прокачки способностей юнитов нет, но ты подожди до момента, когда кончится золото в руднике.... точнее - во всех доступных для данного игрока рудниках.
Зачем делать для других новые карты... ... лучше устроить коту божественный почесон. :)
Сообщение отредактировал vov68 - Вторник, 16 Октября 2012, 15:17:10
ещё и прокачки способностей юнитов нет, но ты подожди до момента, когда кончится золото в руднике.... точнее - во всех доступных для данного игрока рудниках.
Рудников на карте много + карта большая + есть много нейтральных юнитов который ещё и респавнятся, тем самым замедляя экспансию. Да и если я выбираю для компа Альянс, то он нормально играет. То что я писал выше происходит только когда я выбираю компу (или комп сам выбирает) Ночных Эльфов, и триггерно меняю ему скрипты АИ и юнитов на людские.