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

как сделать систему как у башен ?

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

Оффлайн Redn_oll

  • 9
  • Мощь: 0
вопрос тупой и в теме немного не коректен . как сделать так чтобы башня 2 была не уязвима пока не снесена башня 1 ?

Оффлайн CryDeS

  • Друзья CG
  • 1194
  • Мощь: 11
Re: как сделать систему как у башен ?
« Ответ #1 : 01-04-2016, 12:56:05 »
вопрос тупой и в теме немного не коректен . как сделать так чтобы башня 2 была не уязвима пока не снесена башня 1 ?
При старте давать башне 2 неуязвимость, а при смерти башни 1 снимать неуязвимость

Оффлайн Redn_oll

  • 9
  • Мощь: 0
Re: как сделать систему как у башен ?
« Ответ #2 : 01-04-2016, 14:38:26 »
При старте давать башне 2 неуязвимость, а при смерти башни 1 снимать неуязвимость

проблема в том что спомошью FindByName и FindByClassName я немогу найти свой юнит +
при создании юнита он считается нилом поч ?
вот :
CreateUnitByName("global_door_entity",point, true, nil, nil, DOTA_TEAM_BADGUYS):SetUnitName("global_door")

Оффлайн CryDeS

  • Друзья CG
  • 1194
  • Мощь: 11
Re: как сделать систему как у башен ?
« Ответ #3 : 01-04-2016, 16:11:10 »
проблема в том что спомошью FindByName и FindByClassName я немогу найти свой юнит +
при создании юнита он считается нилом поч ?
вот :
CreateUnitByName("global_door_entity",point, true, nil, nil, DOTA_TEAM_BADGUYS):SetUnitName("global_door")
Если он считается nil'ом, то значит он не создается?

Оффлайн Redn_oll

  • 9
  • Мощь: 0
Re: как сделать систему как у башен ?
« Ответ #4 : 01-04-2016, 16:57:30 »
Если он считается nil'ом, то значит он не создается?

дело в том что он создается и система его тупо не может найти не как даже если его на прямую в переменную записать

Оффлайн Redn_oll

  • 9
  • Мощь: 0
Re: как сделать систему как у башен ?
« Ответ #5 : 03-04-2016, 09:32:33 »
а как установить имя юниту ? setUnitName() работает но FindByName по нему найти не может

Оффлайн Илья

  • Супермодератор
  • 1892
  • Мощь: 16
Re: как сделать систему как у башен ?
« Ответ #6 : 03-04-2016, 14:41:46 »
Имя в npc_units_custom.txt

Оффлайн Redn_oll

  • 9
  • Мощь: 0
Re: как сделать систему как у башен ?
« Ответ #7 : 04-04-2016, 17:21:07 »
Имя в npc_units_custom.txt
не робит проверял

Оффлайн Илья

  • Супермодератор
  • 1892
  • Мощь: 16
Re: как сделать систему как у башен ?
« Ответ #8 : 04-04-2016, 17:23:23 »
не робит проверял

Что не работает?

Парметр имени???

