Сообщество скриптеров (Академия)

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 11 мес. назад #33226 от James
Закончилась учёба и экзамены - я вернулся к мейкеру. Нашёл скрипт, написанный мною полгода назад или больше - только не закончил. Идею я вспомнил (по идее - это боевая система должна быть, только вместо обычной битвы герой переносится на отдельную локацию), а как я её начал реализовывать, забыл. Помогите разобраться, пожалуйста, что я накодил и что (и главное, как) всё это должно делать - ибо RGSS я почти забыл, лишь только слегка освежил воспоминания по справке.
Code:
class Scene_LBS < Scene_Map def initialize(ltid) @LBS_Troop_ID=ltid @BloodMode=false $game_map.store_player_coords(5, 1, 2) oldmbg=$game_map.battleback_name #Переход на поле битвы @bsc=Game_Map.new @bsc.setup(1) Graphics.freeze $game_temp.menu_calling = false $game_temp.menu_beep = false $game_temp.map_bgm = $game_system.playing_bgm $game_system.bgm_stop $game_system.se_play($data_system.battle_start_se) $game_system.bgm_play($game_system.battle_bgm) $game_player.straighten $game_map=@bsc $game_temp.transition_name=$data_system.battle_transition $game_temp.transition_processing = true #Настройка заднего плана @lbgr=Sprite.new(@viewport1) @lbgr.bitmap=Bitmap.new("Graphics/Battlebacks/"+oldmbg) @lbgr.ox=320 @lbgr.oy=160 @lbgr.x=320 @lbgr.y=240 @lbgr.zoom_y=1.5 @lbgr.zoom_x=1.5 @lbgr.opacity=100 @lbgr.z=-20 #Запись врагов @ennum=$data_troops[@LBS_Troop_ID].members.size @enmst=[] @enms=[] i=1 while i<=@ennum @enmst[i]=$data_troops[@LBS_Troop_ID].members[i-1] @enms[i]=$data_enemies[@enmst[i].enemy_id] i += 1 end ...
На кол-во End не обращайте внимания, там ещё кусок кода с def update (почти полностью скопированная из оригинального класса, только поставлено другое действие на B - смена BloodMode) и т.д.

И ещё меня интересует, как посредством скриптов создать на некой карте эвент.

Прошу вас, помогите нубу, заранее благодарен.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Злодей
  • Автор темы
  • Не в сети
  • Заблокирован
  • Заблокирован
  • Настоящее звание: Прокуратор! Просто опечатка!
Больше
15 года 11 мес. назад #33227 от Злодей
Нифигасебе нуб. Тут у тебя присутствует блад мод) Понятия не имею что за режим такой кровавый)
Через этот скрипт ты пытался вызвать битву игроков с игроками, судя по всему. Так как к труппе плюсуется переменная из класса partymembers. Довольно сложный скрипт. Сомневаюсь, что будет работать.
Создать ивент можно полистайте хелп в разделе Class Game Object. Или базу данных Game Event

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Переводчик Учитель
Больше
15 года 11 мес. назад #33228 от mephis
На HBGames тут недавно кто-то баловался с клонированием и созданием ивентов через скрипты:
www.hbgames.org/forums/viewtopic.php?f=11&t=71187

Демку не смотрел.

→ → ↓ ↑ Y

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Злодей
  • Автор темы
  • Не в сети
  • Заблокирован
  • Заблокирован
  • Настоящее звание: Прокуратор! Просто опечатка!
Больше
15 года 11 мес. назад #33229 от Злодей
Круто О_О спасибо...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 11 мес. назад - 15 года 11 мес. назад #33231 от James
Не, тут другая идея (Я по поводу игроков VS игроков). Могу написать свою концепцию:
ВНИМАНИЕ: Спойлер!


Может, это и не очень просто, или даже очень непросто, но у меня всё лето, как минимум, впереди.
Последнее редактирование: 15 года 11 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Злодей
  • Автор темы
  • Не в сети
  • Заблокирован
  • Заблокирован
  • Настоящее звание: Прокуратор! Просто опечатка!
Больше
15 года 11 мес. назад #33234 от Злодей
А чего гадать? Чарли дано написал такую систему) См. Чарли арена онлайн.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 11 мес. назад - 15 года 11 мес. назад #33235 от James
Либо это был ответ не мне, либо всё было не так понято или невнимательно прочитано.
Вообще-то, я повторяю, это обычная офлайновая CBS против врагов. С возможностью перемещения. С Blood и Special Mode. С коэффициентом. Без максимальных ХП.
UPD: Пытаюсь разобрать код построчно.
Code:
@LBS_Troop_ID=ltid

Первая строка - для определения Troop_ID для дальнейшего использования - тут меня интересует, как в настоящей битве (при вызове из эвента или через рандомное) передаётся эта информация. И как заменить при рандомных обычную битву на свою

Дальше:
Code:
#Переход на поле битвы @bsc=Game_Map.new @bsc.setup(1) Graphics.freeze $game_temp.menu_calling = false $game_temp.menu_beep = false $game_temp.map_bgm = $game_system.playing_bgm $game_system.bgm_stop $game_system.se_play($data_system.battle_start_se) $game_system.bgm_play($game_system.battle_bgm) $game_player.straighten $game_map=@bsc $game_temp.transition_name=$data_system.battle_transition $game_temp.transition_processing = true

Я этот кусок я почти весь скопировал из нормального вызова битвы, но мне было бы интересно, как он работает. И ещё мне интересно кое-что - почему вначале происходит transition (на той же самой локации - определить его наличие удалось лишь благодаря туману), а уже когда он закончился, то только потом появляется новая локация? Помогите пожалуйста.


А вот дальше уже проблемы:
Кусок:
Code:
#Настройка заднего плана @lbgr=Sprite.new(@viewport1) @lbgr.bitmap=Bitmap.new("Graphics/Battlebacks/"+oldmbg) @lbgr.ox=320 @lbgr.oy=160 @lbgr.x=320 @lbgr.y=240 @lbgr.zoom_y=1.5 @lbgr.zoom_x=1.5 @lbgr.opacity=100 @lbgr.z=-20

(На заметку - не забыть поставить вместо чисел вычисления, основанные на ширине и высоте рисунка). Проблемы у меня лишь с координатой Z. При z>=1 спрайт, хоть и полупрозрачный, выше героя. При z<1 его перекрывает панорама. Что делать?



А вот что делает следующий кусок, я вообще не помню.
Code:
#Запись врагов @ennum=$data_troops[@LBS_Troop_ID].members.size @enmst=[] @enms=[] i=1 while i<=@ennum @enmst[i]=$data_troops[@LBS_Troop_ID].members[i-1] @enms[i]=$data_enemies[@enmst[i].enemy_id] i += 1 end
Помню, лишь что он был достаточно нужен. Что он делает?

Пожалуйста, помогите разобраться. Заранее благодарен.
Последнее редактирование: 15 года 11 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 11 мес. назад - 15 года 11 мес. назад #33243 от James
Я вспомнил, что делает последний кусок!
Он присваивает к ennum количество врагов в отряде, в массив enmst заносит каждого врага как элемент отряда, а в enms каждого врага как врага с характеристиками. Но мне интересно: обязательно использовать сразу и @enmst и @enms, или можно каким-нибудь образом через одно находить методы/атрибуты другого?
Последнее редактирование: 15 года 11 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Злодей
  • Автор темы
  • Не в сети
  • Заблокирован
  • Заблокирован
  • Настоящее звание: Прокуратор! Просто опечатка!
Больше
15 года 11 мес. назад #33244 от Злодей
Вот мне интересно. Ты сам написал скрипт, а теперь задаёшь вопросы, мол что он делает, обязательно ли?
А не тебе ли виднее? Или это что-то вроде амнезии?))) Не проще ли самому посидеть и разобраться? Твой как-никак скрипт.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 11 мес. назад - 15 года 11 мес. назад #33245 от James
У меня [strike]очень[/strike] [strike]ОЧЕНЬ[/strike] ОЧЕНЬ2 плохая память)) Я этот скрипт писал как минимум, полгода назад - уже ничего не помню. Но разобраться - что есть что - я уже разобрался.
У меня просто остались вопросы по поводу transition'а, размещения спрайта относительно панорамы и подмене обычной боевой системы на свою. Потом уже буду писать дальше.
Последнее редактирование: 15 года 11 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Злодей
  • Автор темы
  • Не в сети
  • Заблокирован
  • Заблокирован
  • Настоящее звание: Прокуратор! Просто опечатка!
