Страница 38 из 190 ПерваяПервая ... 2836373839404888138 ... ПоследняяПоследняя
Показано с 371 по 380 из 1899

Тема: Поиск скриптов

  1. #371
    Бывалый Аватар для Soliд
    Информация о пользователе
    Регистрация
    24.04.2011
    Адрес
    Далеко за горами
    Сообщений
    943
    Репутация: 33 Добавить или отнять репутацию

    По умолчанию

    Sideview , а может и XAS

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

    По умолчанию

    Lokalizator, начинайте с примитивов молодой человек..)

  3. #373

    По умолчанию

    Жаль( А может насчет меню в виде дневника что-нить еть?

  4. #374
    Бывалый Аватар для Soliд
    Информация о пользователе
    Регистрация
    24.04.2011
    Адрес
    Далеко за горами
    Сообщений
    943
    Репутация: 33 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Lokalizator Посмотреть сообщение
    Жаль( А может насчет меню в виде дневника что-нить еть?
    есть, только там статус-меню

  5. #375

    По умолчанию

    Ммм... Немного оффтопик, и это мое лично мнение, но... Скрипты для скриптеров или для желающих ими стать. Если тебя интересует готовое решение, то это НЕ твоя проблема. Делай себе игру, вылизывай сюжет, собирай графику. А когда закончишь бессмертный шедевр - найти желающих ее обернуть в красивый фантик будет не сложно. И это уже будет их забота - где эти скрипты искать, и как их выправлять.
    Тебя должны интересовать исключительно те скрипты, без которых невозможно творить. К примеру, если у тебя многое завязано на время суток, и нужна смена дня\ночи. Или, тебе нужны сундуки, которые ты будешь рассовывать по локациям и стандартные не годятся категорически. А визуальное оформление, всякие мордочки, квестики, полосочки... До завершения основного этапа работ - они бессмысленны.

  6. #376
    Хранитель Форума Аватар для Валера
    Информация о пользователе
    Регистрация
    15.04.2008
    Адрес
    Москва
    Сообщений
    14,006
    Записей в дневнике
    3
    Репутация: 166 Добавить или отнять репутацию

    По умолчанию

    Допустим, не имея боевки нельзя балансировать игру. С нестандартной боевкой может быть завязано производство ресурсов, а с ней - юнитов, их сила, бонусы и пр. С возможностью использовать или не использовать некоторые эффекты, скилы завязан уже сюжет, характеристики боссов - суть боссов - суть игры.

    Спойлер И как тебе не стыдно-то, а, Валера?:


    Оборона форта: http://rghost.ru/8kLGxFtD2
    Сделать, чтоб все происходило, как я хочу, - вот, собственно, и весь мейкер!
    Адский Рейд: http://rpgmaker.su/vbdownloads.php?d...downloadid=106

  7. #377
    Местный Аватар для Alex333
    Информация о пользователе
    Регистрация
    05.06.2011
    Адрес
    Старый Оскол,Белгородская обл.
    Сообщений
    146
    Репутация: 4 Добавить или отнять репутацию

    По умолчанию

    Перебью вас господа.
    По стандарту у VX'овских батлеров имеется по два призовых предмета,ну то есть те которые они раняют после боя.Можно ли сделать скрипт,что бы предметов было три?

  8. #378

    По умолчанию

    Разумеется. Использовать для задания списков предметов, наверное, оптимальнее всего будет свойство Tag. Кажется, оно есть, в VX, у каждого объекта - в том числе и у существ.
    Тебя интересует скрипт Scene_Battle. Ищешь в нем что-то вроде (VX под рукой нет, но XP я переписал под него на 90%):
    Код:
    #--------------------------------------------------------------------------
      # * Victory Processing
      #--------------------------------------------------------------------------
      def process_victory
        @phase = 5
        $game_system.me_play($game_system.battle_end_me)
        $game_system.bgm_play($game_temp.map_bgm)
        # Exp
        exp = $game_troop.exp_total
        level_up = []
        for actor in $game_party.members
          if actor.cant_get_exp? == false
            last_level = actor.level
            actor.change_exp(actor.exp + exp, true)
            if actor.level > last_level
              level_up.push(actor.text_level_up)          
            end
          end
        end
        # Gold
        gold = $game_troop.gold_total
        $game_party.gain_gold(gold)
        # Items
        drop_items = $game_troop.make_drop_items
        for item in drop_items
          $game_party.gain_item(item, 1)
        end
        @result_window = Window_BattleResult.new(exp, gold, drop_items, level_up)
        @phase5_wait_count = 100
      end
    Видишь веселый зеленый комментарий Item? А сразу за ним - создается список предметов:
    drop_items = $game_troop.make_drop_items
    Смотришь - кто такое $game_troop
    В Scene_Title можешь найти ответ:
    $game_troop = Game_Troop.new
    Лезешь в Game_Troop
    Ищешь тот самый метод, находишь?
    Код:
    #--------------------------------------------------------------------------
      # * Create Array of Dropped Items
      #--------------------------------------------------------------------------
      def make_drop_items
        drop_items = []
        for enemy in dead_members
          for di in [enemy.drop_item, enemy.drop_weapon, enemy.drop_armor]
            next if di == nil
            next if rand(99) + 1 > enemy.drop_prob
            drop_items.push(di)
          end
        end
        return drop_items
      end
    Видишь формулу примитвного рандома а выше - массив предметов, привязанных к врагу:
    for di in [enemy.drop_item, enemy.drop_weapon, enemy.drop_armor]
    Соответственно, тебе нужно переопределить этот массив. Поскольку тут используется объект enemy, не будем изобретать велосипед и реализуем у него новый метод для генерации предметов по тэгу. Можно снова попытаться проследить цепочку вызовов, но рядом есть более чем вероятный претендент:
    Game_Enemy, лезем туда.
    Ага! Вот они, злодеи!
    Код:
    #--------------------------------------------------------------------------
      # * Возвращает ID предмета, получаемого после победы над врагом
      #--------------------------------------------------------------------------
      def drop_item
        return $data_items[enemy.item_id]
      end
      #--------------------------------------------------------------------------
      # * Возвращает ID оружия, получаемого после победы над врагом
      #--------------------------------------------------------------------------
      def drop_weapon
        return $data_weapons[enemy.weapon_id]
      end
      #--------------------------------------------------------------------------
      # * Возвращает ID доспеха, получаемого после победы над врагом
      #--------------------------------------------------------------------------
      def drop_armor
        return $data_armors[enemy.armor_id]
      end
    Вот здесь мы и реализуем новый метод: def getDropItems

    Как уже говорил, VX под рукой нет и как там добираться до тэгов не помню, поэтому расскажу словами:
    В тэг юнита записываешь связки ключ-id. Ключ отвечает за тип предмета - предмет, оружие или броня. id - число, номер предмета соответствующего типа. И разделяешь их запятыми. Например:
    a1,i2,i3,w22
    Внутри этого метода парсишь строку тэга регулярным выражением, например: \([aiw]{1}\d+)\
    Полученные группы превращаешь в соответствующие массивы ($data_weapons, $data_armors, $data_items) по первой буквы. И числовой номер - остаток подстроки.
    В итоге, в массив запихиваешь список всех перечисленных предметов и возвращаешь. Вуаля.
    Когда реализуешь, можешь расширить функционал, например, указывать в скобках количество в интервалах и процент выпадания для каждого предмета.
    Последний раз редактировалось Equilibrium Keeper; 21.06.2011 в 19:58.

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

    По умолчанию

    регулярка не правильная, группа формируется не та. Тут нужно как миниум две группы - вид и ид.
    Н-р. w22 после обработки твоей регуляркой выдаст - $1=w22, а надо $1=w $2=22
    правильний так
    Код:
    ([aiw]{1})(\d+)\,?
    ну да, ещё эти чёртовы слеши нужно проверить, те или не те.
    Но я бы организовал таг вот так
    Код:
    <w=1,1,50><i=1,2,45> #- <тип=Ид,кол-во,шанс> - тег
    и регулярка
    Код:
    /<([aiw]{1})=(\d+)\,(\d+)\,(\d+)>/
    Даже если нам в начале нужно только тип и ид дропа.
    Кстати, на ХР где-то был подобный скрипт, там врезались в место вывода результатов биты
    проверить слеши...
    Последний раз редактировалось Dark32; 21.06.2011 в 20:10.
    Нужна помощь в скриптах? Запутался? Голова не варит?
    Читал это и это тоже? Не помогло? Тогда тебе сюда!
    Спойлер •••:
    Цитата Сообщение от Реймон
    В мире нет вещей которые нельзя решить с помощью сладостей
    Цитата Сообщение от Ундер
    Ночью можно обойтись и без сладостей...

  10. #380

    По умолчанию

    Регулярка как раз правильная. Писалась исключительно для получения групп. А уж как там дальше делать - дело автора. Я бы взял первый символ строки - $1 и все оставшиеся - $2. Не спорю, твой вариант хорош и сразу приходит на ум. Только тогда понадобится использовать две регулярки Первая вычленит группы <>, вторая - разобьет их по твоему выражению.
    P.S. Это если я не ошибаюсь, и RGSS не может выдать набор совпадений. C# вот. наприер, может... а RGSS не помню. Кажется, нет... Или там есть что-то из разряда .each{} для этой цели?
    P.P.S. Хм... а зачем ты экранируешь запятые? о.О Они используются только внутри {} и не требует экранирования, в отличии от точек. (Или очередная придурь RGSS?). А краевые слеши, скорее всего, правильные у тебя.

    P.P.P.S. Да, на будущее, в тэгах лучше, по возможности, избегать лишних символов: <w=1,1,50><i=1,2,45> В данном случае это знак равно - совершенно лишний и, вероятнее всего <>. Говорю исходя из своего горького опыта - сам так в свое время делал. Когда тэгов таких 1-2 - все ок. Когда их с десяток... Это все равно что смотреть html без переносов. w1,1,50 i1,2,45 легче и писать и читать. Если хочется разделитель отличный от пробела, например так: w1,1,50 \ i1,2,45. Я бы даже заменил запятые на точки. А если уж делать скобки, то, например, квадратные. [w1.1.50] [i1.2.45] - читается значительно легче и не создает лишнего визуального мусора, который, в больших объемах, негативно сказывается на читабельности.
    Последний раз редактировалось Equilibrium Keeper; 21.06.2011 в 20:39.

Страница 38 из 190 ПерваяПервая ... 2836373839404888138 ... ПоследняяПоследняя

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

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

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

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

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

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

Ваши права

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