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:
Dyeel -
posté le 23/08/2013 à 23:43:38 (200 messages postés)
| | Salut.
Gay164, sinon tu peux utiliser les APIs Windows en script
C'est ce que j'ai fait pour mon jeu. C'est une petite bidouille mais ça marche.
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
|
#=============
# Main (+ plein écran)
#--------------------
# Script de base revu par DYEEL
#=============
# Lancer le programme
begin
# Plein écran commande Win32API
hauteur_ecran = Win32API.new('user32','GetSystemMetrics','i','i').call(0)
if hauteur_ecran != 640
screen = Win32API.new('user32', 'keybd_event', %w(l l l l), '')
screen.call(18,0,0,0)
screen.call(13,0,0,0)
screen.call(18,0,2,0)
screen.call(13,0,2,0)
end
#--------------------
# Script de base du jeu
#--------------------
# Choix de la police + taille
Font.default_name = $fontface = "Arial"
Font.default_size = $fontsize = 22
Graphics.freeze
# Lancer l'écran titre
$scene = Scene_Title.new
# ???
while $scene != nil
$scene.main
end
# ???
Graphics.transition(20)
rescue Errno::ENOENT
# Erreurs de démarrage, fichiers non trouvés
# If unable to open file, display message and end
filename = $!.message.sub("No such file or directory - ", "")
print("Le fichier \"#{filename}\" n'a pas été trouvé.")
end
|
| Suite du sujet:
gay164 -
posté le 24/08/2013 à 22:45:27 (23 messages postés)
| | Merci Dyeel !
C'est tout con et ça marche super bien !
|
Cortez -
posté le 26/08/2013 à 09:14:27 (524 messages postés)
| | Aide sur une commande en script Rmxp :
Je viens de voir le script posté juste au dessus, et la ligne suivante
m'intrigue, je voudrais savoir ce qu'elle signifie.
1
| screen = Win32API.new('user32', 'keybd_event', %w(l l l l), '') |
Et 'keybd_event' me fait penser à une simulation de touche.
Est-il possible de presser des touches via une ligne de script (event) ?
Du genre :
bidule = C_key
Pour permettre de naviguer dans les menus de manière
automatique afin de réaliser un tutoriel où le jeu prend les commandes.
|
Dyeel -
posté le 26/08/2013 à 11:31:15 (200 messages postés)
| | Salut Cortez.
Effectivement cette API te permet de simuler l'appui de touches clavier (ici alt et entrée pour le plein écran).
Le 0 et le 2 en troisième position dans le call correspondent à l'appui/relâchement de la touche (si je me souviens bien).
Et le 13 et le 18 sont les codes virtuels des touches, facilement trouvables sur le net (ou même dans les scripts de gestion clavier, sauf que dans ces derniers les codes sont souvent en hexa, mais ça doit rien changer).
Exemple : tu veux simuler l'appui sur TAB.
Tu rends une variable égale à l'api (on l'appelle touche au lieu de screen), puis:
touche.call(9,0,0,0)
touche.call(9,0,2,0)
|
arttroy -
posté le 26/08/2013 à 14:20:40 (2394 messages postés)
| Just working | Citation: Ici, on pose des questions dans une démarche d'apprentissage. Il était quand même temps que quelqu'un fasse ce petit rappel pour tous les membres qui posent leurs questions ici dès qu'ils utilisent un script dégueulasse et bugué ramassé on ne sait où... |
Citation: Sinon, je comprends que ça énerve mais un peu moins d'animosité aurait rendu le message un peu plus adéquat |
Ouais mais c'est Avygeil... Normal... En même temps je le comprend aussi, après deux étés passés sur Oniro, j'ai pu voir a quel point les gens arrivant à cette période sont peu respectueux des règles établies et des usages donc je comprend l'agacement de ceux qui ont pu en connaitre plus. Le pire c'est que passé l'été bien souvent la plupart disparaissent du forum et on entend plus jamais parler d'eux.
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
| Man Of The Gaping Mind | Alors, je pose ma question ici car à mon avis la réponse se trouve bien dans les scripts.
Je crée un jeu d'aventure qui nécessite d'utiliser un objet précis à un endroit précis afin de progresser dans le jeu (comme dans les point n' click). Il ne s'agit donc pas d'un rpg, j'aimerais donc savoir comment faire en sorte que, par script, lorsque l'on sélectionne un objet, la barre de statut du héros n'apparaisse pas (un peu comme si l'objet n'était pas disponible ou utilisable).
Je vous remercie d'avance.
|
brikou -
posté le 27/08/2013 à 16:11:49 (282 messages postés)
| | C'est pas dans les scripts faut juste que tu mettes "Non consomable" dans la base de donnée.
Quant à moi j'essaie de créer une window basique :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| class Window_Clue < Window_Base
def initialize(text)
@text = text
super(10, 250, 340, 90)
self.windowskin = Cache.system("TDS-Lufia Window")
self.back_opacity = 255
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.name = "A Font with Serifs"
self;contents.font.shadow = true
self.contents.font.size = 30
self.contents.draw_text(0,0,250,32,@text,1)
end
end |
Et pour l'appeler via event j'utilise window_clue = Window_Clue.new("texte")
La fenêtre s'affiche bien mais le problème c'est qu'elle disparaît au bout d'une seconde, alors que moi j'aimerais choisir moi-même quand elle disparaît grâce à un script window_clue.dispose... J'ai déjà essayé de faire des trucs avec window_clue.active = true / false mais ça a pas marché. Je suis sur que c'est tout con à faire mais je trouve pas...
|
Chromochimi (Arcade / Terminé) ||| La Question (Mini-jeu narratif / Terminé !) ||| Blade Converter (A-RPG ~ Beat them all / En cours !) ||| Des mini-projets Unity ! |
| Man Of The Gaping Mind | Citation: C'est pas dans les scripts faut juste que tu mettes "Non consomable" dans la base de donnée. |
Hé coco, ça je le sais bien t'en fais pas. Tu n'as pas bien saisi mon problème: si je le mets en tant que "non consommable" dans le menu, alors je ne peux pas utiliser l'objet non plus pour l'utiliser sur une porte ou un coffre !
Mais bref, j'ai finalement trouvé la solution tout seul donc ça fait un rigolo de moins à prendre en compte. ^^
|
brikou -
posté le 28/08/2013 à 14:25:41 (282 messages postés)
| | AU SECOURS !!!!
ça fait des heures, j'ai gâché toute ma matinée pour rien parce que j'arrive pas à comprendre pourquoi cette %^µ@#&)£¤ de window de $è!§**"##& s'efface toute seule comme une grosse {8çù%%%*µ$¤¤ !!!
Please HELP ME ! D'autant plus que je sais parfaitement qu'il faut juste faire un petit truc à la con ! ça m'empêche d'avancer dans mon projet.
Je rend grâce à celui qui me trouvera la solution ! X'D
PS : Ah, et j'utilise VX
|
Chromochimi (Arcade / Terminé) ||| La Question (Mini-jeu narratif / Terminé !) ||| Blade Converter (A-RPG ~ Beat them all / En cours !) ||| Des mini-projets Unity ! |
Crystal -
posté le 28/08/2013 à 17:34:48 (2146 messages postés)
- | | C'est normal, tu déclares window_clue. Une variable locale sert seulement durant la méthode qui l'utilise. Ruby détermine ensuite grâce au Garbage Collector que c'est une donnée non-utilisée puisque sa référence a été effacée de la mémoire suite à son usage. Il se débarrasse donc de l'objet. Pour conserver la référence et donc l'objet, ta fenêtre, il doit être dans une variable globale, d'instance ou de classe.
Dans quel contexte utilises-tu cette fenêtre ?
|
Crystal -
posté le 28/08/2013 à 17:41:15 (2146 messages postés)
- | | Si tu l'utilises dans un événement, puisque je n'ai pas ton code exact, je vais te conseiller de déclarer ta fenêtre comme $window_clue, et ton problème devrait théoriquement être réglé.
Si tu veux avoir l'état de ta fenêtre après l'avoir déclarée, tu peux utiliser $window_clue.disposed?
|
brikou -
posté le 28/08/2013 à 17:54:00 (282 messages postés)
| | Merci beaucoup ! Je me souvenais plus de $ !! Je risque de plus l'oublier maintenant
Merci Crystal !!!!
|
Chromochimi (Arcade / Terminé) ||| La Question (Mini-jeu narratif / Terminé !) ||| Blade Converter (A-RPG ~ Beat them all / En cours !) ||| Des mini-projets Unity ! |
Crystal -
posté le 28/08/2013 à 17:59:03 (2146 messages postés)
- | | De rien. Mais fais attention, ce n'est pas une bonne pratique d'utiliser des variables globales, limite-les si possible.
|
trucbiduleII -
posté le 08/09/2013 à 12:25:59 (815 messages postés)
| | Support : RMVX Ace
Question :
Je cherche à réduire l'interligne (espace entre deux lignes) des messages, mais je ne sais pas où il se règle. (je pense que c'est dans "Window_Message" mais je n'arrive pas à trouver où en particulier) Cela me servirait pour utiliser des polices dont l'interligne est trop grand pour la fenêtre de base, pour que les messages affichent toujours 4 lignes et non seulement 3.
|
Mon deviantArt || Ma chaîne Youtube |
Zeus81 -
posté le 08/09/2013 à 15:41:14 (11071 messages postés)
| |
1
2
3
4
5
6
7
| class Window_Message
alias z_process_new_line process_new_line
def process_new_line(text, pos)
z_process_new_line(text, pos)
pos[:y] -= 5
end
end |
Et tu remplaces 5 par le décalage que tu veux.
|
trucbiduleII -
posté le 08/09/2013 à 16:33:41 (815 messages postés)
| | Merci Zeus, ça fait bien ce que je voulais. Mais du coup est apparu un autre souci ... ^^"
J'ai un texte de quatre lignes dans l'éditeur, qui s'affiche correctement avec la police de base. J'ai changé de police, mais la quatrième ligne s'affichait sur un autre message. J'en ai déduit que l'interligne était trop grand donc je l'ai diminué avec ton bout de script. La police est bien maintenant, mais même s'il y a la "place", la quatrième ligne s'affiche tronquée en hauteur sur un nouveau message.
|
Mon deviantArt || Ma chaîne Youtube |
Zeus81 -
posté le 08/09/2013 à 16:39:24 (11071 messages postés)
| | Sinon à la place tu peux utiliser :
1
2
3
4
5
| class Window_Message
def calc_line_height(text, restore_font_size = true)
super - 5
end
end |
Mais ça risque de te tronquer le bas des lettres.
|
trucbiduleII -
posté le 08/09/2013 à 16:41:53 (815 messages postés)
| | J'ai rien dit, j'avais pas assez diminué ... Désolée d'avoir remis en cause ton script !
|
Mon deviantArt || Ma chaîne Youtube |
Mr smith -
posté le 13/09/2013 à 18:07:59 (444 messages postés)
| Jazzeux et maker... Ca existe ça? | Support : RMVX Ace
Question :
Je cherche a rendre une variable du jeu égale a une stat (genre l'attaque) du membre n°X de l'équipe.
Le logiciel permet seulement de la rendre égale au perso donc l'ID est X, mais j'ai vraiment besoin que ça change en fonction de sa place dans l'équipe...
J'ai pensé qu'avec la petite option "script" dans le contrôle des variables ça serait faisable
Je sais pas si j'ai été très clair
|
Unbelivabledaze! Mon Touitère || Mes mousiques || Ma chaine Twitch (live gamedev/pixel art tous les aprem de semaine a 14h) || Mon sitoueb |
Ephy -
posté le 13/09/2013 à 18:26:38 (30100 messages postés)
- | [BIG SHOT] | Y'a pas moyen de récupérer l'id du perso à telle place? (genre tu choppe l'id du perso en place 1 et l'attaque du perso qui a ce même id...).
|
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 |
Mr smith -
posté le 13/09/2013 à 18:35:08 (444 messages postés)
| Jazzeux et maker... Ca existe ça? | En fait je peux choper son ID et l'enregistrer dans une variable.
Seulement après quand je veux enregistrer l'attaque d'un perso, je ne peux pas déterminer l'ID du perso en fonction d'une variable.
Le log permet seulement de dire telle variable = l'attaque de tel perso
|
Unbelivabledaze! Mon Touitère || Mes mousiques || Ma chaine Twitch (live gamedev/pixel art tous les aprem de semaine a 14h) || Mon sitoueb |
Ephy -
posté le 13/09/2013 à 19:12:06 (30100 messages postés)
- | [BIG SHOT] | Bah... faut imaginer un système à l'ancienne. Si Id = 1, prendre l'attaque du persos 1, si ID = 2, prendre l'attaque du perso 2, etc.
Si t'as pas trouzemillions de persos ça va (après si t'en a plus de 50 là ça peut commencer à faire beaucoup).
|
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 |
Mr smith -
posté le 13/09/2013 à 19:35:58 (444 messages postés)
| Jazzeux et maker... Ca existe ça? | Ben justement je fais un CBS ou j'ai besoin d'utiliser beaucoup beaucoup de perso (genre dans les 100 ou 150)
D'ou ma question
|
Unbelivabledaze! Mon Touitère || Mes mousiques || Ma chaine Twitch (live gamedev/pixel art tous les aprem de semaine a 14h) || Mon sitoueb |
Ephy -
posté le 13/09/2013 à 20:33:58 (30100 messages postés)
- | [BIG SHOT] | Mmmh... ça reste faisable mais long. Et chiant. Mais faisable.
Enfin un CBS à 150 persos c'est quand même énorme. Faut y aller pour avoir 150 persos. Tu fais un remake de pokemon ou quoi?
|
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 | 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!!
|