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:
Sou -
posté le 09/05/2016 à 10:41:12 (396 messages postés)
| On a jamais assez de munitions | Merci Mack
Edit: J'ai un joli Cannot cover Fixnum into String qui s'affiche. Faut vraiment que je me mette à l'anglais... .
Quelqu'un pourrait-il éclairer ma lanterne?
|
Je suis Sou et c'est tout. | Suite du sujet:
Mack -
posté le 09/05/2016 à 10:49:55 (2310 messages postés)
- - | | Normal, en gros, en ruby les String ( donc les chaines de caractères, le texte quoi ) et les Integers ( les nombres ) ne sont pas compatibles "naturellement".
Pour regler le problème, tu changes juste en :
1
| $game_variables[8].to_s |
( to_s pour transformer en String, t'as aussi to_i pour transformer en Integer. C'moins utile, mais ça peut servir dans certain cas )
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Sou -
posté le 09/05/2016 à 10:53:18 (396 messages postés)
| On a jamais assez de munitions | J'enchaine deux question relativement basiques (y a un 'to_s" derrière le gold suffisait que j’ouvre les yeux), je suis pas réveillé moi aujourd'hui... Merci encore Mack
Je retiens le complément d'info
|
Je suis Sou et c'est tout. |
arttroy -
posté le 24/05/2016 à 13:19:27 (2394 messages postés)
| Just working | Salut les gens j'ai un petit souci et un coup de main ne serait pas de refus svp ^^.
Support :RMVXAce
Question 1 : [Résolu]
Comment faire pour récupérer le n° de zone (pour les zones de combat) d'une map en script pour l'utiliser dans une condition ?
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
Nérylis -
posté le 24/05/2016 à 18:39:52 (149 messages postés)
| | Si c'est pour faire une condition, pas besoin de script, tu utilises la commande Récupérer les informations. Tu peux stocker dans une variable plusieurs types de données, dont les zones de combat. Perso, j'utilise cette commande pour récupérer les numéros de terrain.
|
arttroy -
posté le 25/05/2016 à 05:38:09 (2394 messages postés)
| Just working | Ok merci les coupains en fait j'avais bien trouvé le truc en script... Bon maintenant de toutes façons je suis dedans... Mon ordi à fait la mise à jour window10 et maintenant il me faut une licence sinon pas de RM... (quoi il en fallait déjà une avant ?)
Edit : Bon bah nickel avec la technique de Nerylis ça passe j'ai réussi à faire ce que je voulais merci les gens.
Pour info, la technique en script marche aussi mais c'était pas forcément utile du coup ^^.
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
Nérylis -
posté le 25/05/2016 à 18:24:58 (149 messages postés)
| | Omg, pour une fois, c'est moi qui t'ai dépanné !^^
|
arttroy -
posté le 25/05/2016 à 21:57:49 (2394 messages postés)
| Just working | Et ouais comme je dis toujours on peut apprendre de tout le monde ^^. La preuve c'est aussi valable en making ^^. En tous cas merci, grâce à ça plus moyen d'esquiver l'event (Mouhaha ).
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
Fellyoh -
posté le 07/06/2016 à 17:16:35 (5 messages postés)
| | Bon bah, je me lance, en espérant avoir de l'aide (siouplé et miercé d'avance) !
Support : RPG Maker XP
Question 1 :
Une question coconne pour savoir s'il serait possible d'avoir des windowskin différents entre le menu principal et le reste (boîte de dialogue, etc.) ? Par exemple, le windowskin des boîtes de dialogue, etc., serait, je sais pas, toute bleue (à l'exception qu'on peut toujours le changer avec un évènement), mais le windowskin du menu principal reste la même et est différente (genre, exemple con², noire avec un cadre pailleté) ? Je sais aps si je me suis bien exprimé, hésitez pas à me redemander.
(Je me suis dis que dans les scripts programmant le menu principal, y'avait sûrement une petite ligne de code correspondant au windowskin sélectionné dans la BDD et que ça pourrait être modifiable, mais voilà, je suis une bouse en programmation)
Question 2 :
Alors, j'ai pas mal cherché mais j'ai pas trouvé de choses très concluantes, est-il possible de rajouter deux choix dans le menu principal (en plus de Equipements, Etats, Objets, etc.) qui, tous les deux, en étant sélectionné, appellent simplement un évènement commun (pour les précisions, l'un afficherait une carte et l'autre un bestiaire que j'ai déjà via un script) ?
Ne m'y connaissant pas trop en programmation, je sais pas si ce que je demande est faisable en deux-trois lignes de code ou si c'est tout un script qui s'annonce, mais je tente ma chance quand même !
Merci beaucoup en tout cas
|
Aurora -
posté le 07/06/2016 à 17:48:23 (437 messages postés)
| | Question 1 : Modifier l'apparence des fenêtres avant le message et remettre le précédent à la fin du message.
Question 2 : Il existe un bout de code pour appeler un évènement commun, mais d'autres sont plus compétant pour te donner ce code.
|
Fellyoh -
posté le 11/06/2016 à 21:16:38 (5 messages postés)
| | Aurora - Je sais même pas pourquoi j'y ai pas pensé tellement c'est évident :') ! Merci beaucoup pour ton aide !
|
arttroy -
posté le 29/06/2016 à 20:47:58 (2394 messages postés)
| Just working | pour le nom des boutons dans le menu, il faut aller dans l'onglet lexique de la BDD, pour l'histoire de l'interrupteur tu peux le faire mais faut modifier un pe les script de base (et je les ais pas sous les yeux ^^).
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
Aurora -
posté le 29/06/2016 à 23:11:07 (437 messages postés)
| | Dans le Scene_Menu au début :
Pour le menu activable ou non, de ce que je sais, dans le Scene_Menu il y a une ligne qui si je ne me trompe pas demande si le menu de sauvegarde est désactivé.
1
| if $game_system.save_disabled |
Si oui, le "Sauvegarder" est grisé.
Mes connaissances sont assez limitées mais c'est une piste.
|
| Narrer l'autocatégorème | Citation: Quelqu'un sais comment supprimer le bouton Sauvegarde ? |
Si tu farfouilles un peu dans les scripts (genre le script "Windows", surement) tu devrais trouver le paragraphe ajoutant "Sauvegarde" ("Save") au menu, il suffit ensuite de le supprimer.
Pour un mini-projet j'ai fait pas mal de changements via les scripts, sans rien connaître dans ce domaine et juste en tâtonnant un peu (à gauche le système par défaut, à droite ce que j'ai obtenu) :
Spoiler (cliquez pour afficher)
Il faut juste avoir des bases en anglais, et prendre le temps de tâtonner, d'essayer, jusqu'à obtenir ce que l'on veut.
Alors certes dans mon cas c'est sur RMMV, qui fonctionne avec des fichiers .js, mais c'est le même principe que les scripts de XP. Bref, je sais qu'il est tentant de vouloir avoir une réponse tout de suite pour le moindre souci, mais je te conseille d'essayer d'abord par toi-même, car ce que tu apprendras au cours de ton tâtonnage pour tel ou tel problème te serviras pour des problèmes futurs, et t'éviteras ainsi de venir poser de nouvelles questions, et te feras ainsi gagner du temps pour ton projet (tout ceci n'est pas une critique t'inquiète, c'est vraiment un simple conseil).
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 |
arttroy -
posté le 30/06/2016 à 13:36:00 (2394 messages postés)
| Just working | Le plus important au début avec les script c'est de ne pas effacer une ligne sans savoir à quoi elle correspond, mieux vaut mettre un # devant la ligne (qui va passer au vert = commentaire). Ça évite d'avoir des problèmes ensuite et devoir réinstaller le script d'origine.
Pour ton histoire d'onglet grisés :
1
2
3
4
5
6
7
8
| if $game_party.actors.size == 0
# Disable items, skills, equipment, and status
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
|
Tu as ça ligne 29 du script Scene_Menu, en gros ça te dis que si il n'y a personne dans l'équipe ça désactive les onglet 0,1, 2 et 3 (soit item, skill, equipement et status).
Tu remarquera la ligne :
1
| # Disable items, skills, equipment, and status |
avec le # comme je te l'expliquait c'est un commentaire qui t'explique ce que fais la method (def) suivante.
Donc si tu veux bloquer/débloquer les sauvegardes (par exemple) avec un interrupteur il faut faire comme ça :
1
2
3
4
| if $game_switches[x] == false
# Disable save
@command_window.disable_item(4)
end |
x représentant le n° de ton interrupteur.
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
zeus81 -
posté le 30/06/2016 à 20:20:12 (11071 messages postés)
| |
1
| unless $game_switches[x] |
|
LizyEe -
posté le 18/07/2016 à 23:19:05 (22 messages postés)
| | Support : RMXP
Question 1 : [Résolu par zeus81 & Tassle, Merci ]
Coucou, j'en profite comme vous parlez des conditions "unless", je débute dans le Ruby et je bloque sur ce bout de code que je test :
Code commentée:
1
2
3
4
5
6
7
8
9
10
11
12
| #--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Condition, si @_wait n'est pas supèrieur à 0 et que @detected est à false.
unless @_wait > 0 and @detected # (Par défaut @_wait = 0 et @detected = false)
@_wait = @wait
@detected = true # Une fois la condition remplie on met @detected à true.
else
@_wait -= 1
end
end |
Vous savez pourquoi la condition est quand même valide même avec @detected à true ?
Solution :
Unless inverse le and et le or donc @detected n'est pas pris en compte, la condition voulais dire: Si @_wait n'est pas supèrerieur à 0 OU si @detected est à false.
Utilisez un if plutôt qu'un unless, c'est plus compréhensible et élégant, aussi ne jamais utiliser de unless avec un else .
Code commentée:
1
2
3
4
5
6
7
8
| def update
if @wait <= 0 and not @detected
@_wait = @wait
@detected = true
else
@_wait -= 1
end
end |
|
zeus81 -
posté le 19/07/2016 à 00:31:15 (11071 messages postés)
| | Parce que @_wait est à zéro ?
Tu voulais sans doute faire : unless @_wait > 0 or @detected
Mais bon c'est une gymnastique mentale parfois compliquée d'empiler des conditions inversées, mieux vaut revenir sur un if.
if @_wait <= 0 and !@detected
C'est de suite plus clair.
En plus c'est pas très élégant d'utiliser unless avec un else.
|
LizyEe -
posté le 19/07/2016 à 01:44:43 (22 messages postés)
| | j'ai mis avec le if comme tu a fait et ça fonctionne très bien, par contre je ne comprend pas le "!" avant @detected .
(Edit: Je vien de comprendre le "!" c'est le "not" en plus cour , sinon j'ai vue des && et || en même temps, mais c'est quoi le mieux, utiliser les raccourcies &&, ||, !, ou plutôt and, or, not ?)
Sinon c'est bien avec un and, mais "normalment" unless c'est bien si la ou les condition(s) sont faux ?, hors @detected est à true après le premier passage, donc la condition n'est plus valide ce même si @_wait est inférieur à 0 ?
|
Tassle -
posté le 19/07/2016 à 09:47:35 (5274 messages postés)
| Disciple de Pythagolf | Bah non, la condition c'est wait > 0 et detected est True, or là cette condition n'est pas vérifié car wait=0.
En vrai not(A and B) est équivalent à not A or not B, la distribution de la négation inverse les and et les or.
Fais gaffe, and et && par exemple c'est pas exactement la même chose. Il y a une différence dans les priorités (comme le * qui est prioritaire sur le + dans un calcul). En général il vaut mieux utiliser les expressions raccourcis, elles font plus ce que l'on attend d'elles, moins de mauvaises surprises.
|
~~ |
LizyEe -
posté le 19/07/2016 à 10:04:03 (22 messages postés)
| | Ahh d'accord !, Je comprend mieux pourquoi zeus81 dit que c'est de la gymnastique mentale, je ne pensais pas que sa inverser aussi and et or avec unless .
Du coup je vais plutôt rester sur les if / and / or / not car c'est trop compliquer pour moi les && et tout le bazar ahah !
Je met en résolue, merci pour votre aide .
|
Aurora -
posté le 21/07/2016 à 18:07:14 (437 messages postés)
| | Hello,
juste une petite question :
Est-il possible d'ouvrir une page web à partir de rmxp
J'ai trouvé ce petit bout de code pour vx ace, mais ça ne fonctionne pas sous xp, un moyen de le rendre compatible xp ? J'imagine que la syntaxe doit être différente.
1
2
3
4
5
6
7
8
9
10
11
12
13
| # Use The Following in a Script Call:
# open_website( url )
# Replacing the URL with a websire url in quotation marks
# So the Following would be valid:
# open_website( "rmrk.net" )
class Game_Interpreter
def open_website( url )
url.gsub!("http://", "")
Thread.new { system("start http://#{url}") }
end
end
|
Merci d'avance.
Edit: c'est bon, suffisait de remplacer
par
|
zeus81 -
posté le 21/07/2016 à 18:25:55 (11071 messages postés)
| | La classe Game_Interpreter s'appelle Interpreter sur XP mais sinon c'est pareil.
Si tu veux tu peux juste récupérer la ligne qui ouvre la page
1
| Thread.new { system("start http://www.rpg-maker.fr/") } |
|
Aurora -
posté le 21/07/2016 à 18:28:30 (437 messages postés)
| | Ok, merci pour la précision
|
Mr Smith -
posté le 04/08/2016 à 05:47:09 (444 messages postés)
| Jazzeux et maker... Ca existe ça? | Salut les amiches!
Je cherche deux choses, en précisant que je suis sur RMXP:
1) Un petit script qui permette a un personnage d'avoir jusqu’à trois statuts en même temps
2) Une bonne âme qui serait prête a fourer son nez dans ce 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
| #==============================================================================
#
# ▼ Yanfly Engine Ace - Spawn Event v1.00
# -- Last Updated: 2012.02.08
# -- Level: Normal, Hard
# -- Requires: n/a
#
#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2012.02.08 - Started Script and Finished.
# Edited for RPG Maker XP by Wrinkle
# Credit to Modern Algebra for fixing the graphic refresh bug
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# For those who would like to spawn pre-made events from the current map or
# even other maps, this script allows you to do so. With the option of spawning
# the events at specific locations or a random spot marked by a certain region,
# you can have events spawn using simple script calls. The events remain until
# a map change.
#
# -----------------------------------------------------------------------------
# Script Calls - These commands are used with script calls.
# -----------------------------------------------------------------------------
# spawn_event_location(x, y, event_id)
# spawn_event_location(x, y, event_id, map_id)
# This causes a new event to be created at location x,y on the current map with
# the data from the corresponding event and map ID.
# The map_id is where the event will be called from according to event_id.
# If no map_id is included it will call the event from your current map.
#
#==============================================================================
#==============================================================================
# ■ Game_Map
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# new method: spawn_event
#--------------------------------------------------------------------------
def spawn_event(dx, dy, event_id, map_id)
map_id = @map_id if map_id == 0
map = load_data(sprintf("Data/Map%03d.rxdata", map_id))
event = generated_event(map, event_id)
return if event.nil?
key_id = @events.keys.max + 1
@events[key_id] = Game_Event.new(@map_id, event)
@events[key_id].moveto(dx, dy)
$scene.spriteset.wrinkle_refresh_event(@events[key_id])
end
#--------------------------------------------------------------------------
# new method: generated_event
#--------------------------------------------------------------------------
def generated_event(map, event_id)
for key in map.events
event = key[1]
next if event.nil?
return event if event.id == event_id
end
return nil
end
end # Game_Map
#==============================================================================
# ■ Game_Interpreter
#==============================================================================
class Interpreter
#--------------------------------------------------------------------------
# new method: spawn_event_location
#--------------------------------------------------------------------------
def spawn_event_location(dx, dy, event_id, map_id = 0)
$game_map.spawn_event(dx, dy, event_id, map_id)
end
end # Game_Interpreter
#==============================================================================
# ■ Scene_Map
#==============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :spriteset
end # Scene_Map
class Spriteset_Map
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Refresh Event
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def wrinkle_refresh_event(event)
# Refresh new region event
index = @character_sprites.size - 1
@character_sprites.insert(index, Sprite_Character.new(@viewport1, event))
end
end
#==============================================================================
#
# ▼ End of File
#
#============================================================================== |
Il s'agit un script qui permet d'aller chercher des events d'une autre map et de les faire pop sur la map ou on se trouve.
Le soucis c'est que quand on fait ça, les commandes "Déplacer cet événement" et "Effacer cet événement" ne fonctionnent pas.
De ce que j'ai compris le soucis c'est que RMXP se base sur l'ID de l'event pour gérer ces commandes.
J'y connais rien en ruby, mais ne peut on pas ajouter une mention aux events ainsi spawnés pour que les commandes dont je parles ne concerne que l'event spawné et pas celui qui a le même ID que lui dans la map ou il arrive?
Le soucis en plus c'est que j'ai besoin de faire spawné plusieurs fois le même event, et que la commande doit influer seulement sur l'event spawné et non pas sur toutes ses copies présentes sur la map.
En gros ca serait tous des copies d'un même event mais ils agiraient comme des events indépendants les un des autres...
Milles mercis,
Des poutous!
|
Unbelivabledaze! Mon Touitère || Mes mousiques || Ma chaine Twitch (live gamedev/pixel art tous les aprem de semaine a 14h) || Mon sitoueb | 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!!
|