sorcioni
-
Posts
161 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by sorcioni
-
-
Allora posto la demo ... però mi sorge un dubbio come si fa?XD
-
Allora stavo cercando di creare tramite eventi un sistema di 4 icone che stanno sullo schermo e che si illuminano se selezionate(per selezionare uso le frecce giù e su) quindi ho creato un evento composto di 4 pagine,poi ho messo delle conditional branch tipo se premi SU cambia la picture dell'icona cioè io ho 4 icone A B C D il tutto parte con l'icona A selezionata quando premo giù teoricamente A dovrebbe diventare normale e B dovrebbe passare allo stato di "selezionata" e così via con tt le combinazioni solo che nn funziona
praticamente le icone di selezionano e tornano normali troppo velocemente e a volte risultano più icone selezionate contemporaneamente,oppure premo GIÙ e dall'icona A passa all'icona D senza passare per B e C...Non so se mi sono spiegato bene xD è un po' difficile a parole...in caso posterò una demo...
Grazie a tutti =D
-
Per come lo hai descritto forse ti viene bene creare ad eventi un BS personalizzato su mappa dove ogni creatura ha un potere diverso e lo utilizza per sbarazzarsi dei nemici o per...ad esempio la creatura possente sposta rocce, quella affine all' acqua ti permette di navigare, una spara fuoco contro i nemici o per accendere torcie, ecc...
Non necessariamente hai bisogno di lunghi combattimenti, con qualche colpo fatto bene (esempio fuoco contro nemici a cubetto di ghiaccio) stendi il nemico (che magari ti blocca l' entrata).
^ ^
credo che riunirò i poteri per eliminare gli ostacoli nel Player che guida le proprie creature e utilizzerò lo SBABS così che la "creature" combatte per conto proprio utilizzando un paio di skill (penso massimo 5)
-
mmm effettivamente nn avevo pensato che il tattico con solo un pg diventa noioso certo nel mio progetto si potranno avere fino a un massimo di 4 creature ma credo che cmq nn cambi molto la cosa....forse riprenderò in considerazione quello in tempo reale,credo che utilizzerò il Bs in tempo reale con comandi che puoi dare a tutto il party...ci devo riflettere bene xD
Anche perchè la parte della gestione e della crescita della "creatura" l'ho già completata quindi mancano le quest e poi la sostituzione della grafica che c'è adesso con quella definitiva
-
Grazie a tutti per le risposte!(specialmente Axel)
Cmq per i primi che hanno risposto volevo solo dire che avevo già fatto delle ricerche e avevo trovato diversi Bs ma nn ero sicuro di averli trovati tutti....ma capisco le vostre risposte =)
P.S
Credo cmq che utilizzerò o quello standard un po' modificato o uno tattico,quello in tempo reale non mi convince molto ...
-
Buona sera a tutti eccomi ancora con un altro post....non so se è la sezione giusta quindi chiedo poi in caso spostate =)
Mi servirebbe un elenco di tt i tipi di Bs per VX(possibilmente con lo script o la demo allegata) visto che devo scegliere che stile di combattimento usare nel mio tamagotchi :D
-
Posto ancora per chiedervi se qualcuno è capace di ricostruire attraverso script un BS come quello di chaos faction(chaos faction è un gioco in flash secondo me molto carino) non è una cosa urgente ma sarebbe molto interessante riuscire a emulare quel tipo di BS sopratutto per il mio prog :D
Grazie a tutti
-
ma sapete se qualkuno ha fatto anche i charset?
-
io sono sempre pronto quando vuoi...
calcola che mi servono i chara di battler che ho trovato qui sul forum .... quindi devi farli quasi da zero....
-
Per quando li vuoi?
Humm ma sinceramente nn mi servono subito cioè prima posso pensare al progetto e usare i pg prestabiliti e poi sostituirli con quelli finali quindi l'importante è sapere se qualcuno lo può fare e se ci si può dedicare un minimo :D
-
Cerco qualcuno capace di disegnare charset da un battler....cioè i ho circa 245 battler e alcuni mi servirebbero in versione charset,qualcuno lo sa fare?E sopratutto qualcuno ne ha voglia?
-
Puoi usare quante picture vuoi, 20 è il limite massimo di picture visualizzate contemporaneamente, al numero uno puoi assegnare quante picture vuoi, quelle che hai assegnato prima verranno sovrascitte, ma potrai sempre assegnarle di nuovo ad un numero od allo stesso numero uno.
^ ^
Ad esempio per la barra HP puoi assegnare alle picture sempre lo stesso numero, tanto quelle prima devono venire sovrascritte e di loro non c' è più bisogno; spero che tu non abbia più di 20 barre sullo schermo! XD
^ ^
Quindi se ti servono dieci picture per 10 barre (ipotesi) basta assegnare alla barra hp sempre la picture n.1, a quella mp sempre la n.2 e così via fino a 10
^ ^
Ok grz mille così posso terminare le basi del progetto e dedicarmi al resto XD
-
Perchè ti servono 100 picture 0_o? Tutte contemporanamente 100 picture?
no non tutte contemporaneamente solo 10 insieme...
-
Oddio raga ho un problemone O.O in tutto rpgmaker mi fa settare solo 20 pictures ma a me ne servono circa 100 O.O come faccio????
-
Lunga discussione in questo topic per le barre, anche se si tratta di 2k3 il principio è lo stesso ed i comandi sono simili.
Tratta della barra HP, ma puoi facilmente creare le altre a partire da quella modificando variabili od utilizzando altre statistiche
^ ^
Grazie mille :D
-
Mi vergogno a chiederlo XD...ma stavo cercando di settare le varie barre Vita cibo sonno ecc ecc ma non mi compaiono praticamente nn riesco a far si che le barre compaiono ad un certa coordinata nelle mappe e che siano visibili ...
-
Eeeeh dai non essere così arrendevole, hai detto che con gli eventi ci sai fare un po', mettici un poco più di impegno e tempo, magari esce fuori qualcosa di carino; lo sai per fare un buon gioco ci vuole impegno, perdici qualche giorno, ne vale la pena, anche solo per vedere i tuoi limiti (che puoi sempre superare con un altro po' di impegno :D)!
^ ^
eh lo so .... prima o poi mi ci metterò ma ho anche altre cose di cui occuparmi :D
-
Basta fare un chara che cambia in base all'arma equipaggiata.
Cioè crei "Actor1" quando il tuo pg è senza armi
crei "Actor1_001" quando il tuo pg ha equipaggiata la prima arma
So che è una cosa pallosa, ma se usi i chara di kaduki, non vedo altra soluzione...
Faccio prima a mandare a farsi fottere il D20 :D
-
Per le icon con le armi basta modificare i chara applicandogli sopra l'icon dell'arma.
Per attaccare, ti basta far vedere il pg che si avvicina al nemico, che esegue l'animazione di attacco, e con il controllo variabili, modifichi gli HP del nemico sottraendogli i danni (non mi ricordo quale sia l'equazione per determinare il danno, ma potresti inventartela tu).
Si si in teoria è fattibile ma ad esempio io ho il BS che a seconda dell'arma equipaggiata fa vedere un icon diversa che attacca e poi con lo script è molto più facile XD
-
Hai due possibilità:
1- Modifichi lo script
2- Ti crei un bs ad eventi in modo da poter organizzare tutto come vuoi tu
Io ti consiglierei di seguire il secondo passo, visto che sugli script sei a -5 xD
Però come ha scritto sopra Lollo, se ancora non sei bravo ad eventi, lascia perdere
Mah con gli eventi me la cavicchio però ma nn al punto di fare un BS laterale che usa le icon come armi e per attaccare XD
Cmq se a qualcuno servono ho già pronte le immagini del D6
-
Allora lo script ti permette di mostrare un testo in una piccola finestra quando il cursore del mouse è su un determinato evento. Dovresti inserire un commento in un evento che cominci per [M] e poi il testo da mostrare. Alla linea 45 dovrebbero esserci dei comandi d configurazione epr lo script, credo grandezza del testo, della finestra, la windowskin etc... Hey io ho studiato francese in terza media quindi figurati xD però questo con un po' di intuizione è abbastanza comprensibile :P
ah ok grazie mille:D Peccato però, a me serviva che faceva attivare un evento e non un testo uffaXD
-
Non puoi provarlo e basta? Poi sei troppo vago... Quali sono i tuoi problemi?
Il problema è che non lo capisco cioè credo che ci sia bisogno di settare qualcosa anche perché provandolo lo script nn fa nnt eppure da quello che ho capito dovrebbe permettermi di attivare eventi a distanza o roba simile
-
=D lo si conosce abbastanza bene... o meglio "lo si conosceva" fortunatamente... vattelo a cercare su qualche sito di pixelart il ragazzino, che qui non ci bazzica più molto U.U
Ok grazie ...cmq lo cerco perchè lui era riuscito a fare tramite eventi molte funzioni che mi servono per il progetto....ma come mai nn si connette più?o.O
-
Ho trovato su un sito postato qui sul forum uno script che credo possa risolvere i miei problemi :D
Lo posto sotto spoiler
#------------------------------------------------------------------------
# MouseOver Version 1.3
# RPG Maker VX
#
# Auteur : Samarium
#
# Créé le 12 Février 2008
#
#
# Fonction : Permet d'afficher une fenêtre contenant un texte sur
# un ou des évènement(s) lors du passage de la souris
# sur ce dernier
#
# Utilisation : Très facile ! Faites un commentaire commençant par [M]
# suivit du texte dans l'/les évènement(s) de votre choix.
# Allez vers la ligne 45 pour changer certaines propriétés.
#
# Site : www.rpgcreative.net
#
# Remarque : Script disponible aussi sous RPG Maker XP
#
#------- Modification ---------
# Modifié le 27/03/08
# - Correction des incompatiblités (Remerciement à Siegfried pour quelques éclairements)
# - Correction d'un bug : Affichage selon le déplacement de l'évènement
# - Correction d'un bug : Affichage lorsqu'il y a un changement de map
#
# Modifié le 13/02/08
# - Position de la fenêtre fixe (sur l'évènement) ou mobile (sur la souris)
# - Possibilité de mettre un son
# - Fonctionnalité de \N[x] et \V[x]
#
# Modifié le 12/02/08
# - Correction d'un bug : Affichage de la fenêtre pour tous les évènements
# - Correction d'un bug : Commentaire sans message commençant par [M]
# - Optimation de la vitesse d'éxécution du script
# - Fusionnement de la modification du script Scene_Map avec ce script
#------------------------------------------------------------------------
def defaut
return "Window"
end
# ------------------ A définir -------------------
FONT_SIZE = 16 # La taille du texte
FONT_FACE = "Arial" # Police du texte
WINDOWSKIN = defaut # Le nom du Windoskin. Mettez "defaut" (sans les guillemets) pour afficher le Windowskins par défaut.
# Mettez la couleur RGB du texte. Mettez 0 pour tous pour la couleur noire et 255 pour la couleur blanche
COLOR_RED = 255
COLOR_BLUE = 255
COLOR_GREEN = 255
OPACITY = 160 # Opacité de la fenêtre
SON = false # Le nom du fichier son. Mettez "false" (sans les guillemets) pour ne pas mettre de son
FIX = true # "true" pour fixer la fenêtre sur l'évènement et "false" pour la rendre mobile : fenêtre suit la souris
# ------------------------------------------------
#---------------------------------------------------------------------
# Game_Search_Event
#
# Permet, dès le départ, chercher tout les évènements ayant un
# commentaire commençant par [M] et de les enregistrer dans un
# tableau (ID de l'évènement et message)
#---------------------------------------------------------------------
class Game_Search_Event
def initialize
# initialisation des variables
@element_event = {}
@map = load_data(sprintf("Data/Map%03d.rvdata", $game_map.map_id))
@nb_event = @map.events.size
@tab_event = @map.events.values # Retourne les valeurs du Hash dans un tableau
main
end
def main
for i in 0..@nb_event - 1
# Prend le contenu de la page de chaques évènements
event = @tab_event
pages = event.pages
for page in event.pages
# Prend la liste et le code de la commande d'évènement
list = page.list
code = cod(list)
# Si le code est celui que l'on veut
if code[0]
event_id = event.id
message = code[1]
# Ajoute dans un Hash, l'ID et le message de l'évènement
@element_event[event_id] = message
end
end
$search_finish = $game_map.map_id
end
end
def element_event_id
return @element_event.keys # Array
end
def element_event_message(event)
return @element_event[event] # String
end
def element_event_size
return @element_event.size # Integer
end
def cod(list)
# initialisation des variables
for index in 0...list.size
parameters = list[index].parameters
# Si la commande est un commentaire et commence par [M]
if list[index].code == 108 and commentaire(parameters[0])
message_text = parameters[0] + "\n"
# Ajoute aux messages les lignes suivantes
for line_count in 1..5
if list[line_count] != nil
if list[index + line_count].code == 408
message_text += text_sub(list[index + line_count].parameters[0]) + "\n"
end
end
end
return true, message_text
end
end
return false, false
end
def commentaire(text)
# Cherche le [M] et l'efface
text.gsub!(/[\[Mm]\]/) { "\001" }
while ((c = text.slice!(/./m)) != nil)
if c == "\001"
text.sub!(/[\[Mm]\]/, "")
text_sub(text)
return true
end
end
return false
end
# Remplace \N[x] par le nom du héros d'ID x et \V[x] par la variable x
def text_sub(text)
begin
last_text = text.clone
text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
end until text == last_text
text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end
return text
end
end
#---------------------------------------------------------------------
# Mouse
#
# Reprise du module Mouse créé par Cybersam et édité par Astro_mech
# Calcule et retourne la position X et Y de la souris sur l'écran
#
#---------------------------------------------------------------------
module Mouse
gsm = Win32API.new('user32', 'GetSystemMetrics', 'i', 'i')
@cursor_pos = Win32API.new('user32', 'GetCursorPos', 'p', 'i')
module_function
def mouse_global_pos
pos = [0, 0].pack('ll')
if @cursor_pos.call(pos) != 0
return pos.unpack('ll')
else
return nil
end
end
def mouse_pos(catch_anywhere = false)
x, y = screen_to_client(*mouse_global_pos)
width, height = client_size
# if catch_anywhere or (x >= 0 and y >= 0 and x < width and y < height)
return x, y
# else
# return $m.x, $m.y
# end
end
def del
if @oldcursor == nil
return
else
@SetClassLong.call(handel ,-12, @oldcursor)
@oldcursor = nil
end
end
end
$scr2cli = Win32API.new('user32', 'ScreenToClient', %w(l p), 'i')
$client_rect = Win32API.new('user32', 'GetClientRect', %w(l p), 'i')
$readini = Win32API.new('kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l')
$findwindow = Win32API.new('user32', 'FindWindowA', %w(p p), 'l')
def screen_to_client(x, y)
return nil unless x and y
pos = [x, y].pack('ll')
if $scr2cli.call(hwnd, pos) != 0
return pos.unpack('ll')
else
return nil
end
end
def hwnd
game_name = "\0" * 256
$readini.call('Game','Title','',game_name,255,".\\Game.ini")
game_name.delete!("\0")
return $findwindow.call('RGSS Player',game_name)
end
def client_size
rect = [0, 0, 0, 0].pack('l4')
$client_rect.call(hwnd, rect)
right, bottom = rect.unpack('l4')[2..3]
return right, bottom
end
#---------------------------------------------------------------------
# Game_Pos_Screen_Event
#
# Calcul la position de l'évènement non par rapport à la carte
# mais selon l'écran.
#---------------------------------------------------------------------
class Game_Pos_Screen_Event
def initialize
# Initialisation
@x = @y = @real_x = @real_y = 0
@map = load_data(sprintf("Data/Map%03d.rvdata", $game_map.map_id))
end
def calcul_pos_event(event_id = 1)
# Prend la position de l'évènement
event = $game_map.events[event_id]
pos_x_event = event.x
pos_y_event = event.y
# Calcule la position relative à l'écran
@x = pos_x_event % @map.width
@y = pos_y_event % @map.height
@real_x = @x * 256
@real_y = @y * 256
end
def screen_x
return ($game_map.adjust_x(@real_x) + 8007) / 8 - 1000 + 16
end
def screen_y
return ($game_map.adjust_y(@real_y) + 8007) / 8 - 1000 + 32
end
end
#---------------------------------------------------------------------
# Game_Pos_Screen_Mouse
#
# Retourne les positions de la souris grâce au module Mouse
#---------------------------------------------------------------------
class Game_Pos_Screen_Mouse
def initialize
@pos_x_mouse = @pos_y_mouse = 0
end
def screen_x
return @pos_x_mouse = Mouse.mouse_pos[0]
end
def screen_y
return @pos_y_mouse = Mouse.mouse_pos[1]
end
end
#---------------------------------------------------------------------
# Window_MouseOver
#
# Affichage de la fenêtre MouseOver. Calcule la taille de la feêtre
# selon la taille du texte.
#---------------------------------------------------------------------
class Window_MouseOver < Window_Base
def initialize
super(0, 0, 64, 64)
@height = @width = 64
end
def refresh(text)
# initialisation
x = y = lign_size = max_size = 0
self.contents = Bitmap.new(@width - 32, @height - 32)
self.contents.font.name = FONT_FACE
self.contents.font.size = FONT_SIZE
self.windowskin = Cache.system(WINDOWSKIN)
self.contents.font.color = Color.new(COLOR_RED,COLOR_BLUE, COLOR_GREEN, 255)
self.opacity = OPACITY
self.contents.clear
ctab = text.scan(/./m)
for i in 0..ctab.size - 1
if ctab == "\n"
# Prend la ligne la plus grande (pour la taille de la fenêtre)
if lign_size > max_size
max_size = lign_size
end
lign_size = x = 0
y += 1
next
end
lign_size += self.contents.text_size(ctab).width
taille_height = self.contents.text_size(ctab).height
# Affichage du texte
self.contents.draw_text(x, taille_height * y, 20, 20, ctab)
x += self.contents.text_size(ctab).width
end
# Calcule de la taille de la fenêtre
@height = self.height = taille_height * y + 32
@width = self.width = max_size + 32
# Affichage si la taille du contenu de la Bitmap (- 32px) est égal à la taille de la fenêtre
if self.contents.width == @width - 32 and self.contents.height == @height - 32
self.visible = true
else
self.visible = false
end
end
def width_window
return self.width
end
def height_window
return self.height
end
end
#---------------------------------------------------------------------
# Scene_Map
#
# Reprise du scritp Scene_Map avec des parties rajoutées
# Affiche la fenêtre sur la carte.
#---------------------------------------------------------------------
class Scene_Map
# Définition des alias pour la classe Scene_Map
alias new_start start
alias new_update update
alias new_terminate terminate
alias new_fadein fadein
def start
$search_finish = 0
@map = load_data(sprintf("Data/Map%03d.rvdata", $game_map.map_id))
@mouseover_window = Window_MouseOver.new
@mouseover_window.visible = false
@event_memoire = 0
new_start
end
def terminate
@mouseover_window.dispose
new_terminate
end
def fadein(duration)
@mouseover_window.visible = false
new_fadein(duration)
end
def update
@mouseover_window.update
# Cherche les évènements commentés commençant par [M]
if $search_finish != $game_map.map_id # Cette condition permet de chercher seulement une fois les évènements par map
$game_search_event = Game_Search_Event.new
@event_tab = $game_search_event.element_event_id
end
# Positions X et Y de la souris sur l'écran
$game_pos_screen_mouse = Game_Pos_Screen_Mouse.new
mouse_x = $game_pos_screen_mouse.screen_x
mouse_y = $game_pos_screen_mouse.screen_y
# Positions X et Y des évènements sur l'écran
$game_pos_screen_event = Game_Pos_Screen_Event.new
element_event_size = $game_search_event.element_event_size
# Parcours le tableau contenant les évènements à afficher
for i in 0..element_event_size - 1
event = @event_tab
# Calcul la position de l'évènement relative à l'écran
$game_pos_screen_event.calcul_pos_event(event)
event_x = $game_pos_screen_event.screen_x
event_y = $game_pos_screen_event.screen_y
# Si la souris est sur l'évènement (carreau de 32*32)
if mouse_x != nil and mouse_y != nil # Evite de tester une position nulle de la souris
if mouse_x <= (event_x + 16) and mouse_x >= (event_x - 16)
if mouse_y <= (event_y) and mouse_y >= (event_y - 32)
if @event_memoire != event and SON != false
$game_system.se_play(SON)
end
# Affiche la fenêtre avec le message de l'évènement et à ses positions
text = $game_search_event.element_event_message(event)
if text.size != 1
@mouseover_window.refresh(text)
end
# Calcul la position X et Y à afficher afin d'éviter que l'écran coupe la fenêtre
width_window = @mouseover_window.width_window
height_window = @mouseover_window.height_window
if FIX
if (width_window + event_x) > 544
@mouseover_window.x = event_x - width_window
else
@mouseover_window.x = event_x
end
if (height_window + event_y) > 416
@mouseover_window.y = event_y - height_window - 16
else
@mouseover_window.y = event_y - 16
end
else
if (width_window + event_x) > 544
@mouseover_window.x = mouse_x - width_window
else
@mouseover_window.x = mouse_x
end
if (height_window + event_y) > 416
@mouseover_window.y = mouse_y - height_window
else
@mouseover_window.y = mouse_y
end
end
# Retient en mérmoire l'ID de l'évènement
@event_memoire = event
# Si la souris n'est plus sur l'évènement
elsif @event_memoire == event
@mouseover_window.visible = false
@event_memoire = 0
end
elsif @event_memoire == event
@mouseover_window.visible = false
@event_memoire = 0
end
else
@mouseover_window.visible = false
end
end
new_update
end
end

PROBLEMA CON UN EVENTO :S
in Supporto VX e VX-Ace
Posted
veramente il dubbio è proprio come si posta una demo XD