Sujet n°387
Posté par djstarmix le 21 Fév - 21:08 (2008)
Titre : ok - Event de dresseur
Bonjour,
Il s'agit d'un problème dans les events dresseurs de Krosk. En effet, le processus marche très bien mais lorsque l'on parle au dresseur, il ne répond pas car trainer_spotted n'est pas respecté dans la condition.
Mais il y a un problème plus grave, c'est que j'ai déjà créé plein de dresseurs et que je ne peux plus tous les reprogrammer, cela prendrait un temps fou! De plus j'ignore si on peut les reprogrammer XD
Donc est-ce qu'on pourrait modifier le script Trainer_Spotted pour résoudre ce problème ou n'y a t-il vraiment rien à faire ?
Merci d'avance pour votre coopération !

Posté par Sphinx le 21 Fév - 21:20 (2008)
Clin d'œil foireux tes dresseurs, bâtis les ainsi :

>> page 1 en PP : condition TS qui active un switch local (admettons A)
>> page 2 en DA (activé par le SL A) : l'évent de ton dresseur Clin d'œil foireux

Posté par djstarmix le 21 Fév - 21:36 (2008)
Déjà fait. Mais je répète, on ne peux pas lui parler car c'est un PP. Or, un dresseur dans Pokémon, il peut aussi bien venir vers toi que tu peux aller lui parler pour combattre.

Posté par Sphinx le 21 Fév - 21:37 (2008)
^^ t'es sur ? att jv test Petit saligaud mal élevé

Posté par djstarmix le 21 Fév - 21:38 (2008)
Ben si jle mets c'est que je suis sur :d lool Sphinx toujours au taquet ^^

Posté par Sphinx le 21 Fév - 21:58 (2008)
^^ bon moi mon RMXP est po très décidé ce soir, je te fais confiance Petit saligaud mal élevé

Posté par Louro le 21 Fév - 23:03 (2008)
Je lui ai scripté le truc normalement c'est résolu.

Posté par Krosk le 21 Fév - 23:06 (2008)
Dans ce cas, Louro, peut-tu me faire partager ton bout de script? Je vais l'inclure (avec ton autorisation) car c'est un problème auquel je n'avais pas pensé en effet.

Posté par Louro le 21 Fév - 23:09 (2008)
J'ai transformé le attr_reader :direction de Game_Character 1 en accessor d'abord.

Puis j'ai transformé la méthode trainer_spotted
L'event se tourne vers le héros, il ne marche pas car dans l'event on met Ignorer déplacement si impossible, et le héros reste tourné vers l'event quand on lui parle :




Code:
class Interpreter  

def trainer_spotted(distance)
    character = $game_map.events[@event_id]
    
  if Input.trigger?(Input::C)
    px = $game_player.x
    py = $game_player.y
    cx = character.x
    cy = character.y
     heros_p = get_character(-1)
    if heros_p.direction == 4 and py == cy and px == cx + 1
        character.direction = 6
      return true
    end
    if heros_p.direction == 6 and py == cy and px == cx - 1
        character.direction = 4
      return true
    end
        if heros_p.direction == 2 and px == cx and py == cy - 1
        character.direction = 8
      return true
    end
          if heros_p.direction == 8 and px == cx and py == cy + 1
        character.direction = 2
      return true
    end
end
    if $game_player.moving?
      return false
    end
    case character.direction
    when 4 # Tourné vers la gauche
      if character.y == $game_player.y and
          character.x - $game_player.x >= 0 and
          (character.x - $game_player.x).abs <= distance
        $game_player.turn_right
        return true
      end
    when 8 # Tourné vers le haut
      if character.x == $game_player.x and
          character.y - $game_player.y >= 0 and
          (character.y - $game_player.y).abs <= distance
        $game_player.turn_down
        return true
      end
    when 6 # Tourné vers la droite
      if character.y == $game_player.y and
          character.x - $game_player.x <= 0 and
          (character.x - $game_player.x).abs <= distance
        $game_player.turn_left
        return true
      end
    when 2 # Tourné vers le bas
      if character.x == $game_player.x and
          character.y - $game_player.y <= 0 and
          (character.y - $game_player.y).abs <= distance
        $game_player.turn_up
        return true
      end
    end
    return false
  end


  
  end  # Fin Interpreter





Posté par Krosk le 21 Fév - 23:52 (2008)
Bonne méthode, merci beaucoup.