CustomGames.ru - Dota 2 пользовательские игры

Спавн

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Спавн
« : 24-06-2015, 20:00:50 »
Как заспавнить героя в определенных координатах ? Например, как в жизни на арене игроков тпшит на дуэль.
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh

Оффлайн doter.ua

  • Друзья CG
  • 272
  • Мощь: 1
Re: Спавн
« Ответ #1 : 24-06-2015, 21:11:42 »
unit:SetAbsOrigin(Vector(0,0,0))
гайды
сурпрайз mthfckr :D

[свернуть]

Оффлайн M@G

  • Продвинутый
  • 63
  • Мощь: 0
Re: Спавн
« Ответ #2 : 04-08-2015, 10:33:24 »
Есть другая проблема:
в хамере в определенном месте стоит info_player_start_goodguys. Герой спавнится используя FORCE_PICKED_HERO. Никаких дополнительных CreateHeroForPlayer не прописывалось. Если использовать GetAbsOrigin в OnPlayerPickHero (events.lua), то выдаваемая позиция совпадает с тем местом, где герой спавнится. Но если попытаться использовать эту же команду в OnHeroInGame(gamemode.lua), то выдается (0,0,0).
Казалось бы, можно OnHeroInGame не использовать. Но если к герою прикрепить абилку и добавить эффект (партиклы) при касте с параметром "Target" "CASTER", то эти партиклы создаются не в месте, где стоит герой, а в позиции (0,0,0).

Имеется ли какое-то объяснение этому? И если есть, то как это можно обойти?

Оффлайн doter.ua

  • Друзья CG
  • 272
  • Мощь: 1
Re: Спавн
« Ответ #3 : 04-08-2015, 11:34:55 »
M@G,  выведи в консоль все аргументы (обычно keys), мб там есть что-то полезное.
UPDATE: если ты про barebones, то OnHeroInGame самодельная функция, вызываемая из события нпс спавнед. github.com/bmddot...vents.lua#L39-L47
и это github.com/bmddot...vents.lua#L26-L35

исток:   ListenToGameEvent('npc_spawned', Dynamic_Wrap(GameMode, 'OnNPCSpawned'), self)
« Последнее редактирование: 04-08-2015, 11:47:09 от doter.ua »
гайды
сурпрайз mthfckr :D

[свернуть]

Оффлайн M@G

  • Продвинутый
  • 63
  • Мощь: 0
Re: Спавн
« Ответ #4 : 04-08-2015, 12:22:27 »
Эмм. Entity и индексы одинаковые, позиции разные... оО


Оффлайн doter.ua

  • Друзья CG
  • 272
  • Мощь: 1
Re: Спавн
« Ответ #5 : 04-08-2015, 13:36:54 »
M@G,  если я не ошибаюсь, то hero и entity индексы - разные вещи. У героя должен быть свой ентитиИД кроме хироИД.
гайды
сурпрайз mthfckr :D

[свернуть]

Оффлайн M@G

  • Продвинутый
  • 63
  • Мощь: 0
Re: Спавн
« Ответ #6 : 05-08-2015, 14:06:42 »
С партиклами разобрался. У меня отсутствовали ControlPointEntities.

В общем, немного странная структура у barebones. OnHeroInGame срабатывал через OnNPCSpawned раньше, чем OnPlayerPickHero, и при этом брал какой-то левый энтити. В итоге я стал вызывать OnHeroInGame через OnPlayerPickHero и передавать ему нормальную сущность героя. А _OnNPCSpawned, который в интернал, теперь больше не нужен. Profit! :)