Sujet n°5706
Posté par Van Pokamon le 28 Déc - 14:56 (2009)
Titre : [Script] Fil indienne améliorée
Bonjour

En allant sur un forum, j'ai découvert un script fil indienne plus performant que l'ancienne version : on peut gerer le mode de regroupement, et parler avec celui qui est derrière nous ! Notez qu'il fonctionne avec des évents créer un évent que vous voulez placez derriere et voila !
Inconvénient: il faut sans doute le mettre a chaque map et le calibrer
Avantage: il ressemble plus au évent de pikachu et possibilité meilleur de déplacement. La collision est mise.

#-------------------------------------------------------------------------------
Nom: Groupeur 3.8
Auteur: Fabien
#-------------------------------------------------------------------------------

Je vous présente le script de chenille améliorée qui gère mieux les collision.
Les possibilité apportées par ce script sont nombreuses:

_Parler aux personnes du groupe
_Les "suiveurs" ne sont plus forcement regroupés en ligne
_L'ordre des membres peut changer, pas d'ordre attribué
_Diverses formations (Carré, pointe etc...)

Script
Code:
#Nom : Groupeur
#Version : 3.8
#Auteur, concepteur et demandeur : Fabien
#But : Soit l'équipe suit le meneur mais sans imiter le moindre de ses mouvements,
#      soit l'équipe est disciplinée est adopte une formation dérrière le meneur
#========================================================
# Le code n'est pas commenté, cela pour se faire si besoin.

#--Fct d'interfaces----------------------------------------------------------------
# Pour former un groupe constitué des evts 1,2,4 et 6 et mené par le joueur, on tapera:
# grouper 0,1,2,4,6
def grouper(meneur=0,*groupe)
  $game_map.groupeur.meneur=meneur
  $game_map.groupeur.groupe=groupe.to_a
end
# Une autre possibilité existe : ajoutez le mot mené à la fin du nom de l'event.
# Il sera ajouté à la map dès le chargement de celle-ci.
#------------------------------------------------------------------
# Pour faire manoeuvrer ce groupe, par exemple en pointe, il faudra rajouter :
# manoeuvrer Pointe
def manoeuvrer(formation,param=nil)
  $game_map.groupeur.formation=formation
  $game_map.groupeur.param=param
end
# liste des formations possibles :
# Liberté, Groupe, Chenille, ChenillePIX, Ligne, Rang, Pointe
# Cercle, Cercle_tournant, Front, Dents, Rectangle, Losange, Reunion
#------------------------------------------------------------------
def groupe # fct utile pour des fcts plus avancées.
  return [$game_map.groupeur.meneur]+$game_map.groupeur.groupe
end
#------------------------------------------------------------------

#Formations préprogrammées :
Liberté=nil
Groupe="déplacer_en_groupe"
Chenille="déplacer_en_chenille"
ChenillePIX='déplacer_en_chenille_pix'
Ligne=proc{|n,vx,vy,param| [vx*n,vy*n] }
Rang=proc{|n,vx,vy,param|m=(1+n)/2; [vx*m+(-vy.abs)**n,(-vx.abs)**n+vy*m] }
Pointe=proc{|n,vx,vy,param|m=(1+n)/2; [vx*m+m*(-vy.abs)**n,m*(-vx.abs)**n+vy*m] }
Cercle=proc{|n,vx,vy,param|
  param=(groupe.size-1)/3.1415 if param==nil
  phase=n*2*3.1415/(groupe.size-1)
  [param*Math.cos(phase),param*Math.sin(phase)] }
Cercle_tournant=proc{|n,vx,vy,param|
  param=(groupe.size-1)/3.1415 if param==nil
  phase=Graphics.frame_count/50.0+n*2*3.1415/(groupe.size-1)
  [param*Math.cos(phase),param*Math.sin(phase)] }
