Chaussures de sport

70 Réponses • 8096 Vues

Palbolsky

Staff CSP

Bonsoir à tous. :)

Cela fait peut-être longtemps que certains attendent, je vous présente les chaussures de sport !
"Appuyez sur B et filez comme le vent..."

Revenons à nos moutons...

Pour commencer, ouvrez l'éditeur de script et dans le script Game_Player (le deuxième) repérez ce bout de code :

      if Input.trigger?(Input::C)
  # 同位置および正面のイベント起動判定
  check_event_trigger_here([0])
  check_event_trigger_there([0,1,2])
  # Implémentation Surf
  if $game_map.passable?(front_tile[0],front_tile[1], 10 - $game_player.direction) and
  terrain_tag != 7 and $game_map.terrain_tag(front_tile[0], front_tile[1]) == 7 and
  not $game_system.map_interpreter.running?
  $game_temp.common_event_id = POKEMON_S::Skill_Info.map_use(POKEMON_S::Skill_Info.id("SURF"))
  end
  end

Juste après, ajoutez ce code :

      # Implémentation chaussures de sport
  # Utilise l'interrupteur n°20 par défaut
  # Par défaut il faut appuyer sur la touche Shift pour utiliser les chaussures
  if Input.press?(Input::A) and $game_switches[20] == true
  if (!@character_name.include?("_sport"))
  @name = @character_name
  end
  if Input.press?(Input::UP) or Input.press?(Input::DOWN) or
  Input.press?(Input::RIGHT) or Input.press?(Input::LEFT)
  if $game_map.passable?(front_tile[0],front_tile[1], 10 - $game_player.direction)
  $game_player.set_map_character(@name + "_sport", $game_player.direction)
  @move_speed = 5
  else
  $game_player.set_map_character(@name, $game_player.direction)
  @move_speed = 4
  end
  else
  $game_player.set_map_character(@name, $game_player.direction)
  @move_speed = 4
  end
  else
  if @character_name.include?("_sport")
  $game_player.set_map_character(@name, $game_player.direction)
  @move_speed = 4
  end
  end

Une fois le code mit en place, voici quelques explications pour son utilisation (lisez tout !) :

Pour que les chaussures de sport soit utilisable, il faut activer l'interrupteur n°20. Il peut être changer en modifiant cette ligne :
if Input.press?(Input::A) and $game_switches[20] == true

Si dans une situation vous ne souhaitez pas qu'on puisse utiliser les chaussures, désactiver l'interrupteur.
Par exemple, dans le cas de surf, vous devez désactiver l'interrupteur puis le réactiver une fois qu'on est de retour sur la terre ferme.

Ensuite, l'utilisation des chaussures provoque un changement d'apparence, il faut donc une apparence de héros qui court.
De plus, si l'image du character du héros s'appelle "heros.png", il faut y ajouter le suffixe "_sport", c'est-à-dire : "heros_sport.png".
N'oubliez pas de mettre l'image et de la nommer correctement !

Pour finir, pour utiliser les chaussures il faut presser la touche Z ou SHIFT. La touche peut-être modifier dans le script.
Il est aussi possible en faisant F1 lorsque le jeu est lancé de modifier la configuration des touches.

En cas de bug sous PSP DS, PSP 0.8 ou autres versions venant de PSP DS, supprimez ces lignes (toujours dans le même script) :

if $game_variables[17] == 0       
  if $game_variables[18] == 0 # Terre
  if $game_variables[11] == 0 or $game_variables[11] == 1 # Garçon
  $game_player.set_map_character("Héros Garçon.PNG", 0)
  elsif $game_variables[11] == 2 # Fille
  $game_player.set_map_character("Héros Fille.PNG", 0)
  end
  elsif $game_variables[18] == 1 # Herbe
  if $game_variables[11] == 0 or $game_variables[11] == 1 # Garçon
  $game_player.set_map_character("Héros Garçon herbe.PNG", 0)
  elsif $game_variables[11] == 2 # Fille
  $game_player.set_map_character("Héros Fille herbe.PNG", 0)
  end
  end
  end

Vous perdrez le changement d'apparences dans les hautes herbes mais en contre partie vous pourrez modifier pleinement l'apparence du héros quand bon vous semble.
C'est parce que l'apparence du héros est forcé que vous ne voyez pas le héros utiliser les chaussures de sport.

Normalement j'ai pris les précautions nécessaires pour que le script n'interfère pas avec d'autres changements d'apparence.
Vous pouvez désormais faire le Marathon !

Bonne soirée.

« Modifié: 01 juillet 2015, 23:22:36 par Palbolsky »

Intéressé par le jeu de cartes Heartstone ? Cliquez ici.

PSP Tuto Making

Juste une petite question : Il faut activer l'interrupteur où ?
Kage Bunshin no Jutsu vie
Juste une petite question : Il faut activer l'interrupteur où ?

Palbolsky

Staff CSP

Et c'est toi de décider quand tu veux l'activer. :)
Intéressé par le jeu de cartes Heartstone ? Cliquez ici.
C'est dans un event commun ?
Kage Bunshin no Jutsu vie
C'est dans un event commun ?
Non.
Tu l'actives en sortant des maisons et tu le désactives en y rentrant.
exemple
[/url]

Ou, si tu veux juste faire comme dans X&Y, tu l'actives quand tu obtient les chaussures et c'est tout.

« Modifié: 29 avril 2015, 20:45:23 par FL0RENT_ »

Ok, mais dès que je lance le jeu, ils disent qu'il y a un problème à la ligne 262.

Or, j'ai mis _sport à la fin..
Kage Bunshin no Jutsu vie
Le _sport, c'est a la fin du nom charset du héros qui cours, pas du script.
assure toi de bien avoir donné le même nom au charset du héros qui cours qu'a celui qui marche normalement.
C'est heros tout les deux au début..
Kage Bunshin no Jutsu vie
Est tu sur d'avoir bien copié le script ?
A quel moment le jeu crash t'il ?

« Modifié: 29 avril 2015, 21:14:12 par FL0RENT_ »

Ok, mais dès que je lance le jeu, ils disent qu'il y a un problème à la ligne 262.

Or, j'ai mis _sport à la fin..

postez le script que vous avez collé dans l'éditeur, svp.
Ok, mais dès que je lance le jeu, ils disent qu'il y a un problème à la ligne 262.

Or, j'ai mis _sport à la fin..

Sinon, pour régler le probléme rapidement, remplace TOUT le script Game_Player par ça.
Spoiler
#==============================================================================
# ■ Game_Player
# Pokemon Script Project - Krosk
# 18/07/07
#-----------------------------------------------------------------------------
# Scène à ne pas modifier de préférence
#-----------------------------------------------------------------------------

class Game_Player < Game_Character
  def update
  # ローカル変数に移動中かどうかを記憶
  last_moving = moving?
  # 移動中、イベント実行中、移動ルート強制中、
  # メッセージウィンドウ表示中のいずれでもない場合
  unless moving? or $game_system.map_interpreter.running? or
  @move_route_forcing or $game_temp.message_window_showing
  # 方向ボタンが押されていれば、その方向へプレイヤーを移動
  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
  # デバッグモードが ON かつ CTRL キーが押されている場合を除き
  unless $DEBUG and Input.press?(Input::CTRL)
  rate = $random_encounter[0]
  if rand(2874) < rate * 16
  @encounter_count = 0
  else
  @encounter_count = 1
  end
  end
  end
  end
  # C ボタンが押された場合
  if Input.trigger?(Input::C)
  # 同位置および正面のイベント起動判定
  check_event_trigger_here([0])
  check_event_trigger_there([0,1,2])
  # Implémentation Surf
  if $game_map.passable?(front_tile[0],front_tile[1], 10 - $game_player.direction) and
  terrain_tag != 7 and $game_map.terrain_tag(front_tile[0], front_tile[1]) == 7 and
  not $game_system.map_interpreter.running?
  $game_temp.common_event_id = POKEMON_S::Skill_Info.map_use(POKEMON_S::Skill_Info.id("SURF"))
  end
  end
  # Implémentation chaussures de sport
  # Utilise l'interrupteur n°20 par défaut
  # Par défaut il faut appuyer sur la touche Shift pour utiliser les chaussures
  @name = @character_name if @name == nil
  if Input.press?(Input::A) and $game_switches[20] == true
  if Input.press?(Input::UP) or Input.press?(Input::DOWN) or
  Input.press?(Input::RIGHT) or Input.press?(Input::LEFT)
  if $game_map.passable?(front_tile[0],front_tile[1], 10 - $game_player.direction)
  $game_player.set_map_character(@name + "_sport", $game_player.direction)
  @move_speed = 5
  else
  $game_player.set_map_character(@name, $game_player.direction)
  @move_speed = 4
  end
  else
  $game_player.set_map_character(@name, $game_player.direction)
  @move_speed = 4
  end
  else
  if @character_name.include?("_sport")
  $game_player.set_map_character(@name, $game_player.direction)
  @move_speed = 4
  end
  end
  end
  end
 
  def increase_steps
  super
  unless @move_route_forcing
  $pokemon_party.increase_steps
  # Poison damage
  if $pokemon_party.steps % 4 == 0
  # スリップダメージチェック
  $pokemon_party.check_map_slip_damage
  end
  # Loyalty
  if $pokemon_party.steps % 512 == 0
  for pokemon in $pokemon_party.actors
  pokemon.loyalty += 1
  if pokemon.loyalty > 255
  pokemon.loyalty = 255
  end
  end
  end
  end
  end
 
  # Renvoie les coordonnées de la case devant le héros
  def front_tile
  xf = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
  yf = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
  return [xf, yf]
  end
 
  # Renvoie l'event
  def front_tile_event
  xf = front_tile[0]
  yf = front_tile[1]
  for event in $game_map.events.values
  if event.x == xf and event.y == yf
  return event
  end
  end
  return nil
  end
 
  # Détecte le nom de l'objet devant soit
  def front_name_detect(name)
  if front_tile_event != nil and front_tile_event.event.name == name
  return true
  end
  return false
  end
 
  # Renvoie l'ID de l'objet devant soit
  def front_tile_id
  if front_tile_event != nil
  return front_tile_event.event.id
  end
  return 0
  end
end

Edit : Il y'a bien tout le script modifié, je n'ai juste pas réussi a mettre le /code sur plusieurs lignes

« Modifié: 30 avril 2015, 13:32:00 par Palbolsky »

Absolite

Programmeur

Très utile
J'ai mis le script de FLORENT_ mais juste avant de lancer le jeu, il disent encore qu'il y a un problème mais la cette fois..
Spoiler
Kage Bunshin no Jutsu vie
J'ai mis le script de FLORENT_ mais juste avant de lancer le jeu, il disent encore qu'il y a un problème mais la cette fois..
Spoiler

Sans doute la faute à Boddom Child et Rabbi (a)

Non, essaie de mettre la ligne en commentaire (en mettant # devant) et relance pour voir

There was an error while thanking
Thanking...