Jump to content


Toggle shoutbox Chat Open the Shoutbox in a popup

@  Artemy Shan : (04 July 2025 - 03:34) Перезапуск проекта: https://forum.oldp.n...howtopic=106329
@  Costesti : (10 June 2025 - 22:26) Артём закрой сервер толку от него ноль так как лаги бешеные ничего не сделать
@  Costesti : (10 June 2025 - 21:03) бля это у меня сервер только логает или у всех?
@  papasha : (10 June 2025 - 15:13) @Costesti da kanesna vvodit, uze dohuja obnov vishlo za 7 let poslednix!!
@  Costesti : (09 June 2025 - 18:34) Артём ты там нововведения водишь?
@  Costesti : (09 June 2025 - 18:31) Сервер работает?
@  Costesti : (31 May 2025 - 23:46) Шан комп меняй уже игру не тянет
@  Costesti : (31 May 2025 - 20:02) мда никому не нужен этот сервер
@  fr33 : (29 May 2025 - 14:07) shenahnan gnom
@  fr33 : (29 May 2025 - 14:07) gm zb!!!1 lagi ept
@  Costesti : (28 May 2025 - 22:43) и это опять и за сейвы
@  Costesti : (28 May 2025 - 22:43) Народ да у кого там номер Шана пускай чинит сервер
@  Costesti : (27 May 2025 - 21:38) Вопрос Крафтить молоко можно?
@  fr33 : (26 May 2025 - 17:33) gm blad chini lag
@  Costesti : (23 May 2025 - 22:37) Бешеные лаги
@  Costesti : (17 May 2025 - 22:54) Опять лаги на Сервере
@  fr33 : (12 May 2025 - 15:21) ble daite mne gm i zdelaju pvp vam
@  Mokasin : (12 May 2025 - 09:04) Puišiem nav garlaicīgi xDDD
@  Egoons : (10 May 2025 - 18:48) lanc 2025 gads jau, ara silts atkal. tas taa, infai
@  beatiful : (10 May 2025 - 10:14) griga pidar

Photo

Скрипты Орион


  • Please log in to reply
No replies to this topic

#1 Costesti

Costesti

    Journeyman

  • Members
  • 50 posts

Posted 19 July 2025 - 20:04

Сбор Тип и Цвет
выглядит вот так 

ResSup = '0x20F6|0x0EFA|0x100E';
ResSupCol = '0x0870|0x0221|0x0000';

сам скрипт 
 

function SborTypAnColor() {
    TextWindow.Clear();
    TextWindow.Open();

    var typeList = {};
    var colorList = {};

    while (true) {
        Orion.WaitForAddObject("temp");

        var obj = Orion.FindObject("temp");
        if (!obj) continue;

        // Получаем "сырые" значения
        var rawType = obj.Graphic();
        var rawColor = obj.Color();

        // Убираем возможный префикс '0x' или '0X' и преобразуем в шестнадцатеричную строку
        var typeHex = rawType.toString().replace(/^0[xX]/, '').toUpperCase();
        var colorHex = rawColor.toString().replace(/^0[xX]/, '').toUpperCase();

        // Добавляем корректный префикс с маленькой 'x'
        var typeStr = '0x' + typeHex;
        var colorStr = '0x' + colorHex;

        // Фиксируем уникальные значения
        typeList[typeStr] = true;
        colorList[colorStr] = true;

        // Собираем ключи без повторений
        var ResSup = Object.keys(typeList).join('|');
        var ResSupCol = Object.keys(colorList).join('|');

        // Выводим результат
        TextWindow.Clear();
        TextWindow.Print("ResSup = '" + ResSup + "';");
        TextWindow.Print("ResSupCol = '" + ResSupCol + "';");
    }
}

скрипт на сбор точек по комнат по типу квадрата и так далий 
просто следить за то что вас скрипт попросит 
 

// === Глобальная переменная для хранения комнат ===
var allRooms = [];

// === Ожидание ввода числа от 1 до 50 ===
function waitForNumber(prompt) {
  Orion.Print(prompt);
  var jmsg;
  while (!jmsg) {
    jmsg = Orion.WaitJournal("", Orion.Now(), Orion.Now() + 3000, "all");
  }
  var match = jmsg.Text().match(/\d+/);
  return match ? Math.min(Math.max(parseInt(match[0]), 1), 50) : null;
}

// === Сбор точек комнат ===
function start() {
  allRooms = [];

  var roomCount = waitForNumber("Введи количество комнат (1–50):");
  if (!roomCount) {
    Orion.Print("Время вышло. Используется значение по умолчанию: 2 комнаты.");
    roomCount = 2;
  }

  var pointCount = waitForNumber("Введи количество точек на комнату (1–50):");
  if (!pointCount) {
    Orion.Print("Время вышло. Используется значение по умолчанию: 3 точки.");
    pointCount = 3;
  }

  TextWindow.Clear();
  TextWindow.Open();

  for (var i = 0; i < roomCount; i++) {
    var roomName = "Комната " + (i + 1);
    var roomPoints = [];

    TextWindow.Print('name: "' + roomName + '",');
    TextWindow.Print("points: [");

    for (var j = 0; j < pointCount; j++) {
      Orion.Print("Выдели тайл для точки " + (j + 1) + " (" + roomName + ")");
      Orion.WaitForAddObject("temp");

      var x = SelectedTile.X();
      var y = SelectedTile.Y();

      if (x === 0 && y === 0) {
        Orion.Print("Координаты не получены. Повтори.");
        j--;
        continue;
      }

      roomPoints.push({ x: x, y: y });
      TextWindow.Print("  { x: " + x + ", y: " + y + " }" + (j === pointCount - 1 ? "\n]," : ","));
    }

    allRooms.push({ name: roomName, points: roomPoints });
    TextWindow.Print("");
  }

  TextWindow.Print("Готово! Сохранено " + roomCount + " комнат по " + pointCount + " точек.");
}

 






2 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users