Страница 49 из 183 ПерваяПервая ... 3947484950515999149 ... ПоследняяПоследняя
Показано с 481 по 490 из 1824

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

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

    По умолчанию

    Цитата Сообщение от Equilibrium Keeper Посмотреть сообщение
    Явной проверки нигде не стоит. Проект в студию или приват.
    Да просто вставь скрипт в голый проект и проверь на работоспособность.Сначала установи эвент с командой скрипта в начале игры,где по идее стартовая точка.Начни игру.Светится?Светится.Теп рь стартовую точку в другом окне с переходом в комнату со светящимся эвентом.Светится? НИ ФИГА не светится!

  2. #482

    По умолчанию

    Цитата Сообщение от Inca Посмотреть сообщение
    Нужный тебе скрпит находится в сборке Tons of Addons, которая находится на Сhaos-project.com и доступен без регистрации. Скрипт находится во второй части сборки и называется Multi-drop. Правда я не знаю, можно ли его использовать отдельно без сборки...

    .
    Можешь сам скрипт выложить, а то ведь я написал, что меня там забанили (когда хотел зарегать акк, забанили по IP и по DATA ) я терь туда вообще не могу зайти.

  3. #483
    Супер-модератор Аватар для Inca
    Информация о пользователе
    Регистрация
    28.04.2008
    Адрес
    Тауантинсуйя. Лима.
    Сообщений
    2,400
    Записей в дневнике
    9
    Репутация: 70 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Equilibrium Keeper Посмотреть сообщение
    Японский бог воины! Ну я ж не просто так спрашиваю - почему ты не юзаешь трансформ! И не важно - нужен он тебе или нет. Важен или нет. Главное то, что он просто изменит графику и внутренности ивена, вместо того, чтобы заново создавать новый, который появится черт знает где и заново будет инициализироваться, отжирая драгоценные такты процессора.
    Потому что Я не знаю как заюзать трансформ. Через ивент монстра я его запустить не смогу, т.к. команды ивента запускаются только после убийства монстра, т.е. трансформировать некого будет. Есть вариант через общее событие - но там надо скрипт, который бы проверял все ивенты на наличие State Transform. Этого я сделать также не смогу, т.к. я не скриптер, ёшкин кот.
    Но вот сегодня нашёл во второй части скрипта Blizz-ABS v2.84 Part 2 на строках 1705 - 1729 следующий интересный, на мой взгляд, код:

    Спойлер Event_removal:
    #--------------------------------------------------------------------------
    # event_removal
    # Removes expired events from the map including battlers and dropped
    # items.
    #--------------------------------------------------------------------------

    def event_removal
    # iterate through all events on the map
    $game_map.events.values.each {|event|
    # if event is Map_Enemy
    if event.is_a?(Map_Enemy)
    # if event is actually on the map
    if event.precondition
    # start removing the enemy if he's dead
    remove_enemy(event) if !event.valid? || event.battler.dead?
    # if enemy spriteset missing
    if event.character_name == '' && event.tile_id < 384
    # remove completely
    $game_map.events.delete(event.id)
    end
    end
    # if event is dropped item and either item taken or stay time expired
    elsif event.dropped? && event.terminate
    # remove completely
    $game_map.events.delete(event.id)
    end}
    end

    Я так понимаю, что можно прошерстить все ивенты на карте и выцедить из них ивенты enemy. И я догадываюсь, что можно у этих врагов проверить условие State = Trans и, если оно true, трансформировать этого enemy. А? Вставить эту проверку в общее событие, которое будет включаться в виде параллельного события на картах, гед будут враги. Equilibrium Keeper, сможешь помочь - сделать такое общее событие? Исходник у тебя есть.

    Цитата Сообщение от Equilibrium Keeper Посмотреть сообщение
    Второе: естественно он появляется не там, где ты хочешь. Ты ведь вначале уничтожил событие (я прав?), а затем пытаешься по его координатам создать новое. Если нет - перебрось в личку с крипт, поправлю.
    Ну я надеялся, что раз я включил функцию Drop_Item для побеждённых монстров, то выпадающий предмет, как раз и является этим видоизменённым ивентом монстра с тем же ID и с теми же координатами. Не получилось
    Последний раз редактировалось Inca; 16.07.2011 в 11:18.

  4. #484

    По умолчанию

    Хм... а зачем такие сложности? Если тебя устраивает параллельное событие, так и вешай If'ы, как раньше делал: $BlizzABS.enemy_has_state?(001, 17) на каждое событие. Дело все в том, что если ты сделаешь непрерывный цикл на проверку - стоит ли монстра под соответствующим состоянием, то, ввиду однопоточности, игра у тебя на этом просто повиснет. Я бы все-таки изменил методы item_effect, как писал выше.

  5. #485
    Супер-модератор Аватар для Inca
    Информация о пользователе
    Регистрация
    28.04.2008
    Адрес
    Тауантинсуйя. Лима.
    Сообщений
    2,400
    Записей в дневнике
    9
    Репутация: 70 Добавить или отнять репутацию

    По умолчанию

    Напиши пожалуйста что и куда вставлять, я ведь не шарю. Ну вставил я
    if item.plus_state_set.include?(17)
    self.transform(2) # сюда номер, или какой-нибудь rand(10) + 1 - для случайного варианта
    end
    в Blizz-ABS v2.84 Part 3 после строки 1004 - ничего не происходит. Нужно ведь вместе с трансформацией снимать эффект, переименовывать и графику заменить - а я не знаю как это написать. А?

  6. #486

    По умолчанию

    Цитата Сообщение от Inca Посмотреть сообщение
    Напиши пожалуйста что и куда вставлять, я ведь не шарю. Ну вставил я

    в Blizz-ABS v2.84 Part 3 после строки 1004 - ничего не происходит. Нужно ведь вместе с трансформацией снимать эффект, переименовывать и графику заменить - а я не знаю как это написать. А?
    Да, ты прав. Но все делал правильно.
    Код:
    def item_effect(character, _battler, item)
        # stop item if no battler assigned
        return false if @battler == nil 
        # stop item if pressing CTRL in debug mode
        return false if $DEBUG && @ai.group != 0 && Input.press?(Input::CTRL)
        # if defending set action data
        if @ai.act.defend? && @battler.last_action[0] == "defend"
          @battler.last_action[1] = true
        end
        # reset own battler's action
        @battler.current_action.kind = @battler.current_action.basic = 0
        # reset hpdamage and spdamage
        @battler.hpdamage, @battler.spdamage = 0, 0
        # get result
        if item.plus_state_set.include?(17)
          p self.x
          #p self.y 
          self.erase
          return
        end
    Сейчас он просто исчезнет. Соответственно. вместо p self.x и p self.y вставь свое событие создание монстра.
    Опять, же оперирую self.current_sprite, self.battler, self.character_name и т.д (смотри в шапке скрипта), ты можешь вручную изменить этого монстра. Смотри - как тебе проще. А насчет transform - рекомендовал бы связаться с автором. Он работает, монстра изменяется, просто ты этого не видишь - спрайт остается прежним... и все равно нужно менять фракцию - а то я только что превратил его во второго, а он взял меня и с 1 удара убил.

  7. #487
    Супер-модератор Аватар для Inca
    Информация о пользователе
    Регистрация
    28.04.2008
    Адрес
    Тауантинсуйя. Лима.
    Сообщений
    2,400
    Записей в дневнике
    9
    Репутация: 70 Добавить или отнять репутацию

    По умолчанию

    Сейчас я вставляю вместо "p self.x и p self.y" и вставил следующее:

    Код:
    if item.plus_state_set.include?(17)
          $BlizzABS.create_event ($game_map.events[1].x, 
          $game_map.events[1].y,
          'sheep',[[[], [0, '167-Small09', 0, 2, 0, 255, 0],1, 4, 4, [], 
          true, false, false, false, false, 0, []]])
          self.erase
          return
        end
    И, как видно, данный код некорректен, т.к. использует координаты 001 ивента (ведь $game_map.events[event_ID].x т.д.). Далее - новый ивент (кролика) появляется опять же рандомно, плюс к этому на карте также рандомно появляется точно такой же монстр, которого я как бы self.erase сделал...
    Вообщем, следующие вопросы:
    1. Что нужно вставить такое универсальное вместо event_ID в приведённый выше скрипт и почему кролик появляется в другом месте?!
    2. Как в трансформ поместить следующие штуки:
    • $BlizzABS.enemy_change_state(event_id, change, state_id)
    • $game_map.rename_event(EVENT_ID, 'NEW_NAME') #- renames an event
    • поменять чарсет.
    UPD: В случае трансформа надо ведь сделать ещё проверку какой монстр (enemy) трансформируется - как это сделать? И в зависимости от этого выполнять ту или иную трансформацию.
    Последний раз редактировалось Inca; 16.07.2011 в 17:32.

  8. #488
    Супер-модератор Аватар для Inca
    Информация о пользователе
    Регистрация
    28.04.2008
    Адрес
    Тауантинсуйя. Лима.
    Сообщений
    2,400
    Записей в дневнике
    9
    Репутация: 70 Добавить или отнять репутацию

    По умолчанию

    У меня такое чуство, будто я спрашиваю что-то сверхневероятное и только один Кипер в состоянии ответить мне...
    Кипер, я нашёл как выглядит код, задающий команду трансформ:

    #--------------------------------------------------------------------------
    # enemy_transform
    # id - event ID or false for troop
    # enemy_id - enemy ID in the database
    # Part of the battleflow control on the map and allows users to transform
    # enemies on the map.
    #--------------------------------------------------------------------------
    def enemy_transform(id, enemy_id)
    # transform all existing target enemies
    get_enemies(id).each {|e| e.transform(enemy_id) if e.battler != nil}
    end
    Можно что-нибудь в нём дописать, чтобы команда Траснформ включала в себя ещё название чарсета и получилось бы вот так:

    enemy_transform(id, enemy_id, charset_name)
    Последний раз редактировалось Inca; 16.07.2011 в 19:02.

  9. #489

    По умолчанию

    Inca, обижаешь! Разумеется я его тоже нашел. Но этот трансформ оперирует событиями и делает это извне. И просто для каждого монстра в этом событии вызывает собственно transform. Нас же интересует внутренний метод transform (ищи def transform в 3ем скрипте). Там автор делает что-то странное - банально нет времени разбирать 18000 строчек кода. Так что ты попытайся найти способ сменить чарсет событию, а уж куда его прилепить - найдем. Ты, вроде, хелп ковырял - было там что-нибудь по этому поводу?
    Последний раз редактировалось Equilibrium Keeper; 16.07.2011 в 19:40.

  10. #490
    Супер-модератор Аватар для Inca
    Информация о пользователе
    Регистрация
    28.04.2008
    Адрес
    Тауантинсуйя. Лима.
    Сообщений
    2,400
    Записей в дневнике
    9
    Репутация: 70 Добавить или отнять репутацию

    По умолчанию

    Да я хелп прошерстил уже вдоль и поперёк. Оказалось там есть даже вот такие команды:
    $game_map.rename_event(EVENT_ID, 'NEW_NAME')

    $BlizzABS.enemy_transform(@SELF, 11)
    $BlizzABS.enemy_change_group(@SELF, 3)
    $BlizzABS.enemy_affect_group(@SELF, 1)
    $BlizzABS.enemy_recover_all(@SELF)


    Везде где есть enemy_transform (например в пункте 4.4.2. Battleflow Controls), упоминается также что надо будет сменить чарсет, но как это сделать - нигде не написано -> Вот у меня и создалось впечатление, что это не пишется ибо для скриптеров это не проблема. Оказывается - проблема

    Я ставлю в ивент монстра в условие уже вот такой скрипт:

    $BlizzABS.enemy_transform(@SELF, 11)
    $BlizzABS.enemy_recover_all(@SELF)

    После убийства убитый монстр трансформируется и даже нападает на меня - но он невидимый! И не становится видимым после ивент команды "Set Move Route... Change Graphic .... Change Opacity"

Страница 49 из 183 ПерваяПервая ... 3947484950515999149 ... ПоследняяПоследняя

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

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

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

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

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

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

Ваши права

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