Подбор случайных 2 игроков.

Sirenkaaa

Гость
Регистрация
12 Июл 2023
Сообщения
114
Привет, сразу к делу. Сейчас обьясню конкретней: Допустим, у нас есть игроки в режиме: Толян 1,2,3, и 4. И вот, мне нужно выбрать 2 рандомных игроков. Например Толяна 1 и 2, или в одной игре толяна 3 и 4.

Что нужно закодировать?

Например сначала был Толян 1, когда он был ему писало в Титл: Недостаточно Игроков. Когда зашёл Толян 2 и 3 одновременно, титл у толяна 1 удалился, теперь нужно сделать выборку рандомных игроков: У нас есть арена, на эту арену телепортировать 2-ух рандомных игроков, без возможности сделать так, чтобы одного и того же Толяна телепортировало два раза. Например в 1 игре, на арене сражались Толян 1, и 2. Или Толян 2 и 3. Далее, если игрок не находился в центре (То-есть его скинули с арены) Например толян 1 скинул толяна 2, Отправить всем сообщение Толян 1 победил! Ураа!. И этому толяну в Scoreboard прибавилось к счёту 1 победа.

Дополнения

Если вы ничего не поняли, или не совсем поняли что нужно закодить, напишите вопрос или ответ в эту тему. Я отвечу. Буду очень рад кто поможет.

Hero Sirenka
Telegram: @Interimu
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
551
Привет, сразу к делу. Сейчас обьясню конкретней: Допустим, у нас есть игроки в режиме: Толян 1,2,3, и 4. И вот, мне нужно выбрать 2 рандомных игроков. Например Толяна 1 и 2, или в одной игре толяна 3 и 4.

Что нужно закодировать?

Например сначала был Толян 1, когда он был ему писало в Титл: Недостаточно Игроков. Когда зашёл Толян 2 и 3 одновременно, титл у толяна 1 удалился, теперь нужно сделать выборку рандомных игроков: У нас есть арена, на эту арену телепортировать 2-ух рандомных игроков, без возможности сделать так, чтобы одного и того же Толяна телепортировало два раза. Например в 1 игре, на арене сражались Толян 1, и 2. Или Толян 2 и 3. Далее, если игрок не находился в центре (То-есть его скинули с арены) Например толян 1 скинул толяна 2, Отправить всем сообщение Толян 1 победил! Ураа!. И этому толяну в Scoreboard прибавилось к счёту 1 победа.

Дополнения

Если вы ничего не поняли, или не совсем поняли что нужно закодить, напишите вопрос или ответ в эту тему. Я отвечу. Буду очень рад кто поможет.

Hero Sirenka
Telegram: @Interimu
Так что тебе надо то? Это гайд как сделать фигнянейм? Или ты спрашиваешь как сделать эту фигню?
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
551
Так что тебе надо то? Это гайд как сделать фигнянейм? Или ты спрашиваешь как сделать эту фигню?
Эмм... Делаешь обычный счетчик игроков кто вошел в игру(Я это писал на форуме, поищи в моих сообщениях). Затем делаешь либо выборку двух случайных игроков сразу, но тогда манипуляции с ними будут затруднены: не получится тепнуть их так, чтобы 100% оба были в разных точках. Другой вариант - выбираем случайного игрока, присваиваем ему имя переменной %player%Choosed = True, затем выбираем тех, у кого чузд не = тру и из них выбираем случайно второго игрока. И там уже можно делать любые действия. Насчет скидывания... Может, просто сделать если игрок умирает? Он умирает от падения, и определенными махинациями в событии Смерть игрока мы заканчиваем раунд. Олсо, это идет как карточный турнир в Бесконечном Лете? То есть, если в 1м раунде толян1 и толян2, то во втором раунде их уже не может выбрать система? Или может?
 

Sirenkaaa

