Aller à la page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
Reprise du message précédent:
Ephy -
posté le 02/11/2011 à 18:08:28 (30108 messages postés)
- | [BIG SHOT] | Bah oui mais le making c'est aussi des trucs chiants comme ça
Et puis ce genre de truc c'est fait en quoi... quelques heures? Pas trop chronophage quand même...
|
Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14 | Suite du sujet:
AlterEgo -
posté le 02/11/2011 à 18:09:54 (2481 messages postés)
| It shall be engraved upon your soul | C'est quoi ton evenement ?
Ca ne pourrait pas etre fait en evenement commun ?
Et sinon si c'est un personnage par exemple , tu ne peux pas mettre un event transparent dans un coin de la map , et tu le fais apparaitre aux coordonnees que tu veux avec un evenement commun ?
|
Et le pharaon noir est le premier roi de l’Atlantide pour la gloire de rien comprendre |
yop -
posté le 02/11/2011 à 18:42:01 (296 messages postés)
| | Merci AlterEgon c'est une bonne idée mais ça revient au même...
Ephy, Je voulais juste savoir si c'est possible sinon tant pis. Mais il faut admettre que ça serait bien pratique.
|
"Thousands of years ago the old empire had enforced the Pax Morporkia, which had said to the world: 'Do not fight or we will kill you.' The Pax had arisen again, but this time it said: 'If you fight, we'll call in your mortgages. And incidentally, that's my pike you're pointing at me. I paid for that shield you're holding. And take my helmet off when you speak to me, you horrible little debtor.'" ~Terry Pratchett, Feet of Clay |
Ephy -
posté le 02/11/2011 à 18:44:16 (30108 messages postés)
- | [BIG SHOT] | Non mais je préviens quoi. C'était pas méchant hein. JE dis juste que parfois le making ça peut être très chiant et très bête parce que certains ont l'air de pas être au courant
|
Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14 |
Mack -
posté le 02/11/2011 à 19:01:16 (2311 messages postés)
- - | | Mack a dit:
Merci hein =').
EDIT :
Bien sur faudra le modifier, mais je suppose que tu t'y connais un peu.
Sinon, j'devrais pouvoir le faire.
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
yop -
posté le 02/11/2011 à 19:50:56 (296 messages postés)
| | Désolé Mack, j'ai répondu à AlterEgo sans voir ton message
Je vais essayer de voir comment faire même si ça m'a l'air bien compliqué mais je l'ai pas encore lu donc je peux pas savoir.
En tout cas merci beaucoup ça me serra d'une grande aide
|
"Thousands of years ago the old empire had enforced the Pax Morporkia, which had said to the world: 'Do not fight or we will kill you.' The Pax had arisen again, but this time it said: 'If you fight, we'll call in your mortgages. And incidentally, that's my pike you're pointing at me. I paid for that shield you're holding. And take my helmet off when you speak to me, you horrible little debtor.'" ~Terry Pratchett, Feet of Clay |
Åvygeil -
posté le 02/11/2011 à 20:05:55 (2502 messages postés)
| | Citation: Bah oui mais le making c'est aussi des trucs chiants comme ça |
Quand on programme en event, oui...
Citation: Et puis ce genre de truc c'est fait en quoi... quelques heures? Pas trop chronophage quand même... |
Ouais, et le jour où tu veux faire une correction, faut que tu repasses encore quelques heures à faire la même correction partout... Pas chronophage du tout
Et si il nous disait en quoi consiste son event, qu'on puisse l'aider ?
Parce que ça pue la mauvaise solution son bidule en event, si il a besoin de le copier/coller partout...
|
yop -
posté le 03/11/2011 à 17:08:56 (296 messages postés)
| | Pour mon jeu (qui est plutôt un mini-jeu), j'ai plusieurs personnage qui se déplacent et c'est à chaque fois les mêmes quasiment.
Dans le niveau 1 et 2 il y a 10 pnj1, 1 pnj2 et 1pnj3
Dans le niveau 3, 1 pnj2 en plus
Dans le niveau 4, encore 1 pnj2 en plus
Les pnj1 et 2 accélère à chaque de niveau
Sachant que chaque niveau contient une dizaine de sous-niveaux.
De plus ces pnj subissent en ce moment des corrections, améliorations, changement de sprites...
Je pense que ce script qui permet de copier les évents (je dis bien copier, c'est magique ! ) me fournira une aide précieuse. En plus d'un gain de temps considérable et d'un allègement cela me permettre de réaliser des choses normalement impossible, notamment dans mes autres jeux (je vous laisse y penser^^), c'est pourquoi je tiens à remercier Mack une seconde fois !
Pourquoi faire long quand on peut faire court ?
Pourquoi faire compliqué quand un peut faire simple ?
Pourquoi faire lourd quand on peut faire léger ?
Pourquoi faire moins quand on peut faire plus ?
En conclusion je dirais pourquoi s'en passer ?
|
"Thousands of years ago the old empire had enforced the Pax Morporkia, which had said to the world: 'Do not fight or we will kill you.' The Pax had arisen again, but this time it said: 'If you fight, we'll call in your mortgages. And incidentally, that's my pike you're pointing at me. I paid for that shield you're holding. And take my helmet off when you speak to me, you horrible little debtor.'" ~Terry Pratchett, Feet of Clay |
Youri -
posté le 03/11/2011 à 18:00:09 (351 messages postés)
| | Tien :
[hide=Script]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
| #===
#¤Class Interpreter
#---
#%Ajout de la methode permettant de charger une évent depuis une autre map
#%Sur la map en cours.
#---
#© 03/11/2011 - Nuri Yuri (塗 ゆり)
#===
class Interpreter
ID_MAP_DATA=2
S_Map_File="Data/Map%03d.rxdata"
Warn=true
@@old_Map_id=nil
@Map_Data=nil
def move_event(id,x,y,map_id=ID_MAP_DATA)
if @@old_Map_id != map_id or !@@Map_Data
@@old_Map_id=map_id
@@Map_Data=load_data(sprintf(S_Map_File,map_id)) rescue (p $! if Warn;return)
end
event=@@Map_Data.events[id]
if event
event.x=x.to_i if x
event.y=y.to_i if y
event=Game_Event.new($game_map.map_id, event)
if $game_map.events[id]
arr=$game_map.events.keys.sort
oid=id
id=arr[-1]+1
$game_map.events[id]=event
p "Attention, l'évent #{oid} existe déjà sur la Map #{$game_map.map_id}, l'évent à été placé avec l'id : #{id}" if Warn
else
$game_map.events[id]=event
end
$scene.spriteset.push_character_sprite(id) if $scene.class==Scene_Map
return true
else
p "Erreur : L'évent #{id} n'a pas été trouvé sur la Map #{map_id}" if Warn
return
end
end
end
#===
#¤Class Spriteset_Map
#---
#%Ajout de la methode d'ajout de sprite.
#---
#© 03/11/2011 - Nuri Yuri (塗 ゆり)
#===
class Spriteset_Map
def push_character_sprite(id)
sprite = Sprite_Character.new(@viewport1, $game_map.events[id])
@character_sprites.push(sprite)
end
end
#===
#¤Class Scene_Map
#---
#%Ajout de l'attribut spriteset
#===
class Scene_Map
attr_accessor :spriteset
end |
[/hide]
Tu met dans un évent move_event(id,x,y) et ça va déplacé l'event id à la position x,y sur la map en cours depuis la map ID_MAP_DATA ou valeur ajouté dans le paramètre optionnel.
Si un évent de l'id existe déjà l'évent déplacé aura un autre id et tu sera prévenu si Warn a pour valeur true (met donc false pour le désactiver.)
J'espère que c'est ce que tu veux, bonne continuation pour ton projet.
|
Pokémon Workshop, le site de Making Pokémon sur RPG Maker~ |
Mack -
posté le 03/11/2011 à 18:11:45 (2311 messages postés)
- - | | En gros, c'est exactement ce que le lien que j't'ai filé fais.
( Suffit que tu mettes un event en // qui créais autant d'évent, que tu auras préalablement créer, sur la map où se trouve le joueur. )
Celui de Youri à l'air pas mal, mais beaucoup pus complexe ...
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Youri -
posté le 03/11/2011 à 18:45:50 (351 messages postés)
| | J'avais pas regardé le lien ^^'
Mon script n'est pas vraiment complexe, il copie l'évent à la position voulue (ou position de base en mettant false ou nil aux coordonnées) depuis une autre map en lui laissant l'id sauf cas d'évent préexistant et ne recharge pas la map (sauf exception particulière) ce qui évite aussi la récréation d'objets inutiles.
Bon après, je fais de manière différente et je n'ai pas commenté (par habitude). (Bon, je dis que c'est pas complexe mais je sais comment ça fonctionne en même temps...)
Sinon, je pense que pour l'autre script si on fait un truc comme ça dans un appel :
Create_Event.new(2)
Create_Event.new(3)
Create_Event.new(4)
Create_Event.new(5)
Create_Event.new(6)
Create_Event.new(7)
La création ne fonctionnera pas correctement car lors de l'appel de script Scene_Map n'est pas mis à jour(à moins qu'il y ai un code comma ça : Thread.new{loop do;$scene.update;sleep(0.025);end} quelque part mais j'en doute un peu :B) et les évents pourraient ne pas être affichés. (J'ai pas vérifié.)
|
Pokémon Workshop, le site de Making Pokémon sur RPG Maker~ |
Mack -
posté le 03/11/2011 à 18:51:40 (2311 messages postés)
- - | | Avec le script telle quel ça arrive ouais ^^".
M'enfin, suffit de remplacer ce qu'il y a dans Game_Temp par un Array, et de le remplir lorsque un évent est créais, et ce vide lorsque il ajoutes sur la map. ( Du coup, aucun problème d'affichage )
M'enfin, ton script et quand même vachement plus galère que celui de Créative, enfin, je trouve.
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
yop -
posté le 03/11/2011 à 19:00:25 (296 messages postés)
| | Merci Youri, ton script à l'air encore mieux que celui de créative !
Est-il possible de mettre une variable pour x, y ou ID_MAP_DATA ?
Par exemple :
ID_MAP_DATA = @variable1 (dans le script bien sur)
move_event(1,@variable2,@variable3) (comme avec la fonction "téléporter évènement car celle-ci ne gère que les évents déjà sur la map)
De plus, est-il possible de modifier ID_MAP_DATA avec "insérer un script" ?
Merci encore
|
"Thousands of years ago the old empire had enforced the Pax Morporkia, which had said to the world: 'Do not fight or we will kill you.' The Pax had arisen again, but this time it said: 'If you fight, we'll call in your mortgages. And incidentally, that's my pike you're pointing at me. I paid for that shield you're holding. And take my helmet off when you speak to me, you horrible little debtor.'" ~Terry Pratchett, Feet of Clay |
Youri -
posté le 03/11/2011 à 19:09:41 (351 messages postés)
| | Tu peux faire move_event(1,$variable_x,$variable_y,map_id)
La variable $varable_x et $varaible_y devront être définies (ou pas) par toi quelque part, dans l'évent donc tu peux faire :
1
| move_event(1,$game_variables[500],$game_variables[501]) |
Et si tu veux copier celui de la map 53 avec les coordonnées que tu as enregistrer dans les variables 500 et 501 tu fais :
1
| move_event(1,$game_variables[500],$game_variables[501],53) |
Tu peux mettre des variables en argument mais fait gaffe au contenu de celle ci.
ID_MAP_DATA est la variable par défaut donc si tu ne met pas l'argument map_id elle est prise. (Tu peux changer la valeur si tu met tous les évents sur une seule map ou mettre la valeur dans l'argument prévu si t'as les évents sur plusieurs maps.)
@Mack : Explique où c'est galère. (Utilisation / contenu)
|
Pokémon Workshop, le site de Making Pokémon sur RPG Maker~ |
yop -
posté le 03/11/2011 à 19:58:43 (296 messages postés)
| | Merci tout est clair maintenant !
Je me demandais également quelles sont les valeurs de base de x et de y ?
|
"Thousands of years ago the old empire had enforced the Pax Morporkia, which had said to the world: 'Do not fight or we will kill you.' The Pax had arisen again, but this time it said: 'If you fight, we'll call in your mortgages. And incidentally, that's my pike you're pointing at me. I paid for that shield you're holding. And take my helmet off when you speak to me, you horrible little debtor.'" ~Terry Pratchett, Feet of Clay |
un_lock -
posté le 03/11/2011 à 20:25:06 (80 messages postés)
| Le bidouilleur Floux! | Bonjour !
J'aimerais savoir s'il était possible sur RPG Maker XP, en appelant un script, de lancer un fichier *.exe ??
Je m'explique... j'ai une vidéo qui est compilé dans un exe (j'essai de contourner la lecteur des video un peu foireuse sur RMXP)... J'avais trouvé une portion de code il y a quelques temps.. mais impossible de remettre la main dessu...
Ne l'ayant pas testé, je ne sais pas si ça marchait ou pas... Si quelqu'un pouvait m'aider, je lui en serais reconnaissant ^^
Merchouille
******************************************
Je me répond à moi même....
Il faut utiliser ceci: Thread.new {system('Chemin vers *.exe')}
|
Mack -
posté le 04/11/2011 à 18:51:42 (2311 messages postés)
- - | | Citation: if @@old_Map_id != map_id or !@@Map_Data
@@old_Map_id=map_id
@@Map_Data=load_data(sprintf(S_Map_File,map_id)) rescue (p $! if Warn;return)
end |
J'suis pas sur de comprendre cette partie, c'est juste pour charger la map, et éviter de la recharger plus tard ?
Ensuite, pourquoi mettre des double @ ?
Et puis c'est quoi ce :
Citation: rescue (p $! if Warn;return) |
?
Pour l'id, si elle est déjà prise, je suppose que ça viens de cette partie :
Citation: arr=$game_map.events.keys.sort
oid=id
id=arr[-1]+1 |
Mais en faite tu fait quoi ?
Tu tries le tableau dans l'ordre croissant, et tu prends la dernière valeurs pour y ajouter 1 pour être sur que cette valeurs soit "vide" ?
Le reste j'comprends.
Et sinon, j'ai un petit problème :
Support : RMXP
Question 1 :
En faite, j'aimerais calculer le %age de chance qu'un index de tableau sorte.
En gros, je dispose d'un tableau de ce style :
( Le contenus est composé seulement de chiffre, et il peut avoir de 1 à 8 "entrées" )
Ces chiffres, correspondent au %age de chance que l'index lui correspondant sorte.
Exemple :
J'ai 15% de chance pour que 0 sorte. 30% pour que 1 sorte ...
J'ai essayer de faire ça :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| a = [15,30,20,35]
if @enemy_array == nil
@enemy_array = []
r = a[0]
for z in 0..a.size
e = a[z-1]
print e
if z == 0
e = 0
end
print r
for i in e+1..r
print i
@enemy_array[i] = z
end
r += a[z+1]
end
end |
Mais à chaque fois il me donne une erreur de syntaxe ...
( Quand on tape n'importe quoi dans insérer un script ... )
Voila, voila ...
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Youri -
posté le 04/11/2011 à 20:02:35 (351 messages postés)
| | Le premier code sert à charger une map si l'id est différent de l'id de la map précédente ou si la map vaut nil ou false, le @@ veut dire variable de classe, la variable de classe est enregistré dans la constante Interpreter et non les objets séparés générés par Interpreter.new et est accessible depuis tous les objets générés par la classe dans la quel elle a été définie. N'étant sur de rien je préfères utiliser un variable de classe plutôt qu'une variables d'instance.
"rescue" sert en cas d'erreur et les parenthèse elle servent à exécuter un sous programme, j'avais pas envie de mettre begin rescue end donc j'ai fait du code "bourrin" qui prends moins de place et moins de lignes, ";" sert à dire que la commande est terminées comme dans beaucoup de langages de programmation.
Après $game_map.events est un hash, c'est l'équivalent de deux tableaux qui contiennent séparément les clef et leurs valeurs. Donc, je récupère les clefs car j'ai besoins que des ids des évents arr=$game_map.events.keys, et je les tries (on sait jamais) en utilisant la methode sort de la classe Array.
oid=id c'est simplement l'id de l'évent à la base o pour old.
arr[-1] est la dernière case du tableau donc je capture la dernière case qui doit contenir l'id du dernier évent et j'y ajoute 1 pour créer un nouvel id propre à l'évent copié donc oui je fais en sorte à utiliser une valeur dont je suis sur qu'elle est vide.
Pour ton problème il n'y a pas d'erreur de syntaxe, mais en l'insérant dans appelle de script ça peut être gênant car RMXP peut coupé à partir de la huitième ligne ce qui fait que le code est interprété à moitié et ce qui donne l'erreur de syntaxe. Sinon, il y a une erreur de type car tu sort de l'array "a", for i in 0..a.size va aller de 0 à a.size or a[a.size]==nil et a[a.size+1] est aussi égale à nil donc ça va poser des problèmes.
|
Pokémon Workshop, le site de Making Pokémon sur RPG Maker~ |
Tasslehoff -
posté le 04/11/2011 à 20:23:58 (5274 messages postés)
| Disciple de Pythagolf | Tu peux peut-être faire un truc du genre :
1
2
3
4
5
6
7
8
9
10
| tableau = [15,30,20,35]
z = []
tableau.each_index{|index|
tableau.each{|prout|
prout.times do
z.push(index+1)
end
}
}
final = z[rand(z.size)] |
Pas testé, je sais pas ce que ça donne. J’espère que ça a pas l'air trop dégueulasse pour un codeur expérimenté. ^^
|
~~ |
Mack -
posté le 04/11/2011 à 20:37:07 (2311 messages postés)
- - | |
Ca va afficher un texte. Jusque là je suis. Mais comme quoi texte ? A quoi est égale $! ? A l'erreur que le jeu reçoit ?
Ensuite, si on le faisait en moins simpliste ça donnerais quoi ?
Ça ? :
1
2
3
4
5
6
7
8
9
|
begin
@@Map_Data=load_data(sprintf(S_Map_File,map_id))
rescue
if Warn
p $!
return
end
end |
Pour la variable de classe, j'vais essayer de trouver une bonne grosse explication dessus, j'saisis pas bien la différence entre @ma_variable et @@ma_variable ...
Pour mon problème, je l'appelle depuis une définition fait exprès pour :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| def e(a)
if @enemy_array == nil
@enemy_array = []
r = a[0]
for z in 0..a.size
e = a[z-1]
print e
if z == 0
e = 0
end
print r
for i in e+1..r
print i
@enemy_array[i] = z
end
r += a[z+1]
end
end
end |
Et dans inserer un script :
Et voila l'erreur exacte :
( C'est pas une erreur de syntaxe, autant pour moi. )
Et la ligne qu'il me pointe c'est :
Du coup, j'pense pas que ça vienne d'un coupage du script.
Pour l'autre problème, suffirais de remplacer 0..a.size par 0...a.size voir 0..(a.size-1) non ?
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Tasslehoff -
posté le 04/11/2011 à 21:16:37 (5274 messages postés)
| Disciple de Pythagolf | Citation: Pour la variable de classe, j'vais essayer de trouver une bonne grosse explication dessus, j'saisis pas bien la différence entre @ma_variable et @@ma_variable ... |
Une classe hérite des variables de classe de sa superclasse, et si tu modifie la variable dans la classe ça la modifiera aussi dans la superclass. Ils se la "partagent" en quelque sorte.
Sinon t'as essayé mon bout de code ? J'ai testé et ça a l'air de fonctionner.
|
~~ |
Youri -
posté le 04/11/2011 à 21:17:18 (351 messages postés)
| | Non. (pour Mack ^^', oniro ne préviens pas quand il y a des nouveaux messages.)
cmd if bool <=> if bool;cmd;end
Donc ça vaudrait :
1
2
3
4
5
6
7
8
9
|
begin
@@Map_Data=load_data(sprintf(S_Map_File,map_id))
rescue
if Warn
p $! #Affiche le message d'erreur
end
return #Sortie de la methode (renvois nil accessoirement) car pas de ma chargée.
end |
Et pour l'autre problème remplace plutôt par 0...a.size
Le code de Tasslehoff fonctionne bien mieux.
|
Pokémon Workshop, le site de Making Pokémon sur RPG Maker~ |
Berka -
posté le 04/11/2011 à 21:57:54 (493 messages postés)
| planchant sur un script | @Mack:
Déjà tu emploies une locale e dans une méthode e. Ca entraîne un risque de confusion. Ensuite ton message d'erreur signifie qu'à la ligne:
ton e== nil
Si on remonte à la ligne initialisant e:
Il faut que tu vérifies ton a et ton z.
En règle générale, il faut toujours se méfier des eval. Car le suivi d'erreur est très mal géré dedans.
@Youri:
Le begin est inutile dans une méthode, car c'est déjà un bloc. Du coup tu peux très bien utiliser une exception comme ceci:
1
2
3
4
5
6
7
| def test
#...
rescue
#...
ensure
#...
end |
Plutôt qu'un return, assure l'exécution en utilisant ensure.
Bonne soirée,
Berka
|
Twitter: Pensées politiques et juridiques. Réflexions informatiques |
Youri -
posté le 04/11/2011 à 22:25:58 (351 messages postés)
| | Merci pour l'information Berka.
|
Pokémon Workshop, le site de Making Pokémon sur RPG Maker~ |
Mack -
posté le 04/11/2011 à 22:26:52 (2311 messages postés)
- - | | Désoler Tass, j'avais pas vu ^^".
Alors apparemment, ça fonctionne ( Aucune erreur ), mais j'ai pas l'impression que ça donne des résultats correctes ...
J'ai modifier pas mal mon tableau, et les résultats sont plutôt bizarre :
Un index qui à un %age faible ( 5 ) revient à peu près autant qu'un avec un %age correcte ( 40 ).
De plus, j'ai essayer de rendre une de ses valeurs à 0 ( Et donc elle ne devrais plus sortir ) et pourtant elle sort toujours autant ...
Donc, c'est moi qui est mal compris son fonctionnement ? Ou c'est juste un coup de malchance ?
1
2
3
| a = [0,35,20,45]
i = e(a)
print i |
J'fais juste ça pour récupérer l'index. ( Avec e la définition de Tass' )
Merci Berka, j'vais voir.
M'en faite, j'vais quand même exposer le problème du tout début, aussi bien, j'me foire complet sur comment le régler :
En gros, je fais un A-RPG, donc, pour l'apparition des monstres, j'ai décidé de me servir de la BDD pour pouvoir en faire apparaître aléatoirement.
Donc, dans l'onglet groupe de monstre, je définit les types de monstres rencontrables, et dans les events du groupe, j'y met mon tableau pour représenter le %age de chance qu'ils apparaissent.
( Donc, dans mon groupe de monstre, j'ai juste ça :
1
| @enemy_array = [0,35,20,45] |
Et j'utilise ça pour le récupérer :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| def setup_battle(m=nil)
if m == nil
m = rand(2)+1
end
for p in 0..m
$game_system.battle_interpreter.setup(nil, 0)
n = rand($game_map.encounter_list.size)
troop_id = $game_map.encounter_list[n]
troop = $data_troops[troop_id]
# Je fais la liste des diffèrents groupes, et j'en prend un au hasard.
for index in 0...$data_troops[troop_id].pages.size
# Get event pages
page = $data_troops[troop_id].pages[index]
$game_system.battle_interpreter.setup(page.list, @event_id)
end
$game_system.battle_interpreter.update
# Je récupère le contenu de l'évent de la BDD
r = rand(100)
a = $game_system.battle_interpreter.enemy_array
i = e(a)
print i
enemy = $data_enemies[troop.members[i-1].enemy_id]
# Et je récupère l'ennemie de la BDD
end
end |
La fin concerne l'apparition de l'évent, et marche donc correctement.
Donc voila, est ce que j'suis sur la bonne voie ou y a moyen de faire carrément plus simple ?
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Tasslehoff -
posté le 04/11/2011 à 22:53:19 (5274 messages postés)
| Disciple de Pythagolf | Citation: Alors apparemment, ça fonctionne ( Aucune erreur ), mais j'ai pas l'impression que ça donne des résultats correctes ... |
Ah oui en verifiant mon code j'ai vu que j'ai fait un peu de la zutre.
1
2
3
4
5
6
7
8
| tableau = [1,50,20,35]
z = []
tableau.each_index{|index|
tableau[index].times do
z.push(index+1)
end
}
final = z[rand(z.size)] |
Là c'est mieux. (Normalement )
|
~~ | Aller à la page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!
|