Простые вопросы

Статус
В этой теме нельзя размещать новые ответы.

I_GRIN_I

Друзья CG
15 Мар 2016
1,166
95
48
20
Реакции
93 0 2
den4iccc, при полученном уроне или при атаке по себе? Это первое
Второе то, что модификатор сам в себе значится как self, следовательно вот это
Код:
self:GetCaster():FindModifierByName ("modifier_panic_check")
бесполезно
И на модифер дед вешай стаки через сетмодиферстаккоунт и гетмодиферстаккоунт
 
Последнее редактирование модератором:
20 Дек 2016
645
127
28
11
Проект
DI:LS
Реакции
127 0 0
den4iccc, Просто вставил твой код себе и все заработало. Ошибка не в модификаторе.
 

den4iccc

Друзья CG
20 Сен 2014
440
0
16
Проект
Survival in Taiga XE
Реакции
0 0 0
Всё спасибо, проблему решил через условие if params.unit == self:GetParent() then и заменил модификатор на получение урона
 

den4iccc

Друзья CG
20 Сен 2014
440
0
16
Проект
Survival in Taiga XE
Реакции
0 0 0
блин не понимаю как сделать условие если у врага есть модификатор выполняется тот сценарий который я написал выше, мол добавляются стаки при каждом полученном уроне, нужно сделать так чтобы GetUnitName() == "npc_1" только он мог бы наносить урон и давать стаки а другие npc и герои не могли это сделать
 
Последнее редактирование модератором:
Реклама:

den4iccc

Друзья CG
20 Сен 2014
440
0
16
Проект
Survival in Taiga XE
Реакции
0 0 0
[quote author=мамин программист link=topic=849.msg12027#msg12027 date=1509119437]
den4iccc, params.attacker, если я правильно тебя понял.
[/quote]
Да спасибо) так сделал: local hAttacker = params.attacker if hAttacker:GetUnitName() == "npc_dummy_unit" then
 
Последнее редактирование модератором:

den4iccc

Друзья CG
20 Сен 2014
440
0
16
Проект
Survival in Taiga XE
Реакции
0 0 0
Только вот у меня есть скилл который вызывает частицу в которой есть моделька сам коллайдер не прописан в ней и стоит инвизная моделька суть в том что у этой модельки нет хитбокса урон идёт от CreateUnitByName (эксорцизм баншы) мне надо сделать так чтобы урон проходил именно от тех юнитов, которые непосредственно будут наносить урон, были созданы через CreateUnitByName и контролируется той командой непосредственно в которой они были созданы и этот урон добавлял стаки врагу исходя только от него (кароче есть духи которые пролетают сквозь героев и наносят урон при этом накладывают модификатор со стаками но мне нужно сделать проверку на этого юнита чтобы только от него добавлялись стаки)
 
20 Дек 2016
645
127
28
11
Проект
DI:LS
Реакции
127 0 0
den4iccc, на этот раз я вообще ничего не понял. Проверку на юнита, наносящего урон, с последующим добавлением стаков ты уже сделал. Тебе нужно, чтобы только конкретные юниты могли наносить урон, или что?

UPD: надеюсь, ты не избавился от этой части кода:
Код:
 if params.unit == self:GetParent() then
?
 

den4iccc