Гость
Регистрация
12 Июл 2023
Сообщения
114
Эмм... Делаешь обычный счетчик игроков кто вошел в игру(Я это писал на форуме, поищи в моих сообщениях). Затем делаешь либо выборку двух случайных игроков сразу, но тогда манипуляции с ними будут затруднены: не получится тепнуть их так, чтобы 100% оба были в разных точках. Другой вариант - выбираем случайного игрока, присваиваем ему имя переменной %player%Choosed = True, затем выбираем тех, у кого чузд не = тру и из них выбираем случайно второго игрока. И там уже можно делать любые действия. Насчет скидывания... Может, просто сделать если игрок умирает? Он умирает от падения, и определенными махинациями в событии Смерть игрока мы заканчиваем раунд. Олсо, это идет как карточный турнир в Бесконечном Лете? То есть, если в 1м раунде толян1 и толян2, то во втором раунде их уже не может выбрать система? Или может?
Может выбрать хоть каждый раунд толяна 1 и толяна 2 если они только вдвоём в одном мире. если у них ещё играет толян 3, то тоже может > только если выпадет рандом на них без толяна 3.

Hero Sirenka
Telegram: @Interimu

Сообщение объединено:

Или ты спрашиваешь как сделать эту фигню?
Как сделать.

Hero Sirenka
Telegram: @Interimu
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
551
Может выбрать хоть каждый раунд толяна 1 и толяна 2 если они только вдвоём в одном мире. если у них ещё играет толян 3, то тоже может > только если выпадет рандом на них без толяна 3.
Изъясняйся понятнее. В любом случае, я написал тебе решение словами, там несложно его перенести в код.
 

Sirenkaaa

Гость
Регистрация
12 Июл 2023
Сообщения
114
Изъясняйся понятнее. В любом случае, я написал тебе решение словами, там несложно его перенести в код.
а как сделать так, чтобы система понимала, если например умер толян 1, то победил толян 2, а если умер толян 2, то победил толян 1. и прибавлять к счёту толяна 2 (если он выиграл) 1 победу.

Hero Sirenka
Telegram: @Interimu
 

Sirenkaaa

Гость
Регистрация
12 Июл 2023
Сообщения
114
Смотри
Эмм... Делаешь обычный счетчик игроков кто вошел в игру(Я это писал на форуме, поищи в моих сообщениях). Затем делаешь либо выборку двух случайных игроков сразу, но тогда манипуляции с ними будут затруднены: не получится тепнуть их так, чтобы 100% оба были в разных точках. Другой вариант - выбираем случайного игрока, присваиваем ему имя переменной %player%Choosed = True, затем выбираем тех, у кого чузд не = тру и из них выбираем случайно второго игрока. И там уже можно делать любые действия. Насчет скидывания... Может, просто сделать если игрок умирает? Он умирает от падения, и определенными махинациями в событии Смерть игрока мы заканчиваем раунд. Олсо, это идет как карточный турнир в Бесконечном Лете? То есть, если в 1м раунде толян1 и толян2, то во втором раунде их уже не может выбрать система? Или может?
Смотри, у меня вышел такой код:

Вход > Установить переменную %player% Choosed = False > Прибавить к переменной online games 1 > Установить переменную online games 0 > Если переменная online games равна 1 > Титл: Недостаточно игроков.

Вход > Сравнить числа если переменная online games [Больше и равна] = 2 > Титл: Выбор игроков > Выбрать Обьект: Случайный игрок > Если значение равно %player% Choosed = False > Установить %player% Choosed = True Телепорт (координаты арены) > Ждать (61 с) > Установить переменную %player% Choosed = False.

Вход > Выбрать Обьект: Случайный игрок > Если переменная равна %player% Choosed = False > Телепорт (координаты арены) > Ждать (61 с ) > Установить переменную %player% Choosed = True.


Ничего не получилось, можешь написать именно код через типо: Вход > 123456 > 1233456.
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
551
Смотри

Смотри, у меня вышел такой код:

