Проверять наличие события по координатам ? Вроде ты уже научился пользоваться $gameMap.eventIdXy. Если вернул ид события, то нельзя туда ставить (цикл do while ?)
Вид для печати
На сколько правильно понял вот так:
Тут может быть долгая задержка перед тем как ивент переместиться ну не всегда но вообще такой исход возможенКод:function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
if ($gameMap.event(this._eventId).y >= 49)
do {
intX = getRandomInt(7, 9);
intY = getRandomInt(9, 13);
} while (($gameMap.eventIdXy(intX, intY) > 0) && (($gameMap.eventIdXy(intX-1, intY) > 0) && ($gameMap.eventIdXy(intX+1, intY) > 0) && ($gameMap.eventIdXy(intX, intY+1) > 0) && ($gameMap.eventIdXy(intX , intY-1) > 0) && ($gameMap.eventIdXy(intX, intY+2) > 0) && ($gameMap.eventIdXy(intX, intY-2) > 0) && ($gameMap.eventIdXy(intX-1, intY) > 0) && ($gameMap.eventIdXy(intX+1, intY) > 0) && ($gameMap.eventIdXy(intX-1, intY-1) > 0) && ($gameMap.eventIdXy(intX-1, intY-2) > 0) && ($gameMap.eventIdXy(intX-1, intY+1) > 0) && ($gameMap.eventIdXy(intX-1, intY+2) > 0) && ($gameMap.eventIdXy(intX+1, intY-1) > 0) && ($gameMap.eventIdXy(intX+1, intY-2) > 0) && ($gameMap.eventIdXy(intX+1, intY+1) > 0)&& ($gameMap.eventIdXy(intX+1, intY+2) > 0))
$gameMap.event(this._eventId).setPosition(intX, intY)
И 2. Можно ли это сделать отдельной функцией точнее методом чтобы потом в маршруте движения ивента его вызывать а то если этот скрипт будет в одну строку то както не удобно будет а в самом маршруте вызвать скрипт можно только одной строкой
Не ну правда как нибудь можно вынести это в отдельный метод чтобы потом в маршруте события вызывать а то в маршруте только все в одну строку пишется.
Вложение 4420Код:var intX, intY;
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
if ($gameMap.event(this._eventId).y >= 49)
do {
intX = getRandomInt(7, 9);
intY = getRandomInt(9, 13);
} while (($gameMap.eventIdXy(intX, intY) > 0) || (($gameMap.eventIdXy(intX-1, intY) > 0) || ($gameMap.eventIdXy(intX+1, intY) > 0) || ($gameMap.eventIdXy(intX, intY+1) > 0) || ($gameMap.eventIdXy(intX , intY-1) > 0) || ($gameMap.eventIdXy(intX, intY+2) > 0) || ($gameMap.eventIdXy(intX, intY-2) > 0) || ($gameMap.eventIdXy(intX-1, intY) > 0) || ($gameMap.eventIdXy(intX+1, intY) > 0) || ($gameMap.eventIdXy(intX-1, intY-1) > 0) || ($gameMap.eventIdXy(intX-1, intY-2) > 0) || ($gameMap.eventIdXy(intX-1, intY+1) > 0) || ($gameMap.eventIdXy(intX-1, intY+2) > 0) || ($gameMap.eventIdXy(intX+1, intY-1) > 0) || ($gameMap.eventIdXy(intX+1, intY-2) > 0) || ($gameMap.eventIdXy(intX+1, intY+1) > 0)|| ($gameMap.eventIdXy(intX+1, intY+2) > 0))
$gameMap.event(this._eventId).setPosition(intX, intY)
Кто в курсе как через скрипт получить ид региона?
Если я правильно понял то вот это
$gameMap.vehicle(vehicleId).setLocation(mapId, x, y);
Но даже если это создания ид региона то как его получить там не сказано. Там много каких скриптов нехватает. Точнее там расписано только чтобы чтото создать но не написано как например получить или проверить то или иное например
$gameSelfSwitches.setValue(key, true/false);
Здает локальный переключатель у события включить или выключить. Но не сказано как проверить включен ли локальный переключатель
Ладно с этим я и сам допер
$gameSelfSwitches.value(key) == true/false
Но вот что единственное мне в голову приходит это вот
$gameMap.vehicle.value(mapId, x, y) но сомневаюсь что именно так можно получить ид региона
Добавленно позже
Ну ладно признаю я ошибся и там есть получения
$gameMap.regionId(x, y);
Но как создать его точнее пометить и разве ид карты в таком случае не указываются?
А вот сейчас реальный вопрос. Нкжно для мозайки. А имена систему выбора мозайки.
Тобишь с помощью игрока взять определенное событие и отпустить.
Игрок - это курсор
События - сами пазлы конечноже. Я конечно уже делал почти не использовав скриптов
Вот этим:
(Event 10 - Page 1)
(Event 10 - Page 2)Код:◆Если:Кнопка [ОК] нажата
◆Переменная:#0001 X Курсора = Х карты из Игрок
◆Переменная:#0002 Y Курсора = Y карты из Игрок
◆Получить данные о клетке:ID Event 1, Номер события, ({X Курсора},{Y Курсора})
◆Если:ID Event 1 > 0
◆Воспроизвести SE:Key (100, 100, 0)
◆Скрипт:$gameMap.event($gameVariables.value(3)).setPosition($gamePlayer.x,$gamePlayer.y)
◆Ждать:60 кадры(ов)
◆Переключатель:#0001 Sel_Event = ВКЛ
◆
:Конец
◆
:Конец
Но сделано чуть кривовато. Кривота заключается в задержках. А без них автоматически будет браться и ложится пазлКод:◆Скрипт:$gameMap.event($gameVariables.value(3)).locate($gamePlayer.x,$gamePlayer.y)
◆Если:Кнопка [ОК] нажата
◆Переменная:#0001 X Курсора = Х карты из Игрок
◆Переменная:#0002 Y Курсора = Y карты из Игрок
◆Получить данные о клетке:ID Event 2, Номер события, ({X Курсора},{Y Курсора})
◆Если:ID Event 2 = ID Event 1
◆Воспроизвести SE:Key (100, 70, 0)
◆Ждать:60 кадры(ов)
◆Переключатель:#0001 Sel_Event = ВЫКЛ
◆
:Иначе
◆Воспроизвести SE:Buzzer1 (90, 100, 0)
◆Ждать:60 кадры(ов)
◆
:Конец
◆
:Конец
Потомучто нажатия кнопки на двух страницах будет происходит мгновенно.
Так вот через скриптинг можно будет сделать это легче. Кто в курсе как это сделать?