Нужно, чтобы юнит, НЕ принадлежащий игроку, у которого изначально есть спеллбук, открыл его.
Кастовать оттуда ничего не надо, просто надо открыть и можно так в открытом виде и оставить (но если потом можно закрыть, вообще замечательно).
Как сделать?
Мемхак есть

Принятый ответ

ClotPh, в jass
call Preload( "icons/myicon.blp" )

в гуи
игра - Preload File
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
21
6 лет назад
Отредактирован ClotPh
0
//////
Так. Короче. Нихрена не помогает прелоад в другом месте. Все равно после первого открытия спеллбука с абилами - лаг. Совсем крошечный, но лаг. Неприятно.
Остаётся только одно - открыть спеллбук.
pGameUIClassX4=RMem(RMem(pGameClass2)+0x214)
CallThisCallWith7Args(GameDLL+0x37C420, pGameUIClassX4, abilid, 0x000D0280, 0x20,0,0,0,1)// = open
CallThisCallWith7Args(GameDLL+0x37C420, pGameUIClassX4, 0, 0x000D0007, 0x20,0,0,0,0)// = close
Вот как этим пользоваться?
У меня, допустим, юнит u5 или юнит из глобальной переменной udg_blabla должен открыть спеллбук.
ЧТО и ГДЕ нужно прописать?! Уж соблаговолите подсказать, пожалуйста, если не трудно.
Я тут вообще ФУНКЦИИ не вижу, нормальная функция начинается с function, кончается на endfunction, и что-то принимает и возвращает.
Мне хотелось бы, чтобы функцию можно было скопировать в кастом код и вызывать как-то так:
call OpenSpellbook (u5)
ЗАКРЫВАТЬ МНЕ ПОТОМ НЕ НАДО! ТОЛЬКО ОТКРЫТЬ! ЮНИТ НЕЙТРАЛЬНЫЙ, ТАМ НИКТО У НЕГО НИЧЕГО НЕ УВИДИТ!
0
16
6 лет назад
0
Так а кого ты решил открывать, если работа с книжкой - это просто интерфейс для человека?) Если никто не видит, то и ничего открывать никому не надо
0
32
6 лет назад
0
DracoL1ch, там не идет прогрузка, и при открыти книжки просадка фпс чуствуется (в первый раз, человеком).
0
16
6 лет назад
0
ну так подгрузи их черезх добавление даммику, что за костыли
0
21
6 лет назад
Отредактирован ClotPh
0
вы вообще читаете? не работает это вот именно в этом случае хз почему
там уже целых 2 прелоада - один раз у имеющегося изначально юнита на карте, второй раз мной в списке прелоадящихся юнитов (банально лайновых крипов а-ля дотовских) вписано, call AddAbility call RemoveAbility на каждую, ни хрена не помогает! Мб потому, что это абилы спеллбуков в предметах, хз, связано или нет
Я и хочу поэтому, чтобы там у того самого изначально имеющегося на карте юнита спеллбук открылся, потому что id у спеллбуков одинаковые, и там сразу все абилы должны уже спрелоадиться или так, или никак
///////
P S да и вообще я в данном случае не прошу уточнять, зачем мне нужен хлеб, пистолет, презерватив или CD-ROM. Мне нужно сейчас открыть спеллбук. Всё. Дальше разберусь. Даже если ща не поможет - где-то еще пригодится.
2
16
6 лет назад
2
pGameUIClassX4=RMem(RMem(pGameClass2)+0x214) - куда-то в инициализацию мхака, после pGameClass2
function OpenSpellBookIfUnitSelected takes integer abilid returns nothing
call CallThisCallWith7Args(GameDLL+0x37C420, pGameUIClassX4, abilid, 0x000D0280, 0x20,0,0,0,1)// = open
endfunction
Если будет выделен у игрока юнит с нужным id, откроет его книжку, если нет - ничего не произойдет
0
21
6 лет назад
0
DracoL1ch, ну вот другое дело, спасибо, но... а подконтрольному компьютеру игроку юнита можно выделить или обязательно на игрока менять? просто я десинков опасаюсь, десинки из-за выделений точно НЕвозможны?
(в любом случае там коммент к функции проставлю себе)
2
16
6 лет назад
2
Повторяю еще раз - открытие спелбука есть чисто локальная смена отображения того, что на панели. Не знаю насчет синка, но должно быть безопасно
2
28
6 лет назад
2
ClotPh, прелоад иконок сделай
и всё должно быть нормально
0
21
6 лет назад
0
nvc123, а как делается прелоад иконок? создать эффекты их blpшек или что? мне пока больше ничего другого в голову не пришло
0
28
6 лет назад
0
ClotPh, прелоад иконок делается прелоадом
неожиданно, правда?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.