Вход > Установить переменную %player% Choosed = False > Прибавить к переменной online games 1 > Установить переменную online games 0 > Если переменная online games равна 1 > Титл: Недостаточно игроков.
"Установить переменную online games 0" сноси к чертям, объясню почему: ты прибавляешь +1 к переменной online games и сразу же устанавливаешь ей значение 0. Входа в проверку "Если переменная" никогда не будет.
Еще вопрос, зачем ты так растянул код? Можно же большинство в один "Вход".
Вход > Сравнить числа если переменная online games [Больше и равна] = 2 > Титл: Выбор игроков > Выбрать Обьект: Случайный игрок > Если значение равно %player% Choosed = False > Установить %player% Choosed = True Телепорт (координаты арены) > Ждать (61 с) > Установить переменную %player% Choosed = False.
Останавливаемся на моменте с выборкой. Ты ложишь в "Выбрать объект: случайный игрок" число 1, затем делаешь "Установить значение переменной %selected%Choosed = True". Пусть и в твоем способе есть какая-то логика, но она бесполезна. После установки значения переменной делаешь всякие штуки, там тепаешь первого игрока на арену и тд. Затем делаешь так: "Выбрать объект: Игрок по условию". В условие выбираешь "если переменная %player%Choosed != True". Это выберет тех игроков, кто остался после первой выборки. И так же само выбираешь 1 случайный объект, вроде должно работать(Ну я надеюсь). Делаешь всякие штуки с телепортациями и все готово.

Как обнаружить кто выиграл - ну я тебе говорю, когда игрок выкидывает другого игрока с арены сделай пропасть. Дальше событие когда игрок умирает, и этому игроку(Который умер) присваиваешь %player%Choosed = False. Т.е у нас остается один игрок с Choosed = True, он и является победителем. Понял?
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
551
Кстати, а как запускать игру? Нужно же чтобы игра крутилась, тогда надо подбор игроков засунуть в функцию и её запускать после конца прошлой игры? Или циклом как-то крутить, чтобы наверняка?
Да, функцией. Либо прямо в событии входа. Цикл бесполезен.
Есть какой-то фильтр ещё, но он вроде не работает так, я хз. Ещё игроков должно быть = 2, а не >=2, но тут тоже проблема: если будет 3 игрока, 2 из которых в игре, и один перезайдёт, всё рухнет.
А это уже не мои проблемы. У чела сразу код фиговый, 3 события входа по 2 блока в каждом. Зачем? А никто не знает.
Не, "случайный игрок" выбирает рандомного игрока, независимо от прошлых выборок.
Так подожди, я предлагаю не случайный игрок, а фильтр случайности. Мб называется не так, но он в менюшке лежит последним предметом.
 

Sirenkaaa

Гость
Регистрация
12 Июл 2023
Сообщения
114
"Установить переменную online games 0" сноси к чертям, объясню почему: ты прибавляешь +1 к переменной online games и сразу же устанавливаешь ей значение 0. Входа в проверку "Если переменная" никогда не будет.
Еще вопрос, зачем ты так растянул код? Можно же большинство в один "Вход".

Останавливаемся на моменте с выборкой. Ты ложишь в "Выбрать объект: случайный игрок" число 1, затем делаешь "Установить значение переменной %selected%Choosed = True". Пусть и в твоем способе есть какая-то логика, но она бесполезна. После установки значения переменной делаешь всякие штуки, там тепаешь первого игрока на арену и тд. Затем делаешь так: "Выбрать объект: Игрок по условию". В условие выбираешь "если переменная %player%Choosed != True". Это выберет тех игроков, кто остался после первой выборки. И так же само выбираешь 1 случайный объект, вроде должно работать(Ну я надеюсь). Делаешь всякие штуки с телепортациями и все готово.

Как обнаружить кто выиграл - ну я тебе говорю, когда игрок выкидывает другого игрока с арены сделай пропасть. Дальше событие когда игрок умирает, и этому игроку(Который умер) присваиваешь %player%Choosed = False. Т.е у нас остается один игрок с Choosed = True, он и является победителем. Понял?
Понял. Спасибо.
Сообщение объединено:

Да, функцией. Либо прямо в событии входа. Цикл бесполезен.

А это уже не мои проблемы. У чела сразу код фиговый, 3 события входа по 2 блока в каждом. Зачем? А никто не знает.

Так подожди, я предлагаю не случайный игрок, а фильтр случайности. Мб называется не так, но он в менюшке лежит последним предметом.
У меня всё в 1 блоке, каждым переходом "вниз", новый код после поршней.
 
Сверху