Vai al contenuto

Rilevato Ad-Blocker. Per favore disabilita il tuo adblocker quando navighi su makerando.com - Non c'è nessun annuncio invasivo.

  • Chatbox

    You don't have permission to chat.
    Load More
Ally

System Mod Khas Script Core

Recommended Posts

Nome Script: Khas Script Core
Versione: 1.0
Autore/i: Khas

Informazioni:
Il Khas Script Core è un insieme di classi, moduli, metodi, etc che verrà utilizzato su tutti gli altri script che creerà l'autore.
Funzionerà più o meno un pò come l'SDK presente per XP...

Istruzioni:
Inserite lo script sotto Material...

Script:

#-------------------------------------------------------------------------------
# * [RMVX] Khas Script Core
#-------------------------------------------------------------------------------
# * This script will activate and enhance compatibility of all Khas' Scripts
# * Este script irá ativar a compatibilidade entre todos os scripts Khas
#-------------------------------------------------------------------------------
# * By Khas ([email protected])
# * Version: 1.0
# * Released on: 08/06/2010
#
#-------------------------------------------------------------------------------
# Terms of Use:
#-------------------------------------------------------------------------------
# * ENGLISH
# All Khas' Scripts are licensed under a Creative Commons license
# All Khas' Scripts are for non-commercial projects, if you need
# them for a commercial game, please send a email to [email protected]
# All Khas' Scripts are for personal use, you can edit them and use in your
# own project, but you can't post any modified version without my permission
#
# * PORTUGUES
# Todos os scripts Khas estão sob licença Creative Commons
# Todos os scripts Khas são para projetos não comerciais, se você precisar em
# seu projeto comercial, envie um email para [email protected] com o pedido
# Todos os scripts Khas são para uso pessoal, você pode usar e editar para uso
# no seu projeto, porém você não pode postar nenhuma versão modificada sem
# a minha permissão
#
#-------------------------------------------------------------------------------
# Installation:
#-------------------------------------------------------------------------------
# * ENGLISH
# 1) This script should be placed after "Materials" and before any Khas' Scripts
# 2) Setup this script in Setup Part below.
#
# *PORTUGUES
# 1)Este script tem que ser colocado depois dos "Scripts Adicionais" e antes
# de qualquer script Khas
# 2) Configure o script na parte de configuração
#
#-------------------------------------------------------------------------------
# Released Khas' Scripts:
#-------------------------------------------------------------------------------
# 13/06/2010 - Neo Light Effects 1.0
# 15/06/2010 - Khas Neo Title 1.0
#
#-------------------------------------------------------------------------------
# Setup Part
#-------------------------------------------------------------------------------
module Core
  # Khas scripts language         | Lingua dos scripts Khas
  # 0 - English                   | 0 - Ingles
  # 1 - Portuguese                | 1 - Portugues
  Language = 1

#-------------------------------------------------------------------------------
# End of Setup Part
#-------------------------------------------------------------------------------

  @scripts = {}
  def self.version
    return 1.0
  end
  def self.register(script,version)
    @scripts[script] = version
  end
  def self.enabled?(script,version=1)
    en = @scripts.has_key?(script) ? true : false; return en unless en
    return (en and @scripts[script] >= version)
  end
  def self.load_matrix; $pixel_matrix = {}
    for x in 0..543
      $pixel_matrix[x] = {}
    end
    for x in 0..543
      for y in 0..415
        $pixel_matrix[x][y] = (57.3*Math.atan2(272-x,208-y)).to_i
      end
    end
  end
  def self.require(script,from,version = 1.0)
    unless @scripts.has_key(script)
      if Language == 1
        p "O script #{from} precisa do script #{script}"
        p "Por favor, instale o #{script} #{version}"
      else
        p "The script #{from} requires #{script}"
        p "Please install the #{script} #{version}"
      end
      exit
    else
      unless @scripts[script] >= version
        if Language == 1
          p "#{script} #{version} é antigo"
          p "Por favor, instale o #{script} #{version}"
        else
          p "#{script} #{version} is obsolete"
          p "Please install the #{script} #{version}"
        end
        exit
      end
    end
  end
  def self.enter_fs
    $showm = Win32API.new 'user32', 'keybd_event', %w(l l l l), ' '
    $showm.call(18,0,0,0)
    $showm.call(13,0,0,0)
    $showm.call(13,0,2,0)
    $showm.call(18,0,2,0)
  end
end

$enabled_core = Core.version

module Cache
  def self.particle(filename)
    load_bitmap("Graphics/Particles/", filename)
  end
  def self.title(filename)
    load_bitmap("Graphics/Title/", filename)
  end
end

module Bitcore
  @cached_bitmaps = {}
  def self.add(bitmap,key)
    if @cached_bitmaps.has_key?(key)
      p "Bitcore error!"; p "Cached bitmap: #{key}"
    else
      @cached_bitmaps[key] = bitmap
    end
  end
  def self::[](key)
    return @cached_bitmaps[key]
  end
  def self.delete(key)
    unless @cached_bitmaps.has_key?(key)
      p "Bitcore error!"; p "Uncached bitmap: #{key}"
    else
      @cached_bitmaps[key].dispose
      @cached_bitmaps.delete(key)
    end
  end
  def self.reset
    @cached_bitmaps.keys.each { |i| @cached_bitmaps[i].dispose }
    @cached_bitmaps.clear
  end
  def self.cached_bitmaps
    return @cached_bitmaps.keys
  end
  def self.cached_value
    return @cached_bitmaps.size
  end
end

class Neo_Effect
  attr_accessor :picture_name
  attr_accessor :opacity
  attr_accessor :color
  attr_accessor :blend_mode
  attr_accessor :angle
  attr_accessor :opacity_oscillation
  attr_accessor :ax
  attr_accessor :ay
  attr_accessor :hue_oscillation
  def initialize(picture, opacity, color=Tone.new(0,0,0), blend_mode=1,
    ax=0, ay=0, angle=0, op_os=0, hue=0)
    @picture_name = picture
    @opacity = opacity
    @color = color
    @blend_mode = blend_mode
    @angle = angle
    @opacity_oscillation = op_os
    @ax = ax
    @[member=ayrnvqrnsmij] = ay
    @hue_oscillation = (hue == 0 ? false : hue)
  end
end

class Title_Effect
  attr_accessor :picture_name
  attr_accessor :opacity
  attr_accessor :position
  attr_accessor :blend_mode
  attr_accessor :angle
  attr_accessor :ax
  attr_accessor :ay
  attr_accessor :z
  def initialize(picture, plane=false, z=1, op=255,
    pos=[0,0,0], blend=1, angle=0, ax=0, ay=0)
    @picture_name = picture
    @opacity = op
    @position = pos
    @blend_mode = blend
    @angle = angle
    @ax = ax
    @[member=ayrnvqrnsmij] = ay
    @z = z
    @plane = plane
  end
  def plane?
    return @plane
  end
end

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

  • Contenuti simili

    • Da Ally
      Nome Script: H.U.T.O. MMO System por Tomoaky
      Versione:
      Autore/i: Tomoaky, hikimoki
       
      Informazioni:
      Un sistema completo per creare un progetto in pieno stile MMO, dove il movimento è con il mouse e la battaglia è in gruppo.
      Che cosa contiene?
       
      Features:
      - Mini-mappa con caratteristiche realistiche della mappa.
      - Sistema di Battaglia con la partecipazione attiva del party.
      - Sistema di full-pixel: Camminata, Attacco, Abilità, e altre cose che devono essere ancora scoperte nella demo
      - Sistema di tempo con orari diurni e serali giusto.
      - Tempo di sistema. (Climi)
       
      (La demo è ancora in fase di test, quindi verranno aggiunte altre features con il progredire dei test)
       
      Screenshots:

       
      Istruzioni:
      Istruzioni e script, all'interno della demo.
       
      Demo:
      http://hikimoki.sakura.ne.jp/zip/hutommo_ace.zip
    • Da Ally
      Nome Script: Permanent Switches & Variables
      Versione: 1.2
      Autore/i: mikb89
       
      Informazioni:
      Con questo script potrete far sì che i valori di determinate switch e variabili vengano memorizzati in modo da restare tali in nuova partita e caricamento.
      Utile per esempio se si vuole aggiungere un Nuovo gioco +, cambiando una switch appena finito il gioco, oppure un sistema di punteggio alto tramite variabile o magari per memorizzare delle opzioni.
       
      Features:
      Si possono utilizzare sia singoli elementi che range multipli rapidamente.
      È possibile scegliere un nominativo personalizzato per i dati.
       
      Istruzioni:
      Creare una nuova voce sopra Main ed inserire lo script.
      Nel caso di incompatibilità, provare a spostarla più in alto.
       
      Script
       
      Incompatibilità:
      N/A
    • Da Ally
      Nome Script: ReMapped Keys
      Versione: 1.0
      Autore/i: mikb89
       
      Informazioni:
      Con questo script potrete riassegnare i tasti standard. Se ad esempio voleste usare Invio sia per interagire che per correre, basta rimappare il tasto Shift (:A) con quello di Invio (:C). Giusto un esempio.
      Lo script è comunque stato inizialmente creato per un cabinato che supportava solo determinati tasti: combinando questo script con uno di tastiera estesa è stato possibile far funzionare il gioco.
       
      Istruzioni:
      Creare una nuova voce sopra Main ed inserire lo script.
      Nel caso di incompatibilità, provare a spostarla più in alto.
       
      Script
       
      Incompatibilità:
      Ricordatevi di usare uno script per la tastiera estesa separato se le vostre intenzioni sono quelle di usare tasti non standard.
       
      Note dell'autore:
      Script creato per una richiesta di syntonia;
      Ringrazio per il suo script di tastiera estesa che ho usato come esempio.
    • Da Ally
      Nome Script: Independent Player Actor
      Versione: 1.4
      Autore/i: mikb89

      Informazioni:
      Questo script nasce da una richiesta di , fatta in questo topic.
      Pensato per giochi tipo Pokémon, questo script consente di avere un 'leader' (visibile come primo personaggio nel caterpillar e come nome team in battaglia: "Il gruppo di X ha ottenuto punti exp...") che non è parte del gruppo vero e proprio.

      Features:
      L'unica impostazione presente nello script è il numero di una variabile.
      Cambiandone poi il valore potrete:
      disattivare lo script se questo è minore di 1; selezionare l'eroe leader dal database impostando la variabile al suo ID; attivare e disattivare lo script quindi semplicemente moltiplicando la variabile per -1.
      Istruzioni:
      Inserire lo script sotto Materials/Materiali/Modules/Moduli (a seconda della traduzione che avete) ma sopra Main.

      Script

      Demo:
      Demo multilingua v 1.4
      Mediafire, zip di 1.32MB

      Incompatibilità:
      Se non aggiungete nessuno al party, anche se il leader è impostato, non potrete comunque accedere ai vari menu Oggetti, Skill, Equip, Status.

      Note dell'autore:
      per aver richiesto lo script;
      SowS per l'idea originale.

      Pareri in evidenza:
    • Da Ally
      Nome Script: Keyboard Input
      Versione: 3.0
      Autore/i: Keroro
       
      Informazioni:
      Porting per VX-ACE dello script YEM Keyboard Script per VX.
      Rimpiazza lo Scene_Name facendo inserire direttamente da tastiera.
      TODO: Gestire la punteggiatura
       
      Istruzioni:
      Creare una nuova tab sotto Materials e incollare lo script.
      Oltre a modificare lo Scene_Name modifica la classe Input consentendo,
      al programmatore volenteroso di utilizzare tutti le lettere e i numeri tramite sintassi:
       
      if Input.press(:VK_A)
      #se premo la lettera a
      end
      if Input.press(:NUM5) or Input.press(:PAD5)
      #se premo il numero 5 sulla tastiera o sul numpad
      end
       
      Script:
       
       
      #===============================================================================# Keyboard Input - Porting to VX-ACE# By Keroro - [email protected]# Version 3.0# Last Date Updated. 2012.03.17#===============================================================================## OriginalWij and Yanfly Collaboration - Keyboard Input# Last Date Updated: 2010.06.12# Level: Normal## This is a utility script that provides the functionality to return inputs# from the keyboard as well as free up more keys to be used in the Input module.# This script will also replace Scene_Name and allow for direct keyboard input# to type in an actor's name as well as fix the maximum characters shown from# the default base script.##===============================================================================$imported = {} if $imported == nil$imported["KeyboardInput"] = trueclass << Input #-------------------------------------------------------------------------- # Aliases (Mods - Linked to Module) - Created by OriginalWij #-------------------------------------------------------------------------- alias ow_dt_i_press press? unless $@ alias ow_dt_i_trigger trigger? unless $@ alias ow_dt_i_repeat repeat? unless $@ alias ow_dt_i_update update unless $@endmodule Input #-------------------------------------------------------------------------- # constants - Created by OriginalWij and Yanfly and Keroro #-------------------------------------------------------------------------- VALUES = {} VALUES[:VK_A] = 65; VALUES[:VK_B] = 66; VALUES[:VK_C] = 67; VALUES[:VK_D] = 68; VALUES[:VK_E] = 69; VALUES[:VK_F] = 70; VALUES[:VK_G] = 71; VALUES[:VK_H] = 72; VALUES[:VK_I] = 73; VALUES[:VK_J] = 74; VALUES[:VK_K] = 75; VALUES[:VK_L] = 76 VALUES[:VK_M] = 77; VALUES[:VK_N] = 78; VALUES[:VK_O] = 79; VALUES[:VK_P] = 80; VALUES[:VK_Q] = 81; VALUES[:VK_R] = 82; VALUES[:VK_S] = 83; VALUES[:VK_T] = 84; VALUES[:VK_U] = 85; VALUES[:VK_V] = 86; VALUES[:VK_W] = 87; VALUES[:VK_X] = 88 VALUES[:VK_Y] = 89; VALUES[:VK_Z] = 90; LETTERS = [:VK_A,:VK_B,:VK_C,:VK_D,:VK_E,:VK_F,:VK_G,:VK_H,:VK_I,:VK_J, :VK_K,:VK_L,:VK_M,:VK_N,:VK_O,:VK_P,:VK_Q,:VK_R,:VK_S,:VK_T, :VK_U,:VK_V,:VK_W,:VK_X,:VK_Y,:VK_Z] VALUES[:NUM0] = 48; VALUES[:NUM1] = 49; VALUES[:NUM2] = 50; VALUES[:NUM3] = 51; VALUES[:NUM4] = 52; VALUES[:NUM5] = 53; VALUES[:NUM6] = 54; VALUES[:NUM7] = 55; VALUES[:NUM8] = 56; VALUES[:NUM9] = 57; VALUES[:PAD0] = 96; VALUES[:PAD1] = 97; VALUES[:PAD2] = 98; VALUES[:PAD3] = 99; VALUES[:PAD4] = 100; VALUES[:PAD5] = 101; VALUES[:PAD6] = 102; VALUES[:PAD7] = 103; VALUES[:PAD8] = 104; VALUES[:PAD9] = 105; NUMBERS = [:NUM0,:NUM1,:NUM2,:NUM3,:NUM4,:NUM5,:NUM6,:NUM7,:NUM8,:NUM9] NUMPAD = [:PAD0,:PAD1,:PAD2,:PAD3,:PAD4,:PAD5,:PAD6,:PAD7,:PAD8,:PAD9] VALUES[:ENTER] = 13; VALUES[:SPACE] = 32; VALUES[:ESC] = 27; VALUES[:BACK] = 8; VALUES[:PGUP] = 33; VALUES[:PGDN] = 34; VALUES[:CAPS] = 20;#TODO: aggiungere tags per punteggiatura #-------------------------------------------------------------------------- # initial module settings - Created by OriginalWij and Yanfly #-------------------------------------------------------------------------- GetKeyState = Win32API.new("user32", "GetAsyncKeyState", "i", "i") GetCapState = Win32API.new("user32", "GetKeyState", "i", "i") KeyRepeatCounter = {} module_function #-------------------------------------------------------------------------- # alias method: update - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def update ow_dt_i_update for key in KeyRepeatCounter.keys if (GetKeyState.call(VALUES[key]).abs & 0x8000 == 0x8000) KeyRepeatCounter[key] += 1 else KeyRepeatCounter.delete(key) end end end #-------------------------------------------------------------------------- # alias method: press? - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def press?(key) return ow_dt_i_press(key) if !VALUES.has_key?(key) return true unless KeyRepeatCounter[key].nil? return key_pressed?(key) end #-------------------------------------------------------------------------- # alias method: trigger? - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def trigger?(key) return ow_dt_i_trigger(key) if !VALUES.has_key?(key) count = KeyRepeatCounter[key] return ((count == 0) or (count.nil? ? key_pressed?(key) : false)) end #-------------------------------------------------------------------------- # alias method: repeat? - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def repeat?(key) return ow_dt_i_trigger(key) if !VALUES.has_key?(key) count = KeyRepeatCounter[key] return true if count == 0 if count.nil? return key_pressed?(key) else return (count >= 23 and (count - 23) % 6 == 0) end end #-------------------------------------------------------------------------- # new method: key_pressed? - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def key_pressed?(key) if (GetKeyState.call(VALUES[key]).abs & 0x8000 == 0x8000) KeyRepeatCounter[key] = 0 return true end return false end #-------------------------------------------------------------------------- # new method: typing? - Created by Yanfly and Keroro #-------------------------------------------------------------------------- def typing? return true if repeat?(:SPACE) for key in LETTERS return true if repeat?(key) end for key in NUMBERS return true if repeat?(key) end return false end #-------------------------------------------------------------------------- # new method: key_type - Created by Yanfly and Keroro #-------------------------------------------------------------------------- def key_type return " " if repeat?(:SPACE) for key in LETTERS next unless repeat?(key) return upcase? ? key.to_s[3].upcase : key.to_s[3].downcase end for key in NUMBERS return key.to_s[3] if repeat?(key) end for key in NUMPADS return key.to_s[3] if repeat?(key) end return "" end #-------------------------------------------------------------------------- # new method: upcase? - Created by Yanfly #-------------------------------------------------------------------------- def upcase? return !press?(:SHIFT) if GetCapState.call(VALUES[:CAPS]) == 1 return true if press?(:SHIFT) return false endend #Input#===============================================================================# Window_NameEdit#===============================================================================class Window_NameEdit < Window_Base #-------------------------------------------------------------------------- # overwrite method: initialize #-------------------------------------------------------------------------- def initialize(actor, max_char) dw = Graphics.width - 176 dy = (Graphics.height - 128) / 2 if $game_message.visible difference = Graphics.height - 128 case $game_message.position when 0; dy += 64 when 1; dy += 0 when 2; dy -= 64 end end super(88, dy, dw, 128) @actor = actor @name = actor.name @max_char = max_char name_array = @name.split(//)[0...@max_char] @name = "" for i in 0...name_array.size @name += name_array[i] end @default_name = @name @index = name_array.size self.active = false refresh end #-------------------------------------------------------------------------- # overwrite method: item_rect #-------------------------------------------------------------------------- def item_rect(index) if index == @max_char rect = Rect.new(0, 0, 0, 0) else rect = Rect.new(0, 0, 0, 0) rect.x = 112 + index * 12 rect.y = 36 rect.width = 24 rect.height = line_height end return rect endend # Window_NameEdit#===============================================================================# Scene_Base#===============================================================================class Scene_Base #-------------------------------------------------------------------------- # new method: name_entry #-------------------------------------------------------------------------- def name_entry(actor_id, max_char) @name_actor_id = actor_id @name_entry_max = max_char start_name_entry end_name_entry end #-------------------------------------------------------------------------- # new method: start_name_entry #-------------------------------------------------------------------------- def start_name_entry Graphics.freeze actor = $game_actors[@name_actor_id] @edit_window = Window_NameEdit.new(actor, @name_entry_max) Graphics.transition(10) loop do update_name_entry if Input.repeat?(:BACK) and @edit_window.index > 0 Sound.play_cancel @edit_window.back elsif Input.typing? and @edit_window.index != @edit_window.max_char Sound.play_cursor @edit_window.add(Input.key_type) elsif Input.trigger?(:ENTER) Sound.play_ok actor.name = @edit_window.name break elsif Input.trigger?(:ESC) Sound.play_cancel break end end end #-------------------------------------------------------------------------- # new method: update_name_entry #-------------------------------------------------------------------------- def update_name_entry Graphics.update Input.update if SceneManager.scene.is_a?(Scene_Map) $game_map.update @spriteset.update elsif SceneManager.scene.is_a?(Scene_Battle) Graphics.update Input.update $game_system.update $game_troop.update @spriteset.update @message_window.update end @edit_window.update end #-------------------------------------------------------------------------- # end_name_entry #-------------------------------------------------------------------------- def end_name_entry @edit_window.dispose @edit_window = nil @name_actor_id = nil @name_entry_max = nil endend # Scene_Base#===============================================================================# Game_Interpreter#===============================================================================class Game_Interpreter #-------------------------------------------------------------------------- # overwrite method: command_303 (Name Input Processing) #-------------------------------------------------------------------------- def command_303 if $data_actors[@params[0]] != nil SceneManager.scene.name_entry(@params[0], @params[1]) end @index += 1 return false endend # Game_Interpreter Incompatibilità:Nessuna incompatibilità
       
      Note dell'Autore:
      In modalità finestra il mouse compare e scompare, a schermo intero invece resta nascosto.
×