Больше
15 года 11 мес. назад #33246 от Злодей
Ясно, думаю, так или иначе никто лучше тебя не разберётся в твоём скрипте)))

На счёт транзишина: кто-нибудь пробовал написать "нестандартный", так сказать CUSTOM транзишн?
Например как в ФФ или Xenogears? А то этот градиентный монохром уже достал!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 11 мес. назад #33247 от James
Можно попробовать. Только тут лучше уж стандартный - чтобы можно было CBS эту использовать в разных проектах - в каждой просто ставишь на вкладке System в датабазе транзишен.

Этот кусок кода с транзишеном - нужно сделать переход с одной локации на другую, но вместо обычной телепортации поставить transition в зависимости от установленного в базе данных.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Злодей
  • Автор темы
  • Не в сети
  • Заблокирован
  • Заблокирован
  • Настоящее звание: Прокуратор! Просто опечатка!
Больше
15 года 11 мес. назад #33248 от Злодей
Я мечтаю написать анимированный транзишн. типа воронки или осколков экрана.
Для этого нужно поколдовать либо с Scene_Map, либо с Game_Screen... Хочу научиться считывать Тринзишн из файлов анимации. например седелать анимацию, где пустой белый лист бумаги крошится на осколки и рассыпается за экран. И через скрипт в качестве транзишина пускать эту анимацию, накоадывая на неё генерируемый скрин текущей картинки.
так можно сделать и эффект размытия и т п. В итогда создастся впечатление, будето это экран лопается на кучу мелких кусочков.

Подобный скрипт создал Близ в Лексиме.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 11 мес. назад #33249 от dark32
Тринзишн - это проблема проблем в мукере. Где то тут была статья про разрешение, там было написано что изменить транзишен нельзя по нормальному (имеется ввиду в мукери нет открытого кода Тринзишн), нужно писать свой обработчик (слишком медленно работает) или подключать .dll, чего я не умею.
А то что описал Злодей, сделать можно, но сложно:
1. взять снимок экрана.
2. химичить уже с картинкой на уровне пикселей

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Злодей
  • Автор темы
  • Не в сети
  • Заблокирован
  • Заблокирован
  • Настоящее звание: Прокуратор! Просто опечатка!
Больше
15 года 11 мес. назад - 15 года 11 мес. назад #33250 от Злодей
химичить в фотошопе???))

вообще временный снимок делает команда prepare for transition.
а там уж над ним можно как угодно издеваться.
Последнее редактирование: 15 года 11 мес. назад пользователем Злодей.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 11 мес. назад #33251 от dark32
Если б в фотошопе...
Скриптами пиксили двигать.
Хотя можно и фотошопе, но это уже другое будет - серия заранее подготовленных картинок.

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Злодей
  • Автор темы
  • Не в сети
  • Заблокирован
  • Заблокирован
  • Настоящее звание: Прокуратор! Просто опечатка!
Больше
15 года 11 мес. назад #33252 от Злодей
да. так можно сделать битву лишь в той части игры, где был снят скрин-шот.
А это - не дело. А как двигать скриптами пиксели?
В смысле какой сверхкласс за это отвечает?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 11 мес. назад #33253 от light32
В справке есть это, посмотри класс Bitmap.
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).

Свет, свет и ещё раз свет

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Злодей
  • Автор темы
  • Не в сети
  • Заблокирован
  • Заблокирован
  • Настоящее звание: Прокуратор! Просто опечатка!
Больше
15 года 11 мес. назад #33254 от Злодей
О! Спасибо!
Осталость написать алгоритм, который будет планомерно и автоматически сдвигать все пиксели в нужные стороны. Думаю для этого надо будет задать масив, с 20 переменными, которые будут сдвигать экран по частям (20 частей)
Для этого нужно присвоить группам пикселей переменную, на которую они все будут сдвигаться.
Ух...пока сам не понял что по навыдумывал...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 11 мес. назад #33264 от James
Это ведь сколько мороки с этим способом будет!
И всё же, каким образом можно осуществить переход с одной локации на другую через транзишен посредством скриптов?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.147 секунд
Работает на Kunena форум