Случайная подборка модов
Равновесие 2.0
3.6
Народная Солянка 2010
4.0
Lost World Requital
3.9
Sigerous Mod 2.2
4.1
Возвращение Шрама
3.9
Время перемен v2.0
4.1
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
  • Страница 1 из 1
  • 1
Архив - только для чтения
Форум » Архив » Устаревшие темы » Как найти рандомный пустой смарт в COP (Мне надо найти рандомный пустой смарт)
Как найти рандомный пустой смарт в 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
Форум » Архив » Устаревшие темы » Как найти рандомный пустой смарт в COP (Мне надо найти рандомный пустой смарт)
  • Страница 1 из 1
  • 1
Поиск: