В общем продает магазин способность через пустышку. Есть 4 типа магазинов(для каждого класса - свой пул абилок, свой магазин) и один, в который ты можешь сам продать ненужные абилки. Изначально была идея записывать ID покупаемой(настоящей) способности в название пустышки и сделать покупку как то типа:
AddAbility(unit,GetAbilityName(GetSpellAbilityId()))
Но получилось, что Name = String, а им нужен Int, однако ID - не Int и при конвертации S2I выдавался просто 0.
Поэтому, видимо, придется делать через миллион ифов, но загвоздка вся в том, что там 150~ абилок, делать для каждой пустышку - это уже лютый гемор, а теперь ещё для каждой настраивать вот такенное древо ифов?:
Убейте, это же просто Ад.
Джассеры, я знаю что в джассе есть многие функции, которых нет в простом ГУИ и о которых я не знаю, а также, возможно, на vJass должны быть пути халтурных обходов этого геморроя.
Подскажите что нибудь, пожалуйста...

Принятый ответ

Как все запущено...
Id абилки это именно целое число, в 256'ричной системе счислений он выглядит как 'ANeg' к примеру, а как число в десятичной системе - 1095656807 вот так, ну или вот так 414E6567 как шестнадцатеричное.
Делаешь базу данных, всех абилок и всех пустышек, либо через хештаблицу - первое число луюбое, второе твоя пустышка, сохраненное значение - твой ид абилки.
Либо 2 массива, в первом id пустышек, во втором абилок и перебор циклом, пока число в ячейке n массива пустышек не будет равно id текущей пустышки (ту которую купил юнит), ну а потом вручаем юниту абилку из массива абилок из ячейки n.
Способов как сопоставить 2 массива чисел не мало, так что мб подумаешь о завязывании с ГУИ, говорят он вызывает рак мозга..
0
32
7 лет назад
0
Как все запущено...
Id абилки это именно целое число, в 256'ричной системе счислений он выглядит как 'ANeg' к примеру, а как число в десятичной системе - 1095656807 вот так, ну или вот так 414E6567 как шестнадцатеричное.
Делаешь базу данных, всех абилок и всех пустышек, либо через хештаблицу - первое число луюбое, второе твоя пустышка, сохраненное значение - твой ид абилки.
Либо 2 массива, в первом id пустышек, во втором абилок и перебор циклом, пока число в ячейке n массива пустышек не будет равно id текущей пустышки (ту которую купил юнит), ну а потом вручаем юниту абилку из массива абилок из ячейки n.
Способов как сопоставить 2 массива чисел не мало, так что мб подумаешь о завязывании с ГУИ, говорят он вызывает рак мозга..
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.