Прекэш

Adam Smith

Друзья CG
4 Окт 2014
473
2
Как лучше оптимизировать игру?Вопрос вот в чем, я прекэшу героя при кастомном пике....но, допустим пикнули джаггера, а у него скилл с эффектом лины, а лины в пике нет.
Как грамотно прекэшнуть ресурсы, с минимальной нагрузкой


И второе, как выключить стандартное меню пика?
 
Ну обычно при старте просто прекешат всех героев, нет нужны прекешить кого-то отдельно.
В аддон гейм мод просто пиши всех героев и все партикли.

Даже если эффектов и героев много это минимальный лаг на полсекунды, потом все придёт в норму.

Второй вопрос:
Код:
GameRules:GetGameModeEntity():SetCustomGameForceHero( "npc_dota_hero_jakiro" )

Затем уже твой экран кастомный:
Код:
if GameRules:State_Get() == DOTA_GAMERULES_STATE_HERO_SELECTION then
    HeroSelection:Start()

Ну а затем ясное дело:
Код:
 ReplaceHeroWith()
 
Последнее редактирование модератором:
А если кто то вылетел?до пика, экран появится при конекте?
 
Adam Smith, нет, не появится, ему все равно джакиро пикнется
 
Adam Smith, а так вообще прекешируй в датадрайвене, а не в луа
 
У меня нету героя джакиро, мне нужен нормальный экран пика, тем более что двух одинаковых героев быть не может,
Я попытался сделать его экраном пика, норм, но все равно появляется дефолтный, если это сделать нельзя, то тогда надо сделать что бы тем кто вылетел экран снова появлялся
 
Adam Smith, ставь любого героя туда, если нет джакиро, пиши своего туда, а хоть и нельзя одинаковых пикать, все равно будет этот герой у всех. А на счет тех кто вылетал, надо написать функцию при реконекте игрока и проверять её в гаме мрд луа
 
Может кто знает?В овертроу кастомное меню пика, сделанное нормально, фя CreateHeroForPlayer создает героя? Так тогда не проблема сделать без всяких джакиро, надо только стандартный экран отключить
 
Adam Smith, ну посмотри в овертроу кастом_юи_манифест, что там отключено и включено и отключи нужное. Вообще вот, что есть на вики: Valve Provided UI
 
И правда, че ты паришься, открой-ка овертроу и посмотри
 
В овертроу нету, сделал сам.

Код:
  local playerid = PlayerResource:GetPlayer(player)
	CreateHeroForPlayer(hero, playerid)
	playerid:GetAssignedHero():SetControllableByPlayer(0, true)

Код:
 <CustomUIElement type="HeroSelection"         layoutfile="file://{resources}/layout/custom_game/hero_selection.xml" />
 
Последнее редактирование модератором:
Хммм, что эт значит "прекешируй всех героев, задержка пол секунды..."?

Как-то я пробовал прекешировать героев. За каждого навешивало лишних секунд 5 ожиданий перед стартом мода в игре. Прекешировал через функцию, что на форум скинули от Noya. Так что я не знаю, как вы так полностью прекешируете героя с задержками в пол секунды. Подскажете реализацию?


А так, достаточно прекешировать папку партиклей и музыки для героя - вот тут да, задержек почти нет и все абилки будут рабочие.
 
Последнее редактирование модератором:
М, и если тебе нужны именно модельки героя, то тогда будут задержки. Я вон, пользуюсь в таких случаях функцией, что скинул.
 
А, да

ну мы короче сделали вот героев где то 15, пока что САМИХ ГЕРОЕВ прекешировать не потребовалось

если только их партикли
 
Реклама: