Topic d'aide RPG Maker

Pages: 1 ... 16 17 18 19 20 [21]

Nuri Yuri

  • Modérateur de section
  • 577 posts
30 septembre 2018, 18:01
Le log est pas cohérent avec ton bug, peux-tu reproduire ton bug et m'envoyer le log tout de suite après ?

Fernand

  • Membre
  • 6 posts
30 septembre 2018, 18:38
Voilà:
---------- Erreur de script : Loading ----------
----- Type
Errno::ENOENT

----- Message
No such file or directory - Graphics/Characters/Avatar-Hiro1

----- Position dans Loading
Ligne 1

----- Backtrace
Script : Loading | Ligne : 1 | Méthode : in `initialize'
Script : Loading | Ligne : 1 | Méthode : in `new'
Script : Loading | Ligne : 1 | Méthode : in `load_bitmap'
Script : Loading | Ligne : 1 | Méthode : in `character'
Script : Sprite_Character | Ligne : 45 | Méthode : in `update'
Script : Sprite_Character | Ligne : 21 | Méthode : in `initialize'
Script : MAPLINK | Ligne : 127 | Méthode : in `new'
Script : MAPLINK | Ligne : 127 | Méthode : in `initialize'
Script : Scene_Map | Ligne : 13 | Méthode : in `new'
Script : Scene_Map | Ligne : 13 | Méthode : in `main'
Script : Main | Ligne : 57

Nuri Yuri

  • Modérateur de section
  • 577 posts
30 septembre 2018, 23:52
Bizarre, crées un fichier Avatar-Hiro1.png dans ton dossier Character et retente '^'

Fernand

  • Membre
  • 6 posts
06 octobre 2018, 19:27
C'est bon j'ai mis un dossier avatar_hero1 mais mtn ils disent:
Erreur dans le script évènement, inspectez le rapport log.txt
NameError occured while running script
uninitialized constant interpreter::SALAMECHE

---------- Erreur de script : Loading ----------
----- Type
Errno::ENOENT

----- Message
No such file or directory - Graphics/Characters/Avatar-Hiro1

----- Position dans Loading
Ligne 1

----- Backtrace
Script : Loading | Ligne : 1 | Méthode : in `initialize'
Script : Loading | Ligne : 1 | Méthode : in `new'
Script : Loading | Ligne : 1 | Méthode : in `load_bitmap'
Script : Loading | Ligne : 1 | Méthode : in `character'
Script : Sprite_Character | Ligne : 45 | Méthode : in `update'
Script : Sprite_Character | Ligne : 21 | Méthode : in `initialize'
Script : MAPLINK | Ligne : 127 | Méthode : in `new'
Script : MAPLINK | Ligne : 127 | Méthode : in `initialize'
Script : Scene_Map | Ligne : 13 | Méthode : in `new'
Script : Scene_Map | Ligne : 13 | Méthode : in `main'
Script : Main | Ligne : 57

Nuri Yuri

  • Modérateur de section
  • 577 posts
07 octobre 2018, 11:33
Tu as du oublier les guillemets. Dans tous les cas, il est préférable d'entrer ajouter_pokemon(4, 5) que ajouter_pokemon("Salamèche", 5)

Fernand

  • Membre
  • 6 posts
07 octobre 2018, 13:24
d'accord mais là ils me disent, avec le ajouter_pokemon(4, 5):
Erreur dans le script Loading, inspectez le rapport Log.txt.
Script 'Sprite_Character' line 45:Errno::ENOENT occurred.
No such file or directory - Graphics/Character/004_0


---------- Erreur de script : Loading ----------
----- Type
Errno::ENOENT

----- Message
No such file or directory - Graphics/Characters/Avatar-Hiro1

----- Position dans Loading
Ligne 1

----- Backtrace
Script : Loading | Ligne : 1 | Méthode : in `initialize'
Script : Loading | Ligne : 1 | Méthode : in `new'
Script : Loading | Ligne : 1 | Méthode : in `load_bitmap'
Script : Loading | Ligne : 1 | Méthode : in `character'
Script : Sprite_Character | Ligne : 45 | Méthode : in `update'
Script : Sprite_Character | Ligne : 21 | Méthode : in `initialize'
Script : MAPLINK | Ligne : 127 | Méthode : in `new'
Script : MAPLINK | Ligne : 127 | Méthode : in `initialize'
Script : Scene_Map | Ligne : 13 | Méthode : in `new'
Script : Scene_Map | Ligne : 13 | Méthode : in `main'
Script : Main | Ligne : 57

