- Сообщений: 1167
- Спасибо получено: 159
Сообщество скриптеров (Академия)
И ещё меня интересует, как посредством скриптов создать на некой карте эвент.
Прошу вас, помогите нубу, заранее благодарен.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Через этот скрипт ты пытался вызвать битву игроков с игроками, судя по всему. Так как к труппе плюсуется переменная из класса partymembers. Довольно сложный скрипт. Сомневаюсь, что будет работать.
Создать ивент можно полистайте хелп в разделе Class Game Object. Или базу данных Game Event
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
www.hbgames.org/forums/viewtopic.php?f=11&t=71187
Демку не смотрел.
→ → ↓ ↑ Y
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Битва вызывается по "$scene=Scene_LBS.new(1)" (Из эвента - я пока не знаю, как заменить моей битвой стандартную рандомную), где вместо 1 ставится номер troop'а.
Битва может протекать в одном из трёх режимов - Attack Mode (Обычный), Blood Mode(Вызывается клавишей B - по умолчанию это Esc или X) и Special Mode (Вызывается клавишей A - по умолчанию шифт - и заканчивается по истечении таймера или нажатия B ).
Игровой экран примерно выглядит так:
1 - Множитель или Коэффициент
2 - HP
3 - Руны, которые нужны для Special Mode
4 - Шкала урона
5 - Линейка Special Mode
Attack Mode
Врагов изображают эвенты. Действие происходит на локации под номером 1. Кнопкой C (Я их так и буду называть, т.к. они переназначаемые) - происходит атака (при этом может произойти смена цели), кнопкой B - переход в Blood Mode, кнопкой A - переход в Special Mode. Кнопками X/Y/Z (A/S/D соответственно), нажатыми в правильное время, можно заблокироваться (уменьшить урон) от специальной/кровавой/обычной (A/B/C) атаки соответственно. Кнопки L/R (Q/W) переключают цель - урон от цели снижен.
Формулы:
Xh/Xe - Коэффициент героя/врага соответственно
HPh/HPe - HP героя/врага
Mh/Me - вес оружия героя/врага
mh/me - вес (или какой-нибудь другой термин для этого) брони
A - некоторый неизвестный коэффициент, который ещё надо будет найти - в каждом случае разный
At - Атака, вычисляемая из характеристик
Hit - единичный урон
Dmg - Общий урон (Всякие комбы)
Line - красная линия на шкале урона.
При ударе Xh=Xh-Mh*A, вне зависимости от урона
При защите Xh=Xh-(Me-mh)*A
если Xh<1.0, то со временем Xh увеличивается
Если Dmg>Line (Dmg - суммарный урон одному противнику в течение времени. Line может варьироваться для каждого противника), то Xh=Xh+(Dmg-Line)*A
При ударе Hit=At*(Xe/Xh)*A
Также, может, стоит изменять показатель защиты в зависимости от Xh. Не знаю пока
Blood Mode
Моя первая идея, привёдшая к созданию этой концепции - сделать игру без MaxHP. MaxHP=9999(Или сколько там можно установить максимум). В игре не будет ни одного лечащего предмета/отдыха/магии. Вместо этого потерянные HP восстанавливаются в Blood Mode. Во время Blood Mode действуют другие формулы атаки (защита та же):
Hit=At
Тут есть разные варианты. Либо:
HPe=HPe-Hit*A*Xe
HPh=HPh+Hit*A*Xh
Либо:
HPe=HPe-Hit
HPh=HPh+Hit*A*Xh/Xe
Я больше склоняюсь к первому варианту.
И, в конце, Xh=0 (возможно, вне зависимости от результата, хотя, может, это слишком жёстко будет)
После одного удара, вне зависимости от результата происходит выход из Blood Mode и игрок некоторое время не может атаковать. Blood Mode может быть включен снова только спустя нек-ое время
Special Mode
В Special Mode время останавливается и начинает работать таймер. Выход из этого режима осуществляется при его истечении либо нажатии B. Потом клавишами L/R выбирается противник, после чего вводятся руны клавишами A/C/X/Y/Z/L/R. Команды можно повторять или вводить разные- например, если есть скиллы S1:XZZACA, S2:ZZXCA и S3:ZXCRZXCRZXC (Который наносит удары трём противникам, считая от выделенного), то если ввести XZZACAXZZACA, то дважды скастуется S1. Если ввести XZZACARXZZACA, то S1 скастуется на двух разных врагах (если их два). Если ввести XZZACAZZXCA, то на одном противнике произойдёт вначале S1, потом S2. ZXCRZXCRZXCZZXCA: S3 по трём разным противникам, потом S2 на последнего. Каждая руна отнимает от Xh свою стоимость. После каждого использования стоимость увеличивается в геометрической прогрессии. При нажатии B/истечении таймера происходит выход из Special Mode. Но время ещё не запускается - и герой совершает специальную атаку (Если необходимо - то подпрыгивает ко врагу/перемещается между врагами(Возможно, с каким-нибудь шлейфом) и после возвращается на место, где стоял в начале SMode). И только теперь остановка времени проходит. Стоимость рун спустя время восстанавливается до изначальной.
Вроде всё
Может, это и не очень просто, или даже очень непросто, но у меня всё лето, как минимум, впереди.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Вообще-то, я повторяю, это обычная офлайновая CBS против врагов. С возможностью перемещения. С Blood и Special Mode. С коэффициентом. Без максимальных ХП.
UPD: Пытаюсь разобрать код построчно.
Первая строка - для определения Troop_ID для дальнейшего использования - тут меня интересует, как в настоящей битве (при вызове из эвента или через рандомное) передаётся эта информация. И как заменить при рандомных обычную битву на свою
Дальше:
Я этот кусок я почти весь скопировал из нормального вызова битвы, но мне было бы интересно, как он работает. И ещё мне интересно кое-что - почему вначале происходит transition (на той же самой локации - определить его наличие удалось лишь благодаря туману), а уже когда он закончился, то только потом появляется новая локация? Помогите пожалуйста.
А вот дальше уже проблемы:
Кусок:
(На заметку - не забыть поставить вместо чисел вычисления, основанные на ширине и высоте рисунка). Проблемы у меня лишь с координатой Z. При z>=1 спрайт, хоть и полупрозрачный, выше героя. При z<1 его перекрывает панорама. Что делать?
А вот что делает следующий кусок, я вообще не помню.
Пожалуйста, помогите разобраться. Заранее благодарен.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Он присваивает к ennum количество врагов в отряде, в массив enmst заносит каждого врага как элемент отряда, а в enms каждого врага как врага с характеристиками. Но мне интересно: обязательно использовать сразу и @enmst и @enms, или можно каким-нибудь образом через одно находить методы/атрибуты другого?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
А не тебе ли виднее? Или это что-то вроде амнезии?))) Не проще ли самому посидеть и разобраться? Твой как-никак скрипт.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
У меня просто остались вопросы по поводу transition'а, размещения спрайта относительно панорамы и подмене обычной боевой системы на свою. Потом уже буду писать дальше.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
На счёт транзишина: кто-нибудь пробовал написать "нестандартный", так сказать CUSTOM транзишн?
Например как в ФФ или Xenogears? А то этот градиентный монохром уже достал!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Этот кусок кода с транзишеном - нужно сделать переход с одной локации на другую, но вместо обычной телепортации поставить transition в зависимости от установленного в базе данных.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Для этого нужно поколдовать либо с Scene_Map, либо с Game_Screen... Хочу научиться считывать Тринзишн из файлов анимации. например седелать анимацию, где пустой белый лист бумаги крошится на осколки и рассыпается за экран. И через скрипт в качестве транзишина пускать эту анимацию, накоадывая на неё генерируемый скрин текущей картинки.
так можно сделать и эффект размытия и т п. В итогда создастся впечатление, будето это экран лопается на кучу мелких кусочков.
Подобный скрипт создал Близ в Лексиме.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
А то что описал Злодей, сделать можно, но сложно:
1. взять снимок экрана.
2. химичить уже с картинкой на уровне пикселей
Тьма, тьма, и ничего кроме тьмы...
ПОМОГИТЕ!!! или как быстро получить бан!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
вообще временный снимок делает команда prepare for transition.
а там уж над ним можно как угодно издеваться.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Скриптами пиксили двигать.
Хотя можно и фотошопе, но это уже другое будет - серия заранее подготовленных картинок.
Тьма, тьма, и ничего кроме тьмы...
ПОМОГИТЕ!!! или как быстро получить бан!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
А это - не дело. А как двигать скриптами пиксели?
В смысле какой сверхкласс за это отвечает?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
get_pixel(x, y)
Gets the color (Color) at the specified pixel (x, y).
set_pixel(x, y, color)
Sets the specified pixel (x, y) to color (Color).
Свет, свет и ещё раз свет
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Осталость написать алгоритм, который будет планомерно и автоматически сдвигать все пиксели в нужные стороны. Думаю для этого надо будет задать масив, с 20 переменными, которые будут сдвигать экран по частям (20 частей)
Для этого нужно присвоить группам пикселей переменную, на которую они все будут сдвигаться.
Ух...пока сам не понял что по навыдумывал...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
И всё же, каким образом можно осуществить переход с одной локации на другую через транзишен посредством скриптов?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