Код
"npc_base"  - ВОТ ЭТО ИМЯ
{
// General
//----------------------------------------------------------------
"BaseClass" "npc_dota_creature"
"Model" "models/heroes/shopkeeper_dire/shopkeeper_dire.vmdl"
"ModelScale" "1"
"Level"

...

Оффлайн Redn_oll

  • 9
  • Мощь: 0
Re: как сделать систему как у башен ?
« Ответ #9 : 04-04-2016, 19:10:10 »
Что не работает?

Парметр имени???

Код
"npc_base"  - ВОТ ЭТО ИМЯ
{
// General
//----------------------------------------------------------------
"BaseClass" "npc_dota_creature"
"Model" "models/heroes/shopkeeper_dire/shopkeeper_dire.vmdl"
"ModelScale" "1"
"Level"

...

хмм решил посмотреть как их называет система в итоге у всех их имена их бэис класса т.е в моем случае npc_dota_creature

Оффлайн Redn_oll

  • 9
  • Мощь: 0
Re: как сделать систему как у башен ?
« Ответ #10 : 04-04-2016, 19:30:57 »
хмм решил посмотреть как их называет система в итоге у всех их имена их бэис класса т.е в моем случае npc_dota_creature

крч я тот еше костылер сделал так получаю все что имеет типо имя npc_dota_creature прогоняю через цикл в котором получаю юнит нейм его можно задать при спавне но !!!! не путать с обычным неймом

Оффлайн Илья

  • Супермодератор
  • 1892
  • Мощь: 16
Re: как сделать систему как у башен ?
« Ответ #11 : 04-04-2016, 21:06:42 »
Что-то я совершенно не пойму, что ты вытворяешь.

Вот есть у тебя свой npc, скажем, зовут его goblin.

Его описание в npc_units_custom.txt :

Код
"goblin"  
{
тут всякие параметры
}

Далее ты хочешь его заспавнить на карте.  Берешь, создаешь в нужной тебе точке в hammer map editor  объект spawner_info , либо block, либо что-либо еще, что относится к entity и называешь этот объект spawn.

Далее, уже в скрипте, например addon_game_mode.lua спавнишь этого крипа:

Код
local point = Entities:FindByName( nil, "spawn"):GetAbsOrigin() -- получаем корди спавна
CreateUnitByName("goblin", point, true, nil, nil, DOTA_TEAM_NEUTRALS ) -- создаем юнита в точке спавна

Все. Что за имя ты ищешь?

Оффлайн CryDeS

  • Друзья CG
  • 1194
  • Мощь: 11
Re: как сделать систему как у башен ?
« Ответ #12 : 05-04-2016, 07:50:25 »
крч я тот еше костылер сделал так получаю все что имеет типо имя npc_dota_creature прогоняю через цикл в котором получаю юнит нейм его можно задать при спавне но !!!! не путать с обычным неймом
У всех стандартных крипов и т.д свой бейскласс написаный на c++ валвами. Нам они дали один бейскласс с наворотами npc_dota_creature . И бейскласс это не имя, вообще нет, имя это как сказал выше илья первый ключ к юниту в формате
Код
"unit_name"
{
     "BaseClass" "npc_dota_creature"
}
И правильно что у тебя не ищет по имени npc_dota_creature , ведь это КЛАСС. Для поиска по классам есть функция FindAllByClassname. А для поиска по именам есть FindAllByName.
Никогда больше не путай класс и имя. Это две разные вещи. Это то же самое что путать человек и млекопитающие.

Оффлайн Redn_oll

  • 9
  • Мощь: 0
Re: как сделать систему как у башен ?
« Ответ #13 : 05-04-2016, 15:13:13 »
У всех стандартных крипов и т.д свой бейскласс написаный на c++ валвами. Нам они дали один бейскласс с наворотами npc_dota_creature . И бейскласс это не имя, вообще нет, имя это как сказал выше илья первый ключ к юниту в формате
Код
"unit_name"
{
     "BaseClass" "npc_dota_creature"
}
И правильно что у тебя не ищет по имени npc_dota_creature , ведь это КЛАСС. Для поиска по классам есть функция FindAllByClassname. А для поиска по именам есть FindAllByName.
Никогда больше не путай класс и имя. Это две разные вещи. Это то же самое что путать человек и млекопитающие.

знаю я что такое классы итд (java 3 года) но и по класс нейму итд не ишет как бы не пытался ))))  вобшем пока покостылим

Оффлайн CryDeS

  • Друзья CG
  • 1194
  • Мощь: 11
Re: как сделать систему как у башен ?
« Ответ #14 : 05-04-2016, 15:20:09 »
знаю я что такое классы итд (java 3 года) но и по класс нейму итд не ишет как бы не пытался ))))  вобшем пока покостылим
В датадривене юнита
Код
"unit_name"
{
     "BaseClass" "npc_dota_creature"
     //тут другие параметры юнита
}

В скрипте:
Код
local unit_table = Entities:FindAllByName("unit_name")
for _,x in pairs(unit_table) do
  if x then
     print("unit table:", x, " unit name:", x:GetUnitName())
  end
end