Друзья CG
20 Сен 2014
440
0
16
Проект
Survival in Taiga XE
Реакции
0 0 0
[quote author=мамин программист link=topic=849.msg12032#msg12032 date=1509122336]
den4iccc, на этот раз я вообще ничего не понял. Проверку на юнита, наносящего урон, с последующим добавлением стаков ты уже сделал. Тебе нужно, чтобы только конкретные юниты могли наносить урон, или что?

UPD: надеюсь, ты не избавился от этой части кода:
Код:
 if params.unit == self:GetParent() then
?
[/quote]

я ничего не убирал, ты правильно понял мне нужно чтобы конкретный юнит наносил урон + добавил проверку на юнита if hAttacker:GetUnitName() == "npc_dummy_unit" then, работает если сделаю другого юнита не npc_dummy_unit а мне как раз таки он и нужен так как этот юнит создаётся через скилл (эти юниты имеют частицу в которую вшита 3d моделька а сама моделька юнита invisiblebox.vmdl и эта модель не имеет хит бокс проще говоря к этой невидимой модельке прикреплён партикал а сам партикал выглядит как полнаценная анимированная 3d моделька) и этот юнит наносит урон по принципу партиклов получается мне нужно отловить партикал в самом модификаторе который бы отвечал помимо урона и за бафы стаков по таргету
 
Последнее редактирование модератором:
20 Дек 2016
645
127
28
11
Проект
DI:LS
Реакции
127 0 0
den4iccc,
Код:
if hAttacker:GetUnitName() == "npc_dummy_unit" then
Пропустит внутрь ифа только если тот, кто нанес урон - npc_dummy_unit. Это я у себя неоднократно использовал, не работать оно не может.
Если тебе надо заблокировать урон он других источников, то делай это либо через фильтр, либо с помощью MODIFIER_PROPERTY_INCOMING_DAMAGE_PERCENTAGE.
 
Последнее редактирование модератором:
Реклама:

den4iccc

Друзья CG
20 Сен 2014
440
0
16
Проект
Survival in Taiga XE
Реакции
0 0 0
блин я хз как выбрать этого юнита делать из него глобальную переменную и оттуда брать значения, по факту это партикал, сами стаки набиваются в OnTakeDamage модификаторе а урон принимается через particle в абилке который прикреплен к юниту, когда делаю проверку на юнита при получении урона стак не набивается а вот когда делаю обычных крипов то всё норм

Код:
function modifier_panic_check:DeclareFunctions()
  local funcs = {
  MODIFIER_EVENT_ON_TAKEDAMAGE
	--MODIFIER_EVENT_ON_ATTACK_LANDED
  }
  return funcs
end

--OnAttackLanded(params)
--OnTakeDamage()
function modifier_panic_check:OnTakeDamage(params)
	-- params.unit
	-- params.attacker
	
	
	-- local unit_name = "npc_dummy_unit"
	-- local hAttacker = params.attacker
	-- if hAttacker:GetUnitName() == "npc_dummy_unit" then
	
	
	if RollPercentage(50) then
	
	if params.unit == self:GetParent() then

	local dbuff_counts = self:GetStackCount()
	self:SetStackCount (dbuff_counts + 1)
	if dbuff_counts >= 8 then
		if not self:GetCaster():HasModifier("modifier_panic") then		
			if not self:GetCaster():HasModifier("modifier_deniable") then		
		  self:GetCaster():AddNewModifier( self:GetCaster(), nil, "modifier_panic", { duration = 15} )	
			end			
		end
	self:SetStackCount(1)
	self:Destroy()
	end
	--print(self)
	end  	
	--end
 end
end
 
Последнее редактирование модератором:

I_GRIN_I

Друзья CG
15 Мар 2016
1,166
95
48
20
Реакции
93 0 2
den4iccc, во первых по факту это юнит, на котором висит партикл. Во вторых создай отдельного юнита со своим именем, иначе будет ещё какой нибудь дамми и гг. В третьих, у тебя юниты создают партиклы, которые дамажат врага, за это на этого юнита нужно кинуть стак? Тебе нужно не через атаку делать это, а через проперти онтейкдемейдж
 

I_GRIN_I

Друзья CG
15 Мар 2016
1,166
95
48
20
Реакции
93 0 2
У тебя же они не атакуют, как может вообще вызываться эвент атаки
 
20 Дек 2016
645
127
28
11
Проект
DI:LS
Реакции
127 0 0
I_GRIN_I, Там евента атаки вообще нет. Он OnTakeDamage и использует.

den4iccc, Хм.. У тебя абилка самописная? Тебе не проще будет накладывать стаки там же, где ты наносишь урон? И ты уверен, что при нанесении урона у тебя источником является именно npc_dummy_unit?
 
Реклама:

ZLOY

Администратор
27 Июн 2016
669
94
28
18
Реакции
92 0 2
а куда ты их вставил?)
 

vulkantsk

Друзья CG
21 Июн 2017
676
84
28
18
https://steamcommunity.com/profiles/76561198307890
www.dotabuff.com
Проект
Roshan defense
Реакции
79 0 5
Вставил я их куда надо , но часть отображается . А часть не отображается.
Я посмотрел вроде и формат и размер все норм.
 

-ExotiC-

Администратор
Команда форума
11 Авг 2014
460
48
28
23
customgames.ru
Проект
Trolls vs Elves
Реакции
46 0 2
Вставил я их куда надо , но часть отображается . А часть не отображается.
Я посмотрел вроде и формат и размер все норм.
Название предмета идет вместе с "item_", а название самой png без "item_". Например:

Код:
"item_godhammer"
{
   "AbilityTextureName" "item_godhammer"
}
Тогда иконка должна быть с названием godhammer.png и находиться в \resource\flash3\images\items, а её размер - 88х64 либо 86х64
 
Последнее редактирование:

vulkantsk

Друзья CG
21 Июн 2017
676
84
28
18
https://steamcommunity.com/profiles/76561198307890
www.dotabuff.com
Проект
Roshan defense
Реакции
79 0 5
Тогда иконка должна быть с названием godhammer.png и находиться в \resource\flash3\images\items, а её размер - 88х64 либо 86х64
Я сейчас смотрю , большинство иконок имеет размер 124х64 или 128х64 , там лишний кусок приделан зачем-то.
В чем прикол я не понял ?
 

-ExotiC-

Администратор
Команда форума
11 Авг 2014
460
48
28
23
customgames.ru
Проект
Trolls vs Elves
Реакции
46 0 2
Я сейчас смотрю , большинство иконок имеет размер 124х64 или 128х64 , там лишний кусок приделан зачем-то.
В чем прикол я не понял ?
Вообще для текущих лэйаутов мониторов достаточно 88x64px. Эти размеры официально используются в самой доте. А вот >120px, как мне кажется, используются моддерами с запасом на будущее и всяких там 4k разрешения. Насколько я знаю, иконки на данный момент всё равно будут конвертироваться в 86x64px.
 
Реклама:
Статус
В этой теме нельзя размещать новые ответы.
Реклама: