Как найти рандомный пустой смарт в COP
|
|
|
VAX
Суббота, 24.08.2019, 22:26 | Сообщение # 1
Статус: |
|
Зевака: |
|
Сообщений: |
19 |
Награды: |
0 |
Регистрация: |
19.08.2019 |
|
Мне надо создать скрипт который может найти рандомный пустой смарт. Пытался писать в sim_board искать в smart_terrain. Результат - одни вылеты. Помогите пж.
|
|
Суббота, 24.08.2019, 22:26
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
19.08.2019 |
|
|
|
|
|
denis2000
Воскресенье, 25.08.2019, 11:31 | Сообщение # 2
Время Альянса
Статус: |
|
Ветеран: |
|
Сообщений: |
4070 |
Награды: |
16 |
Регистрация: |
19.07.2013 |
|
VAX, Скрипт sim_board.script 1. Таблица self.smarts_by_names содержит все объекты смарты индексируемые по имени. 2. Функция sim_board:get_smart_population(smart) возвращает количество отрядов на смарте по его имени, тоесть если вернет ноль смарт пустой. А теперь сложите 1 и 2 и получите код для решающий вашу задачу.
|
|
Воскресенье, 25.08.2019, 11:31
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
19.07.2013 |
|
|
|
|
|
VAX
Понедельник, 26.08.2019, 20:36 | Сообщение # 3
Статус: |
|
Зевака: |
|
Сообщений: |
19 |
Награды: |
0 |
Регистрация: |
19.08.2019 |
|
Цитата denis2000 ( ) Скрипт sim_board.script 1. Таблица self.smarts_by_names содержит все объекты смарты индексируемые по имени. 2. Функция sim_board:get_smart_population(smart) возвращает количество отрядов на смарте по его имени,
Пытался работать с ними но не работает. Вот код функции:
Код function FindEmpty() get_console():execute(Debug) for k,v in ipairs(self.smarts) do get_console():execute(v-viborke) local smpop = get_smart_population(v) if smpop == 0 then get_console():execute(obj_id) get_console():execute(v.smarte) SmartI = sm obj_id = get_story_object_id(SmartI) level.map_add_object_spot(obj_id, "crlc_big", st_ui_pda_privedi_place) Finded = true break else Finded = false end end return Finded end Резултат - вылет.
|
|
Понедельник, 26.08.2019, 20:36
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
19.08.2019 |
|
|
|
|
|
denis2000
Понедельник, 26.08.2019, 21:48 | Сообщение # 4
Время Альянса
Статус: |
|
Ветеран: |
|
Сообщений: |
4070 |
Награды: |
16 |
Регистрация: |
19.07.2013 |
|
VAX, Что же так плохо то со скриптами? Рандомный набор символов, а не код получился. Го учить матчасть. Пример: Создаем скрипт sim_function.script с таким содержимым (комментарии для роста скриптовой грамотности, после прочтения сжечь удалить)
Вызов готовой функции возвращает смарт в качестве игрового объекта:
Код obj_smart = sim_function.FindEmptySmart()
Сообщение отредактировал denis2000 - Понедельник, 26.08.2019, 22:24
|
|
Понедельник, 26.08.2019, 21:48
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
19.07.2013 |
|
|
|
|
|
VAX
Вторник, 27.08.2019, 11:51 | Сообщение # 5
Статус: |
|
Зевака: |
|
Сообщений: |
19 |
Награды: |
0 |
Регистрация: |
19.08.2019 |
|
Спасибо огромное! Все работает! А можно вопрос? Как можно определить что игрок находится в смарте? Просто еще одну тему создавать долго.
|
|
Вторник, 27.08.2019, 11:51
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
19.08.2019 |
|
|
|
|