Front=proc{|n,vx,vy,param|m=(1+n)/2;vy=vy.abs;vx=vx.abs; [vy*m*(-vy.abs)**n,vx*m*(-vx.abs)**n] }
Dents=proc{|n,vx,vy,param|param=1 if param==nil ;m=(1+n)/2;vy=vy.abs;k=n/param;vx=vx.abs; [vy*m*(-vy.abs)**k+(-vx.abs)**m,vx*m*(-vx.abs)**k+(-vy.abs)**m] }
Rectangle=proc{|n,vx,vy,param|
  param==nil ? (l,d=3,0) : (l,d=param)
  n+=l-1;[vy*(n%l)+vx*(n/l)-vy*l/2+vx*d,vx*(n%l)+vy*(n/l)-vx*l/2+vy*d] }
Losange=proc{|n,vx,vy,param| n-=1;quart=groupe.size/4;
  param=quart if param==nil; m=n%quart; k=n/quart ; k%=4
  [m*[1,-1,-1,1][k]+param*[0,1,0,-1][k],m*[1,1,-1,-1][k]+param*[-1,0,1,0][k]] }
Reunion=proc{|n,vx,vy,param|
  [nil,  [-2*vy+vx,-2*vx+vy], [vy+vx,vy+vx], [-vy,-vx],
  [2*vx,2*vy],[2*vx-vy,2*vy-vx]][n]  }
#==classe principale============================================================
class Groupeur
  attr_accessor :groupe, :meneur, :formation, :param
  #--------------------------------------------------
  def initialize(groupe=[],meneur=0,formation=Groupe,param=nil)
    @groupe=groupe.to_a
    @meneur=meneur
    @formation=formation
    @param=param
  end
  #--------------------------------------------------
  def maj
    if @formation.is_a? Proc
      déplacer_en_formation
    elsif @formation.is_a? String
      eval @formation
    end
  end
end

  #--------------------------------------------------
#====fct des formations=========================================================
class Groupeur
  #--------------------------------------------------
  def déplacer_en_groupe
    menés = détermination_des_menés#détermination des menés
    (0...menés.size).each{|n| #on va déplacer chacun des menés
      meneur= ev(@meneur)
      distance=menés[n][0]
      evt=menés[n][1]
      #il marche vers le héros s'il en est trop loin et pas en train de bouger
      evt.move_toward_player if distance > 46+n*32 and not evt.moving?
      next
      #s'il est trop loin, passe-mur...
      @thread_guide=nil if @thread_guide !=nil and @thread_guide.status==false
      if distance > 146+n*32 and @thread_guide==nil       
          @thread_guide=Thread.new {
          $options_guide[5]=true ;
          evt.va(meneur.x,meneur.y,n+1) ;
          $options_guide[5]=false}       
      end  }
  end
  #---------------------------------------------------
  def détermination_des_menés   
      meneur=ev(@meneur)#détermination du meneur
      #détermination des menés :
      menés=Hash.new # on va les stocker dans un Hash
      for id in @groupe # pour chaque id donné on trouve
        evt=ev(id) #l'evt correspondant
        distance=Math.hypot(  #sa distance au meneur
                evt.screen_x-meneur.screen_x,evt.screen_y-meneur.screen_y)
        menés[distance]=evt # on stocke ces deux informations dans le hash
        evt.move_speed=meneur.move_speed #alignement de vitesse de marche
        evt.colisions
      end
      menés=menés.sort# on range les menés par ordre de distance
      return menés
    end 
#-------------------------------------------------------
def déplacer_en_chenille
  @param=[] if not @param.is_a?(Array) or not @param[0].is_a?(Array)
  (@groupe+[@meneur]).each{|mené|@param.push [ev(mené).x,ev(mené).y] }  if @param.empty?
  meneur=ev(@meneur)
  pos=[meneur.x,meneur.y]
  if @param[0] != pos
    @param.pop
    @param.unshift(pos)
  end
  for n in 0... @groupe.size
    evt=ev(@groupe[n])
    evt.move_speed=meneur.move_speed
    evt.colisions
    x,y=@param[n+1]
    evt.move_toward(x,y)
  end
end
#-------------------------------------------------------
def pos(id)
  resu=[ev(id).real_x,ev(id).real_y,ev(id).direction,ev(id).pattern,""]
  return resu
end
#-------------------------
def ini_param(espace)
  liste=[]
  grp=[@meneur]+@groupe
  (0...grp.size-1).each{|n|
    pos0=pos(grp[n])
    pos1=pos(grp[n+1])
    dx=(pos1[0]-pos0[0])/espace.to_f
    dy=(pos1[1]-pos0[1])/espace.to_f
    espace.times {
      liste.push pos0.clone
      pos0[0]+=dx
      pos0[1]+=dy } }
  espace.times { liste.push pos(grp[-1]) }
@param=liste
end
#-------------------------
def déplacer_en_chenille_pix
  espace=10
  @param=[] if not @param.is_a?(Array) or not @param[0].is_a?(Array)
  ini_param(espace)  if @param.empty?
  meneur=ev(@meneur)
  if @param[0] != pos(@meneur)
    @param.pop
    @param.unshift(pos(@meneur))
    arret=false
  else
    arret=true
  end
  for n in 0... @groupe.size
    evt=ev(@groupe[n])
    evt.move_speed=meneur.move_speed
    evt.colisions
 
    pos=@param[(n+1)*espace]
    if pos[0]=="debarquer"
      ev(pos[1][n+1]).debarquer
      evt.jump(0,0)
      next
    end
    x,y,dir,pattern=pos
 
    pattern=meneur.pattern if arret
    evt.real_x=x
    evt.real_y=y

    evt.direction=dir
    evt.pattern=pattern
  end
end
#----------------------------------------------------------
def déplacer_en_formation
    meneur=ev(@meneur)
    vect_x,vect_y=[[1,-1],[0,-1],[-1,-1],[-1,0],[0,0],[1,0],[-1,1],[0,1],[1,1]][meneur.direction-1]
    for n in 0... @groupe.size
      evt= ev (@groupe[n])
      evt.colisions
      n+=1

      dx,dy=@formation[n,-vect_x,vect_y,@param]
      x = meneur.x + dx.round
      y = meneur.y + dy.round
      evt.move_speed=meneur.move_speed
      evt.move_speed+=1 if (evt.x-x).abs >1  or (evt.y-y).abs >1
      evt.direction=meneur.direction if evt.move_toward(x,y) and not evt.moving?
    end
  end
#--------------------------------------------------------------
end
#outils
#===Section permettant au héros de traverser les suiveurs=======================
class Game_Character
  attr_accessor :through ,:mémo_through ,:direction
  def colisions
  if (Input.trigger?(Input::LEFT) and @x+1==ev.x and @y==ev.y  and $game_player.direction==4)
      @through=true
      $game_player.move_left
      move_right
      @through=false
  end
  if (Input.trigger?(Input::RIGHT) and @x-1==ev.x and @y==ev.y  and $game_player.direction==6)
      @through=true
      $game_player.move_right
      move_left
      @through=false
  end
  if (Input.trigger?(Input::UP) and @x==ev.x and @y+1==ev.y  and $game_player.direction==8)
      @through=true
      $game_player.move_up
      move_down
      @through=false
  end   
  if (Input.trigger?(Input::DOWN) and @x==ev.x and @y-1==ev.y  and $game_player.direction==2)
      @through=true
      $game_player.move_down
      move_up
      @through=false
  end
end
#----deux fonctions RM mais vers des coords--------------------------
def move_toward(x,y)
    sx = @x - x
    sy = @y - y 
    return true if sx == 0 and sy == 0
    abs_sx,abs_sy = sx.abs,sy.abs
    rand(2) == 0 ? abs_sx += 1 : abs_sy += 1  if abs_sx == abs_sy
    if abs_sx > abs_sy
      sx > 0 ? move_left : move_right
      sy > 0 ? move_up : move_down if not moving? and sy != 0
    else
      sy > 0 ? move_up : move_down
      sx > 0 ? move_left : move_right if not moving? and sx != 0
    end
    return false
  end
#------------------------------------------------------------ 
  def move_away_from(x,y)
    sx = @x - x
    sy = @y - y
    return if sx == 0 and sy == 0   
    abs_sx,abs_sy = sx.abs,sy.abs
    rand(2) == 0 ? abs_sx += 1 : abs_sy += 1 if abs_sx == abs_sy
    if abs_sx > abs_sy
      sx > 0 ? move_right : move_left
      sy > 0 ? move_down : move_up  if not moving? and sy != 0
    else
      sy > 0 ? move_down : move_up   
      sx > 0 ? move_right : move_left if not moving? and sx != 0
    end
  end
#-------------------------------------------------
end
#===================================================
def ev(id=0) # synthaxe super abrégée pour désigner un evenement
  return (id==0 ? $game_player: $game_map.events[id])
end
#==Groupe de base===================================
class Game_Map
  attr_accessor :groupeur
  alias setup_groupeur setup
  def setup(map_id)
    @groupeur=Groupeur.new
    setup_groupeur(map_id)
    @a=1
  end
  alias update_groupe update
  def update   
    if @a==1
      groupe_p=$game_map.groupeur.groupe.clone
      groupe_p.unshift(0) if not groupe_p.include?(0)   
#      placer2(groupe_p,ev.x,ev.y,ev.direction) # si vous avez le script de débordeur activez cette ligne   
      @a=nil
    end 
 
    update_groupe # fonction d'origine
    @groupeur.maj
  end
end
#==Auto-ajout par 'menés'=============================

class Game_Event
  attr_accessor :real_x, :real_y, :direction, :pattern
  alias initialize_groupeur initialize
  def initialize(map_id, event)
    initialize_groupeur(map_id, event)     
    $game_map.groupeur.groupe.push(@id) if event.name[-5..-1]=="mené" and
        @page != nil and @character_name != ""
  end
end



pour que l'event suivent le héro il suffit de mettre le mot "mené" à coter du nom de l'event en question !
(exemple: "EV001 mené" )
Je sais pas si il marche correctement sur psp 0.7, mais a priori , il n'y a pas de probleme sur cette version.

Edit : Il marche bien avec 0.7 et 4G+

Posté par Lén le 28 Déc - 17:15 (2009)
Je ne retrouve plus , mais je crois qu'il eswt possible decréé un event depuis un script ...

Pas mal :D

Posté par Van Pokamon le 28 Déc - 17:17 (2009)
Lén a écrit:
Je ne retrouve plus , mais je crois qu'il eswt possible decréé un event depuis un script ...

Pas mal :D


en fait, l'évent devient un allié du groupe. c'est un peu le principe pouvant être fait sans script, mais c'est plus simple quand le script le fait pour nous et bien Clin d'œil foireux

Posté par Lén le 28 Déc - 17:57 (2009)
L'avantage de ce que je disais, c'était de ne plus avoir à coller un event pour chaque coéquipier par map ^^.

Posté par Van Pokamon le 28 Déc - 17:59 (2009)
Lén a écrit:
L'avantage de ce que je disais, c'était de ne plus avoir à coller un event pour chaque coéquipier par map ^^.


ben si un peu, il faut calibrer la position car il rejoint certe le héros, il a un temps avant.

Posté par Lén le 28 Déc - 18:54 (2009)
.... calibrer quoi ... il suffit de creer l'event a côté du héros :?

Posté par Van Pokamon le 28 Déc - 18:57 (2009)
Lén a écrit:
.... calibrer quoi ... il suffit de creer l'event a côté du héros :?


