Реалезуем ли дроп определённых предметов с каждого типа юнита.Допустим с паука падает либо лапа паука,либо мясо паука.А с скелета кости либо оружие.С учетом того что карта RPG жанра (Помимо этой механики есть еще куча всего),и в карте присутствует +-20 типов юнитов.Если возможно,то как это скажется на оптимизации?

anton1623, qне забудь про это. Там равкоды с калькулятором проверяй, для точности
казалось бы все правильно, равкод числа на одну единицу меньше. Но как оказалось, где-то допустил ошибку. Берем любой онлайн-калькулятор ASCII , и переводим 10-чную систему, проверяя насколько отличается.
I008=1227894840
I009=1227894841
I00A=1227894849 Тут отличается на целых 8 знаков, короче сбивается база данных
Давайте

жаль отреддактировать выше
//добавляем итемы в список it[0]
call ItemPoolAddItemType(it[0], 'I000',0) //нога Берги
call ItemPoolAddItemType(it[0], 'I001',0) //карта пеонов
call ItemPoolAddItemType(it[0], 'I002',0) //бкговые кроссовки Берги
//добавляем итемы в список it[1]
call ItemPoolAddItemType(it[1], 'I003',0) //маска Тыщи
call ItemPoolAddItemType(it[1], 'I004',0) //пистолет начальника
call ItemPoolAddItemType(it[1], 'I005',0) //мясо тюленя
call ItemPoolAddItemType(it[1], 'I006',0) //водка
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
30
Но вот луа самый шедевр в плане удобства
На хт можно то же самое реализовать.

Итемпулы - вот ваше решение.
Итемпул всегда отдаёт предмет и не слишком тонко настраивается. Хотя для примитивного дропа подойдёт.
10
Реализуем.
Для твоего уровня хорошим вариантом будут параллельные массивы.
Об оптимизации опять же на твоем уровне вообще думать не стоит
30
Для твоего уровня хорошим вариантом будут параллельные массивы.
Не будут, ибо двумерные он не потянет.
8
nazarpunk, факт

Так почему по системе со скринов выше делать не стоит?
27
anton1623, ну у тебя список не привязан к типу. Как триггер это определяет?
30
Как триггер это определяет?
На каждый тип создаётся триггер Лут_Копировать_Копировать_Копировать_Копировать_Копировать.
27
База данных равкодов юнитов. Или можно другим способом добывать номер итемпула. Ну тут число завязано на тип, то проще сделать свою базу в ро. Или повторно инициируйте бд в таблицах или где то еще
//Можно бд равкодов юнита. Тут можно узнвть номер итемпула.
U000-U000=0
U001-U000=1
U002-U000=2
Создаем списки (итемпул)
//Ну пример, бд итемпула:
It[0] = CreateItemPool() //создаем список для U000
It[1] = CreateItemPool() //создаем список для U001

//добавляем итемы в список it[0]
call ItemPoolAddItemType(it[0], 'I000',0)
call ItemPoolAddItemType(it[0], 'I001',0)
call ItemPoolAddItemType(it[0], 'I002',0)
//добавляем итемы в список it[1]
call ItemPoolAddItemType(it[1], 'I003',0)
call ItemPoolAddItemType(it[1], 'I004',0)
call ItemPoolAddItemType(it[1], 'I005',0)
Узнаем номер списка. Если нужно рандомить случайный предмет из списка it[0]. Где x,y - координаты умирающего юнита
function CreateRandomItemForUnit takes integer num, unit u return nothing
call PlaceRandomItem(it[num], GetUnitX(u),GetUnitY(u))
endfunction

А если нужно удалить из списка итем
ItemPoolRemoveItemType(it[0],'I001')
8
МрачныйВорон, Воу,кажется маленько дошло.Кажется это мой вариант,спасибо!

anton1623, ну у тебя список не привязан к типу. Как триггер это определяет?
Ну я бы добавил условие триггеру какой именно юнит погиб
27
anton1623, qне забудь про это. Там равкоды с калькулятором проверяй, для точности
казалось бы все правильно, равкод числа на одну единицу меньше. Но как оказалось, где-то допустил ошибку. Берем любой онлайн-калькулятор ASCII , и переводим 10-чную систему, проверяя насколько отличается.
I008=1227894840
I009=1227894841
I00A=1227894849 Тут отличается на целых 8 знаков, короче сбивается база данных
Давайте

жаль отреддактировать выше
//добавляем итемы в список it[0]
call ItemPoolAddItemType(it[0], 'I000',0) //нога Берги
call ItemPoolAddItemType(it[0], 'I001',0) //карта пеонов
call ItemPoolAddItemType(it[0], 'I002',0) //бкговые кроссовки Берги
//добавляем итемы в список it[1]
call ItemPoolAddItemType(it[1], 'I003',0) //маска Тыщи
call ItemPoolAddItemType(it[1], 'I004',0) //пистолет начальника
call ItemPoolAddItemType(it[1], 'I005',0) //мясо тюленя
call ItemPoolAddItemType(it[1], 'I006',0) //водка
Принятый ответ
27
anton1623, там точки, двоеточие и пр приняты после цифр в таблице, а потом буквы. Символы нумеруются в таблице Asscil. Возми любой конвертер и посмотри. Например сейчас из ныне работающих это моб приложения. При создании объекта ты можешь прописать 'I00;' - точка с запятой
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.