Nuri Yuri

  • Modérateur de section
  • 577 posts
07 octobre 2018, 16:40
Tu as ajouté un script de Follow Me mais tu n'as pas les ressources du follow Me.

DrBisounours

  • Membre
  • 30 posts
12 octobre 2018, 18:47
Bonjour Nuri,

Je souhaiterai améliorer l'animation de la CS VOL, notamment en ayant le Pokémon qui utilise la technique qui s'affiche à l'écran.
Pour cela, je compte rendre le dresseur transparent, transformer l'apparence du Pokémon affiché avec le script "Follow me" et le déplacer à l'écran pour qu'il donne l'impression de s'envoler.

J'ai donc modifié le script du Follow Me pour que le jeu comprenne qu'il faut modifier l'apparence du Pokémon uniquement lorsqu'on utilise la technique Vol, puis lui rende son apparence normale. Jusqu'ici : aucun soucis, j'ai réussi.

Cependant, le jeu ne récupère pas l'ID correcte du Pokémon, je ne sais pas pourquoi. J'ai donc tenté de modifier ma formule pour récupérer l'ID du pokémon possédant vol dans l'équipe (tant pis si ce n'est pas celui qui utilise la technique). J'ai écrit :

for i in 0..$pokemon_party.size
        if pokemon_numero(i).skill_learnt?("VOL") == true
           @fly_id = pokemon_numero(i).id
        end
end

Cependant, le jeu me rétorque "undefined method 'pokemon_numero' for #<Follower_PKM:0xf94de58>" .
J'en déduis qu'il ne connaît pas la méthode pour le pokémon follower car ce n'est pas un pokémon à proprement parler.
J'ai tenté d'utiliser la méthode $pokemon_party.actors.skill_learnt?("VOL") pour outrepasser le problème, le jeu me dit alors "undefined method 'skill_learnt?" for nil:NilClass.
Là je suis perdu car je pensais que $pokemon_party.actors donnait un objet de classe Pokémon. Je ne comprends pas pourquoi il me dit nil:NilClass.

« Modifié: 13 octobre 2018, 19:37 par DrBisounours »

Nuri Yuri

  • Modérateur de section
  • 577 posts
13 octobre 2018, 21:34
Alors pour le 'skill_learnt?" for nil:NilClass c'est parce que tu va de 0 à la taille de l'équipe inclue, tu dois écrire :
for i in 0...$pokemon_party.sizeou
$pokemon_party.size.times do |i|
Pour la méthode non trouvée (pokemon_numero) c'est surement parce que ton morceau de code ne s'execute pas dans le bon évènement (dans le follower au lieu d'autre chose). Après c'est du PSP donc :/ (J'utilise PSDK)

DrBisounours

  • Membre
  • 30 posts
14 octobre 2018, 10:58
Excellent, ça marche. Je n'y aurai jamais pensé tout seul, merci beaucoup :)

Nuri Yuri

  • Modérateur de section
  • 577 posts
14 octobre 2018, 12:01
De rien :)
Ca fait parti des petites subtilités du Ruby :p

DrBisounours

  • Membre
  • 30 posts
15 octobre 2018, 15:56
Tu remarqueras que je progresse petit à petit pour écrire quelques scripts :p

Si tu utilises PSDK tu ne pourras peut être pas me répondre mais je demande au cas où : je cherche à comprendre comment fonctionne les rencontres aléatoires afin de pouvoir les modifier. J'ai trouvé la fonction call_battle_wild mais je ne suis pas sûr que ce soit ce qui m'intéresse :

  def call_battle_wild(id_data, level, shiny = false, ia = false)
    $game_temp.map_bgm = $game_system.playing_bgm
    $game_system.bgm_stop
    if id_data.type == Fixnum
      id = id_data
    elsif id_data.type == String
      id = id_conversion(id_data)
    end
    pokemon = Pokemon.new(id, level, shiny)
    $scene = Pokemon_Battle_Wild.new($pokemon_party, pokemon, ia)
    @wait_count = 2
    return true
  end
  alias demarrer_combat call_battle_wild

J'aimerai, selon la valeur d'une variable rendre les rencontres complètement aléatoires ou bien les limiter à un type de Pokémon précis.
Pour ça, je voulais trouver l'endroit où est généré l'ID du pokémon sauvage rencontré et créé un truc du genre :
If variable = X then ID = random()et
Si variable = X do ID = random() until pokemon.id.type_roche? == true

Nuri Yuri

  • Modérateur de section
  • 577 posts
16 octobre 2018, 17:11
Il me semble que call_battle_wild est la fonction appelée depuis un évènement et non depuis le système général (la map pour les rencontres aléatoires).

Sinon, tu peux générer l'id de la manière suivante :
id_data = rand(1..max_id)où max_id est l'id du dernier Pokémon du Pokédex (493 par exemple).

Après si tu veux un Pokémon type roche (j'ai pas la méthode qui permet de récupérer le type donc je vais utiliser un espèce de workaround)
begin
  id_data = rand(1..max_id)
  pokemon = Pokemon.new(id_data, 5)
end while !pokemon.type_roche?
Evidemment en passant avec autre chose que pokemon.type_roche? serait un peu mieux car créer un Pokémon c'est couteux.

DrBisounours

  • Membre
  • 30 posts
17 octobre 2018, 10:58
Je n'arrive vraiment pas à trouver où l'information du pokémon sauvage est générée. Le script pokemon_encouter a l'air de récupérer l'information dans la BDD :

module POKEMON_S
  $data_encounter = []
  $data_encounter[0] = [0, 0, [0], 0]
 
  # id = Groupe de monstre
  #$data_encounter[id] = [
  #tag terrain,
  #tag jour/nuit, 0 = jour/nuit, J = jour, N = nuit
  #[
  #  écart,
  #  [Pokémon 1, niveau, rareté locale],
  #  [Pokémon 2, niveau, rareté locale],
  #  [Pokémon 3, niveau, rareté locale],
  #  [Pokémon 4, niveau, rareté locale],
  #  [Pokémon 5, niveau, rareté locale],
  #  [Pokémon 6, niveau, rareté locale]
  #],
  # condition numéro de switch, 0 si rien
  #]
 
  $data_troops       = load_data("Data/Troops.rxdata")
  for i in 1..$data_troops.length-1
    $data_encounter[i] = []
    name = $data_troops[i].name
    data = (name.split('/'))[0]
    if data == nil # Sans nom
      $data_encounter[i] = [0, 0, [0], 0]
      next
    end
    data = data.split(',')

Mais je ne vois pas à quel moment du script je pourrais interférer ...
« Modifié: 17 octobre 2018, 14:56 par DrBisounours »

Nuri Yuri

  • Modérateur de section
  • 577 posts
17 octobre 2018, 14:13
Faudrait trouver le moment où les scripts font appel à $data_encounter[ dans le but de réaliser la rencontre aléatoire ^^

DrBisounours

  • Membre
  • 30 posts
17 octobre 2018, 14:59
J'ai trouvé. J'avais fait une erreur bête : j'avais oublié la majuscule à Pokemon.new  :-[
Encore une fois, c'est en relisant attentivement la méthode que tu me proposais que j'ai trouvé mon erreur. Merci !

Pour ceux que ça pourrait intéresser, c'est le script Pokemon_encounter qu'il faut modifier. Il va chercher l'information dans la BDD au tout début du script.

Nuri Yuri

  • Modérateur de section
  • 577 posts
17 octobre 2018, 15:34
Oui, après le problème de Pokemon_Encounter c'est qu'il fait le travail au lancement du jeu, donc c'est pas vraiment aléatoire. (Au sens où à chaque rencontre tu as une chance de rencontrer n'importe quel Pokémon suivant le critère).

DrBisounours

  • Membre
  • 30 posts
17 octobre 2018, 22:57
Je comprends pas bien ce que tu veux dire. Quand je joue j'ai le sentiment de tomber sur des Pokémons différents à chaque rencontre pourtant.

Nuri Yuri

  • Modérateur de section
  • 577 posts
18 octobre 2018, 10:09
Ce que je veux dire, c'est que plus tu rencontrera de Pokémon sans fermer, reset le jeu ou changer de zone, plus tu rencontrera les même Pokémon. C'est ça que je considère comme pas aléatoire. Tu as un set de départ et il se "répète" tant que tu ne ferme pas le jeu.

Après si ça marche comme tu veux, tant mieux j'ai envie de dire x)

DrBisounours

  • Membre
  • 30 posts
22 octobre 2018, 15:00
Ah je vois. C'est un peu faussé alors. Pour le moment, je n'ai pas eu le sentiment de retomber sur les mêmes Pokémons (sûrement parce qu'il y en a beaucoup) mais c'est toujours bon à savoir.

Est-ce que tu connais la méthode pour faire que le héros soit invisible lorsque le jeu démarre ?
J'ai tenté bêtement de mettre un événement automatique qui rend le personnage transparent mais on l'aperçoit un instant et c'est assez perturbant. Pourtant, lors de la scène d'intro de PSP, il me semble qu'on ne le voit pas apparaître.

Nuri Yuri

  • Modérateur de section
  • 577 posts
22 octobre 2018, 18:28
Tu peux simplement ne pas lui donner d'apparence par défaut et de la régler lors de l'introduction.
Après à toi d'effacer les images après la téléportation du héros sur la map et normalement le tours est joué.

Kveldssang

  • Membre
  • 4 posts
25 janvier 2019, 22:04
Bonjour !

J'utilise PSP 0.8 et j'aimerais instaurer une notion d'aléatoire. En gros, je veux faire en sorte qu'en parlant au professeur, celui-ci nous donne une équipe au hasard parmi une liste pré-établie.

Débutant sur RPG Maker, la seule solution que j'ai trouvé serait de donner au joueur de 1 à 10 jetons et créer une conditional branch où selon le nombre de jetons du joueur, il reçoit l'une des dix équipes. En gros, si jetons = 2 donner tel pokémon, puis retirer les jetons et en redonner aléatoirement, puis si jeton = 3 donner tel pokémon... Et ainsi de suite jusqu'à avoir les 6 pokémons.

Y a t'il une solution plus simple ? Si non, je n'ai pas trouver la commande pour ajouter des jetons au joueur, c'est laquelle ? Est-ce qu'il y a moyen de donner un nombre de jetons aléatoire ?

Merci d'avance !
« Modifié: 25 janvier 2019, 22:20 par Kveldssang »

Kveldssang

  • Membre
  • 4 posts
26 janvier 2019, 00:28
Ok il y avait effectivement plus simple, j'ai compris comment utiliser le système de variables :)

Zoriolu

  • Membre
  • 1 posts
10 mai 2019, 21:53
Bonjour, je rencontre un problème et je n'arrive pas à y faire face. En rentrant dans une grotte ce message s'affiche :

Script "MAP" line 141 : NoMethodError occured.
undefined method "[]" for nil:NilClass

J'ai en suite défini le point de départ à l'intérieur mais je rencontre toujours le même problème : /
Quelqu'un pourrait s'il vous plait ?

Zoriolu

PS : j'aimerais aussi que le personnage soit téléporté au centre quand il perd un combat mais le script "sauv_retour(9, 005, 023)" ne fonctionne pas : (

Weby

  • Membre
  • 56575 posts
11 mai 2019, 13:40
Bah déjà est-ce que le script existe ?

Nuri Yuri

  • Modérateur de section
  • 577 posts
17 mai 2019, 19:33
Tu recherche le message d'erreur sur Google et hop t'as la solution sur le premier lien. (Tu t'es TP sur la World Map).

Pour ton problème de sauv_retour tu as essayé d'utiliser l'octal pour définir les positions. Note que tu peux manuellement changer le point de retour en modifiant les variables concernées, c'est beaucoup plus sûr que d'utiliser une commande de script quand tu ne les maîtrise visiblement pas.

Pages: 1 ... 16 17 18 19 20 [21]    En haut ↑