Случайная подборка модов
Объединенный Пак - 2
3.7
Время перемен v3.0
3.6
Pain of The Past
2.8
MISERY 2.2
4.1
Путь Человека: Возвращение
4.1
Another Zone Mod
4.3
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
  • Страница 1 из 1
  • 1
Архив - только для чтения
Как найти рандомный пустой смарт в 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
  • Страница 1 из 1
  • 1
Поиск: