Jump to content
Rpg²S Forum
  • 0

Problema con Script BS Tattico


PinnaWarner
 Share

Question

Ciao a tutti,

voglio chiedere se qualcuno mi può dare una mano con la programmazzione dei un BS tattico,

io ho uno script rilasciato un po di tempo fa molto carino, ke sto usando per il mio progetto, ci sono 2 problemi:

  1. Prende EXP solo il pg che uccide il mostro
  2. I Mostri e PG che muono durante una battaglia costituiscono un ostacolo nella mappa, quindi se ti circodano 4 mostrie li uccidi il pg non si può + muovere.

Voglio sapere se ce qualcuno disposto a dare un occhiata a questo script per correggere questi "errori" e quindi dividere l'exp per il party (o dare la stessa exp a tutti i membri) e far sparire i nemici morti in modo ke non siano un ostacolo.

Aspetto una Risposta, grazie a tutti :sisi:

Edited by PinnaWarner

Progetti:

Cronache del Mondo Emerso RPGVX -in progettazione-

Captain Tsubasa RPG 1 (Holly e Benji) RPG2k -ultimato-

Captain Tsubasa RPG 2 (Holly e Benji) RPGXP -in lavorazione 10%-

One Piece (All'arrembaggio) RPG2k -interrotto-

The Leggend Of Dragons RPG2k -demo rilasciata-

Arcadia Tactics RPGXP -demo rilasciata-

 

---> Visita il Mio Sito <---

 

Contest: http://rpg2s.net/gif/SCContest3Oct.gif - http://www.rpg2s.net/gif/GC_programmazione3.gif - http://www.rpg2s.net/gif/GC_premio2.gif - http://www.rpg2s.net/awards/bestpixel2.jpg

Link to comment
Share on other sites

18 answers to this question

Recommended Posts

  • 0

Perfetto ti allego di seguito una demo con il BS, dacci un occhiata ci possiamo tenere in contatto anke via mail, mandami un PM.

Le modifiche da apportare sono esperienza per tutto il gruppo e non solo per chi killa il mob,

e poi i nemici quando muoiono devo scomparire e ci devi poter passare sopra.

Grazie aspetto una tua risposta.

 

Tactical_Battle_System.rar

Edited by PinnaWarner

Progetti:

Cronache del Mondo Emerso RPGVX -in progettazione-

Captain Tsubasa RPG 1 (Holly e Benji) RPG2k -ultimato-

Captain Tsubasa RPG 2 (Holly e Benji) RPGXP -in lavorazione 10%-

One Piece (All'arrembaggio) RPG2k -interrotto-

The Leggend Of Dragons RPG2k -demo rilasciata-

Arcadia Tactics RPGXP -demo rilasciata-

 

---> Visita il Mio Sito <---

 

Contest: http://rpg2s.net/gif/SCContest3Oct.gif - http://www.rpg2s.net/gif/GC_programmazione3.gif - http://www.rpg2s.net/gif/GC_premio2.gif - http://www.rpg2s.net/awards/bestpixel2.jpg

Link to comment
Share on other sites

  • 0

Ok, ora sono a lavoro lo controllo appena posso cmq, poi nel caso se non ti scoccia ti faccio fare altre 2 modifichine + semplici. Naturalmente ti inserisco nei rigranziamenti per il BS ^^

 

Ore 10:54

Perfetto lo Provato e va perfettamente ce solo una piccola mancanza ma non è indisponsabile, oso chiederti solo altre 2 cosette:

 

1. Quando Vinci se calci Invio puoi tornare direttamente nella skermata della mappa. Voglio una WAIT di almeno 5-10 secondi (magari mi metti un commento all'interno dello script cosi so dove andare a modificiare.

 

2. Stessa cosa di su per il Game Over, il game over è istantaneo, mi piacerebbe ke si attendesse un top secondi, magari con un cambiamento dei colori esempio:

Il Party Muore. Parte la musichetta della sconfitta, una pictures con scirtto SCONFITTA o ne metti una qualsiasi poi la preparo io, e lo schermo ke piano pieno diventa bianco e nero e solo quando premi INVIO si va alla GAME OVER.

 

Sono un po complicate, cmq se non fa metti almeno il delay di 10 sec per victory e sconfitta ^^ grazie.

Edited by PinnaWarner

Progetti:

Cronache del Mondo Emerso RPGVX -in progettazione-

Captain Tsubasa RPG 1 (Holly e Benji) RPG2k -ultimato-

Captain Tsubasa RPG 2 (Holly e Benji) RPGXP -in lavorazione 10%-

One Piece (All'arrembaggio) RPG2k -interrotto-

The Leggend Of Dragons RPG2k -demo rilasciata-

Arcadia Tactics RPGXP -demo rilasciata-

 

---> Visita il Mio Sito <---

 

Contest: http://rpg2s.net/gif/SCContest3Oct.gif - http://www.rpg2s.net/gif/GC_programmazione3.gif - http://www.rpg2s.net/gif/GC_premio2.gif - http://www.rpg2s.net/awards/bestpixel2.jpg

Link to comment
Share on other sites

  • 0

Dato che ho modificato solo la parte -Scene_Battle- ti posto questa invece che la demo intera:

 

 

class Scene_Battle
 #--------------------------------------------------------------------------
 # The battle start :)
 def main
# All the data
main_data
# The temp stuff
main_temp
# The windows
main_windows
@finito = false
# The standard transition
if $data_system.battle_transition == ""
  Graphics.transition(20)
else
  Graphics.transition(40, "Graphics/Transitions/" + $data_system.battle_transition)
end
# Start phase, and make the update loop
start_phase1
# Main loop
loop do
  # Update game screen
  Graphics.update
  # Update input information
  Input.update
  # Frame update
  update
  # Abort loop if screen is changed
  if $scene != self
	break
  end
end
# Dispose of sprite set
@spriteset.dispose
# Prepare for transition
Graphics.freeze
# Refresh map
$game_map.refresh
# Dispose of windows
for wnd in @wnds.values
  wnd.dispose
end
# Center the player
$game_player.center($game_player.x, $game_player.y)
# If switching to title screen
if $scene.is_a?(Scene_Title)
  # Fade out screen
  Graphics.transition
  Graphics.freeze
end
# If switching from battle test to any screen other than game over screen
if $BTEST and not $scene.is_a?(Scene_Gameover)
  $scene = nil
end
 end
 #--------------------------------------------------------------------------
 # This initializes all data for the initialize class
 def main_data
# Make the location arrays, filled with Coords classes
@wlocs = []
@plocs = []
@alocs = []
@elocs = []
@flocs = []
@cursor = Coords.new
# Init spriteset
@spriteset = Spriteset_Battle.new
# Set some random variables
@cursor_active = true
@wait_count = 0
 end
 #--------------------------------------------------------------------------
 # This initializes all temp stuff for the battle
 def main_temp
# The game_temp stuff is set here
$game_temp.in_battle = true
$game_temp.battle_turn = 0
$game_temp.battle_event_flags.clear
$game_temp.battle_abort = false
$game_temp.battle_main_phase = false
$game_temp.battleback_name = $game_map.battleback_name
$game_temp.forcing_battler = nil
$game_system.battle_interpreter.setup(nil, 0)
# The teams go here
$game_temp.battleteams["actors"] = []
$game_temp.battleteams["enemies"] = []
@troop_id = $game_temp.battle_troop_id
$game_troop.setup(@troop_id)
 end
 #--------------------------------------------------------------------------
 # This initializes all windows.
 def main_windows
@wnds = {}
@wnds["actor"] = Window_Command.new(160, ["Move", "Action", "Wait", "Status"])
@wnds["actor"].index = -1
@wnds["actor"].active = false
@wnds["actor"].visible = false	
@wnds["actor2"] = Window_Command.new(160, ["Attack", "Skill", "Item"])
@wnds["actor2"].x = 160
@wnds["actor2"].y = 32
@wnds["actor2"].active = false
@wnds["actor2"].visible = false
@wnds["help"] = Window_Help.new
@wnds["confirm"] = Window_Confirm.new("Start battle?")
@wnds["confirm"].active = false
@wnds["confirm"].visible = false
@wnds["confirm"].center
@wnds["message"] = Window_Message.new
@wnds["status"] = Window_BattleStatus.new(640 - 160,64,160,160)
@wnds["status"].visible = false
@wnds["help"].visible = false
for wnd in @wnds.values
  wnd.back_opacity = 160
end
 end
 #--------------------------------------------------------------------------  
 def update
# If battle event is running
if $game_system.battle_interpreter.running?
  # Update interpreter
  $game_system.battle_interpreter.update
  # If a battler which is forcing actions doesn't exist
  if $game_temp.forcing_battler == nil
	# If battle event has finished running
	unless $game_system.battle_interpreter.running?
	  # Rerun battle event set up if battle continues
	  unless judge
		setup_battle_event
	  end
	end
  end
end
# Update the visual things
$game_system.update
$game_screen.update
$game_map.update
@spriteset.update 
update_loccalc
@spriteset.cursor.visible = @cursor_active
# If transition is processing
if $game_temp.transition_processing
  # Clear transition processing flag
  $game_temp.transition_processing = false
  # Execute transition
  if $game_temp.transition_name == ""
	Graphics.transition(20)
  else
	Graphics.transition(40, "Graphics/Transitions/" + $game_temp.transition_name)
  end
end
return if update_abort
# Update the battlers
for battler in tbs_battlers
  battler.update
end 
# If there is a wait, let it wait
if @wait_count != 0
  @wait_count -= 1
  if @after_wait and @wait_count == 0
	commands = @after_wait.dup
	@after_wait = nil
	for command in commands
	  eval(command)
	end
  end
  return
end
update_windows
# Battle timer stuff
$game_temp.battle_abort = true if $game_system.timer_working and $game_system.timer == 0	
# And of course, update phase here
case @phase
when 1  # Setup
  update_phase1
when 2  # Main Phase
  update_phase2
when 3  # After Battle
  update_phase3
end
update_cursor
 end
 #--------------------------------------------------------------------------
 # Update location calculation
 def update_loccalc
# Shortcut for calculating locations
if @calc_locs == "normal"
  @calc_locs = nil
  @wlocs, @alocs = @active_battler.locs
# Single attack calculation
elsif @calc_locs == "attack"
  @calc_locs = nil
  @wlocs, @alocs = @active_battler.locs(true)
# Single friendly calculation
elsif @calc_locs == "friendly"
  @calc_locs = nil
  @alocs, @flocs = @active_battler.locs(true)
# All enemies calculation
elsif @calc_locs == "enemies"
  @calc_locs = nil
  if @target_type == "actor"
	t = tbs_actors
  elsif @target_type == "enemy"
	t = tbs_enemies
   end
  for battler in t
	@alocs.push(Coords.new(battler.x, battler.y)) unless battler.dead?
  end
# All allies calculation
elsif @calc_locs == "allies"
  @calc_locs = nil
  if @target_type == "actor"
	t = tbs_enemies
  elsif @target_type == "enemy"
	t = tbs_actors
   end
  for battler in t 
	@flocs.push(Coords.new(battler.x, battler.y)) unless battler.dead?
  end
# All allies with 0 HP calculation
elsif @calc_locs == "allies0"
  @calc_locs = nil
  if @target_type == "actor"
	t = tbs_enemies
  elsif @target_type == "enemy"
	t = tbs_actors
   end
  for battler in t 
	@flocs.push(Coords.new(battler.x, battler.y)) if battler.dead?
  end
# Self
elsif @calc_locs == "self"
  @calc_locs = nil
  @flocs.push(Coords.new(@active_battler.x, @active_battler.y))
# Clear all locs.
elsif @calc_locs == "clear"
  @calc_locs = nil  
  @wlocs, @alocs, @flocs = [],[],[]
end
hlt_update
 end
 #--------------------------------------------------------------------------
 # Update the abortion
 def update_abort
# If game over
if $game_temp.gameover
  $game_system.me_play($data_system.gameover_me)
  @perso_img = Sprite.new
  @perso_img.bitmap = Bitmap.new("Graphics/Pictures/Perso")#picture sconfitta
  @perso_img.x = 320 - @perso_img.bitmap.width/2#posizione x della picture sconfitta
  @perso_img.y = 240 - @perso_img.bitmap.height/2#posizione y della picture sconfitta
  @perso_img.opacity = 0#la trasparenza della picture sconfitta
  if @finito == false
   for i in 0...(20*20)#il primo venti sono i secondi da aspettare
	sleep 0.01
	@perso_img.opacity += 3#cambia la trasparenza della picture sconfitta
	Graphics.update
	Input.update
	$game_system.update
	$game_screen.update
	$game_map.update
	@spriteset.update 
	$game_screen.start_tone_change(Tone.new(0,0,0,i*2), 20)#cambia la tonalità
	if Input::trigger?(Input::C)
	  @perso_img.dispose
	  @perso_img.bitmap.dispose
	  $scene = Scene_Gameover.new
	  return true
	end
   end
  end
  @finito = true
  # Switch to game over screen
end
# If returning to title screen
if $game_temp.to_title
  # Switch to title screen
  $scene = Scene_Title.new
  return true
end
# If battle is aborted
if $game_temp.battle_abort
  # Return to BGM used before battle started
  $game_system.bgm_play($game_temp.map_bgm)
  # Battle ends
  battle_end(1)
  return true
end
return false
 end
 #--------------------------------------------------------------------------
 # Update windows
 def update_windows
# Update the windows
for wnd in @wnds.values
  wnd.update
end
# Relocate the windows.
if @phase == 1
  x = @cursor.x
  y = @cursor.y
  w = $game_map.width / 2
  h = $game_map.height / 2	  
  if x > w
	@wnds["status"].x = 0
  elsif x < w
	@wnds["status"].x = 480
  end
  if y < h
	@wnds["status"].y = 256
	@wnds["help"].y = 414
  elsif y > h
	@wnds["status"].y = 64
	@wnds["help"].y = 0
  end
  @wnds["status"].visible = true
  @wnds["help"].visible = true
elsif @phase == 2 and @wnds["actor"].active
  x = @active_battler.x
  y = @active_battler.y
  w = $game_map.width / 2
  h = $game_map.height / 2	  
  if x > w
	@wnds["actor"].x = 0
	@wnds["actor2"].x = 160
	@act_loc = "left"
  elsif x < w
	@wnds["actor"].x = 480
	@wnds["actor2"].x = 320
	@act_loc = "right"
  end
  if y < h
	@wnds["actor"].y = 320
	@wnds["actor2"].y = 352
  elsif y > h
	@wnds["actor"].y = 0
	@wnds["actor2"].y = 32
  end
  @wnds["actor"].visible = true
end
# If message window is showing
if $game_temp.message_window_showing
  return
end
# Delete result window
if @wnds["result"]
  @wnds["result"].dispose
  @wnds.delete("result")
end
 end
 #--------------------------------------------------------------------------
 # Update cursor stuff
 def update_cursor
@spriteset.cursor.x = @cursor.x * 32
@spriteset.cursor.y = @cursor.y * 32
if Input.trigger?(Input::RIGHT) and @cursor_active and @cursor.x != $game_map.width - 1
  @cursor.x += 1
  $game_system.se_play($data_system.cursor_se)
elsif Input.trigger?(Input::LEFT) and @cursor_active  and @cursor.x != 0
  @cursor.x -= 1
  $game_system.se_play($data_system.cursor_se)
elsif Input.trigger?(Input::DOWN) and @cursor_active and @cursor.y != $game_map.height - 1
  @cursor.y += 1	  
  $game_system.se_play($data_system.cursor_se)
elsif Input.trigger?(Input::UP) and @cursor_active and @cursor.y != 0
  @cursor.y -= 1	  
  $game_system.se_play($data_system.cursor_se)
end
$game_player.center(@cursor.x, @cursor.y)
 end
 #--------------------------------------------------------------------------
 # Start the setup phase
 def start_phase1
#Search enemy locations	
@ennumbers = Array.new
elocs = Array.new
for i in 0..$game_map.events.size
  testing = $game_map.event_name(i)	 
  unless $game_map.event_name(i) == nil
	if testing.include?("ENSL") 
	  testing = (testing.delete "ENSL").to_i
	  enw = Coords.new($game_map.events[i].x,$game_map.events[i].y)
	  elocs.push(enw)
	  @ennumbers.push(testing)
	end
  end
end
# Enemy setup
$game_troop.setup($game_temp.battle_troop_id)
for enemy in $game_troop.enemies
  for index in 0..999	   
	if enemy.index + 1 == @ennumbers[index]
	  tbs_enemies.push(enemy)
	  enemy.place(elocs[index].x, elocs[index].y)
	  @elocs.push(Coords.new(elocs[index].x, elocs[index].y))
	  @spriteset.battler_sprites.push(Sprite_Battler.new(@spriteset.viewport1, enemy))
	end
	break if $game_troop.enemies.size == tbs_enemies.size
  end
end
$game_party.clear_actions
if $game_temp.battle_locations
  #
else
  # Set the help text here.
  @wnds["help"].set_text("Switch with A/S. Cancel to start or replace.")
  #Search events for possible locations
  for i in 0..$game_map.events.size
	name = $game_map.event_name(i)
	if name == "PLSL"
	  what = Coords.new($game_map.events[i].x,$game_map.events[i].y)
	  @plocs.push(what)
	end
  end
  #Now pick cursor starting location
  @cursor = Coords.new(@plocs[0].x, @plocs[0].y) unless @plocs.empty?
  # Phase and selection
  @phase = 1	
  @select = 0
end
 end
 #--------------------------------------------------------------------------
 # The setup update, where characters are placed and stuff
 def update_phase1
# Update the status window
@wnds["status"].battler = $game_party.actors[@select] if @wnds["status"].battler != $game_party.actors[@select]
# If X (or, in game default A) is pressed, go back with chara selection  
if Input.trigger?(Input::X)
  @select -= 1
  @select = $game_party.actors.size - 1 if @select < 0
  # If Y (or, in game default S) is pressed, go forward with chara selection
elsif Input.trigger?(Input::Y)
  @select += 1
  @select = 0 if @select > $game_party.actors.size - 1
# If confirm is pressed, place character
elsif Input.trigger?(Input::C) and !@wnds["confirm"].active
  succes = false
  for i in @plocs
	if i.x == @cursor.x and i.y == @cursor.y and taken?(i.x, i.y) == false
	  $game_system.se_play($data_system.decision_se)
	  @lead = $game_party.actors[@select]
	  @lead.place(@cursor.x,@cursor.y)  
	  tbs_actors.push(@lead)
	  @spriteset.battler_sprites.push(Sprite_Battler.new(@spriteset.viewport1, @lead, true))
	  succes = true
	end
  end
  $game_system.se_play($data_system.buzzer_se) if !succes
# If confirm is pressed, do action based on selection
elsif Input.trigger?(Input::C) and @wnds["confirm"].active
  # If on "No" get back to placement
  if @wnds["confirm"].index == 1
	@wnds["confirm"].index = 0
	@wnds["confirm"].active = false
	@wnds["confirm"].visible = false
	tbs_actors.clear
	@spriteset.create_sprites
	@cursor_active = true
	$game_system.se_play($data_system.cancel_se)	  
  else
  # If on "Yes" start the actual battle
	if tbs_actors.empty?
	  $game_system.se_play($data_system.buzzer_se)
	else
	  $game_system.se_play($data_system.decision_se) 
	  @wnds["confirm"].active = false
	  @wnds["confirm"].visible = false
	  @wnds["status"].visible = false
	  @wnds["status"].center
	  @wnds["help"].y = 0
	  @cursor_active = true
	  start_phase2
	end
  end
# If cancel is pressed,  pop up the confirm window
elsif Input.trigger?(Input::B) and !@wnds["confirm"].active
  @wnds["confirm"].active = true 
  @wnds["confirm"].visible = true
  @cursor_active = false
# Or return back to the map if it was popped up
elsif Input.trigger?(Input::B) and @wnds["confirm"].active
  @wnds["confirm"].active = false
  @wnds["confirm"].visible = false
  @cursor_active = true
  $game_system.se_play($data_system.cancel_se)	  
end
 end
 #--------------------------------------------------------------------------
 # Start phase 2
 def start_phase2
# Just the setup
@elocs = @plocs = []
@phase = 2
@battler_index = -1
@active_battler = nil
@wnds["help"].visible = false
next_battler
 end
 #--------------------------------------------------------------------------
 # Update phase 2
 def update_phase2	
# Determine win/loss
if judge
  # If won, or if lost end method
  return
end
# If an action forcing battler doesn't exist
if $game_temp.forcing_battler == nil
  # Set up battle event
  setup_battle_event
  # If battle event is running
  if $game_system.battle_interpreter.running?
	return
  end
end
# Check if the battler must be simulated
if @active_battler.sim
  if @active_battler.is_a? Game_Actor
	@target_type = "enemy"
  else
	@target_type = "actor"
  end
  update_AI
else
  # Update command	
  if @wnds["actor"].active or @wnds["actor2"].active
	@cursor_active = false if @cursor_active == true
	update_actor_command 
  end
  # Update the update thing
  if @skip
	@skip = false
  else
	if @update != @oldup
	  @oldup = @update
	else
	  case @update
	  when "move"
		update_movement
	  when "attack"
		update_attack
	  when "skill"
		update_skill
	  when "item"
		update_item
	  when "status"
		update_status
	  end
	end
  end
  # Grid
  if @active_battler.moving?
	@wl_done = false
	@calc_locs = "clear" unless @wlocs.empty? and @alocs.empty?
  elsif @active_battler.moving? == false and @wl_done == false
	@wl_done = true
	@calc_locs = "clear" unless @wlocs.empty? and @alocs.empty?
  end
end
 end
 #--------------------------------------------------------------------------
 # Behold, the actual AI
 def update_AI
# Focus on the active character
move_cursor(@active_battler.x, @active_battler.y)
# Create a targets array
targets = []
# Show the grid.
unless @calced
  @calced = true
  @active_battler.trange = 1
  @calc_locs = "normal"
  if !$game_temp.battle_cinematic
	wait(1) 
	return
  end
end
if !@ranged or !@melee
  @ranged = []
  @melee = []
  for action in @active_battler.action_list
	ran = 0
	if action.kind == 0
	  if action.basic == 0
		ran = @active_battler.range
	  else
		next
	  end
	elsif action.kind == 1
	  if $data_skills[action.skill_id].scope == 1
		ran = TBS.skill_range(action.skill_id)
	  elsif $data_skills[action.skill_id].scope == 2
		ran = -1
	  else
		next
	  end
	end
	res = [ran, action]
	if ran == 1
	  @melee.push(res)
	elsif ran > 1 or ran < 0
	  @ranged.push(res)
	end
  end
end
# If absolutely no targets and not calculated
unless @active_battler.moved
  # Calculate who
  if @target_type == "actor"
	@friendly = tbs_enemies
	@enemies = tbs_actors
  else
	@friendly = tbs_actors
	@enemies = tbs_enemies
  end
  # Calculate if there is any enemy in range.
  @reachable = []
  for t in @enemies
	@reachable.push(t) if in_range?(t.x, t.y) and !t.dead?
  end
  # If there are none in range, move to nearest.
  if @reachable.empty?	  
	# Search for the closest target
	closest = [Coords.new, 9999, 9999]
	for i in @enemies
	  next if i.dead?
	  dist = [i, @active_battler.x - i.x, @active_battler.y - i.y]
	  xdis = dist[1].abs - closest[1].abs
	  ydis = dist[2].abs - closest[2].abs
	  closest = dist if xdis + ydis < 0
	end
	# Make the closest one the actual target
	@target = closest[0]
	# Long range AI calc
	lowest = [Coords.new, 9999, 9999]
	# Calculate the lowest distance from walkable locs.
	for i in @wlocs
	  dist = [i, i.x - @target.x, i.y - @target.y]
	  xdis = dist[1].abs - lowest[1].abs
	  ydis = dist[2].abs - lowest[2].abs
	  # Decide the tactic to use. Just stumbled across this one.
	  if @active_battler.tactic == "blind rush"
		lowest = dist if xdis + ydis < 0
	  elsif @active_battler.tactic == "retreat"
		lowest = dist if xdis - ydis > 0
	  end
	end
	@ptarget = lowest[0]
	tx = @ptarget.x
	ty = @ptarget.y
  # Just short range AI
  else
	# Search weakest and move to it.
	weakest = [999999999, nil]
	for t in @reachable
	  weak = t.hp * t.pdef * t.mdef
	  if weak < weakest[0]
		weakest = [weak, t]
	  end
	end
	@target = weakest[1]
	tx = @target.x
	ty = @target.y
	# Calculate the quickest way.
	lowest = [Coords.new, 9999, 9999]
	for i in @wlocs
	  dist = [i, i.x - @target.x, i.y - @target.y]
	  xdis = dist[1].abs - lowest[1].abs
	  ydis = dist[2].abs - lowest[2].abs
	  lowest = dist if xdis + ydis < 0
	end
	@ptarget = lowest[0]
	tx = @ptarget.x
	ty = @ptarget.y
  end
  if in_range?(tx,ty,"move")
	# Set the calculated flag
	@active_battler.moved = true
	# Move out.
	@active_battler.find_path(tx,ty)
	@tx, @ty = tx, ty
  end
  @calc_locs = "clear"
end	
# Return if still moving
return unless @tx == @active_battler.x and @ty == @active_battler.y and !@active_battler.moving?#if @active_battler.map or @active_battler.moving?
# Only when calculated, not acted and not long range.
if !@active_battler.acted and @active_battler.moved
  # If actual long range, check if attacks can be used.
  if @reachable.empty? or @melee.empty?
	dist = @active_battler.distance(@target.x, @target.y, true)
	pos = []
	all = []
	for i in @ranged
	  all.push(i[1]) if i[0] < 0
	  pos.push(i[1]) if i[0] >= dist and dist != 0
	end
	# If possible actions, generate one.
	list = nil
	if !pos.empty?
	  list = pos
	elsif pos.empty? and !all.empty?
	  list = all
	end
	if list
	  ratings_total = 0
	  rating_max = 0
	  for act in list
		if act.rating > rating_max
		  rating_max = act.rating
		end
		if act.rating > rating_max - 3
		  ratings_total += act.rating - (rating_max - 3)
		end
	  end
	  # If ratings total isn't 0
	  if ratings_total > 0
		# Create random numbers
		value = rand(ratings_total)
		# Set things that correspond to created random numbers as current action
		for act in list
		  if act.rating > rating_max - 3
			if value < act.rating - (rating_max - 3)
			  action = act
			  break
			else
			  value -= act.rating - (rating_max - 3)
			end
		  end
		end
	  end
	end
  # Short range, use melee attacks.
  else
	pos = @melee
	# If possible actions, generate one.
	if !pos.empty?
	  ratings_total = 0
	  rating_max = 0
	  for ac in pos
		act = ac[1]
		if act.rating > rating_max
		  rating_max = act.rating
		end
		if act.rating > rating_max - 3
		  ratings_total += act.rating - (rating_max - 3)
		end
	  end
	  # If ratings total isn't 0
	  if ratings_total > 0
		# Create random numbers
		value = rand(ratings_total)
		# Set things that correspond to created random numbers as current action
		for ac in pos
		  act = ac[1]
		  if act.rating > rating_max - 3
			if value < act.rating - (rating_max - 3)
			  action = act
			  break
			else
			  value -= act.rating - (rating_max - 3)
			end
		  end
		end
	  end
	end
  end
  # If it can attack and has a target, attack
  if action and @target and !@active_battler.acted
	# Turn to actor
	@active_battler.turn_to(@target)
	# Set the acting stuff true
	@active_battler.acted = true
	if action.kind == 0 and action.basic == 0
	  # First set the animations.
	  @anim1 = @active_battler.animation1_id
	  @anim2 = @active_battler.animation2_id
	  # The actual attack damage!
	  @target.attack_effect(@active_battler)
	elsif action.kind == 1
	  # Search the actual skill
	  @skill = $data_skills[action.skill_id]
	  # Set the animations
	  @anim1 = @skill.animation1_id
	  @anim2 = @skill.animation2_id
	  # Use up SP
	  @active_battler.sp -= @skill.sp_cost
	  # Calculate the effect.
	  @target.skill_effect(@active_battler, @skill)
	end
	# Set the action
	@active_battler.current_action.kind = action.kind
	@active_battler.current_action.basic = action.basic
	@active_battler.current_action.skill_id = action.skill_id
	# Animate this thingie
	anim_source
	return
  end
end
# Unset stuff
@melee = nil
@ranged = nil
@target = nil
@calced = false
@long = false
@calc_locs = "clear" unless @wlocs.empty? and @alocs.empty?
@active_battler.trange = nil
@active_battler.acted = false
@active_battler.moved = false
# Go to next battler
next_battler
 end
 #--------------------------------------------------------------------------
 # Select next battler, based on agility
 def next_battler
# First, make a nice list
make_action_orders
if @battler_index >= @action_battlers.size - 1
  @battler_index = 0
  $game_temp.battle_turn += 1
else
  @battler_index += 1
end
@active_battler.blink = false if @active_battler
obattler = @active_battler
@active_battler = @action_battlers[@battler_index]
next_battler if !@active_battler or @active_battler.dead? or @active_battler == obattler	
@active_battler.blink = true
# Do stuff if it can be controlled
if !@active_battler.sim
  if @active_battler.is_a? Game_Actor
	@target_type = "enemy"
  else
	@target_type = "actor"
  end
  @wnds["actor"].active = true
  move_cursor(@active_battler.x, @active_battler.y)
  @wnds["actor"].enable_item(0) unless @active_battler.moved
  @wnds["actor"].enable_item(1) unless @active_battler.acted
  @wnds["actor"].index = 0
  # Slip damage (from states etc)
  if @active_battler.hp > 0 and @active_battler.slip_damage?
	@active_battler.slip_damage_effect
	@active_battler.damage_pop = true
  end
  # Natural removal of states
  @active_battler.remove_states_auto
  next_battler if @active_battler.dead?
else
  @wnds["actor"].active = false
  @wnds["actor"].visible = false
  @wnds["actor2"].active = false
  @wnds["actor2"].visible = false
end
@cursor_active = false	
 end
 #--------------------------------------------------------------------------
 # Yes, update the actor command window. Shocking fact.
 def update_actor_command
# If confirm window is pressed:
if Input.trigger?(Input::C)
  # If the main window.
  if @wnds["actor"].active 
	# Start movement
	if @wnds["actor"].index == 0 and !@active_battler.moved and !@active_battler.acted
	  @calc_locs = "normal"
	  @wnds["actor"].active = false
	  @wnds["actor"].visible = false
	  @cursor_active = true
	  @update = "move"
	  @prev_x = @active_battler.x
	  @prev_y = @active_battler.y
	  $game_system.se_play($data_system.decision_se)
	  return
	# Start actions
	elsif @wnds["actor"].index == 1 and !@active_battler.acted
	  @wnds["actor"].active = false
	  @wnds["actor2"].active = true
	  @wnds["actor2"].visible = true
	  $game_system.se_play($data_system.decision_se)
	  return
	# End actor's turn
	elsif @wnds["actor"].index == 2
	  unless @active_battler.acted
		@active_battler.current_action.kind = 0
		@active_battler.current_action.basic = 3
	  end
	  @active_battler.acted = false
	  @active_battler.moved = false
	  next_battler
	  $game_system.se_play($data_system.decision_se)
	  return
	# Status window
	elsif @wnds["actor"].index == 3
	  @select = @battler_index
	  #@ocursor = @cursor.clone
	  @wnds["actor"].active = false
	  @wnds["status"].battler = @active_battler
	  @wnds["status"].visible = true
	  @update = "status"
	  $game_system.se_play($data_system.decision_se)
	  return
	else
	  $game_system.se_play($data_system.buzzer_se)
	  return
	end
  elsif @wnds["actor2"].active
	# Start attacking
	if @wnds["actor2"].index == 0 and !@active_battler.acted
	  @calc_locs = "attack"
	  @wnds["actor"].visible = false
	  @wnds["actor2"].active = false
	  @wnds["actor2"].visible = false
	  @cursor_active = true
	  @update = "attack"
	  @prev_ax = @active_battler.x
	  @prev_ay = @active_battler.y
	  $game_system.se_play($data_system.decision_se)
	  return
	# Skills go here
	elsif @wnds["actor2"].index == 1 and !@active_battler.acted
	  @wnds["skill"] = Window_Skill.new(@active_battler)
	  @wnds["skill"].help_window = @wnds["help"]
	  @wnds["actor"].visible = false
	  @wnds["actor2"].active = false
	  @wnds["actor2"].visible = false
	  @update = "skill"
	  $game_system.se_play($data_system.decision_se)
	  return
	# Items go here
	elsif @wnds["actor2"].index == 2 and !@active_battler.acted
	  @wnds["item"] = Window_Item.new
	  @wnds["item"].help_window = @wnds["help"]
	  @wnds["actor"].visible = false
	  @wnds["actor2"].active = false
	  @wnds["actor2"].visible = false
	  @update = "item"
	  $game_system.se_play($data_system.decision_se)
	  return
	else
	  $game_system.se_play($data_system.buzzer_se)
	  return
	end
  end
# Some window switching here
elsif  Input.trigger?(Input::RIGHT)
  flag = "right"
elsif Input.trigger?(Input::LEFT)
  flag = "left"
end
if @act_loc == "right"
  if flag == "right"
	flag = "left"
  elsif flag == "left"
	flag = "right"
  end
end
if flag == "right" and @wnds["actor"].active and @wnds["actor"].index == 1
  @wnds["actor"].active = false
  @wnds["actor2"].active = true
  @wnds["actor2"].visible = true
  $game_system.se_play($data_system.decision_se)  
elsif (Input.trigger?(Input::B) or flag == "left") and @wnds["actor2"].active
  @wnds["actor"].active = true
  @wnds["actor2"].active = false
  @wnds["actor2"].visible = false
  @wnds["actor2"].index = 0
  $game_system.se_play($data_system.cancel_se)
  @skip = true
end
 end
 #--------------------------------------------------------------------------
 # Hard to guess, it updates movement
 def update_movement
# When confirm button is pressed, move to that location unless it simply cant
if Input.trigger?(Input::C)
  unless @active_battler.x == @cursor.x and @active_battler.y == @cursor.y
	result = false
	for i in @wlocs
	  result = true if i.x == @cursor.x and i.y == @cursor.y
	end
	unless result
	  $game_system.se_play($data_system.buzzer_se)
	  return
	else
	  hlt_update
	  @active_battler.find_path(@cursor.x, @cursor.y) unless taken?(@cursor.x, @cursor.y)
	  @active_battler.moved = true
	  @wnds["actor"].disable_item(0)
	  @wnds["actor"].index = 1
	  @wnds["actor"].active = true
	  @wnds["actor"].visible = true
	  @cursor_active = false
	  $game_system.se_play($data_system.decision_se)
	end
  end
# When cancel is pressed and the active battler has moved, cancel movement
elsif Input.trigger?(Input::B) and @active_battler.moved and !@active_battler.acted and @wnds["actor"].active
  @active_battler.place(@prev_x,@prev_y)
  @calc_locs = "normal"
  move_cursor(@prev_x, @prev_y)	
  @wnds["actor"].enable_item(0)
  @active_battler.moved = false
  @wnds["actor"].active = false
  @wnds["actor"].visible = false
  @wnds["actor"].index = 0
  @cursor_active = true
  @wl_done = false
  $game_system.se_play($data_system.cancel_se)
# When cancel is pressed and the active battler hasn't moved, go back to actor command window
elsif Input.trigger?(Input::B) and !@active_battler.moved
  @calc_locs = "clear"
  move_cursor(@prev_x, @prev_y)
  @wnds["actor"].active = true
  @wnds["actor"].visible = true
  @cursor_active = false
  $game_system.se_play($data_system.cancel_se)	 
end
 end
 #--------------------------------------------------------------------------
 # Update attack
 def update_attack
return if @update != "attack" or @wnds["actor"].active or @wnds["actor2"].active
# When confirm is pressed, attack
if Input.trigger?(Input::C)
  if @cursor.x == @active_battler.x and @cursor.y == @active_battler.y
	$game_system.se_play($data_system.buzzer_se)
	return
  end		
  # Only when in range
  if !in_range?(@cursor.x, @cursor.y)
	$game_system.se_play($data_system.buzzer_se)
	return
  end
  # Get target and stuff.
  @target = taken?(@cursor.x, @cursor.y)
  if @target_type == "enemy" and @target.is_a? Game_Enemy
	flag = true
  elsif @target_type == "actor" and @target.is_a? Game_Actor
	flag = true
  else
	flag = false
  end
  if flag and !@target.dead?
	# Face the target
	@active_battler.turn_to(@target)
	# Clear locations
	@calc_locs = "clear"
	# First set the animations.
	@anim1 = @active_battler.animation1_id
	@anim2 = @active_battler.animation2_id
	# The actual attack damage!
	@target.attack_effect(@active_battler)
	# Set the action
	@active_battler.current_action.kind = 0
	@active_battler.current_action.basic = 0
	# And set the actor stuff
	move_cursor(@prev_ax, @prev_ay)
	$game_system.se_play($data_system.decision_se)
	@cursor_active = false
	# Animate this thingie
	anim_source
	return
  else
	return if @cursor.x == @active_battler.x and @cursor.y == @active_battler.y
	$game_system.se_play($data_system.buzzer_se) 
  end
# When cancel is pressed, go back to actor command window
elsif Input.trigger?(Input::B)
  move_cursor(@prev_ax, @prev_ay)   
  @calc_locs = "clear"
  @cursor_active = false
  @wnds["actor2"].active = true
  @wnds["actor2"].visible = true
  @wnds["actor"].visible = true
  if @active_battler.moved
	@update = "move"
  else
	@update = ""
  end
  $game_system.se_play($data_system.cancel_se)	 
end
 end
 #--------------------------------------------------------------------------
 # Update skill
 def update_skill
# If it needs to use the skill.
if @use
  # Face the target
  @active_battler.turn_to(@target[0])
  # Clear the highlighting
  @calc_locs = "clear"
  # Check if it can be used.
  unless @active_battler.skill_can_use?(@skill.id)
	@wnds["skill"].visible = true
	@wnds["skill"].active = true
	@wnds["help"].visible = true
	return
  end
  # Use up SP
  @active_battler.sp -= @skill.sp_cost
  # Display item name on help window
  @wnds["help"].set_text(@skill.name, 1)
  # First set the animations.
  @anim1 = @skill.animation1_id
  @anim2 = @skill.animation2_id
  # Apply skill effect
  for target in @target
	target.skill_effect(@active_battler, @skill)
  end
  # Reset the flag.
  @use = false
  # Start Animation
  anim_source
end
# If the confirm button is pressed
if Input.trigger?(Input::C)
  # If the item window is active
  if @wnds["skill"].active
	# Use the actual item
	@skill = $data_skills[@wnds["skill"].skill.id]
	if @active_battler.skill_can_use?(@skill.id)
	  # Hide the window
	  @wnds["skill"].active = false
	  @wnds["skill"].visible = false
	  @target = []
	  # It needs to switch to the target selection here.
	  case @wnds["skill"].skill.scope
	  when 1  # single enemy
		@calc_locs = "attack"
		@cursor_active = true
	  when 2  # all enemies
		@calc_locs = "enemies"
		if @target_type == "actor"
		  t = tbs_actors
		elsif @target_type == "enemy"
		  t = tbs_enemies
		end
		for battler in t 
		  @target.push(battler) if battler.exist?
		end
	  when 3  # single ally
		@calc_locs = "friendly"
		@cursor_active = true
	  when 4  # all allies
		@calc_locs = "allies"
		if @target_type == "actor"
		  t = tbs_enemies
		elsif @target_type == "enemy"
		  t = tbs_actors
		end
		for battler in t 
		  if battler.exist?
			@target.push(actor)
		  end
		end
	  when 5  # single ally (HP 0)
		@calc_locs = "friendly"
		@cursor_active = true
	  when 6  # all allies (HP 0) 
		@calc_locs = "allies0"
		if @target_type == "actor"
		  t = tbs_enemies
		elsif @target_type == "enemy"
		  t = tbs_actors
		end
		for battler in t 
		  if battler.exist?
			@target.push(actor) if actor.dead?
		  end
		end
	  when 7  # user
		@calc_locs = "self"
		@target.push(@active_battler)
	  end
	  @active_battler.current_action.skill_id = @wnds["skill"].skill.id
	  $game_system.se_play($data_system.decision_se)
	else
	  $game_system.se_play($data_system.buzzer_se)
	end
  else
	# If target array is not empty, set the flag.
	if !@target.empty?
	  @use = true
	  $game_system.se_play($data_system.decision_se)
	# Else, select.
	else		   
	  # If actually in range.
	  if !in_range?(@cursor.x, @cursor.y)
		$game_system.se_play($data_system.buzzer_se)
		return
	  end
	  # Get a target.
	  targ = taken?(@cursor.x, @cursor.y)
	  # When its an enemy item
	  if @wnds["skill"].skill.scope == 1
		if @target_type == "enemy" and targ.is_a? Game_Enemy
		  flag = true
		elsif @target_type == "actor" and targ.is_a? Game_Actor
		  flag = true
		else
		  flag = false
		end
	  # When its an ally item
	  elsif @wnds["skill"].skill.scope == 3 or @wnds["skill"].skill.scope == 5
		if @target_type == "enemy" and targ.is_a? Game_Actor
		  flag = true
		elsif @target_type == "actor" and targ.is_a? Game_Enemy
		  flag = true
		else
		  flag = false
		end
	  end
	  # Set the second flag.
	  flag2 = false
	  if flag
		if @wnds["skill"].skill.scope == 1 or @wnds["skill"].skill.scope == 3
		  flag2 = (!targ.dead?)
		elsif @wnds["skill"].skill.scope == 5
		  flag2 = (targ.dead?)
		end
	  end
	  # If the flag is true and the target is not dead.
	  if flag and flag2
		# Clear the highlighting
		@calc_locs = "clear"
		# Create the array.
		@target = [targ]
		# Deactivate the cursor and move it back
		@cursor_active = false
		@spriteset.cursor.visible = false
		move_cursor(@active_battler.x, @active_battler.y)
		# Set the use flag
		@use = true
		$game_system.se_play($data_system.decision_se)
	  else
		$game_system.se_play($data_system.buzzer_se)
	  end
	end
  end
# If cancel is pressed
elsif Input.trigger?(Input::B)
  # If the item window is active
  if @wnds["skill"].active
	# Clear everything
	@update = ""
	@calc_locs = "clear"
	@wnds["skill"].dispose
	@wnds.delete("skill")
	@wnds["help"].visible = false
	@wnds["actor2"].active = true
	@wnds["actor2"].visible = true
	@wnds["actor"].visible = true
	$game_system.se_play($data_system.cancel_se)
  else
	@calc_locs = "clear"
	@cursor_active = false
	@active_battler.current_action.skill_id = 0
	@cursor.x, @cursor.y = @active_battler.x, @active_battler.y
	@wnds["skill"].visible = true
	@wnds["skill"].active = true
	@wnds["help"].visible = true
	$game_system.se_play($data_system.cancel_se)
  end
end
 end
 #--------------------------------------------------------------------------
 # Update item
 def update_item
# If it needs to use the item..
if @use
  # Face the target
  @active_battler.turn_to(@target[0])
  # Clear the highlighting
  @calc_locs = "clear"
  # Check if it can be used.
  unless $game_party.item_can_use?(@item.id)
	@wnds["item"].visible = true
	@wnds["item"].active = true
	@wnds["help"].visible = true
	$game_system.se_play($data_system.cancel_se)
	return
  end
  # Lose the item if can lose.
  $game_party.lose_item(@item.id, 1) if @item.consumable
  # Display item name on help window
  @wnds["help"].set_text(@item.name, 1)
  # First set the animations.
  @anim1 = @item.animation1_id
  @anim2 = @item.animation2_id
  # Apply item effect
  for target in @target
	target.item_effect(@item)
  end
  # Reset the flag.
  @use = false
  # Start Animation
  anim_source
end
# If the confirm button is pressed
if Input.trigger?(Input::C)
  # If the item window is active
  if @wnds["item"].active
	# Use the actual item
	@item = $data_items[@wnds["item"].item.id]
	if $game_party.item_can_use?(@item.id)
	  # Hide the window
	  @wnds["item"].active = false
	  @wnds["item"].visible = false
	  @target = []
	  # It needs to switch to the target selection here.
	  case @wnds["item"].item.scope
	  when 1  # single enemy
		@calc_locs = "attack"
		@cursor_active = true
	  when 2  # all enemies
		@calc_locs = "enemies"
		if @target_type == "actor"
		  t = tbs_actors
		elsif @target_type == "enemy"
		  t = tbs_enemies
		end
		for battler in t 
		  @target.push(battler) if battler.exist?
		end
	  when 3  # single ally
		@calc_locs = "friendly"
		@cursor_active = true
	  when 4  # all allies
		@calc_locs = "allies"
		if @target_type == "actor"
		  t = tbs_enemies
		elsif @target_type == "enemy"
		  t = tbs_actors
		end
		for battler in t 
		  if battler.exist?
			@target.push(actor)
		  end
		end
	  when 5  # single ally (HP 0)
		@calc_locs = "friendly"
		@cursor_active = true
	  when 6  # all allies (HP 0) 
		@calc_locs = "allies0"
		if @target_type == "actor"
		  t = tbs_enemies
		elsif @target_type == "enemy"
		  t = tbs_actors
		end
		for battler in t 
		  if battler.exist?
			@target.push(actor) if actor.dead?
		  end
		end
	  when 7  # user
		@calc_locs = "self"
		@target.push(@active_battler)
	  end
	  @active_battler.current_action.item_id = @wnds["item"].item.id
	  $game_system.se_play($data_system.decision_se)
	else
	  $game_system.se_play($data_system.buzzer_se)
	end
  else
	# If target array is not empty, set the flag.
	if !@target.empty?
	  @use = true
	  $game_system.se_play($data_system.decision_se)
	# Else, select.
	else
	  # Get a target.
	  targ = taken?(@cursor.x, @cursor.y)
	  # Only when in range
	  if !in_range?(@cursor.x, @cursor.y)
		$game_system.se_play($data_system.buzzer_se)
		return
	  end
	  # When its an enemy item
	  if @wnds["item"].item.scope == 1
		if @target_type == "enemy" and targ.is_a? Game_Enemy
		  flag = true
		elsif @target_type == "actor" and targ.is_a? Game_Actor
		  flag = true
		else
		  flag = false
		end
	  # When its an ally item
	  elsif @wnds["item"].item.scope == 3 or @wnds["item"].item.scope == 5
		if @target_type == "enemy" and targ.is_a? Game_Actor
		  flag = true
		elsif @target_type == "actor" and targ.is_a? Game_Enemy
		  flag = true
		else
		  flag = false
		end
	  end
	  # Set the second flag.
	  flag2 = false
	  if flag
		if @wnds["item"].item.scope == 1 or @wnds["item"].item.scope == 3
		  flag2 = (!targ.dead?)
		elsif @wnds["item"].item.scope == 5
		  flag2 = (targ.dead?)
		end
	  end
	  # If the flag is true and the target is not dead.
	  if flag and flag2
		# Clear the highlighting
		@calc_locs = "clear"
		# Create the array.
		@target = [targ]
		# Deactivate the cursor and move it back
		@cursor_active = false
		@spriteset.cursor.visible = false
		move_cursor(@active_battler.x, @active_battler.y)
		# Set the use flag
		@use = true
		$game_system.se_play($data_system.decision_se)
	  else
		$game_system.se_play($data_system.buzzer_se)
	  end
	end
  end
# If cancel is pressed
elsif Input.trigger?(Input::B)
  # If the item window is active
  if @wnds["item"].active
	# Clear everything
	@update = ""
	@wnds["item"].dispose
	@wnds.delete("item")
	@wnds["help"].visible = false
	@wnds["actor2"].active = true
	@wnds["actor2"].visible = true
	@wnds["actor"].visible = true
	$game_system.se_play($data_system.cancel_se)
  else
	@calc_locs = "clear"
	@cursor_active = false
	@active_battler.current_action.item_id = 0
	@cursor.x, @cursor.y = @active_battler.x, @active_battler.y
	@wnds["item"].visible = true
	@wnds["item"].active = true
	@wnds["help"].visible = true
	$game_system.se_play($data_system.cancel_se)
  end
end
 end
 #--------------------------------------------------------------------------
 # Updates the status
 def update_status
if @action_battlers[@select] != @wnds["status"].battler
  @wnds["status"].battler = @action_battlers[@select]
  for battler in tbs_battlers
	battler.blink = false
  end
  unless @action_battlers[@select].dead?
	@cursor.x , @cursor.y = @wnds["status"].battler.x, @wnds["status"].battler.y
	@wnds["status"].battler.blink = true
  end
end
# Next battler
if Input.trigger?(Input::X) or Input.trigger?(Input::LEFT)
  @select -= 1
  @select = @action_battlers.size - 1 if @select < 0
elsif Input.trigger?(Input::Y) or Input.trigger?(Input::RIGHT)
  @select += 1
  @select = 0 if @select > @action_battlers.size - 1
elsif Input.trigger?(Input::B)
  for battler in tbs_battlers
	battler.blink = false
  end
  @active_battler.blink = true
  move_cursor(@active_battler.x, @active_battler.y)
  @wnds["actor"].active = true
  @wnds["status"].visible = false
  $game_system.se_play($data_system.cancel_se)	 
end
 end
 #--------------------------------------------------------------------------
 # Calculates if there is any result
 def results(targets)
unless targets.is_a? Array
  targets = [targets]
end
# Initialize EXP, amount of gold, and treasure
exp = 0
gold = 0
count = 0
treasures = []
# Loop
for fallen in targets
  next unless fallen.dead?
  count += 1
  # Add EXP and amount of gold obtained
  exp += fallen.exp
  gold += fallen.gold
  # Determine if treasure appears
  if rand(100) < fallen.treasure_prob
	if fallen.item_id > 0
	  treasures.push($data_items[fallen.item_id])
	end
	if fallen.weapon_id > 0
	  treasures.push($data_weapons[fallen.weapon_id])
	end
	if fallen.armor_id > 0
	  treasures.push($data_armors[fallen.armor_id])
	end
  end
end
return unless count > 0
# Treasure is limited to a maximum of 6 items
treasures = treasures[0..5]
# Obtaining EXP
=begin
if @active_battler.cant_get_exp? == false
  last_level = @active_battler.level
  @active_battler.exp += exp
  if @active_battler.level > last_level
	@active_battler.damage = "Level up!"
	@active_battler.damage_pop = true
  end
end
=end
  for i in 0...$game_party.actors.size
  actor = $game_party.actors[i]
  if actor.cant_get_exp? == false
	last_level = actor.level
	actor.exp += exp
	if actor.level > last_level
	  @status_window.level_up(i)
	  actor.damage = "Level up!"
	  actor.damage_pop = true
	end
  end
end
# Obtaining gold
$game_party.gain_gold(gold)
# Obtaining treasure
for item in treasures
  case item
  when RPG::Item
	$game_party.gain_item(item.id, 1)
  when RPG::Weapon
	$game_party.gain_weapon(item.id, 1)
  when RPG::Armor
	$game_party.gain_armor(item.id, 1)
  end
end
# Make battle result window
@wnds["result"] = Window_BattleResult.new(exp, gold, treasures)
@wnds["result"].center
@wnds["result"].visible = true
# Wait for 2 seconds
wait(2)
 end
 #--------------------------------------------------------------------------
 # The animations. First, source.
 def anim_source
if @anim1 == 0
  @active_battler.white_flash = true
else
  @active_battler.animation_id = @anim1
  @active_battler.animation_hit = true
end
anim1 = $data_animations[@anim1]
if anim1 != nil
  @wait_count += anim1.frame_max * 2
else
  @wait_count += 1
end
@after_wait = []
@after_wait.push("anim_target")
 end
 #--------------------------------------------------------------------------
 # Next, the target.
 def anim_target
# Show animations
if @target.is_a? Array
  for target in @target
	target.animation_id = @anim2
	target.animation_hit = (target.damage != "Miss")
  end
else
  return if @target == nil
  @target.animation_id = @anim2
  @target.animation_hit = (@target.damage != "Miss")
end
# Calculate waiting.
anim2 = $data_animations[@anim2]
if anim2 != nil
  @wait_count += anim2.frame_max * 2
else
  @wait_count += 1
end
@after_wait = []
@after_wait.push("damage_display")
 end
 #--------------------------------------------------------------------------
 # Damage display etc.
 def damage_display
@wait_count += 8
# Set common event id
if @update == "item"
  @common_event_id = @item.common_event_id
end
# Display the damage first.
if !$game_temp.battle_cinematic
  if @target.is_a? Array
	for target in @target
	  target.damage_pop = true if target.damage != nil
	end
  else
	return if @target == nil
	@target.damage_pop = true if @target.damage != nil
  end
end
@active_battler.acted = true
@active_battler.current_action.skill_id = 0
@active_battler.current_action.item_id = 0
if !@active_battler.sim
  # Window stuff
  @wnds["help"].visible = false
  if @wnds["item"] != nil
	@wnds["item"].dispose
	@wnds.delete("item")
  end
  @wnds["actor"].active = true
  @wnds["actor"].visible = true
  @wnds["actor"].disable_item(0)
  @wnds["actor"].disable_item(1)
  @wnds["actor"].index = 2
  @wnds["actor2"].index = 0
  @update = ""
  # Clear target stuff
  results(@target)
  @target = nil
end
@cursor.x, @cursor.y = @active_battler.x, @active_battler.y
 end
 #--------------------------------------------------------------------------
 # Start phase 3, actually, just win.
 def start_phase3
# Shift to phase 3
@phase = 3
# Clear highlighting
@calc_locs = "clear"
# Turn blink off
@active_battler.blink = false
# Play battle end ME
$game_system.me_play($game_system.battle_end_me)
# Return to BGM before battle started
$game_system.bgm_play($game_temp.map_bgm)
# Window stuff
@wnds["actor"].visible = false
@wnds["actor"].active = false
@wnds["help"].set_text("You won!")
 end
 #--------------------------------------------------------------------------
 # Update the winning, hurray!
 def update_phase3
# If confirm is pressed, end battle
if Input.trigger?(Input::C)
  # Reset all battlers
  for i in tbs_battlers
	i.reset
  end
  # Battle ends
  battle_end(0)
  for i in 0...(10 * 20)#il 10 sono i secondi da aspettare
	sleep 0.01
	Graphics.update
	$game_system.update
	$game_screen.update
	$game_map.update
	@spriteset.update 
  end
end
 end
 #--------------------------------------------------------------------------
 # Update the highlighting
 def hlt_update
return if $game_temp.battle_cinematic
# The old stuff are there for lag reduction
new = {}
new["enemy"] = @elocs.dup
new["attack"] = @alocs.dup
new["player"] = @plocs.dup
new["walk"] = @wlocs.dup
new["friendly"] = @flocs.dup
# Simple test to reduce lag
return if new == @old
# Put all tiles on normal
for x in 0...@spriteset.map.xsize
  for y in 0...@spriteset.map.ysize
	@spriteset.map[x,y] = 0
  end
end
# Red locs
for i in @elocs + @alocs
  @spriteset.map[i.x,i.y] = 2
end
# Green locs
for i in @flocs
  @spriteset.map[i.x,i.y] = 3
end
# Blue locs
for i in @plocs + @wlocs
  @spriteset.map[i.x,i.y] = 1
end
# The old stuff are there for lag reduction
@old = new.dup
# Update the actual spriteset highlighting
@spriteset.hlt_update
 end
 #--------------------------------------------------------------------------
 # Make a list of all battlers and sort it on agility
 def make_action_orders
# Initialize @action_battlers array
@action_battlers = []
# Do stuff
for battler in tbs_battlers
  battler.make_action_speed
  @action_battlers.push(battler)
end
# Line up action speed in order from greatest to least
@action_battlers.sort! {|a,b| b.current_action.speed - a.current_action.speed }
 end
 #--------------------------------------------------------------------------
 # Check if a location is in range (attack only)
 def in_range?(x, y, type = "attack")
# Check every location if its the right one, if it is, return true
if type == "attack"
  list = @alocs + @flocs
elsif type == "move"
  list = @wlocs
end
for i in list
  if i.x == x and i.y == y
	return true
  end
end
# If not, return false
return false
 end
 #--------------------------------------------------------------------------
 # Move the cursor to a specific location
 def move_cursor(x, y)
@cursor.x = x
@cursor.y = y
@spriteset.cursor.x = @cursor.x * 32
@spriteset.cursor.y = @cursor.y * 32
 end
 #--------------------------------------------------------------------------
 # Simply check if all are dead, from default battle
 def judge
# If all dead determinant is true, or number of members in party is 0
alldead = true
for actor in tbs_actors
  alldead = false if !actor.dead?
end
if alldead
  # If possible to lose
  if $game_temp.battle_can_lose
	# Return to BGM before battle starts
	$game_system.bgm_play($game_temp.map_bgm)
	# Battle ends
	battle_end(2)
	# Return true
	return true
  end
  for wnd in @wnds.values
	wnd.visible = false
  end
  # Set game over flag
  $game_temp.gameover = true
  # Return true
  return true
end
# Return false if even 1 enemy exists
for enemy in tbs_enemies
  if enemy.exist?
	return false
  end
end
# Start after battle phase (win)
start_phase3
# Return true
return true
 end
 #--------------------------------------------------------------------------
 # End the battle, duh
 def battle_end(result)
# Clear in battle flag
$game_temp.in_battle = false
# Clear entire party actions flag
$game_party.clear_actions
# Remove battle states
for actor in tbs_actors
  actor.remove_states_battle
end
# Clear enemies
$game_troop.enemies.clear
# Call battle callback
if $game_temp.battle_proc != nil
  $game_temp.battle_proc.call(result)
  $game_temp.battle_proc = nil
end
$game_temp.clear_battlers
# Switch to map screen
$scene = Scene_Map.new
 end
 #--------------------------------------------------------------------------
 # Not working, something i copied from default battle :P
 def setup_battle_event
if $game_system.battle_interpreter.running?
  return
end
for index in 0...$data_troops[@troop_id].pages.size
  page = $data_troops[@troop_id].pages[index]
  c = page.condition
  unless c.turn_valid or c.enemy_valid or
		 c.actor_valid or c.switch_valid
	next
  end
  if $game_temp.battle_event_flags[index]
	next
  end
  if c.turn_valid
	n = $game_temp.battle_turn
	a = c.turn_a
	b = c.turn_b
	if (b == 0 and n != a) or
	   (b > 0 and (n < 1 or n < a or n % b != a % b))
	  next
	end
  end
  if c.enemy_valid
	enemy = $game_troop.enemies[c.enemy_index]
	if enemy == nil or enemy.hp * 100.0 / enemy.maxhp > c.enemy_hp
	  next
	end
  end
  if c.actor_valid
	actor = $game_actors[c.actor_id]
	if actor == nil or actor.hp * 100.0 / actor.maxhp > c.actor_hp
	  next
	end
  end
  if c.switch_valid
	if $game_switches[c.switch_id] == false
	  next
	end
  end
  print "INTERPRETER!"
  $game_system.battle_interpreter.setup(page.list, 0)
  if page.span <= 1
	$game_temp.battle_event_flags[index] = true
  end
  return
end
 end
 #---------------------------------------------------------------------------
 # Returns actors
 def tbs_actors
return $game_temp.battleteams["actors"]
 end
 #---------------------------------------------------------------------------
 # Returns enemies
 def tbs_enemies
return $game_temp.battleteams["enemies"]
 end
 #---------------------------------------------------------------------------
 # Returns all battlers
 def tbs_battlers
list = []
for team in $game_temp.battleteams.values
  for battler in team
	list.push(battler)
  end
end
return list
 end
 #---------------------------------------------------------------------------
 # Check if there is someone on my tile
 def taken?(x,y)
for i in tbs_battlers	  
  return i if i.x == x and i.y == y
end
return false
 end
 #---------------------------------------------------------------------------
 # Wait some seconds
 def wait(sec)
@wait_count = sec * Graphics.frame_rate
 end
end

 

 

La picture di sconfitta va messa nella cartella Pictures e va chiamata Perso (il nome lo puoi cambiare).

Per quanto riguarda il tempo da aspettare ho messo 20 secondi per il game over e 10 per la vittoria(mi sembra di ricordare).

Anche questi ultimi due valori possono essere cambiati, cerca sleep all'interno dello script,

ne troverai due, il primo è del game over il secondo è della vittoria.

Ho commentato tutto in modo tale da spiegarti alcune cose, ma se non capisci qualcosa puoi tranquillamente dirmelo via MP o su questo topic.

Link to comment
Share on other sites

  • 0
Ho provato a sostituire lo script, ma da Errore, non so perchè. Hai Possibilità di postare la demo, che cosi sono sicuro che vada, grazie ciao Edited by PinnaWarner

Progetti:

Cronache del Mondo Emerso RPGVX -in progettazione-

Captain Tsubasa RPG 1 (Holly e Benji) RPG2k -ultimato-

Captain Tsubasa RPG 2 (Holly e Benji) RPGXP -in lavorazione 10%-

One Piece (All'arrembaggio) RPG2k -interrotto-

The Leggend Of Dragons RPG2k -demo rilasciata-

Arcadia Tactics RPGXP -demo rilasciata-

 

---> Visita il Mio Sito <---

 

Contest: http://rpg2s.net/gif/SCContest3Oct.gif - http://www.rpg2s.net/gif/GC_programmazione3.gif - http://www.rpg2s.net/gif/GC_premio2.gif - http://www.rpg2s.net/awards/bestpixel2.jpg

Link to comment
Share on other sites

  • 0

Wow slepping da quel che vedo sei un bravo scripter...

Complimenti per il tuo lavoro (ora capisco perche hai tutti quei rens ;))

A Pinna dove è che ti da problemi?

Sicuro di aver copiato tutto bene? Controlla ;)

I mei premi su RPG2s
2o posto nel Xmas contesti 2007

Appena lo ho visto lo ho dovuto mettere in firma ;):
 
<div style="margin:20px;margin-top:5px" "="">

 



Il Manifesto del Making Italiano

SALVIAMO IL MAKING ITALIANO!!
Dopo un test dei nostri esperti (Alato, Blake e havana24) abbiamo scoperto che ad interesse risponde interesse: cio� se voi dimostrate di essere interessati a ci� che creano gli altri, questi saranno stimolati a continuare a creare! E' un concetto semplice ma estremamente sottovalutato, basta vedere quanti topic di bei giochi sono caduti nel dimenticatoio e sono stati cagati solo da poche persone (prendiamo per esempio il fantastico gioco di Vech che vi invito a vedere nella sezione RM2k).
Perci� quello che dobbiamo fare �: leggere, leggere, leggere, postare, postare, postare! E questo non significa postare a caso, ma leggere per bene il progetto di qualcuno, le domande poste, le creazioni grafiche e musicali, e fare dei post in cui si propongano miglioramenti, si critichino le brutture, si esaltino le bellezze, si aiutino gli oppressi etc etc
BASTA AL MAKING ITALIANO CHE VA A ROTOLI! DIAMOCI UNA SVEGLIATA!!
Per dimostrarvi ci� che sto esponendo vi riporto che la volta in cui abbiamo provato (Alato, Blake e havana24) a fare una cosa di questo genere, c'� costata un pomeriggio ma il giorno dopo abbiamo ottenuto il numero massimo di utenti online mai raggiunto!!! Ma soprattutto ci� significa che l'interesse riguardo al making era stato, almeno momentaneamente, risvegliato!!
Voi pensate che eravamo solo in 3 a cercare tutti i topic e ravvivarli (con sincerit� e senza i soliti falsi "Oh che bello.", ma anche con critiche per lavori incompleti o assurdi) e abbiamo ottenuto quel grande risultato: se lo facessimo tutti non sarebbe una cosa potentissima?!?
BASTA ALLE SOLITE BANALI DISCUSSIONI SULLA DECADENZA DEI GIOCHI!! FACCIAMOLI STI GIOCHI!!!
Chi � contrario a questa cosa, pu� pure continuare cos� ma � una persona che col making non ha nulla a che fare, ma chi crede nel making inizi ora, immediatamente a seguire questa linea di pensiero!

Ma chi � d'accordo, chi davvero ci tiene al making, incolli questo Manifesto nella propria firma!! Mettete anche voi questa firma!!

 

Link to comment
Share on other sites

  • 0

Si ho Provato allora riscontro i seguenti errori:

 

1. Se un pg fa LV UP da errore, questo anke nella demo di prima.

2. Se vieni sconfisso ok, aspetta tot secondi però va in LOOP (questo copiando solo la parte ke riguarda il gameover) cmq ho controllato e di Sleep ce ne solo 1 non 2.

3. Se sostituisco lo script ke hai postato qui, mi da errore nell'ultima riga, per farlo partire io metto un END in +. Pero a questo punto ho un errore qui:

 

# Enemy setup

$game_troop.setup($game_temp.battle_troop_id)

for enemy in $game_troop.enemies

for index in 0..999

if enemy.index + 1 == @ennumbers[index]

tbs_enemies.push(enemy)

enemy.place(elocs[index].x, elocs[index].y)

@elocs.push(Coords.new(elocs[index].x, elocs[index].y))

@spriteset.battler_sprites.push(Sprite_Battler.new(@spriteset.viewport1, enemy))

end

break if $game_troop.enemies.size == tbs_enemies.size

end

end

 

Un Circolo vizione XD, puoi risolvermelo? Mi fai sapere poi quali script sn interessati, perche io lo devo mettere dentro un progetto dove ci sn u pacco di script quindi devo copiare solo quelli modificati per non fare casino, aspetto una risposta ciao

Edited by PinnaWarner

Progetti:

Cronache del Mondo Emerso RPGVX -in progettazione-

Captain Tsubasa RPG 1 (Holly e Benji) RPG2k -ultimato-

Captain Tsubasa RPG 2 (Holly e Benji) RPGXP -in lavorazione 10%-

One Piece (All'arrembaggio) RPG2k -interrotto-

The Leggend Of Dragons RPG2k -demo rilasciata-

Arcadia Tactics RPGXP -demo rilasciata-

 

---> Visita il Mio Sito <---

 

Contest: http://rpg2s.net/gif/SCContest3Oct.gif - http://www.rpg2s.net/gif/GC_programmazione3.gif - http://www.rpg2s.net/gif/GC_premio2.gif - http://www.rpg2s.net/awards/bestpixel2.jpg

Link to comment
Share on other sites

  • 0

Sicuramente ci sarà stato qualke problema quando ho copiato ed incollato lo script prendi direttamente la demo e copia la parte chiamata -Scene_Battle-.

http://www.savefile.com/files/1265039

Mi dispiace per l'inconveniente :P

Grazie Lorenman ^^

Link to comment
Share on other sites

  • 0

Figurati,

Allora il problema del LIV UP e sempre presente. Com lo risolto, vome fanno LV da errore:

for i in 0...$game_party.actors.size
  actor = $game_party.actors[i]
  if actor.cant_get_exp? == false
	last_level = actor.level
	actor.exp += exp
	if actor.level > last_level
	  [b]@status_window.level_up(i)[/b]
	  actor.damage = "Level up!"
	  actor.damage_pop = true
	end
  end
end

Edited by PinnaWarner

Progetti:

Cronache del Mondo Emerso RPGVX -in progettazione-

Captain Tsubasa RPG 1 (Holly e Benji) RPG2k -ultimato-

Captain Tsubasa RPG 2 (Holly e Benji) RPGXP -in lavorazione 10%-

One Piece (All'arrembaggio) RPG2k -interrotto-

The Leggend Of Dragons RPG2k -demo rilasciata-

Arcadia Tactics RPGXP -demo rilasciata-

 

---> Visita il Mio Sito <---

 

Contest: http://rpg2s.net/gif/SCContest3Oct.gif - http://www.rpg2s.net/gif/GC_programmazione3.gif - http://www.rpg2s.net/gif/GC_premio2.gif - http://www.rpg2s.net/awards/bestpixel2.jpg

Link to comment
Share on other sites

  • 0
Grazie mille non appena arrivo a casa lo Provo. Dove hai imparato il Ruby così bene? Io ho fatto linguaggi di programmazione, ma non ci so cmq mettere mani + di tanto.

Progetti:

Cronache del Mondo Emerso RPGVX -in progettazione-

Captain Tsubasa RPG 1 (Holly e Benji) RPG2k -ultimato-

Captain Tsubasa RPG 2 (Holly e Benji) RPGXP -in lavorazione 10%-

One Piece (All'arrembaggio) RPG2k -interrotto-

The Leggend Of Dragons RPG2k -demo rilasciata-

Arcadia Tactics RPGXP -demo rilasciata-

 

---> Visita il Mio Sito <---

 

Contest: http://rpg2s.net/gif/SCContest3Oct.gif - http://www.rpg2s.net/gif/GC_programmazione3.gif - http://www.rpg2s.net/gif/GC_premio2.gif - http://www.rpg2s.net/awards/bestpixel2.jpg

Link to comment
Share on other sites

  • 0

Pensa che il Ruby è il primo linguaggio di programmazione che ho imparato (escludendo il Pascal).

L'ho imparato smanettando su i vari script preinstallati in RMXP, devo dire che una volta imparato è facile da usare.

Link to comment
Share on other sites

  • 0

Beato XD, io so solo modificare le scritte ke appaiono nello schermo e a tentativi cambiare la posizione degli screen. Anche io ho iniziato con il pascall però diciamo che ormai non mi ric + nulla ^^.

Cmq Grazie dell'aiuto, ora lo abbelliro mettendo alcune immagini qua e le tipo. "INZIO SCONTRO" o roba del genere faccio come hai fatto per mettere l'immagine di SCONFITTA e vediamo cosa ne esce XD Ti farò sapere

Progetti:

Cronache del Mondo Emerso RPGVX -in progettazione-

Captain Tsubasa RPG 1 (Holly e Benji) RPG2k -ultimato-

Captain Tsubasa RPG 2 (Holly e Benji) RPGXP -in lavorazione 10%-

One Piece (All'arrembaggio) RPG2k -interrotto-

The Leggend Of Dragons RPG2k -demo rilasciata-

Arcadia Tactics RPGXP -demo rilasciata-

 

---> Visita il Mio Sito <---

 

Contest: http://rpg2s.net/gif/SCContest3Oct.gif - http://www.rpg2s.net/gif/GC_programmazione3.gif - http://www.rpg2s.net/gif/GC_premio2.gif - http://www.rpg2s.net/awards/bestpixel2.jpg

Link to comment
Share on other sites

  • 0

OK testato lo script tutto ok, ti posso chiedere altre 2 cose perchè io sono una frana,

si può mettere un'immagine di apertura duello "start battle" io lo messa però rimane fissa non si leva XD a me andrebbe bene anche come il gameover cioe_

Appare l'immagine e premendo invio inzia il duello.

postami pure la porzione del codice. poi inserisco io.

Grazie.

Progetti:

Cronache del Mondo Emerso RPGVX -in progettazione-

Captain Tsubasa RPG 1 (Holly e Benji) RPG2k -ultimato-

Captain Tsubasa RPG 2 (Holly e Benji) RPGXP -in lavorazione 10%-

One Piece (All'arrembaggio) RPG2k -interrotto-

The Leggend Of Dragons RPG2k -demo rilasciata-

Arcadia Tactics RPGXP -demo rilasciata-

 

---> Visita il Mio Sito <---

 

Contest: http://rpg2s.net/gif/SCContest3Oct.gif - http://www.rpg2s.net/gif/GC_programmazione3.gif - http://www.rpg2s.net/gif/GC_premio2.gif - http://www.rpg2s.net/awards/bestpixel2.jpg

Link to comment
Share on other sites

  • 0

Aggiungi questo alla riga 18 di -Scene_Battle-(dopo l'end per intenderci)

@inizio_img = Sprite.new
@inizio_img.bitmap = Bitmap.new("Graphics/Pictures/"+"Inizio")
@inizio_img.x = 320 - @inizio_img.bitmap.width/2
@inizio_img.y = 240 - @inizio_img.bitmap.height/2
@inizio_img.opacity = 0
loop do
  sleep 0.01
  @inizio_img.opacity += 3
  Graphics.update
  Input.update
  $game_system.update
  $game_screen.update
  $game_map.update
  @spriteset.update 
  if Input::trigger?(Input::C)
	@inizio_img.dispose
	@inizio_img.bitmap.dispose
	break
  end
end

Link to comment
Share on other sites

  • 0
Farò la prova stasera e ti faccio sapere, grazie ankora

Progetti:

Cronache del Mondo Emerso RPGVX -in progettazione-

Captain Tsubasa RPG 1 (Holly e Benji) RPG2k -ultimato-

Captain Tsubasa RPG 2 (Holly e Benji) RPGXP -in lavorazione 10%-

One Piece (All'arrembaggio) RPG2k -interrotto-

The Leggend Of Dragons RPG2k -demo rilasciata-

Arcadia Tactics RPGXP -demo rilasciata-

 

---> Visita il Mio Sito <---

 

Contest: http://rpg2s.net/gif/SCContest3Oct.gif - http://www.rpg2s.net/gif/GC_programmazione3.gif - http://www.rpg2s.net/gif/GC_premio2.gif - http://www.rpg2s.net/awards/bestpixel2.jpg

Link to comment
Share on other sites

  • 0
Ok, testato e funziona alla grande, ci sn solo altri problemini ma a quel punto bisogna rifare tutto mi sa, in pratica ho visto l'opzione che hai modificato per i chara dei pg Morti, in pratica quando un mostro muore svanisce, problema: quella cella non può essere utilizzata dai player ma dai mostri si i mostri ke vanno in quella cella non possono essere attaccati. Se muore un PG non può essere Ressato. Cmq per ora mi va bene così, e migliorato molto rispetto a come era prima. TI ringrazio dell'aiuto, possiamo anke chiudere la conversazione. ^^

Progetti:

Cronache del Mondo Emerso RPGVX -in progettazione-

Captain Tsubasa RPG 1 (Holly e Benji) RPG2k -ultimato-

Captain Tsubasa RPG 2 (Holly e Benji) RPGXP -in lavorazione 10%-

One Piece (All'arrembaggio) RPG2k -interrotto-

The Leggend Of Dragons RPG2k -demo rilasciata-

Arcadia Tactics RPGXP -demo rilasciata-

 

---> Visita il Mio Sito <---

 

Contest: http://rpg2s.net/gif/SCContest3Oct.gif - http://www.rpg2s.net/gif/GC_programmazione3.gif - http://www.rpg2s.net/gif/GC_premio2.gif - http://www.rpg2s.net/awards/bestpixel2.jpg

Link to comment
Share on other sites

Create an account or sign in to comment

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

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...