Рандом итем
Как сделать рандом предметов,
типо есть база предметов и есть рандом 1-100 так вот
если выпадет 1 то создать 1 случайный предмет из базы
я знаю только как сделать 1 из всех предметов выпадет 100%

Лучший ответ:
Andrey33, я же Вам написал решение.
вот карта пример, если уж совсем не понятно.



Просмотров: 1 742

ledoed #1 - 2 года назад (отредактировано ) 0
int i =0;
while(i<GetRandomInt(0,100)){//это цикл на cjass на жасе вроде loop
	CreateItem(Базаитемовмассив(GetEandomInt(0,100)))
i++
}
Alexey103 #2 - 2 года назад 0
Элементарно, у тебя же есть от одного до ста. Если (Твоя переменная далее х)=1 установить переменную х1-100 если х больше 50 дать предмет 1 иначе (предмет 2/ничего не дать) в данном случае предмет 1 имеет 50% шанс упасть а может не упасть ничего или второй предмет. При том что само условие имеет шанс запустится при смерти юнита 1%.
Desgul #3 - 2 года назад 0
У меня есть такое
Если я добавляю туда предметы то они падают все вместе
не пойму как сделать что бы падал 1 из них
прикреплены файлы
ScopteRectuS #4 - 2 года назад 0
Если у вас 100 предметов, занесите их все в массив. Далее, когда юнит умирает, генерируете случайное число (от 1 до кол-во предметов) и вставляете его в индекс массива.
Desgul #5 - 2 года назад 0
ScopteRectuS, не пойму как это сделать
ScopteRectuS #6 - 2 года назад 0
Andrey33, что именно не можете понять? Как инициализировать массивы? Или как выбрать из массива нужный?
Desgul #7 - 2 года назад 0
я вот допустим сделал базу да
randomitem[1]=когти
randomitem[2]=когти
randomitem[3]=когти
А дальше не понимаю как сделать, что бы падал всего 1 предмет с шансом 1% из всей базы рандомно
то есть в 99% случаях вообще предметы не должны падать
я пробовал с базой и у меня падал только 1 предмет из списка
Game_Nikitav_1 #8 - 2 года назад (отредактировано ) 0
Andrey33,
А можно так?
Заносите изначально, сколько вам нужно предметов
Сначало через рандом выбираете предмет от 1 до максимума (столько, сколько занесли)
Потом еще раз рандом идёт, только уже после выбора предмета, и делаете какой вам шанс нужен для предметов (для всех), потом создаете
Если же нужно для каждого по отдельности шанс выпадения, (к примеру не для всех меньше 45%, а для каждого по-разному, 35%, 100%,66% и т.д.) то заносите рандом в массив, сравнивая с количеством предметов, устанавливая изначально.
Desgul #9 - 2 года назад 0
я всё равно не пойму как это сделать=(
Но тут либо для каждого предмета делать триггер либо шанс дойдёт до количества предметов например 7
прикреплены файлы
quq_CCCP #10 - 2 года назад 0
Andrey33, зачем тебе для каждого триггер? Тебе не нужно целое число от 1 до 100, это твой рандом, береш тип предмета из массива с номером ячейки твоего рандома...
код так приметивен:
	set bj_lastCreatedItem = CreateItem( udg_ITemTypes[GetRandomInt(1,100)], x, y )
Desgul #11 - 2 года назад 0
quq_CCCP, если бы я понимал джасс я уже бы сделал=)
а я его совсем не понимаю
ScopteRectuS #12 - 2 года назад (отредактировано ) 0
Andrey33, утечки, думаю, сами уберёте.
прикреплены файлы
Desgul #13 - 2 года назад 0
ScopteRectuS, Блин почему на англ всё=(
quq_CCCP #14 - 2 года назад 0
Andrey33, потому что нужно учить англ. Иначе тебе в катеростроении делать нечего. Все тех документация и jass только на английском.
ScopteRectuS #15 - 2 года назад 0
Andrey33, ну тут же всё интуитивно понятно. Вы ведь учили англ. в школе?
Game_Nikitav_1 #16 - 2 года назад 1
quq_CCCP, Дело не только в английском языке
Главное знать значение, что из себя представляет и как это написать/сделать
Desgul #17 - 2 года назад 0
ScopteRectuS, у меня английский, французский всего понемногу, в итоге не 1 не знаю, школы менял как перчатки
ledoed #18 - 2 года назад 0
очень трудно понять что ты хочешь,ну я постараюсь,ты наверно хочешь чтобы предмет выпадали с разным шансом то тода делай паралейный массив;
Array[0]="I001"//ид предмета Array2[0]=30//шанс выпадения
Array[1]="I002"//ид предмета Array2[1]=2//шанс выпадения

а потом если те над сгенерить предмет
int random = GetRandomInt(0,100)//это рандомит число от 0 до 100 но смотря сколько у тя предметов если в карте их 60 то GetRandom(0,59)

if(Array2[random]<=GetRandomInt(0,100)){//здесь проверка нашего шанса на предмете
CreateItem(Array[random])//создаёшь наш предмет
}
Desgul #19 - 2 года назад 0
ledoed, я хочу сделать так что бы из базы созданой мной падали предметы с шансом 1%
И допустим если сработало то падает случайная вещь из базы 1 штучка
ledoed #20 - 2 года назад 0
ты знаешь как пользоваться if() блоками,и рандомом
Desgul #21 - 2 года назад 0
ledoed, нет, я джасс вообще не понимаю
ledoed #22 - 2 года назад (отредактировано ) 0
а жасс тут причём это же тебе логикой обьясняют ну срандомь число от 0 до 100,потом проверь равно оно например 59(это наш 1% шанса) и создай предмет ,чё тут сложного?
quq_CCCP #23 - 2 года назад 0
Andrey33, мб не будем пилить рандомы и предметы если вы "вообще не понимаете"".
Desgul #24 - 2 года назад 2
quq_CCCP, нет будем мне нужно это сделать, не забывайте что раньше вы тоже не знали триггеры
biridius #25 - 2 года назад 0
никто не узнает джасс как озарение, просто копируя гуишные триггеры
надо самому конвертить триггеры в текст и вникать что там да как, читать статьи, экспериментировать.
Ничего там сложного нет, джасс это те же триггеры только без картиночек слева и вместо кликанья по спискам пишешь на клавиатуре, а если установлен жнгп то с автоподстановкой функций все еще проще.
Desgul #26 - 2 года назад 0
Ладно всем спасибо, придётся делать для каждого предмета триггер=(
ScopteRectuS #27 - 2 года назад (отредактировано ) 1

Andrey33, я же Вам написал решение.
вот карта пример, если уж совсем не понятно.
прикреплены файлы
Desgul #28 - 2 года назад 0
Я всё сделал, и понял как делать=)
Вдруг кому пригодится, оставлю тут
ScopteRectuS, Спасибо большое, я уже сделал сам
прикреплены файлы
NazarPunk #29 - 2 года назад 0
Andrey33, коли сделали, то выберите лучший ответ.