-
Posts
68 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by DarkSchneider
-
-
PAPER EFFECT
Descrizione
Come scritto nel titolo questo script crea un effetto tipo foglio di carta come in Paper Mario
Autore
DarkSchneider
Allegati
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ò
-
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
-
nell help di rpgmaker c è tutto tutto
-
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
-
basta che togli i due stop animation
-
Si senno non lo postavo :) se non ti funziona fammi sapere
praticamente la direzione dell animazione da fermo deve corrispondere con quella della camminata
-
Hai ragione mi sono dimenticato di rimettere tutto a posto mentre programmavo non avevo voglia di rivedermi sempre l intro :)
-
http://img230.imageshack.us/img230/2589/animd4.png
volendo puoi anche aggiungere gli altri tasti
stop animation sarebbe move animation da me sono invertiti
-
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
-
crea una variabile frame-di-attesa = 0 poi per attaccare fai
if frame-di-attesa == 0
if tasto C premuto
ecc..
frame-di-attesa = (un numero qualsiasi)
poi nell evento parallelo che gestisce il combattimento metti
if frame-di-attesa > 0
sottrai 1 a frame-di-attesa
-
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è)
-
Sono già al lavoro... il problema non è la programmazione ma l'ispirazione :)
-
anch'io preferirei l'xp è l'unico rpgmaker che ho
-
anch io vorrei partecipare
-
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
-
si avevo letto il post che hai cancellato credo :) stavo anche per rispondere (il problema erano gli or probabilmente)
-
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 endvolendo puoi anche cambiare il font delle di miss e critical il dove c è arial black
-
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
-
-
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
-
if (@flag == 0) @sprite.y -=1 if (@sprite.y == -400) @flag = 1 end endpero se il movimento dell immagine è cosi semplice potresti ottimizzare cosi
if (@sprite.y > -400) @sprite.y -=1 end
-
cosa intendi per si comincia a giocare? quello script ti manda al titolo
-
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")
-
l IF lo devi mettere in scene map dentro def call_battle per i bgm e in scene_battle 2 in def start_phase5 per l se

Eventi comuni...
in Supporto XP
Posted