Хорошо! Хорошо!:  0
Плохо! Плохо!:  0
Показано с 1 по 9 из 9

Тема: Книга монстров

  1. #1
    Бывалый Аватар для Dark32
    Информация о пользователе
    Регистрация
    30.12.2008
    Адрес
    Арзамас
    Сообщений
    640
    Записей в дневнике
    2
    Репутация: 20 Добавить или отнять репутацию

    По умолчанию Книга монстров

    Мой первый скрипт

    Спойлер код сцены:

    $element_n=16 #кол-во эллементов
    $element={ #элементы
    1=>"Огонь",
    2=>"Лёд",
    3=>"Молния",
    4=>"Вода",
    5=>"Земля",
    6=>"Воздух",
    7=>"Свет",
    8=>"Тьма",
    9=>"Нежить",
    10=>"Змея",
    11=>"Водяной",
    12=>"Зверь",
    13=>"Гоблин",
    14=>"Птица",
    15=>"Демон ",
    16=>"Ангел",
    }
    $element_rank={
    1=>"200%",
    2=>"150%",
    3=>"100%",
    4=>"50%",
    5=>"0%",
    6=>"-100%"
    }
    MONSTERS=32 #кол-во монстров(enemies)
    XS=[0,120,240,360]

    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    class Window_Monster < Window_Base

    def initialize(monster)
    super(0, 0, 640, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    @monster = monster
    refresh
    end

    def refresh
    self.contents.clear
    draw_monster_graphics(@monster) # Показывает battle графику
    draw_text_3d(XS[0],-5,80, 32, i2s(@monster.id)+"/"+i2s(MONSTERS))
    draw_text_3d(XS[0],10,200,32,"Имя: "+@monster.name)
    draw_text_3d(XS[0],40,200,32,"Жизни "+i2s(@monster.maxhp),0,255,0) # Выводит хп монстра
    draw_text_3d(XS[0],70,200,32,"Сп "+i2s(@monster.maxsp),0,0,255)
    draw_text_3d(XS[0],100,200,32,$str_str+" "+i2s(@monster.str))
    draw_text_3d(XS[0],130,200,32,$str_dex+" "+i2s(@monster.dex))
    draw_text_3d(XS[0],160,200,32,$str_agi+" "+i2s(@monster.agi))
    draw_text_3d(XS[0],190,200,32,$str_int+" "+i2s(@monster.int))
    #-----------------------------------------------------------------------
    draw_text_3d(XS[1],190,200,32,$str_atk+" "+i2s(@monster.atk))
    draw_text_3d(XS[1],160,200,32,$str_eva+" "+i2s(@monster.eva))
    draw_text_3d(XS[1],130,200,32,$str_pdf+" "+i2s(@monster.pdef))
    draw_text_3d(XS[1],100,200,32,$str_mdf+" "+i2s(@monster.mdef))
    #----------------------------------------------------------------------
    draw_text_3d(XS[0],400,200,32,"Опыт"+" "+i2s(@monster.exp))
    draw_text_3d(XS[1],400,200,32,"Деньги"+" "+i2s(@monster.gold))
    # draw_text_3d(XS[2],400,200,32,"Видел?"+" "+b2s($monster_vision[@monster.id]))
    #-----------------------------
    #резисты
    #-------------
    draw_text_3d(XS[2],-5,200,32,"Эффективность",255,0,255)

    monster_element_ranks(XS[2],10)
    end

    end
    #--------------#

    class Window_Base < Window
    #--------------------------------------------------------------------------
    # Выводит изображение
    #--------------------------------------------------------------------------
    def draw_monster_graphics(monster)
    battler=RPG::Cache.battler(monster.battler_name, monster.battler_hue) # устонавливает каке изображение выводить
    w = battler.width
    h = battler.height
    self.contents.blt(0, 0, battler, Rect.new(0, 0, w,h))
    end


    end
    #------------------------------
    #резисты
    #------------------------------
    def monster_element_ranks (x,y,n=$element_n)
    if n<=12 then monster_element_ranks_1(x,y,n) end
    if n>12 then
    monster_element_ranks_1(x,y,12,0)
    monster_element_ranks_1(x+150,y,n-12,12)
    end
    end

    def monster_element_ranks_1(x,y,n,e)
    for i in 1..n
    draw_text_3d(x,y+i*28,200,32,$element[i+e])
    # draw_text_3d(x,y+i*28,200,32,$data_elements[i+e].name)
    draw_text_3d(x+80,y+i*28,200,32,$element_rank[@monster.element_ranks[i+e]])
    end
    end
    #--------------------------------------------------------------------------

    class Scene_Monster

    def initialize(monster = 0, equip_index = 0)
    @monster_id = monster
    end

    def main
    @monster = $data_enemies[@monster_id]
    @status_window = Window_Monster.new(@monster)
    Graphics.transition
    loop do
    Graphics.update
    Input.update
    update
    if $scene != self
    break
    end
    end
    Graphics.freeze
    @status_window.dispose
    end
    #--------------------------------------------------------------------------
    # Проверяет нажата ли клавиша; если "R" нажата то выводит следушего монстра
    #--------------------------------------------------------------------------
    def test(i=1,monster_id=@monster_id)
    if $monster_vision[monster_id]=true
    then return monster_id
    else test(monster_id+i)
    end
    end

    def update
    if Input.trigger?(Input::B)
    $game_system.se_play($data_system.cancel_se)
    $scene = Scene_Menu.new(7)
    return
    end
    if Input.trigger?(Input::R)
    $game_system.se_play($data_system.cursor_se)
    if @monster_id <MONSTERS then
    @monster_id += 1
    else @monster_id=1
    end
    $scene = Scene_Monster.new(@monster_id)
    return
    end
    if Input.trigger?(Input::L)
    $game_system.se_play($data_system.cursor_se)
    if @monster_id >1 then
    @monster_id+=- 1
    else @monster_id=MONSTERS
    end
    $scene = Scene_Monster.new(@monster_id)
    return
    end
    end
    end


    Спойлер дополнительный код:

    #----------------
    # переводит число (целое) в строку
    def i2s_1(e,st=["0","1","2","3","4","5","6","7","8","9",])
    return st[e]
    end

    def i2s(i)
    if i>=10 then
    n=i
    s=""
    while n>=10
    d=(n/10)
    e=n-(n/10)*10
    s=i2s_1(e)+s
    n=d
    end
    s=i2s_1(d)+s
    return s
    else
    return i2s_1(i)
    end
    end
    #------------------
    #-------------------------------------------------------------------------
    # эффект объёмного текста
    #-------------------------------------------------------------------------
    # x,y -координаты начала, str- текст r,g,b -цвет
    #-------------------------------------------------------------------------
    def draw_text_3d (x,y,dx,dy,str,r=255,g=255,b=255)
    self.contents.font.color.set(0,0,0)
    self.contents.draw_text(x-1, y-1, dx, dy, str)
    self.contents.font.color.set(r,g,b)
    self.contents.draw_text(x, y, dx, dy, str)
    end

    #-------------------------------------------------------------------------
    # переводит булин в число
    #-------------------------------------------------------------------------
    def b2i(b,t=1,f=0)
    if b==true then return t
    else return f
    end
    end
    #-------------------------------------------------------------------------
    # переводит булин в строку
    #-------------------------------------------------------------------------
    def b2s(b,t="Да",f="Нет")
    if b == false then return f
    else return t
    end
    end

    #-------------------------------------------------------------------------
    # переводит число в булин
    #-------------------------------------------------------------------------
    def i2b(b,t=1,f=0)
    if b==t then return true end
    if b==f then return false end
    end


    Вставти оба кода до маина
    Последний раз редактировалось Inca; 05.06.2013 в 15:24.
    Нужна помощь в скриптах? Запутался? Голова не варит?
    Читал это и это тоже? Не помогло? Тогда тебе сюда!
    Спойлер •••:
    Цитата Сообщение от Реймон
    В мире нет вещей которые нельзя решить с помощью сладостей
    Цитата Сообщение от Ундер
    Ночью можно обойтись и без сладостей...

  2. #2
    Бывалый Аватар для Inkognitoo
    Информация о пользователе
    Регистрация
    30.09.2008
    Адрес
    Пермь.
    Сообщений
    988
    Записей в дневнике
    4
    Репутация: 16 Добавить или отнять репутацию

    По умолчанию

    Прикольно. Это как я понял бестиарий, да?

  3. #3
    Познающий Аватар для BuBlicK
    Информация о пользователе
    Регистрация
    25.04.2008
    Адрес
    Кишинёв
    Сообщений
    286
    Репутация: 5 Добавить или отнять репутацию

    По умолчанию

    Ух ты... совсем не плохо для первого.

    Только вот толку в бестиарии я не вижу, ну, только я так считаю. Мне такое никогда не нравилось. Только без обид.
    Растягивая удовольствие, не порви его

    О господин, я много раз получал от девушек, прекрасных девушек, но еще не разу не получал от рыцарей с ро-га-ми

  4. #4
    Пользователь Аватар для Griffith
    Информация о пользователе
    Регистрация
    08.05.2008
    Сообщений
    90
    Репутация: 2 Добавить или отнять репутацию

    По умолчанию

    "Книга" вроде пишется
    "Ты каждый раз, ложась в постель,
    Смотри во тьму окна
    И помни, что метет метель
    И что идёт война."

  5. #5
    Бывалый Аватар для Inkognitoo
    Информация о пользователе
    Регистрация
    30.09.2008
    Адрес
    Пермь.
    Сообщений
    988
    Записей в дневнике
    4
    Репутация: 16 Добавить или отнять репутацию

    По умолчанию

    еще бы описание, вроде биографии в твоей игре, и было бы срвсем зашибись)

  6. #6
    Создатель Аватар для Рольф
    Информация о пользователе
    Регистрация
    14.04.2008
    Адрес
    Южно- Сахалинск/Пенза
    Сообщений
    10,095
    Записей в дневнике
    2
    Репутация: 108 Добавить или отнять репутацию

    По умолчанию

    Если нужна помощь в скриптах спрашивай. Хорошо, новое пополнение скриптеров.

  7. #7
    Маститый Аватар для The Joker
    Информация о пользователе
    Регистрация
    16.06.2008
    Сообщений
    1,209
    Записей в дневнике
    11
    Репутация: 29 Добавить или отнять репутацию

    По умолчанию

    Мне непонятен смысл всех слов в поле эффективность. Это эфективность элементов что ли?
    Чет я хр начал забывать) я думаю это не последняя версия? а то еще есть пустое место в окошке.;-)
    лол

  8. #8
    Бывалый Аватар для Dark32
    Информация о пользователе
    Регистрация
    30.12.2008
    Адрес
    Арзамас
    Сообщений
    640
    Записей в дневнике
    2
    Репутация: 20 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Inkognitoo Посмотреть сообщение
    Прикольно. Это как я понял бестиарий, да?
    Да.

    Цитата Сообщение от Griffith Посмотреть сообщение
    "Книга" вроде пишется
    Опечатался.

    Цитата Сообщение от Inkognitoo Посмотреть сообщение
    еще бы описание, вроде биографии в твоей игре, и было бы срвсем зашибись)
    Можно прикрутить, но места мало, а с окнами я пока не дружусь

    Цитата Сообщение от The Joker Посмотреть сообщение
    Мне непонятен смысл всех слов в поле эффективность. Это эфективность элементов что ли?
    Чет я хр начал забывать) я думаю это не последняя версия? а то еще есть пустое место в окошке.;-)
    Да это эфективность элементов.
    Да, это не последняя версия.
    В пустом месте може ещё чё нито напишу, вот только что?

    Рольф спрашу обязательно
    Нужна помощь в скриптах? Запутался? Голова не варит?
    Читал это и это тоже? Не помогло? Тогда тебе сюда!
    Спойлер •••:
    Цитата Сообщение от Реймон
    В мире нет вещей которые нельзя решить с помощью сладостей
    Цитата Сообщение от Ундер
    Ночью можно обойтись и без сладостей...

  9. #9
    Создатель Аватар для Рольф
    Информация о пользователе
    Регистрация
    14.04.2008
    Адрес
    Южно- Сахалинск/Пенза
    Сообщений
    10,095
    Записей в дневнике
    2
    Репутация: 108 Добавить или отнять репутацию

    По умолчанию

    Исправил тебе название темы и добавил твои скрипты в оглавление.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Книга монстров