UltimaForum

Skrypty [XP] - Pauza do gry

kamcio22 - Nie 21 Mar, 2010 20:04
Temat postu: Pauza do gry
Witam, chcę się z wami podzielić moim pierwszym tutkim ;p

więc tak zaczynajmy:

OPIS.
Po wciśnięciu F12 włącza się pauza w grze, wtedy nie będziemy mogli nic zrobić, po ponownym wciśnięciu F12 pauza się skasuje a my możemy grać dalej.

Screeny.


Skrypt.

Skrypt wklejamy nad Main.

Spoiler:

Kod:
#==============================================================================
# ** Pausing with F12
#------------------------------------------------------------------------------
# Zeriab
# Version 1.1
# 2009-05-25 (Year-Month-Day)
#------------------------------------------------------------------------------
# * Version History :
#
# Version 1.0 -------------------------------------------------- (2009-05-22)
# - First release
#
# Version 1.1 -------------------------------------------------- (2009-05-25)
# - The pause image now appears immediately when F12 is pressed.
# - Transitions are cut short rather than restarted when F12 is pressed.
#------------------------------------------------------------------------------
# * Description :
#
# This script changes the functionality of pressing F12 during the game
# from resetting the game to (un)pausing the game. A picture is displayed
# while the game is paused. (Having a picture is optional)
#------------------------------------------------------------------------------
# * License :
#
# Copyright (C) 2009 Zeriab
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser Public License for more details.
#
# For the full license see <http://www.gnu.org/licenses/>
# The GNU General Public License: http://www.gnu.org/licenses/gpl.txt
# The GNU Lesser General Public License: http://www.gnu.org/licenses/lgpl.txt
#------------------------------------------------------------------------------
# * Compatibility :
#
# Is most likely not compatible with other F12 prevention scripts.
#------------------------------------------------------------------------------
# * Instructions :
#
# Place this script anywhere above main.
# The image file 'pause' present in Graphics/Pictures is used.
# Note: No picture is shown if there is no 'pause' in Graphics/Pictures.
#==============================================================================
#=============================================================================
# ** Reset class (because it won't be defined until F12 is pressed otherwise)
#=============================================================================
class Reset < Exception
end
#=============================================================================
# ** Module Graphics
#=============================================================================

module Graphics
  class << self
#-------------------------------------------------------------------------
# * Aliases Graphics.update and Graphics.transition
#-------------------------------------------------------------------------
  unless self.method_defined?(:zeriab_f12_pause_update)
    alias_method(:zeriab_f12_pause_update, :update)
    alias_method(:zeriab_f12_pause_transition, :transition)
  end
#-------------------------------------------------------------------------
# Change the update method so F12 toggles pause
#-------------------------------------------------------------------------
  def update(*args)
    # Try to update normally
    begin
      zeriab_f12_pause_update(*args)
      return
    rescue Reset
      # Do nothing
    end
    done = false
    # Store frame count
    frame_count = Graphics.frame_count
    # Show pause image
    @sprite = Sprite.new
    @sprite.z = 9999
    begin
      @sprite.bitmap = RPG::Cache.picture('pause')
    rescue
      @sprite.bitmap = Bitmap.new(32,32)
    end
    # Keep trying to do the update
    while !done
      begin
        zeriab_f12_pause_update(*args)
        done = true
      rescue Reset
        # Do Nothing
      end
    end
    # F12 has been released, update until it is pressed again
    while done
      begin
        zeriab_f12_pause_update(*args)
      rescue Reset
        done = false
      end
    end
    # F12 has been pressed, keep trying to update
    while !done
      begin
        zeriab_f12_pause_update(*args)
        done = true
      rescue Reset
        # Do nothing
      end
    end
    # F12 has been released, dispose pause image
    @sprite.dispose
    # Set proper frame count
    Graphics.frame_count = frame_count
    end
#-------------------------------------------------------------------------
# Changes the transition so it is cut short if F12 is pressed
#-------------------------------------------------------------------------
  def transition(*args)
    done = false
    # Keep trying to do the transition
    while !done
      begin
        zeriab_f12_pause_transition(*args)
        done = true
      rescue Reset
        # Set transition length to 0 frames.
        args[0] = 0
      end
    end
  end
end
end


Potrzebny obraz.

Spoiler:


Obraz wklejamy w Grapchis/Pictures i zostawiamy.

[ Dodano: Nie 21 Mar, 2010 20:05 ]
Gdyby coś było nie tak, proszę mówić w komentach.

pw115 - Nie 21 Mar, 2010 20:44

kamcio22 napisał/a:
moim

Twoim ? Jesteś zeriab ?
Skrypt po angielsku w wykonaniu polaka ?
Coś mi tu śmierdzi....
Pamiętaj: Na uf nie tolerujemy plagiatu !!!
(jeśli to twoja praca to bardzo przepraszam)

kamcio22 napisał/a:
tutkim

Tutkiem? ja tu widzę sam skrypt

jeszcze:
Obrazek w folderze Pictures może być jaki chcemy ale musi się nazywać pause

R.I.P. - Nie 28 Mar, 2010 21:03

Dla mnie jest ok, nawet jeśli to nie jego skrypt, a wogóle dzięki za umieszczenie ;).
Melvin - Sob 03 Kwi, 2010 11:28

A jak zmienić klawisz pauzy na "P"?
Izaya - Nie 11 Lip, 2010 09:23

Wziął skrypt z RMXP.pl i się cieszy :-P
mogłeś napisać Autora, popieram Time.
Ogólnie skrypt dobry.
Pozdrawiam :przytul:

Śliwka - Wto 26 Kwi, 2011 18:29

Ten skrypt jest świetny, dzięki ;-)
Kumpel - Wto 26 Kwi, 2011 19:07

Nom. Zrobić tylko przezroczyste tlo i git :-D
Melvin, Znajdź wszystkie f12 i pozmieniaj na p :-P // Chyba to już za późno, ale może się komuś przydać//


Powered by phpBB modified by Przemo © 2003 phpBB Group