oui (je parle de placer l'évent en entrant dans la map au bon endrois ) . calibrer viens de placez a chaque fois qu'on entre dans la map Clin d'œil foireux

Posté par Lén le 28 Déc - 20:12 (2009)
Ce qui peut se faire en script avec des calculs donc aucun event, ni de calibration a faire.

Posté par Champi Suicidaire le 29 Déc - 16:58 (2009)
Exactement ce qu'il me falais, mais je prefere tester avant. Merci du partage sinon =)

EDIT : Parfait ... mais juste quelque choses, qui je pense n'est pas possible x') C'est dommage que l'event ne suive pas le héros tout le temps ._. en faite, il faudrai faire un mélange du script très connu de fil indienne avec celui là.

Posté par Van Pokamon le 29 Déc - 19:06 (2009)
Bebe95250 a écrit:
Exactement ce qu'il me falais, mais je prefere tester avant. Merci du partage sinon =)

EDIT : Parfait ... mais juste quelque choses, qui je pense n'est pas possible x') C'est dommage que l'event ne suive pas le héros tout le temps ._. en faite, il faudrai faire un mélange du script très connu de fil indienne avec celui là.


ou calibrer avec la condition de psp (celle de game player x et y)

Posté par Champi Suicidaire le 29 Déc - 20:04 (2009)
Ouai mais si je calcule bien l'event se retrouvera sur le héros non ?

Posté par Van Pokamon le 29 Déc - 20:13 (2009)
Bebe95250 a écrit:
Ouai mais si je calcule bien l'event se retrouvera sur le héros non ?

pas forcement. la condition permet dedire que si le héros et a une tel position x ou y, l'évent peut avoir un comportement différent.

et quand au déplacement , dans le scrip , il y a le mode de suivage. pour qu'il fasse comme avec pikachu, il faut marquer dans un script
Code:
 manœuvrer x

dont x est égale au formation. c'est marquer dans les commentaire

Posté par Sphinx le 29 Déc - 20:16 (2009)
>> et en cas de téléport sur une autre map, il faut remettre l'évent sur cette map, voire 1 évent pour chaque point de téléportation ? :shock:

Posté par Van Pokamon le 29 Déc - 20:19 (2009)
Sphinx a écrit:
>> et en cas de téléport sur une autre map, il faut remettre l'évent sur cette map, voire 1 évent pour chaque point de téléportation ? :shock:

un évent, oui. mais la commande condition game.player.y==y doit normalement pourvoir déplacer en y et game.player.x==x en x . mis en condition, il signifie la posiition x ou y du héros sur la map.

Changli a écrit:
Sphinx a écrit:
>> et en cas de téléport sur une autre map, il faut remettre l'évent sur cette map, voire 1 évent pour chaque point de téléportation ? :shock:

un évent, oui. mais la commande condition game.player.y==y doit normalement pourvoir déplacer en y et game.player.x==x en x . mis en condition, il signifie la posiition x ou y du héros sur la map.

note: il n'est pas obligatoire de le mettre pile sur le même évent. mené le fait.

Posté par Lén le 30 Déc - 05:20 (2009)
Sphinx a écrit:

>> et en cas de téléport sur une autre map, il faut remettre l'évent sur cette map, voire 1 évent pour chaque point de téléportation ? :shock:

tu passe dans le topic sans même faire gaffe à ce que j'ai dit :^^:

Je demandais si tu connaissais le code pour creer un event sur une map.
je sais que ce code existe car il est utilisé quand on affiche la map depuis le menu si je ne me trompe pas.

Posté par Schtroumpf Anarchiste le 16 Fév - 12:11 (2010)
Lén a écrit:

Sphinx a écrit:

>> et en cas de téléport sur une autre map, il faut remettre l'évent sur cette map, voire 1 évent pour chaque point de téléportation ? :shock:


tu passe dans le topic sans même faire gaffe à ce que j'ai dit :^^:

Je demandais si tu connaissais le code pour creer un event sur une map.
je sais que ce code existe car il est utilisé quand on affiche la map depuis le menu si je ne me trompe pas.

Désolé du nécro mais c'est pour re-poser la question de Lèn ^^.
Ah et j'ai quelques petits problèmes. Le Pokémon me suit, mais est des fois à côté de moi, ce qui est plutôt embêtant car on peut le faire foncer dans un arbre, et donc, on le sème.
HS : 30 Décembre ? J'avais pourtant cru que ce topic était récent :? Brif Braf Bref ...

Posté par Slash le 20 Fév - 13:17 (2010)
Bon c est pas mal pour ke le pokemon nous suivent comme ds COAA
mais je pense que tu devrait préciser comment calibré l event pour les novice
a voir aussi le pb si faut créé un seul event ou un sur chaque map

Posté par GT.Onizuka le 20 Fév - 13:31 (2010)
J'ai pas compris si le mené reste sur les autres maps ou pas, si oui, expliquez moi, s'il vous plait.
Sinon comment faire en sorte que le premier pkmn de l'équipe suit, ou même toute l'équipe, si c'est impossible, j'ai une autre idée ...
Merci d'avance.

Posté par Schtroumpf Anarchiste le 20 Fév - 14:22 (2010)
Apparemment, un sur chaque map. Mais c'est pour cela que Lèn a bien fait de poser la question du : " comment crée t-on un évent par script ?".

Posté par GT.Onizuka le 20 Fév - 14:25 (2010)
Moui, merci Aym' !

Posté par Drakhaine le 22 Fév - 01:47 (2010)
C'est pas vraiment de la création mais plutôt de la récupération d'un template d'event, mais ça devrait fonctionner :

Tout d'abord, créez une map vide (enfin, vous pouvez la remplir mais ça ne sert strictement à rien ^^) et mettez y un modèle d'event (appelé par la suite 'template'). C'est cet event qui sera copié dans chacune de vos maps au moment où vous y entrerez si un switch est activé. Attention, tous les events de la map seront copiés automatiquement dans chaque map sur laquelle vous entrerez (à condition que le switch soit activé), donc si vous avez différents templates en fonction de certaines conditions, préférez créer plusieurs maps avec un seul template par map (quoiqu'il est simple de ne prendre que certains events en fonction de leur nom, mais bon, on va faire rapide)

Ensuite, dans le script Game_Map, faites en sorte que le début de la méthode setup ressemble à ça :
Code:




 def setup(map_id)
    # Remplacez la valeur de @distant_map par l'id de la map sur laquel est stocké votre template d'event
    @distant_map = 6
    # Remplacez la valeur de @the_switch par l'id du switch permettant d'activer ou désactiver
    # la copie automatique du template
    @the_switch = 500
    @map_id = map_id
    @map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
    @slot = @map.events.size
    if $game_switches[@the_switch] == true
      @slot += 1
      @new = load_data(sprintf("Data/Map%03d.rxdata", @distant_map))
      for i in 1..@new.events.size
        @map.events[@slot] = @new.events[i]
        @slot += 1
      end
    end
    # 公開インスタンス変数にタイルセットの情報を設定
    tileset = $data_tilesets[@map.tileset_id]
    @tileset_name = tileset.tileset_name
    @autotile_names = tileset.autotile_names
    @panorama_name = tileset.panorama_name
    @panorama_hue = tileset.panorama_hue
    @fog_name = tileset.fog_name
    @fog_hue = tileset.fog_hue
    etc...




N'oubliez pas de modifier les valeurs des deux premières variables (@distant_map et @the_switch) comme expliqué dans les commentaires Clin d'œil foireux

Y'a plus qu'à rajouter deux lignes dans ce script (juste avant le deuxième "@slot += 1") pour que les events se placent en fonction du héros, mais je vous laisse faire hein ? Clin d'œil foireux

(dans Game_Event, quelques lignes après le début de "def initialize" (genre avant le refresh), ajoutez
Code:


if event.name == NAME
  moveto(X, Y) 


en remplaçant NAME par le nom du template, X par (par exemple) la coordonnée x du héros, et Y par la coordonnée y du héros Clin d'œil foireux
)

