Jump to content
Rpg²S Forum

roste91

Utenti
  • Posts

    16
  • Joined

  • Last visited

Posts posted by roste91

  1. Beh... L'ambientazione è tratta da una collana di libri ma la storia sarà completamente inventata da me. I fatti che accadranno nel gioco saranno come una storia alternativa.

    O meglio ora che ci penso mi piacerebbe farla contemporaneamente a quella dei libri: nuovi personaggi, nuova avventura ma i fatti importanti che accadono nel libro saranno riscontrabili nella trama del gioco.

    Per chiarirci potrebbe essere un po come "il signore degli anelli: la 3a era"... non so se conosci quel gioco...

  2. Ho provato a creare un game da solo e, non essendo ne scripter ne grafico, mi sono accorto che il gioco stava venendo carino ma non "particolare" e quindi ho deciso di cercare qualcuno interessato al progetto.

     

    Il gioco è tratto dalla serie di Librigame di Lupo Solitario.Per chi non conoscesse l'argomento.

    Per chi non avesse voglia di leggere da wiki faccio una panoramica del mondo di gioco: Età medievale (tipica della buona parte degli RPG.)ambiente ricco di arti magiche senza la presenza di cenni fantascentifici (come invece i FF). I malvagi Signori delle Tenebre minacciano la pace del Magnamund(regione in cui sono ambientati i racconti e la nostra storia) e i monaci Ramas, gli unici in grado di fronteggiarli, sono stati sterminati tutti, tutti tranne uno: Lupo Solitario.

     

    Vorrei ricreare un' avventura nel mondo del Magnamund, dove l'eroe può utilizzare liberamente le Arti Ramas che apprenderà nel corso della storia, che si staccherà da quella raccontata dalla collana di libri, creando una specie di "storia alternativa".

     

    Come progetto base avavo pensato di inserire lo script Elaborated Equipment Shop di "The Sleeping Leonhart" e di cambiare il BS magari con il tankentai o uno in tempo reale.

    Le Arti le ho già create ma avranno bisogno di una buona revisione perchè sono un po "rozze" :sisi:

     

    Avrei quindi bisogno di qualcuno disponibile come scripter, grafico, e qualcuno esperto in eventi magari...

    Io mi reputo un mapper decente e mi diverto a creare oggetti armi e armature. Purtroppo non ho molta familiarità con i vari parametri da fissare come attacco, difesa, velocità ecc...Quindi mi farebbe comodo qualcuno con questa esperienza.

     

    Grazie mille a chiunque sia interessato!

  3. :sad:

     

    ...ok ora funziona... il masso si muove, però quanto premo il tasto A (dovrebbe essere la Z su tastiera giusto?) si blocca il masso e anche il pg.

     

    http://img413.imageshack.us/img413/4368/immaginevg.png

     

    Edit: Risolto! dovevo solo abilitare "ignora movimenti impossibili"

    ora è perfetto!

    Come posso mettere un'animazione tipo polvere sotto la roccia che rotola?

    O meglio... far levitare la roccia?

  4. Però così dovrei cambiare sia la grafica di eroe/evento sia la loro posizione... ovvero invertirla... ma una volta che la roccia è ferma e devo reinvertire la posizione sò dove rimettere l'eroe (poichè è fermo li), ma non posso prevedere dove verrà spostata la roccia...
  5. E dopo il Sesto Senso mi serve aiuto anche per la Telecinesi... :sad:

     

    E' possibile creare ad eventi qualcosa del genere?:

     

    Sono davanti ad una roccia (quella tonda che può rotolare).

    Con IF imposto che, se l'abilità Telecinesi è appresa, l'eroe rimane fermo dov'è e per 3-4 secondi posso muovere a mio piacimento la roccia.

    Finiti i 3-4 secondi la roccia rimane dove l'ho lasciata e riprendo a muovere il mio eroe.

    Tutto qui...nn so come "prendere possesso" di un evento lasciando fermo l'eroe...

     

    E non pensate sia finita qui... dovrete darmi una mano anche con altre abilità... :sad:

     

    Grazie mille a chiunque sopporta le mie richieste e nonostante tutto riesce a capire cosa mi serve... :blink: mah!

     

    :rovatfl: :smile: :rovatfl:

  6. Ho cercato di capire il più possibile e di farti una demo. Guarda se è quello che volevi.

    Sesto Senso

     

    Perfetto!!! era proprio quello che mi serviva!!! Grazie mille mi hai salvato il progetto!!!

     

    Edit: Però se metto l'evento in inizio automatico per far funzionare tutto, mi sparisce l'hud che ho sullo schermo... come mai?

     

    Edit 2: Risolto! Funziona!

  7. Basta aggiungere una terza pagina VUOTA con attivazione Self Switch A, e mettere ON tale self switch come ultima istruzione della prima pagina dell'evento . . .

     

    Ricapitolando:

     

    Pagina1 - Pressione Tasto - Dai Monete/Infliggi Danni/ecc. + Metti ON self switch A

     

    Pagina2 - Attivazione con Switch "sesto senso" - Processo parallelo - Mostra Balloon

     

    Pagina3 - Attivazione con Self Switch A - Pressione Tasto - Nessun Comando - Magari con grafica che ricordi che l'oggetto è già stato utilizzato

     

    Però in questo modo quando utilizzo l'abilità l'evento rimane su quella pagina e anche con la pressione del tasto nn cambia pagina poichè rimane sulla seconda.

     

    Ho fatto così:

    Pagina 1 in action button

    @> Play SE

    @> Text

    @> change gold

    @> control self switch A

     

    Pagina 2 in parallel process

    Switch 0002 is ON

    @> show balloon icon

     

    Pagina 3 in action button

    self switch A is ON

    @>

  8. Il problema è che in questo modo se attivo l'abilità mostra i baloons su tutti gle eventi "di interesse" di tutta la mappa, ed essendo grande non tutti gli eventi saranno visibili durante l'azione quindi rischio di perderne qualcuno.

     

    Provo a semplificare ancora la cosa:

     

    Cammino sul sentiero e di fianco a me c'è una pietra.

    | | |

    | | |_ Mi incuriosisce: Con "action button" attivo l'evento e, in stile forziere, trovo delle monete.(quindi una volta

    | | sola)

    | |

    | |_ Non ci faccio caso: Però voglio utilizzare il sesto senso quindi premendo X compare sulla roccia il ballons che mi

    | avvisa, quindi lo attivo con action button e prendo le mie monete (sempre una volta sola)

    |

    |_Una seconda pietra mostra il baloon ma nn è nel mio campo visivo: mi sposto e una volta inquadrata, incuriosendomi anche quella, riutilizzo 6° senso. La pietra di prima ovviamente sarà OFF (quindi una semplice roccia in tutto e per tutto)

    mentre questa roccia, che già era stata attivata per mostrare il baloons, verrà riattivata nuovamente e mostrerà di nuovo il baloons. Successivamente verrà attivata come la prima roccia: "action button", monete, OFF.

     

    In pratica vorrei che il "parallel process", ovvero il "mostrare il baloons", sia eseguibile all'infinito finchè l'evento non è attivato con "action button". una volta attivato con l' "A B" funzionerà una volta sola, ad esempio donando monete o oggetti, e poi si disattiverà.

     

    Spero di essermi spiegato meglio. :sisi:

  9. Non riesco a creare degli eventi "particolari"...

    In pratica mi serve un evento ad esempio un orsetto di peluches che se viene attivato con "action button" faccia diminuire i pv dell'eroe di 5... e fin qui nessun problema.

    Ora vorrei che premendo il tasto "x" (la A su tastiera credo) si attivi un ipotetica abilità "sesto senso" che faccia apparire un baloon per far intuire il pericolo, e con una switch lo riporta alla situazione iniziale e cioè a togliere 5 pv se attivato con action button.

    E anche questo è molto semplice da programmare. il problema è che premendo una seconda volta X, il baloon nn appare più e quindi se l'oggetto nn è inquadrato nella schermata durante il gioco si rischia di nn vedere il "suggerimento" e cadere nella trappola.

     

    Quindi ricapitolando mi serve un modo per mostrare, con la pressione di uno dei tasti X Y Z L o R, un baloon su un evento senza modificare la sua funzione.

     

    Per capire meglio proverò a fare un esempio:

     

    Il pg si avvicina ad un oggetto lo aziona e scopre che è pericoloso.

    se il pg è in dubbio su quell oggetto, prima di attivarlo e scoprire che è pericoloso, attiva l'abilità che mostra un baloon con il punto esclamativo, così si rende conto del pericolo e lo evita.

     

    Stessa cosa con oggetti positivi: se il pg una la stessa abilità, su una roccia che passerebbe inosservata, compare un baloon con la lampadina. il pg si avvicina alla roccia e attivandola riceve delle monete d'oro.

     

    Questa abilità (far apparire i baloons) deve però essere utilizzabile più volte in quanto se la roccia nn è nel mio campo visivo, nn mi accorgo del ballons, ma se muovendomi la inquadro e utilizzo di nuovo l'abilità mi mostra il baloons.

     

    Spero di essere stato chiaro e di non chiedere qualcosa di impossibile. :rovatfl:

    Ringrazio anticipatamente chiunque si cimentera in questo lavoro: GRAZIE! :sisi:

  10. Ho bisogno che qualche anima pia aggiunga a questo script una funzione che mi permetta di cliccare su alcuni eventi attivandoli, senza bisogno che l'eroe ci vada sopra... L'idea è quella di creare un punta e clicca con rpg...credo sia un idea mooolto innovativa...

    Cmq posto qui lo script

     

    Grazie in anticipo di ogni eventuale aiuto!

     

     

    #==================================================================# GMUS Guedez Mouse Use System# Version: 1.0# Released: 26/5/2006 Last Update: 1/6/2006# Thx to: Cadafalso, Near Fantastica, and some guys from asylum!#==================================================================class Mouse_PositionCheck   def initialize  end   def main   	get_pos  end   def get_window_index(window)	window.get_rect_positions	return -1 if window.index == -1	return -2 if window.index == -2	for i in 0...window.get_rect.size	  if window.get_rect[i][0] < $bg.x and		window.get_rect[i][1] < $bg.y and		window.get_rect[i][2] > $bg.x and		window.get_rect[i][3] > $bg.y		return i	  end	 	end	return -999999  end   def set_pos(x,y)	$setCursorPos.Call(x,y)  end #==============================Thx to: Cadafalso===================  def get_pos	lpPoint = " " * 8 # store two LONGs	$getCursorPos.Call(lpPoint)	$bg.x, $bg.y = lpPoint.unpack("LL") # get the actual values   end#==================================================================end class Window_Selectable < Window_Base   def get_rect_positions	index = self.index	@rect_position = [] if @rect_position == nil	if @rect_position == []	  for i in 0...(self.row_max * @column_max)		self.index = i		update_cursor_rect		p = self.cursor_rect.to_s		p.gsub!("($1,$2,$3,$4):rect","");p.gsub!("(", ""); p.gsub!(")", "")		p = p.split(/,\s*/)		@rect_position[i] = [p[0].to_i + self.x + 16,		p[1].to_i - self.oy + self.y + 16,		p[0].to_i + p[2].to_i + self.x + 16,		p[1].to_i + p[3].to_i - self.oy + self.y + 16]	  end	  self.index = index	end  end   def refresh_rect_positions	@rect_position = []	get_rect_positions  end   def get_rect	return @rect_position  end   alias guedez_update update   def update	get_rect_positions	if self.active == true	  old_index = self.index	  new_index = $mouse.get_window_index(self)	  $game_system.se_play($data_system.cursor_se) if 	  old_index != new_index and not new_index == -999999	  @index = new_index if old_index != -1	  self.cursor_rect.empty if new_index == -999999	  self.index = new_index	end	guedez_update  end end # Actualy my script only need the mouse stuff, but i dont think# the rest will bring any trouble :D, so i let the full script #==============================================================================# ** Keyboard Input Module#==============================================================================# Near Fantastica# Version 5# 29.11.05#==============================================================================# The Keyboard Input Module is designed to function as the default Input module# dose. It is better then other methods keyboard input because as a key is # tested it is not removed form the list. so you can test the same key multiple# times the same loop.#============================================================================== #------------------------------------------------------------------------------# * SDK Log Script#------------------------------------------------------------------------------#SDK.log("Keyboard Input", "Near Fantastica", 5, "29.11.05") #------------------------------------------------------------------------------# * Begin SDK Enable Test#------------------------------------------------------------------------------#if SDK.state("Keyboard Input") == true   module Keyboard	#--------------------------------------------------------------------------	@keys = []	@pressed = []	Mouse_Left = 1	Mouse_Right = 2	Back= 8	Tab = 9	Enter = 13	Shift = 16	Ctrl = 17	Alt = 18	Esc = 27	Space = 32	Numberkeys = {}	Numberkeys[0] = 48	Numberkeys[1] = 49	Numberkeys[2] = 50	Numberkeys[3] = 51	Numberkeys[4] = 52	Numberkeys[5] = 53	Numberkeys[6] = 54	Numberkeys[7] = 55	Numberkeys[8] = 56	Numberkeys[9] = 57	Numberpad = {}	Numberpad[0] = 45	Numberpad[1] = 35	Numberpad[2] = 40	Numberpad[3] = 34	Numberpad[4] = 37	Numberpad[5] = 12	Numberpad[6] = 39	Numberpad[7] = 36	Numberpad[8] = 38	Numberpad[9] = 33	Letters = {}	Letters["A"] = 65	Letters["B"] = 66	Letters["C"] = 67	Letters["D"] = 68	Letters["E"] = 69	Letters["F"] = 70	Letters["G"] = 71	Letters["H"] = 72	Letters["I"] = 73	Letters["J"] = 74	Letters["K"] = 75	Letters["L"] = 76	Letters["M"] = 77	Letters["N"] = 78	Letters["O"] = 79	Letters["P"] = 80	Letters["Q"] = 81	Letters["R"] = 82	Letters["S"] = 83	Letters["T"] = 84	Letters["U"] = 85	Letters["V"] = 86	Letters["W"] = 87	Letters["X"] = 88	Letters["Y"] = 89	Letters["Z"] = 90	Fkeys = {}	Fkeys[1] = 112	Fkeys[2] = 113	Fkeys[3] = 114	Fkeys[4] = 115	Fkeys[5] = 116	Fkeys[6] = 117	Fkeys[7] = 118	Fkeys[8] = 119	Fkeys[9] = 120	Fkeys[10] = 121	Fkeys[11] = 122	Fkeys[12] = 123	Collon = 186	Equal = 187	Comma = 188	Underscore = 189	Dot = 190	Backslash = 191	Lb = 219	Rb = 221	Quote = 222	State = Win32API.new("user32","GetKeyState",['i'],'i')	Key = Win32API.new("user32","GetAsyncKeyState",['i'],'i')	#--------------------------------------------------------------------------  	def Keyboard.getstate(key)	  return true unless State.call(key).between?(0, 1)	  return false	end	#--------------------------------------------------------------------------	def Keyboard.testkey(key)	  Key.call(key) & 0x01 == 1	end	#--------------------------------------------------------------------------	def Keyboard.update	  @keys = []	  @keys.push(Keyboard::Mouse_Left) if Keyboard.testkey(Keyboard::Mouse_Left)	  @keys.push(Keyboard::Mouse_Right) if Keyboard.testkey(Keyboard::Mouse_Right)	  @keys.push(Keyboard::Back) if Keyboard.testkey(Keyboard::Back)	  @keys.push(Keyboard::Tab) if Keyboard.testkey(Keyboard::Tab)	  @keys.push(Keyboard::Enter) if Keyboard.testkey(Keyboard::Enter)	  @keys.push(Keyboard::Shift) if Keyboard.testkey(Keyboard::Shift)	  @keys.push(Keyboard::Ctrl) if Keyboard.testkey(Keyboard::Ctrl)	  @keys.push(Keyboard::Alt) if Keyboard.testkey(Keyboard::Alt)	  @keys.push(Keyboard::Esc) if Keyboard.testkey(Keyboard::Esc)	  @keys.push(Keyboard::Space) if Keyboard.testkey(Keyboard::Space)	  for key in Keyboard::Numberkeys.values		@keys.push(key) if Keyboard.testkey(key)	  end	  for key in Keyboard::Numberpad.values		@keys.push(key) if Keyboard.testkey(key)	  end	  for key in Keyboard::Letters.values		@keys.push(key) if Keyboard.testkey(key)	  end	  for key in Keyboard::Fkeys.values		@keys.push(key) if Keyboard.testkey(key)	  end	  @keys.push(Keyboard::Collon) if Keyboard.testkey(Keyboard::Collon)	  @keys.push(Keyboard::Equal) if Keyboard.testkey(Keyboard::Equal)	  @keys.push(Keyboard::Comma) if Keyboard.testkey(Keyboard::Comma)	  @keys.push(Keyboard::Underscore) if Keyboard.testkey(Keyboard::Underscore)	  @keys.push(Keyboard::Dot) if Keyboard.testkey(Keyboard::Dot)	  @keys.push(Keyboard::Backslash) if Keyboard.testkey(Keyboard::Backslash)	  @keys.push(Keyboard::Lb) if Keyboard.testkey(Keyboard::Lb)	  @keys.push(Keyboard::Rb) if Keyboard.testkey(Keyboard::Rb)	  @keys.push(Keyboard::Quote) if Keyboard.testkey(Keyboard::Quote)	  @pressed = []	  @pressed.push(Keyboard::Mouse_Left) if Keyboard.getstate(Keyboard::Mouse_Left)	  @pressed.push(Keyboard::Mouse_Right) if Keyboard.getstate(Keyboard::Mouse_Right)	  @pressed.push(Keyboard::Back) if Keyboard.getstate(Keyboard::Back)	  @pressed.push(Keyboard::Tab) if Keyboard.getstate(Keyboard::Tab)	  @pressed.push(Keyboard::Enter) if Keyboard.getstate(Keyboard::Enter)	  @pressed.push(Keyboard::Shift) if Keyboard.getstate(Keyboard::Shift)	  @pressed.push(Keyboard::Ctrl) if Keyboard.getstate(Keyboard::Ctrl)	  @pressed.push(Keyboard::Alt) if Keyboard.getstate(Keyboard::Alt)	  @pressed.push(Keyboard::Esc) if Keyboard.getstate(Keyboard::Esc)	  @pressed.push(Keyboard::Space) if Keyboard.getstate(Keyboard::Space)	  for key in Keyboard::Numberkeys.values		@pressed.push(key) if Keyboard.getstate(key)	  end	  for key in Keyboard::Numberpad.values		@pressed.push(key) if Keyboard.getstate(key)	  end	  for key in Keyboard::Letters.values		@pressed.push(key) if Keyboard.getstate(key)	  end	  for key in Keyboard::Fkeys.values		@pressed.push(key) if Keyboard.getstate(key)	  end	  @pressed.push(Keyboard::Collon) if Keyboard.getstate(Keyboard::Collon)	  @pressed.push(Keyboard::Equal) if Keyboard.getstate(Keyboard::Equal)	  @pressed.push(Keyboard::Comma) if Keyboard.getstate(Keyboard::Comma)	  @pressed.push(Keyboard::Underscore) if Keyboard.getstate(Keyboard::Underscore)	  @pressed.push(Keyboard::Dot) if Keyboard.getstate(Keyboard::Dot)	  @pressed.push(Keyboard::Backslash) if Keyboard.getstate(Keyboard::Backslash)	  @pressed.push(Keyboard::Lb) if Keyboard.getstate(Keyboard::Lb)	  @pressed.push(Keyboard::Rb) if Keyboard.getstate(Keyboard::Rb)	  @pressed.push(Keyboard::Quote) if Keyboard.getstate(Keyboard::Quote)  	end	#--------------------------------------------------------------------------	def Keyboard.trigger?(key)	  return true if @keys.include?(key)	  return false	end	#--------------------------------------------------------------------------	def Keyboard.pressed?(key)	  return true if @pressed.include?(key)	  return false	end  #end #------------------------------------------------------------------------------# * End SDK Enable Test#------------------------------------------------------------------------------end #=========================Game_Fixes============================= $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)$mouse = Mouse_PositionCheck.new$getCursorPos = Win32API.new("user32", "GetCursorPos", ['P'], 'V')$setCursorPos = Win32API.new("user32", "SetCursorPos", ['I','I'], 'V')$bg = Sprite.new$bg.bitmap = RPG::Cache.icon('Icon')$bg.z = 999999$bg.y = 0$bg.x = 0 module Input   if @self_update == nil	@self_update = method('update')	@self_press = method('press?')	@self_rep = method('repeat?')  end   def self.update	@self_update.call	$mouse.main	Keyboard.update  end   def self.trigger?(key_code)	if @self_press.call(key_code)	  return true	end	if key_code == C	  return Keyboard.trigger?(Keyboard::Mouse_Left)	elsif key_code == B	  return Keyboard.trigger?(Keyboard::Mouse_Right)	else	  return @self_press.call(key_code)	end  end   def self.repeat?(key_code)	if @self_rep.call(key_code)	  return true	end	if key_code == C	  return Keyboard.pressed?(Keyboard::Mouse_Left)	elsif key_code == B	  return Keyboard.pressed?(Keyboard::Mouse_Right)	else	  return @self_rep.call(key_code)	end  end end class Arrow_Enemy < Arrow_Base     def update	super	$game_troop.enemies.size.times do	  break if self.enemy.exist?	  @index += 1	  @index %= $game_troop.enemies.size	end	#size = 0	#for i in 0...$game_troop.enemies.size	#  size += 1 if $game_troop.enemies[i].hp > 0	#end	size = $game_troop.enemies.size if size == nil	@index = ((size / 640.0) * $bg.x.to_f).to_i	if self.enemy != nil	  self.x = self.enemy.screen_x	  self.y = self.enemy.screen_y	end  end end class Arrow_Actor < Arrow_Base   def update	super	@index = 0 if $bg.x > 0 and $bg.x <= 160 and 0 <= ($game_party.actors.size - 1)		 	@index = 1 if $bg.x > 160 and $bg.x <= 320 and 1 <= ($game_party.actors.size - 1)	 	@index = 2 if $bg.x > 320 and $bg.x <= 480 and 2 <= ($game_party.actors.size - 1)	 	@index = 3 if $bg.x > 480 and $bg.x <= 640 and 3 <= ($game_party.actors.size - 1)	 	if self.actor != nil	  self.x = self.actor.screen_x	  self.y = self.actor.screen_y	end  end end class Window_Target < Window_Selectable   alias gupdate update   def update	@defaultx = 0 if @defaultx == nil	if @defaultx != self.x 	  @defaultx = self.x	  self.refresh_rect_positions	  return	else	gupdate	end  end   def update_cursor_rect	if @index == -1	  self.cursor_rect.set(0, 0, self.width - 32, @item_max * 116 - 20)	else	  self.cursor_rect.set(0, @index * 116, self.width - 32, 96)	end  end end class Scene_Battle   def phase3_setup_command_window	@party_command_window.active = false	@party_command_window.visible = false	@actor_command_window.active = true	@actor_command_window.visible = true	@actor_command_window.x = @actor_index * 160	@actor_command_window.refresh_rect_positions	@actor_command_window.index = 0  end end class Scene_Equip   def initialize(actor_index = 0, equip_index = 0)	@actor_index = actor_index	@equip_index = equip_index	@actor = $game_party.actors[@actor_index]  end   alias gmain main   def main	@dummy = Window_EquipItem.new(@actor, 99)	gmain	@dummy.dispose  end   alias gupdate_right update_right   def update_right	if @right_window.index == -999999	  if Input.trigger?(Input::C)		$game_system.se_play($data_system.buzzer_se)	  end	else	  gupdate_right	end  end 	def refresh	@item_window1.visible = (@right_window.index == 0)	@item_window2.visible = (@right_window.index == 1)	@item_window3.visible = (@right_window.index == 2)	@item_window4.visible = (@right_window.index == 3)	@item_window5.visible = (@right_window.index == 4)	@dummy.visible = (@right_window.index == -999999)	item1 = @right_window.item	case @right_window.index	when 0	  @item_window = @item_window1	when 1	  @item_window = @item_window2	when 2	  @item_window = @item_window3	when 3	  @item_window = @item_window4	when 4	  @item_window = @item_window5	when -999999	  return	end	if @right_window.active	  @left_window.set_new_parameters(nil, nil, nil)	end	if @item_window.active	  item2 = @item_window.item	  last_hp = @actor.hp	  last_sp = @actor.sp	  @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)	  new_atk = @actor.atk	  new_pdef = @actor.pdef	  new_mdef = @actor.mdef	  @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)	  @actor.hp = last_hp	  @actor.sp = last_sp	  @left_window.set_new_parameters(new_atk, new_pdef, new_mdef)	end  end end class Scene_Skill 	def update_target	if Input.trigger?(Input::B)	  $game_system.se_play($data_system.cancel_se)	  @skill_window.active = true	  @target_window.visible = false	  @target_window.active = false	  return	end	if Input.trigger?(Input::C)	  unless @actor.skill_can_use?(@skill.id)		$game_system.se_play($data_system.buzzer_se)		return	  end	  if @target_window.index == -1		used = false		for i in $game_party.actors		  used |= i.skill_effect(@actor, @skill)		end	  end	  if @target_window.index == -2		target = $game_party.actors[@target_window.index + 10]		used = target.skill_effect(@actor, @skill)	  end	  if @target_window.index <= -3		$game_system.se_play($data_system.buzzer_se)		return	  end	  if @target_window.index >= 0		target = $game_party.actors[@target_window.index]		used = target.skill_effect(@actor, @skill)	  end	  if used		$game_system.se_play(@skill.menu_se)		@actor.sp -= @skill.sp_cost		@status_window.refresh		@skill_window.refresh		@target_window.refresh		if $game_party.all_dead?		  $scene = Scene_Gameover.new		  return		end		if @skill.common_event_id > 0		  $game_temp.common_event_id = @skill.common_event_id		  $scene = Scene_Map.new		  return		end	  end	  unless used		$game_system.se_play($data_system.buzzer_se)	  end	  return	end  end end class Scene_File   def update	@help_window.update	for i in @savefile_windows	  i.update	end	if Input.trigger?(Input::C)	  if @file_index == -1		$game_system.se_play($data_system.buzzer_se)	  else		on_decision(make_filename(@file_index))		$game_temp.last_file_index = @file_index		return	  end	end	if Input.trigger?(Input::B)	  on_cancel	  return	end	if $bg.y > 64 and $bg.y < 168	  if @savefile_windows[0].selected == false		$game_system.se_play($data_system.cursor_se)	  end	  @savefile_windows[0].selected = true	  @savefile_windows[1].selected = false	  @savefile_windows[2].selected = false	  @savefile_windows[3].selected = false	  @file_index = 0	elsif $bg.y > 168 and $bg.y < 272	  if @savefile_windows[1].selected == false		$game_system.se_play($data_system.cursor_se)	  end	  @savefile_windows[0].selected = false	  @savefile_windows[1].selected = true	  @savefile_windows[2].selected = false	  @savefile_windows[3].selected = false	  @file_index = 1	elsif $bg.y > 272 and $bg.y < 376	  if @savefile_windows[2].selected == false		$game_system.se_play($data_system.cursor_se)	  end	  @savefile_windows[0].selected = false	  @savefile_windows[1].selected = false	  @savefile_windows[2].selected = true	  @savefile_windows[3].selected = false	  @file_index = 2	elsif $bg.y > 376 and $bg.y < 480	  if @savefile_windows[3].selected == false		$game_system.se_play($data_system.cursor_se)	  end	  @savefile_windows[0].selected = false	  @savefile_windows[1].selected = false	  @savefile_windows[2].selected = false	  @savefile_windows[3].selected = true	  @file_index = 3	else	  @file_index = -1 	  @savefile_windows[0].selected = false	  @savefile_windows[1].selected = false	  @savefile_windows[2].selected = false	  @savefile_windows[3].selected = false	end  end  endclass Scene_Menu   def update_status	if Input.trigger?(Input::B)	  $game_system.se_play($data_system.cancel_se)	  @command_window.active = true	  @status_window.active = false	  @status_window.index = -1	  return	end	if Input.trigger?(Input::C)	  unless @status_window.index < 0		case @command_window.index		when 1 		  if $game_party.actors[@status_window.index].restriction >= 2			$game_system.se_play($data_system.buzzer_se)			return		  end		  $game_system.se_play($data_system.decision_se)		  $scene = Scene_Skill.new(@status_window.index)		when 2 		  $game_system.se_play($data_system.decision_se)		  $scene = Scene_Equip.new(@status_window.index)		when 3 		  $game_system.se_play($data_system.decision_se)		  $scene = Scene_Status.new(@status_window.index)		end		return	  end	end  end end class Game_Player   def update	last_moving = moving?	unless moving? or $game_system.map_interpreter.running? or		   @move_route_forcing or $game_temp.message_window_showing or		   @cant_move	  case Input.dir4	  when 2		move_down	  when 4		move_left	  when 6		move_right	  when 8		move_up	  end	end	last_real_x = @real_x	last_real_y = @real_y	super	if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y	  $game_map.scroll_down(@real_y - last_real_y)	end	if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X	  $game_map.scroll_left(last_real_x - @real_x)	end	if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X	  $game_map.scroll_right(@real_x - last_real_x)	end	if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y	  $game_map.scroll_up(last_real_y - @real_y)	end	unless moving?	  if last_moving		result = check_event_trigger_here([1,2])		if result == false		  unless $DEBUG and Input.press?(Input::CTRL)			if @encounter_count > 0			  @encounter_count -= 1			end		  end		end	  end	  if Input.trigger?(Input::C)		check_curor_field		if (@field_x == self.x + 1 and @field_y == self.y and 		  self.direction == 6) or (@field_x == self.x - 1 and 		  @field_y == self.y and self.direction == 4) or 		  (@field_x == self.x and @field_y == self.y + 1 and 		  self.direction == 2) or (@field_x == self.x and 		  @field_y == self.y - 1 and self.direction == 8)		  check_event_trigger_there([0,1,2])		end			  end	  if Input.repeat?(Input::C)		check_curor_field		unless moving? or $game_system.map_interpreter.running? or		   @move_route_forcing or $game_temp.message_window_showing or		   @cant_move and not (@field_x == self.x and @field_y == self.y)		  move_by_mouse		end		check_event_trigger_here([0])	  end	end  end   def check_curor_field	dummyx = $game_map.display_x > 0 ? $bg.x + 16 : $bg.x	@field_x = dummyx / 32 + $game_map.display_x / 128	@field_y = $bg.y / 32 + $game_map.display_y / 128  end   def move_by_mouse	dy = @field_x - self.x	dx = self.y - @field_y	if dx > 0 and dy > 0 #quarter 1	  if dx > dy		if passable?(self.x, self.y, 8)		  move_up		else		  move_right		end		return	  elsif dx < dy		if passable?(self.x, self.y, 6)		  move_right		else		  move_up		end		return	  elsif dx == dy		if passable?(self.x, self.y, 8)		  move_up		else		  move_right		end		return	  end	elsif dx > 0 and dy < 0 #quarter 2	  if dx > -dy		if passable?(self.x, self.y, 8)		  move_up		else		  move_left		end		return	  elsif dx < -dy		if passable?(self.x, self.y, 4)		  move_left		else		  move_up		end		return	  elsif dx == -dy		if passable?(self.x, self.y, 8)		  move_up		else		  move_left		end		return	  end	elsif dx < 0 and dy < 0 #quarter 2	  if -dx > -dy		if passable?(self.x, self.y, 2)		  move_down		else		  move_left		end		return	  elsif -dx < -dy		if passable?(self.x, self.y, 4)		  move_left		else		  move_down		end		return	  elsif -dx == -dy		if passable?(self.x, self.y, 2)		  move_down		else		  move_left		end		return	  end	elsif dx < 0 and dy > 0 #quarter 4	  if -dx > dy		if passable?(self.x, self.y, 2)		  move_down		else		  move_right		end		return	  elsif -dx < dy		if passable?(self.x, self.y, 6)		  move_right		else		  move_down		end		return	  elsif -dx == dy		if passable?(self.x, self.y, 2)		  move_down		else		  move_right		end		return	  end	elsif dx == 0 and dy < 0	  move_left	elsif dx == 0 and dy > 0	  move_right	elsif dx < 0 and dy == 0	  move_down	elsif dx > 0 and dy == 0	  move_up	end  endend

  11. Mi servirebbe uno script particolare in stile Monster Hunter:

    In pratica un mercante che, utilizzando sia denaro che oggetti nel inventario del party, forgia delle armi e armature.

     

    Esempio:

    Uccidi 2 lupi e ottieni 2 "Pelli di lupo"

    Il mercante ha una schermata da negozio dove è in vendita il progetto di una "Spada Selvaggia" e per poterla comprare bisogna avere le 2 pelli e 1500G.

    Il mercante prende materiale e denaro e ti dà la spada.

     

    Credo sia molto complicato come script, ma se me lo trovate mi salvate il progetto...

    Grazie in anticipo!!! :rovatfl: :sisi: :rovatfl:

×
×
  • Create New...