Войти на сайт

Авторизация, ждите ...
×

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

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33226

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Организатор конкурсовПисатель2 место РазработчикПисатель 2 местоПобедитель конкурса3 место
Закончилась учёба и экзамены - я вернулся к мейкеру. Нашёл скрипт, написанный мною полгода назад или больше - только не закончил. Идею я вспомнил (по идее - это боевая система должна быть, только вместо обычной битвы герой переносится на отдельную локацию), а как я её начал реализовывать, забыл. Помогите разобраться, пожалуйста, что я накодил и что (и главное, как) всё это должно делать - ибо RGSS я почти забыл, лишь только слегка освежил воспоминания по справке.
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) и т.д.

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

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

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33227

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

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33228

  • mephis
  • mephis аватар
  • Вне сайта
  • Светлый дракон
  • Коллекционер
  • Сообщений: 727
  • Спасибо получено: 123
  • ПереводчикУчитель
На HBGames тут недавно кто-то баловался с клонированием и созданием ивентов через скрипты:
www.hbgames.org/forums/viewtopic.php?f=11&t=71187

Демку не смотрел.
→ → ↓ ↑ Y
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33229

  • Злодей
  • Злодей аватар
  • Вне сайта
  • Архитектор Миров
  • Настоящее звание: Прокуратор! Просто опечатка!
  • Сообщений: 1876
  • Спасибо получено: 78
Круто О_О спасибо...
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33231

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Организатор конкурсовПисатель2 место РазработчикПисатель 2 местоПобедитель конкурса3 место
Не, тут другая идея (Я по поводу игроков VS игроков). Могу написать свою концепцию:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


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

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33234

  • Злодей
  • Злодей аватар
  • Вне сайта
  • Архитектор Миров
  • Настоящее звание: Прокуратор! Просто опечатка!
  • Сообщений: 1876
  • Спасибо получено: 78
А чего гадать? Чарли дано написал такую систему) См. Чарли арена онлайн.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33235

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

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

Дальше:
#Переход на поле битвы
 
    @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 (на той же самой локации - определить его наличие удалось лишь благодаря туману), а уже когда он закончился, то только потом появляется новая локация? Помогите пожалуйста.


А вот дальше уже проблемы:
Кусок:
#Настройка заднего плана    
    @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 его перекрывает панорама. Что делать?



А вот что делает следующий кусок, я вообще не помню.
#Запись врагов
    @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
Помню, лишь что он был достаточно нужен. Что он делает?

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

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33243

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Организатор конкурсовПисатель2 место РазработчикПисатель 2 местоПобедитель конкурса3 место
Я вспомнил, что делает последний кусок!
Он присваивает к ennum количество врагов в отряде, в массив enmst заносит каждого врага как элемент отряда, а в enms каждого врага как врага с характеристиками. Но мне интересно: обязательно использовать сразу и @enmst и @enms, или можно каким-нибудь образом через одно находить методы/атрибуты другого?
Последнее редактирование: 14 года 5 мес. назад от James.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33244

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

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33245

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Организатор конкурсовПисатель2 место РазработчикПисатель 2 местоПобедитель конкурса3 место
У меня очень ОЧЕНЬ ОЧЕНЬ2 плохая память)) Я этот скрипт писал как минимум, полгода назад - уже ничего не помню. Но разобраться - что есть что - я уже разобрался.
У меня просто остались вопросы по поводу transition'а, размещения спрайта относительно панорамы и подмене обычной боевой системы на свою. Потом уже буду писать дальше.
Последнее редактирование: 14 года 5 мес. назад от James.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33246

  • Злодей
  • Злодей аватар
  • Вне сайта
  • Архитектор Миров
  • Настоящее звание: Прокуратор! Просто опечатка!
  • Сообщений: 1876
  • Спасибо получено: 78
Ясно, думаю, так или иначе никто лучше тебя не разберётся в твоём скрипте)))

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

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33247

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Организатор конкурсовПисатель2 место РазработчикПисатель 2 местоПобедитель конкурса3 место
Можно попробовать. Только тут лучше уж стандартный - чтобы можно было CBS эту использовать в разных проектах - в каждой просто ставишь на вкладке System в датабазе транзишен.

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

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33248

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

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

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33249

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
Тринзишн - это проблема проблем в мукере. Где то тут была статья про разрешение, там было написано что изменить транзишен нельзя по нормальному (имеется ввиду в мукери нет открытого кода Тринзишн), нужно писать свой обработчик (слишком медленно работает) или подключать .dll, чего я не умею.
А то что описал Злодей, сделать можно, но сложно:
1. взять снимок экрана.
2. химичить уже с картинкой на уровне пикселей
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33250

  • Злодей
  • Злодей аватар
  • Вне сайта
  • Архитектор Миров
  • Настоящее звание: Прокуратор! Просто опечатка!
  • Сообщений: 1876
  • Спасибо получено: 78
химичить в фотошопе???))

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

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33251

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
Если б в фотошопе...
Скриптами пиксили двигать.
Хотя можно и фотошопе, но это уже другое будет - серия заранее подготовленных картинок.
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33252

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

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33253

  • light32
  • light32 аватар
  • Вне сайта
  • Познающий
  • светлый
  • Сообщений: 21
В справке есть это, посмотри класс 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).
Свет, свет и ещё раз свет
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33254

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

Сообщество скриптеров (Академия) 14 года 5 мес. назад #33264

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Организатор конкурсовПисатель2 место РазработчикПисатель 2 местоПобедитель конкурса3 место
Это ведь сколько мороки с этим способом будет!
И всё же, каким образом можно осуществить переход с одной локации на другую через транзишен посредством скриптов?
Администратор запретил публиковать записи гостям.
Модераторы: NeKotZima
Время создания страницы: 0.400 секунд