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

  • Автор темы Автор темы Redn_oll
  • Дата начала Дата начала

Redn_oll

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

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

дело в том что он создается и система его тупо не может найти не как даже если его на прямую в переменную записать
 
Последнее редактирование модератором:
а как установить имя юниту ? setUnitName() работает но FindByName по нему найти не может
 
не робит проверял

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

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

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

		...
 
Последнее редактирование модератором:
[quote author=Илья link=topic=789.msg3394#msg3394 date=1459790603]
Что не работает?

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

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

		...
[/quote]

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

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

Вот есть у тебя свой 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 ) -- создаем юнита в точке спавна

Все. Что за имя ты ищешь?
 
Последнее редактирование модератором:
крч я тот еше костылер сделал так получаю все что имеет типо имя npc_dota_creature прогоняю через цикл в котором получаю юнит нейм его можно задать при спавне но !!!! не путать с обычным неймом
У всех стандартных крипов и т.д свой бейскласс написаный на c++ валвами. Нам они дали один бейскласс с наворотами npc_dota_creature . И бейскласс это не имя, вообще нет, имя это как сказал выше илья первый ключ к юниту в формате
Код:
"unit_name"
{
   "BaseClass" "npc_dota_creature"
}
И правильно что у тебя не ищет по имени npc_dota_creature , ведь это КЛАСС. Для поиска по классам есть функция FindAllByClassname. А для поиска по именам есть FindAllByName.
Никогда больше не путай класс и имя. Это две разные вещи. Это то же самое что путать человек и млекопитающие.
 
Последнее редактирование модератором:
[quote author=CryDeS link=topic=789.msg3406#msg3406 date=1459842625]
У всех стандартных крипов и т.д свой бейскласс написаный на c++ валвами. Нам они дали один бейскласс с наворотами npc_dota_creature . И бейскласс это не имя, вообще нет, имя это как сказал выше илья первый ключ к юниту в формате
Код:
"unit_name"
{
   "BaseClass" "npc_dota_creature"
}
И правильно что у тебя не ищет по имени npc_dota_creature , ведь это КЛАСС. Для поиска по классам есть функция FindAllByClassname. А для поиска по именам есть FindAllByName.
Никогда больше не путай класс и имя. Это две разные вещи. Это то же самое что путать человек и млекопитающие.
[/quote]

знаю я что такое классы итд (java 3 года) но и по класс нейму итд не ишет как бы не пытался )))) вобшем пока покостылим
 
Последнее редактирование модератором:
знаю я что такое классы итд (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
 
Последнее редактирование модератором:
Реклама: