Jump to content
Rpg²S Forum

DarkSchneider

Utenti
  • Posts

    68
  • Joined

  • Last visited

Posts posted by DarkSchneider

  1. devi usare button input processing (prima pagina degli eventi, quinto comnado partendo dall'alto) poi poi un if [variabile che hai usato per il button blablabla] uguale a 13 (ovvero il tasto C)
  2. PAPER EFFECT

     

    Descrizione

    Come scritto nel titolo questo script crea un effetto tipo foglio di carta come in Paper Mario

     

    Autore

    DarkSchneider

     

    Allegati

    demo

     

    ricordatevi di mettere il font nella cartella C:\windows\font (se non lo mettete verrà utilizzato il font di base di rmxp)

     

    Istruzioni per l'uso

    una volta inserito lo script entrerà automaticamente in funzione.

     

    con i seguenti comandi si puo modificare le impostazioni dello script:

     

    $paper.collapse = true o paper.collapse = false attiva o disattiva l'effetto carta sulla morte dei nemici

     

    $paper.flip = true o $paper.flip = false attiva o disattiva l'effetto carta sul movimento del player e degli eventi

     

    $paper.on o $paper.off attiva o disattiva contemporaneamente i due effetti

     

    $paper.font = "ilfontchevipiace" modifica il font del danno mostrato in battaglia

     

    questi comandi vanno inseriti tramite call script

     

     

    Altri cose da sapere:

     

    per cambiare l'immagine della stella quando viene mostrato il danno creare un'immagine e rinominarla damage_pic e importarla nella cartella pictures

     

    se non volee nessuna immagine durante la visualizzazione del danno basta togliere l immagine dalla cartella pictures

     

    Screenshot

     

     

    http://img527.imageshack.us/img527/387/screenshotvj6.gif

     

     

    Note

     

    l'animazione della stella fa abbastanza schifo prima o poi la migliorerò

  3. 40 frames (se non si modifica il frame rate con Graphics.frame_rate) sono un secondo pero se si inserisce un wait da evento 20 frames sono un secondo

     

    i frames vengono raddoppiati dal programma

     

      #--------------------------------------------------------------------------
     # * Wait
     #--------------------------------------------------------------------------
     def command_106
       # Set wait count
       @wait_count = @parameters[0] * 2
       # Continue
       return true
     end

  4. devi cambiare le coordinate di creazione dello sprite

     

    sprite.ox per la x

    sprite.oy per la y

     

    il punto di origine deve essere il centro dello sprite

     

    sprite.ox = sprite.bitmap.width / 2

    sprite.oy = sprite.bitmap.height / 2

  5. ti serve una variabile che controlla il tempo tra un attacco e l altro

     

    per prima cosa devi mettere un controllo in un evento in processo parallelo (se c hai gia un processo parallelo che controlla la battaglia, gli hp ecc. usa quello cosi non rallenti troppo il gioco)

     

    IF:variabile [tempodiattesa] > 0

    controllo variabile [tempodiattesa] -= 1

    end

     

    poi nel punto dove probabilmente avrai messo

     

    IF:tasto C è premuto

    ecc..

    end

     

    devi modificare cosi

     

    IF:controllo variabile [tempodiattesa] == 0

    IF:tasto C è premuto

    esegui animazioni, danni ecc..

    controllo variabile [tempodiattesa] = 10 (un numero di frame scelto da te per l attesa)

    end

    end

     

    senza dimenticarti che devi inizializzare la variabile a 0 prima di entrare nella mappa senno puo darsi che non funziona

     

    in questo modo quando il pg attacca tempodiattesa deve tornare a 0 (con il processo parallelo) prima di poter riattaccare rimanendo libero di muoversi

  6. Lavoro spedito :P

     

    Scusate per l'attesa non avevo molta voglia e ispirazione per fare un intro preferisco fare un bs in tempo reale :)

     

    DracoMT2 spero si capisca che sono innammorati i 2 protagonisti della scena :D senza poter modificare minimamente la grafica è risultato un difficile ottenere quello che volevo

     

    Ah una curiosità... terrai conto anche del mapping nella valutazione? (perchè non è un granchè)

  7. L unico oggetto che ti serve è per la carta e contiene numero, seme e un variabile booleana per indicare se la carta è scoperta poi crei 2 array uno per il mazzo da cui pescare e uno per i scarti; 4 array(o un matrice) per le carte riordinate e 7 array (o una matrice) per le colonne

     

    La disposizione delle carte nel mazzo e nelle colonne le fai naturalmente con i numeri random passando carta per carta per ogni seme facendo attenzione a quelle che devi lasciare scoperte

     

    il motore del gioco è semplice (credo) prendi una carta dal mazzo (l ultimo elemento dell array) lo sposti negli scarti (nella prima cella dell array scarti spostando altri eventuali elementi presenti di una cella) poi controlli le colonne: se si cerca di mettere la carta sotto un altra si scorre l array di quella colonna fino a trovare l ultima carta scoperta controlli seme e numero quindi aggiungi il primo elemento dell array scarti nella prima cella vuota dell array colonna oppure un suono di errore e rimane tutto invariato

     

    spero di non averci lasciato nulla è il primo procedimento che mi è venuta in mente

  8. per miss devi andare in game_battler alla riga 91 per critical inserisci questo script e modifica tutte le scritte CRITICAL

     

    module RPG
     class Sprite < ::Sprite
    def damage(value, critical)
         dispose_damage
         if value.is_a?(Numeric)
           damage_string = value.abs.to_s
         else
           damage_string = value.to_s
         end
         bitmap = Bitmap.new(160, 48)
         bitmap.font.name = "Arial Black"
         bitmap.font.size = 32
         bitmap.font.color.set(0, 0, 0)
         bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
         bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
         bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
         bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
         if value.is_a?(Numeric) and value < 0
           bitmap.font.color.set(176, 255, 144)
         else
           bitmap.font.color.set(255, 255, 255)
         end
         bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
         if critical
           bitmap.font.size = 20
           bitmap.font.color.set(0, 0, 0)
           bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
           bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
           bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
           bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
           bitmap.font.color.set(255, 255, 255)
           bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
         end
         @_damage_sprite = ::Sprite.new(self.viewport)
         @_damage_sprite.bitmap = bitmap
         @_damage_sprite.ox = 80
         @_damage_sprite.oy = 20
         @_damage_sprite.x = self.x
         @_damage_sprite.y = self.y - self.oy / 2
         @_damage_sprite.z = 3000
         @_damage_duration = 40
       end
    end

     

    volendo puoi anche cambiare il font delle di miss e critical il dove c è arial black

  9. lo puoi fare con gli eventi comuni basta che in ogni mappa quei 12 eventi abbiano sempre lo stesso id (mappa 1 id evento ecc mappa2 id evento 1, 2, 3) tramite script il metodo piu veloce che mi viene al momento sarebbe memorizzare le coordinate del pupazzo controllato (quando avviene lo scambio) poi fare in game_player

     

    case Input.dir4

    when 2

    if @daimon

    if @y < coordinate y salvata + numero massimo di tile di movimento

    move_down

    end

    else

    move_down

    end

    when 4

    move_left

    when 6

    move_right

    when 8

    move_up

    end

     

    fatto per tutte le direzioni con le opportune modifiche (sta cosa non è testata :) anche perche il tuo primo problema non ho capito come l hai risolto se praticamente l oggetto posseduto è un evento o è sempre il player)

     

    EDIT: devi aggiungere anche un flag tipo @daimon = true o false

  10. Se vuoi usare un font diverso da quelli base di windows creando pochi casini usa questo

     

    Font.default_name = ["blablabla", "Times New Roman"]

     

    cosi se non trova il primo font usa il secondo e il testo si legge lo stesso

  11. ti da errore perche la variabile game_system in scene_pretitle non è stata creata (tutte le informazioni del database e le variabili globali vengono caricate in scene_title) pero darebbe errore cmq in quanto non si puo passare una stringa a bgm_play

    per risolvere insomma usa Audio.bgm_play("Audio/BGM/" + "nomecanzone")

×
×
  • Create New...