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:
cortez -
posté le 29/01/2014 à 09:08:48 (524 messages postés)
| | Je viens de faire un essai, et je pense que sa fonctionne, je
suppose car je me rend compte que je ne peux pas déplacer 2
évent pour les intervertir de place. Je pensais me servir du
check_page_match pour enregistrer l'id de l'event sous le héro
(qui sert de curseur) et aussi celle de l'évent situé à sa gauche /
droite / haut / bas pour permettre des permutations dans les 4
directions, lorsque je me suis rendu compte que ton script
n'intègre pas cette commande...
Je me retrouve à demander encore de l'aide, mais cette fois-ci
tu es libre de me faire le mini-jeu entièrement en script si tu trouve
que la commande qu'il me manque est plus compliquée à faire que
ce mini-jeu. (MP moi pour avoir plus de détail sur le mini-jeu.)
| Suite du sujet:
Estheone -
posté le 29/01/2014 à 10:17:33 (312 messages postés)
| | Faire ce mini-jeu entièrement en script c'est minimum une grosse journée de boulot, honnêtement j'ai pas le courage.
Edit : je viens de comprendre ton problème laisse-moi quelques minutes. ^^
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
| class Game_Event < Game_Character
def page_index
return @event.pages.index(@page)
end
end
class Interpreter
def command_209
character = $game_map.events[$game_variables[1]] || get_character(@parameters[0])
if character == nil
return true
end
character.force_move_route(@parameters[1])
return true
end
def save_event_offset(off_x, off_y)
nx = $game_map.events[@event_id].x + off_x
ny = $game_map.events[@event_id].y + off_y
ev = check_event(nx, ny)
save_event(ev.id) if ev
end
def save_event_xy(nx, ny)
ev = check_event(nx, ny)
save_event(ev.id) if ev
end
def save_event(ev_id)
$game_variables[1] = ev_id
end
def check_page_match(off_x, off_y)
nx = $game_map.events[@event_id].x + off_x
ny = $game_map.events[@event_id].y + off_y
ev = check_event(nx, ny)
return ev ? event_page_match?(ev, $game_map.events[@event_id]) : false
end
def check_event(nx, ny)
for event in $game_map.events.values
if event.x == nx and event.y == ny
return event
end
end
return nil
end
def event_page_match?(event1, event2)
return (event1.page_index == event2.page_index)
end
end |
Voilà j'ai modifié le fonctionnement, la sauvegarde de l'événement n'est plus automatique mais manuelle et peut être faite de 2 façons :
- save_event_offset(off_x, off_y) : sauvegarde l'event dont les coordonnées sont à off_x et off_y de l'event à partir duquel cette commande est appelée (par exemple save_event_offset(1, 0) sauvegarde l'event à droite, avec save_event_offset(0, 0) l'event principal se sauvegarde lui-même.
- save_event_xy(nx, ny) : sauvegarde l'event de coordonnées nx et ny
Petit exemple pour intervertir l'événement principal avec un autre à sa droite.
- insérer script : save_event_offset(1, 0)
- déplacer événement : un pas vers la gauche
- insérer script : save_event_offset(0, 0)
- déplacer événement : un pas vers la droite
J'espère que ça couvre tous les cas possibles de ton mini-jeu, j'ai pas vraiment saisi comment il fonctionne.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Joke -
posté le 29/01/2014 à 11:54:01 (5090 messages postés)
| Bilouteux fou | Sinon, au lieu de contrôler si la page active est en commun, il y avait une technique tout évent simple qui consistait à vérifier si la direction est commune, si tu n'as que quatre couleurs. (Le sprite change de couleur selon sa direction, et deux sprites de même couleur regardent dans la même direction.)
J'ai utilisé cette méthode pour programmer le jeu de la vie sous RM2003, en distinguant les boules jaunes/rouge/vert/bleu comme dans le modèle légendé. (J'aurais pu me passer de colorer les "cellules" mais c'est plus fun comme ça).
|
biloumaster.fr, mon joli site ouèb tout bô tout frai ! |
Chaös17 -
posté le 02/02/2014 à 20:24:45 (868 messages postés)
| | Salut,
Support : rpg maker Vx Ace (résolu par Dyeel)
Question : j'essaie de récupérer le play_time d'une sauvegarde et d'afficher ce dernier via un event, mais je n'arrive pas à l'afficher.
1
2
| $Tsav0 = DataManager.load_header(0)[:playtime_s]
draw_text(0, 0, 12, line_height, header[:playtime_s], 0) |
|
Blog of Chaos17 |
Berka -
posté le 03/02/2014 à 17:33:20 (493 messages postés)
| planchant sur un script | Hello
Tu le sors où l'objet header de ta deuxième ligne ? et pourquoi n'utilises-tu pas l'objet $Tsav0 ?
C'est là que tu fais une erreur.
Tu devrais faire :
1
2
| $Tsav0 = DataManager.load_header(0)[:playtime_s]
draw_text(0, 0, 12, line_height, $Tsav0, 0) |
ou
1
2
| header = DataManager.load_header(0)
draw_text(0, 0, 12, line_height, header[:playtime_s], 0) |
Dans le cas 1, $Tsav0 est une variable globale contenant une valeur d'un hash retourné par DataManager.load_header(0) et identifié par la clé :*playtime_s.
Dans le cas 2, header est un hash. Et tu n'auras accès à la valeur que tu recherche qu'en spécifiant une clé :*playtime_s dans ta deuxième ligne.
Bonne journée,
Berka
ps: La classe Hash
|
Twitter: Pensées politiques et juridiques. Réflexions informatiques |
Chaös17 -
posté le 03/02/2014 à 21:09:50 (868 messages postés)
| | Salut,
Citation: Tu le sors où l'objet header de ta deuxième ligne ? et pourquoi n'utilises-tu pas l'objet $Tsav0 ? |
Je suis encore novice en la matière, désolé.
1
2
| $Tsav0 = DataManager.load_header(0)[:playtime_s]
draw_text(0, 0, 12, line_height, $Tsav0, 0) |
1
2
| p header = DataManager.load_header(0)
p draw_text(0, 0, 12, line_height, header[:playtime_s], 0) |
Dans les deux solution, le playtime est ben récupéré, je l'ai vu dans la console, mais il semble que ça coince sur le draw text parce que j'ai eu ce bug avec les deux codes.
J'ai tenté de cherché "line_height" dans l'aide rpg maker mais j'ai rien trouvé dessus.
|
Blog of Chaos17 |
Nukidoudi -
posté le 03/02/2014 à 21:16:35 (736 messages postés)
- | yo | line_height est une méthode de Window.
|
https://xvw.lol |
Chaös17 -
posté le 03/02/2014 à 21:22:04 (868 messages postés)
| | Nukidoudi a dit:
line_height est une méthode de Window.
|
Normal alors que ça ne marche pas d'afficher juste le texte si j'ai pas de window.
J'ai tenté de mettre un chiffre à la place ou encore l'enlever mais Rm me dis alors ceci :
C'est donc pas possible que Rm m'affiche juste du texte via cette commande...
|
Blog of Chaos17 |
Siegfried -
posté le 03/02/2014 à 21:33:43 (228 messages postés)
| | Tu lances une méthode d'affichage de texte dans une commande événement ? oO
|
Nukidoudi -
posté le 03/02/2014 à 21:36:00 (736 messages postés)
- | yo | Draw text fonctionne sur les bitmaps.
|
https://xvw.lol |
Chaös17 -
posté le 03/02/2014 à 22:18:59 (868 messages postés)
| | J'ai essayé de me dédrouiller avec ta suggestion, Nuki.
|
Blog of Chaos17 |
Dyeel -
posté le 03/02/2014 à 22:36:38 (200 messages postés)
| | Il faut appliquer draw_text directement au bitmap.
1
2
3
| $test = Sprite.new
$test.bitmap = Bitmap.new(640,480)
$test.bitmap.draw_text(50,50,120,30,"holala") |
Attention à ne pas mettre $test à la fois en sprite et en chaîne de caractères dans le draw_text. Fais une autre variable pour ta chaîne.
|
Berka -
posté le 03/02/2014 à 22:37:56 (493 messages postés)
| planchant sur un script | Ici, tu instancies à $test un sprite, puis un hash, puis tu tentes d'accéder à une méthode de sprite par test (qui est, alors un hash).
Et puis il faut que tu initialises l'attribut bitmap de sprite par sprite.bitmap = Bitmap.new(width, height)
Donc:
1
2
3
4
5
| $sprite = Sprite.new
text = DataManager.load_header(0)[:playtime_s]
$sprite.bitmap = Bitmap.new(100, 24)
line_height = 16
$sprite.bitmap.draw_text(0, 0, 12, line_height, text, 0) |
|
Twitter: Pensées politiques et juridiques. Réflexions informatiques |
Chaös17 -
posté le 03/02/2014 à 22:57:05 (868 messages postés)
| | @ Dyeel : très bonne idée de m'avoir sugérer d'utiliser une variable, j'ai pu afficher mon heure de manière décomposé en plus que ça marche! http://puu.sh/6IX38.png
@Berka : merci, ton code marche aussi en tout cas pour l'affichage car après le chiffre montrer n'est pas le bon. Pourtant, j'ai repris le même slot de save.
http://puu.sh/6IX17.png
Merci à tous pour votre aide
|
Blog of Chaos17 |
Nukidoudi -
posté le 03/02/2014 à 22:57:20 (736 messages postés)
- | yo | Tu bosses sur quoi avec JRuby Berka?
|
https://xvw.lol |
Siegfried -
posté le 04/02/2014 à 01:06:16 (228 messages postés)
| | Nukidoudi a dit:
Draw text fonctionne sur les bitmaps.
|
Je sais. Je n'avais pas compris qu'il avait créé un Bitmap. Le message d'erreur montrait qu'il lançait la méthode directement dans les commandes.
Tout ça ne nécessite pas un dispose quelque part ? Ou c'est superflu ?
|
Berka -
posté le 04/02/2014 à 10:06:44 (493 messages postés)
| planchant sur un script | Nukidoudi a dit:
Tu bosses sur quoi avec JRuby Berka?
|
Sur Rgss1, 2 et 3, voire 4
@Chaös17 : désolé j'ai pas en tête les fonctions rgss3. Mais tu dois pouvoir retrouver facilement l'affichage de playtime sur internet. Ce sont pas les scripts qui manquent !
Pense également à faire $sprite.dispose pour effacer le sprite.
|
Twitter: Pensées politiques et juridiques. Réflexions informatiques |
Nukidoudi -
posté le 04/02/2014 à 10:22:46 (736 messages postés)
- | yo | Tu fais un port du RGSS sur Java? Pour du cross plateforme?
|
https://xvw.lol |
Berka -
posté le 04/02/2014 à 10:29:47 (493 messages postés)
| planchant sur un script | Oui, un applet dans un premier temps et une application complète ensuite.
|
Twitter: Pensées politiques et juridiques. Réflexions informatiques |
Nukidoudi -
posté le 04/02/2014 à 10:35:51 (736 messages postés)
- | yo | Je fais plus ou moins la même chose mais en visant le navigateur, avec HaXe.
|
https://xvw.lol |
Berka -
posté le 04/02/2014 à 10:42:24 (493 messages postés)
| planchant sur un script | Et tu gères comment le scripting ruby avec Haxe ? Il supporte pas de binding, non ?
|
Twitter: Pensées politiques et juridiques. Réflexions informatiques |
Nukidoudi -
posté le 04/02/2014 à 11:02:40 (736 messages postés)
- | yo | Je ne gères pas le scripting avec Ruby Je pars du principe que l'Event Extender (la version sur laquelle on travail) sera suffisant pour aller loin et qu'on peut convertir les scripts importants pour les projets sérieux (a la Gee.
|
https://xvw.lol |
HagiLunacy -
posté le 20/02/2014 à 14:46:42 (1 messages postés)
| | Bonjour je suis nouveau et j'ai un petit problème, je voudrais faire un skill qui soit limité au nombre de pas que l'on fait (après un certain nombre de déplacement, le skill s'enlève. Un peu comme le parc safari dans les pokemon sur game boy) mais je ne sais pas comment faire . Pourriez vous m'aider ?
|
brikou -
posté le 23/02/2014 à 11:54:23 (282 messages postés)
| | Salut!
Voici mon problème :
Jusque là, pour pouvoir intégrer dans mes scripts ( RM.VX ) une forme comme celle ci :
j'utilisais ça pour éviter le "undefined method '[]' for Nil class" :
1
| @chapter_name_1 = {} if @chapter_name_1 == nil |
Puis j'ai voulu faire des variables avec 2 arguments [n,n] comme ça :
1
2
| $file1 = [{},{}] if $file1 == nil
$file1[1,1] = 1 |
jusque là tout marche.
Maintenant je veux 3 arguments [n,n,n]
La logique ce serait de faire ça :
1
2
| @file_name1 = [{},{},{}] if @file_name1 == nil
@file_name1[1,1,1] = "Exploration" |
Mais là ça me fait "error : wrong number of arguments (4 for 2)" en me désignant la ligne du @file_name1[1,1,1]...
Voilà, j'aimerais savoir comment résoudre ça.
Merci! ^^
|
Chromochimi (Arcade / Terminé) ||| La Question (Mini-jeu narratif / Terminé !) ||| Blade Converter (A-RPG ~ Beat them all / En cours !) ||| Des mini-projets Unity ! |
Grim -
posté le 23/02/2014 à 12:35:13 (251 messages postés)
| | Pour la création s'il n'existe pas tu peux simplement faire :
variable ||= valeur (qui est une contraction de variables = variable || valeur) qui assignera une variable à la valeur donnée. Pour les tableaux, ne vaut-il pas mieux faire table[1][1] ? (je ne comprend pas pourquoi tu utilises 3 indice alors que tu n'as qu'un seul état d'imbrication...)
Et je ne suis pas sur que tu aies bien compris les tableaux et les hash... tableau[0] renvoi la première cellule. Donc si tu as quelque chose comme ça taleau = [[1,2], [3, 4]] et bien taleau[0] vaudra [1,2] et tableau[1] vaudra [3,4] donc par exemple, tableau[1][1] = 4, tu saisis?
|
http://funkywork.github.io/ |
brikou -
posté le 23/02/2014 à 12:54:33 (282 messages postés)
| | Les tableaux et les hashs en fait je sais pas ce que c'est
J'ai bien lu des tutos sur le Ruby mais mon expérience de scripteur se base plutôt sur l'observation des scrpts de base de RM... (en gros je fais du copitage quoi )
donc si j'ai bien compris il faudrait plutôt que je fasse ça :
1
2
| ]@file_name1 = {}{}{} if @file_name1 == nil
@file_name1[1][1][1] = "Exploration" |
?
Edit : Marche pas...
En fait ce que je veux faire (je précise au cas ou j'utilise une mauvaise manière), c'est rajouter des ID à mes variables :
come ça je fait @file_name1[1,1,1] = "Exploration"
et après je demande la variable @file_name1[@ID_categoie,@ID_chapitre,@ID_etape]
et si @ID_categorie == 1 @ID_chapitre == 1 @ID_etape ==1 alors ma variable = "Exploration"
|
Chromochimi (Arcade / Terminé) ||| La Question (Mini-jeu narratif / Terminé !) ||| Blade Converter (A-RPG ~ Beat them all / En cours !) ||| Des mini-projets Unity ! | 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!!
|