Posté par GT.Onizuka le 22 Fév - 12:01 (2010)
Merci, enfin  :D

Posté par Van Pokamon le 22 Fév - 15:54 (2010)
pour mettre en chenille en formation, il faut mêtre dans un script
manoeuvrer Chenille

ensuite, ceux que Drakhaine a dit sert pour bien placer l'évènement suivit Clin d'œil foireux

Posté par Schtroumpf Anarchiste le 22 Fév - 15:59 (2010)
Oui, mais ton script est un peu foireux. Si on veut que ce soit le premier pokémon de l'équipe qui nous suive, faudrait créer beaucoup beaucoup d'interrupteurs alors.

Posté par Drakhaine le 23 Fév - 18:49 (2010)
Rah ces commentaires de gens qui peuvent pas s'empêcher de critiquer. Si t'avais un minimum de jugeotte, tu remplacerais le switch par une variable :
0 si la copie est désactivée, sinon, ID du premier pokémon de ton équipe, puis tu accèderais au sprite de l'event de manière toute simple et tu loaderais à la place "XXX.png" en remplaçant XXX par l'ID du pokémon...

Enfin bref, j't'en veux pas, t'avoues toi-même que les scripts sont ton point faible, mais évite juste les "c'est un peu foireux" s'il te plaît Clin d'œil foireux

Posté par Schtroumpf Anarchiste le 23 Fév - 18:59 (2010)
Ah mais je parlais pas du tien Drakhaine, hin ^^
EDIT : Non ben en fait, pour le mp, tu peux laisser tomber. =)

Posté par Omegaga le 2 Mar - 22:17 (2010)
Super !! il marche dans mon projet enfin mon futur projet qui sera présenté dans quelques mois j'avance les systèmes sprites & co x)

Posté par Drakhaine le 3 Mar - 06:59 (2010)
content que ça fonctionne Clin d'œil foireux

Posté par GT.Onizuka le 3 Mar - 15:00 (2010)
J'ai pas essayé mais Omege l'a essayé et je suis content que ça marche.
Thanks encore

Posté par Arc-Arceus le 14 Mar - 18:04 (2010)
Bonjour, j'ai essayé le script, mais ça m'a créé un bug, comme quoi il y avait une "Synthax error" sur "grouper" dans les premières lignes... J'ai supprimé le-dit script (pas le temps de jouer avec les variables), eh bien, même après avoir supprimer le script entier, le jeu m'affiche toujours le même message d'erreur !!! Pourtant, vous l'avez bien testé et il marchait, non ?
:( Bref, j'ai même pas pu le tester et il va falloir que je recommence tout...

Posté par og_loc-TATOO le 26 Avr - 00:40 (2010)
Aufaite le script la marche pas avec psp DS
J'ai une erreur quelque part et voici le log:


Erreur: groupe 30 syntax error


log
---------- Erreur de script : Pokemon_Battle_Wild* ----------
----- Type
NoMethodError


----- Message
- ARGS - []
undefined method `dead?' for nil:NilClass


----- Position dans Pokemon_Battle_Wild*
Ligne 81


----- Backtrace
Script : Pokemon_Battle_Wild* | Ligne : 81 | Méthode : in `initialize'
Script : Scene_Map | Ligne : 273 | Méthode : in `new'
Script : Scene_Map | Ligne : 273 | Méthode : in `call_battle'
Script : Scene_Map | Ligne : 133 | Méthode : in `alias_update'
Script : MAPPANEL* | Ligne : 89 | Méthode : in `oldUpdate'
Script : Bouton_Rouge* | Ligne : 43 | Méthode : in `update'
Script : Scene_Map | Ligne : 26 | Méthode : in `main'
Script : Scene_Map | Ligne : 21 | Méthode : in `loop'
Script : Scene_Map | Ligne : 33 | Méthode : in `main'
Script : Main | Ligne : 59