Как выдать только двум игрокам переменные?

PbI6A

Новичок
Регистрация
11 Июн 2023
Сообщения
8
Не могу понять можно ли через функццию выдать только двум игрокам переменную но с разным содержимым. Мне нужно получить: 1 игрок %player%_k содержит "Синий", а 2 игрок %player%_k содержит "Красный". И все это нужно выдать только двум игрокам из всех кто будет в мире. Помогите с решением.
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
551
Если тебе нужно присваивать значение рандомно, то надо делать это через выборку. То есть ты можешь сделать простенький код типа такого:

Выбрать объект(Случайный игрок) -> Установить значение переменной %player%_color = red -> Выбрать объект(Случайный игрок) -> Установить значение переменной %player%_color = blue

Проблема такого кода в том, что одному игроку может присвоиться оба значения. Значит надо делать через циклы проверку:
(Вместо %player% можно использовать игровое значение -> имя сущности, с плейсхолдером я не проверял)

Блок цикла(colorChooser, допустим задержку 10) -> Если переменная red не существует { Выбрать объект(Случайный игрок) -> Установить значение переменной red = %player% } -> Выбрать объект(Случайный игрок) -> Если значение(red != %player%) { Установить значение переменной blue = %player% -> Остановить цикл(colorChooser) }

Попробуй это, в теории работать должно

UPD: Цикл можно заменить на цикличную функцию
 

PbI6A

Новичок
Регистрация
11 Июн 2023
Сообщения
8
Если тебе нужно присваивать значение рандомно, то надо делать это через выборку. То есть ты можешь сделать простенький код типа такого:

Выбрать объект(Случайный игрок) -> Установить значение переменной %player%_color = red -> Выбрать объект(Случайный игрок) -> Установить значение переменной %player%_color = blue

Проблема такого кода в том, что одному игроку может присвоиться оба значения. Значит надо делать через циклы проверку:
(Вместо %player% можно использовать игровое значение -> имя сущности, с плейсхолдером я не проверял)

Блок цикла(colorChooser, допустим задержку 10) -> Если переменная red не существует { Выбрать объект(Случайный игрок) -> Установить значение переменной red = %player% } -> Выбрать объект(Случайный игрок) -> Если значение(red != %player%) { Установить значение переменной blue = %player% -> Остановить цикл(colorChooser) }

Попробуй это, в теории работать должно

UPD: Цикл можно заменить на цикличную функцию
Сделал, так как написал и сам пробовал разные способы, но почему-то выдаёт двоим игрокам одинаковый.
 

Вложения

  • Screenshot_1.png
    Screenshot_1.png
    699.7 KB · Просмотры: 4

SashaLab7

Эксперт
Регистрация
3 Май 2023
Сообщения
95
Сделал, так как написал и сам пробовал разные способы, но почему-то выдаёт двоим игрокам одинаковый.
После выборок замени плейсхолдер %player% на %selected%. Вот так: %player%_color на %selected%_color.
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
551
Все также, выдаёт двум игрокам одинаковые.
Очень интересно. Проверил только что код на мобах, у меня все сработало. Вот действия которые выполнялись, повтор - когда сгенерировалось повторное значение. Попробуй вместо использования %player% использовать игровое значение - имя сущности и вместо Если значение(red != %player%) используй Если значение(Имя сущности != red).

UPD: А, так подожди, ты не так код переписал. 1. Используй цикл 2. В самом начале цикла надо выбрать не "Если переменная !=", а "Если переменная существует" и поставить стрелочкой "НЕ"
 

Вложения

  • 1686487204120.png
    1686487204120.png
    30.6 KB · Просмотры: 11
  • 1686487240370.png
    1686487240370.png
    12.7 KB · Просмотры: 10
Сверху