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

Прописать юнит создание в скиле

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

Оффлайн Epselot

  • 34
  • Мощь: 0
Есть строка кода:
Код
local caster_up = CreateUnitByName(tower_up, tower_loc, false, caster, caster, caster:GetTeam())

Хочу что бы юнит который будет создан заносился в способность, обычно это делается через AbilitySpecial.
Код
		"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_FLOAT"
"tower_up" "tower_stone_ii"
}
}

Но но не выходит занести переменную через
Код
local tower_up = ability:GetSpecialValueFor("tower_up")

Скажите, как правильно сделать, чтоб работало?

Оффлайн CryDeS

  • Друзья CG
  • 1212
  • Мощь: 12
Re: Прописать юнит создание в скиле
« Ответ #1 : 04-02-2017, 10:43:01 »
Есть строка кода:
Код
local caster_up = CreateUnitByName(tower_up, tower_loc, false, caster, caster, caster:GetTeam())

Хочу что бы юнит который будет создан заносился в способность, обычно это делается через AbilitySpecial.
Код
		"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_FLOAT"
"tower_up" "tower_stone_ii"
}
}

Но но не выходит занести переменную через
Код
local tower_up = ability:GetSpecialValueFor("tower_up")

Скажите, как правильно сделать, чтоб работало?
Во-1, что блять ты хочешь?
Во-2, какого хера у тебя указан тип FLOAT, а по факту строка?

Оффлайн Epselot

  • 34
  • Мощь: 0
Re: Прописать юнит создание в скиле
« Ответ #2 : 04-02-2017, 11:03:41 »
Во-1, что бабушка ты хочешь?
Во-2, какого хера у тебя указан тип FLOAT, а по факту строка?

Бабушка хочет что бы: переменная tower_up, заполнялась в npc_abilities_custom.

Оффлайн Илья

  • Супермодератор
  • 2131
  • Мощь: 21
Re: Прописать юнит создание в скиле
« Ответ #3 : 04-02-2017, 11:49:20 »
Во-1, что бабушка ты хочешь?
Во-2, какого хера у тебя указан тип FLOAT, а по факту строка?

Он хочет, чтобы вместо FLOAT была строка с именем юнита.

Насколько я знаю: через speacial так не сделать, т.к. не встречал в этом блоке строковых переменных.
Но ты можешь сделать абилку не через lua, а через dd и вызывать в ней по касту скрипт, в который сможешь передать в параметрах имя.

Либо ты можешь в самой абилке, в её скрипте, хранить имена юнитов в hash table, в которой у тебя в качестве ключей к именам будут выступать цифры, которые ты уже сможешь запрашивать из ability special.

Оффлайн Epselot

  • 34
  • Мощь: 0
Re: Прописать юнит создание в скиле
« Ответ #4 : 04-02-2017, 12:32:03 »
Но ты можешь сделать абилку не через lua, а через dd и вызывать в ней по касту скрипт, в который сможешь передать в параметрах имя.

Можно ссылку на гайды по dd на эту тему, его не касался ещё.

Либо ты можешь в самой абилке, в её скрипте, хранить имена юнитов в hash table, в которой у тебя в качестве ключей к именам будут выступать цифры, которые ты уже сможешь запрашивать из ability special.

Да этот вариант не такой элегантный, но наверное самый простой в данном случае. А вообще странно что такой возможности нет, тоже искал, найти не смог.

А можно взять название скила, отредактировать его программно и использовать как название юинта?
« Последнее редактирование: 04-02-2017, 12:33:57 от Epselot »

Оффлайн CryDeS

  • Друзья CG
  • 1212
  • Мощь: 12
Re: Прописать юнит создание в скиле
« Ответ #5 : 04-02-2017, 14:41:11 »
Можно ссылку на гайды по dd на эту тему, его не касался ещё.

Да этот вариант не такой элегантный, но наверное самый простой в данном случае. А вообще странно что такой возможности нет, тоже искал, найти не смог.

А можно взять название скила, отредактировать его программно и использовать как название юинта?
Код
ability:GetName()
А потом делай что хочешь с этим, это ж строка.
ps. вместо бабушки было бл*дь, но гениальная система антимата такая гениальная :D

Оффлайн Илья

  • Супермодератор
  • 2131
  • Мощь: 21
Re: Прописать юнит создание в скиле
« Ответ #6 : 04-02-2017, 18:48:19 »

Цитировать
ps. вместо бабушки было бл*дь, но гениальная система антимата такая гениальная :D


Я помню статью тут писал, так там пришлось потом перечитывать и исправлять, ибо все её "литертаурные" маты были чьими-то родственниками : ))


Цитировать
Можно ссылку на гайды по dd на эту тему, его не касался ещё.


Ссыль и ссыль.
« Последнее редактирование: 04-02-2017, 18:50:43 от Илья »

Оффлайн gameizeazy

  • 116
  • Мощь: 1
Re: Прописать юнит создание в скиле
« Ответ #7 : 05-02-2017, 03:09:57 »
Я непонял что иммено ты хочеш, но если ты типо хочеш сделать что то типо,
Есть абилка ( при юзе выдает одного) , создаеться юнит - при юзе абилки она выдает другое, создаеться еще юнит - при юзе абилки создаеться еще -
делай при спавне глобальную переменную _G.MyAbility = {}, _G.MyAbility[ply].u =,потом каждого игрока заноси туда, и потом при создании юнита делай уже что хочеш, заноси в переменную _G.MyAbility[ply].u id юнита, или прибавляй 1, можеш туда еще id из кв закинуть, а если юнит сдох то абилку ему прихерач на смерть...

Оффлайн gameizeazy

  • 116
  • Мощь: 1
Re: Прописать юнит создание в скиле
« Ответ #8 : 05-02-2017, 03:11:13 »
Если надо несколько юнитов делай
Код
_G.MyAbility[id].u = {}
« Последнее редактирование: 05-02-2017, 04:19:26 от gameizeazy »

Оффлайн CryDeS

  • Друзья CG
  • 1212
  • Мощь: 12
Re: Прописать юнит создание в скиле
« Ответ #9 : 05-02-2017, 03:53:25 »
Если надо несколько юнитов делай
Код
_G.MyAbility.u = {}
Сейчас бы в глобальные переменные записывать без нужды, ага.

Оффлайн gameizeazy

  • 116
  • Мощь: 1
Re: Прописать юнит создание в скиле
« Ответ #10 : 05-02-2017, 04:19:40 »
ай всё исправил

Оффлайн CryDeS

  • Друзья CG
  • 1212
  • Мощь: 12
Re: Прописать юнит создание в скиле
« Ответ #11 : 05-02-2017, 08:31:20 »
ай всё исправил
Да нихрена ты не исправил.
Ненужно записывать в глобальные переменные что то, когда можно записать это же самое с тем же самым успехом в локальные.