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:
maotd -
posté le 03/04/2016 à 22:19:49 (103 messages postés)
| Dr Latency | Merci. Ca semble fonctionner pour le moment. En tout cas cette petite ligne m'aura été d'une grande aide. Avec tout ça mes arbres de classe sont presque totalement automatisés. Y'a qu'à copier/coller et tout fonctionne
|
Ma gallerie | Suite du sujet:
HuLijin -
posté le 03/04/2016 à 22:33:50 (1004 messages postés)
| Yeoun, mage-archère-louve | Citation: Tu dis que actor.mhp sert à récupérer les maxHP mais dans le code après tu met $gameParty.battleMembers()[0].mhp. Du coup je suppose que actor vaut $gameParty.battleMembers()[0] mais dans ce cas, pourquoi utiliser actor si ça ne correspond à rien de réel? |
Parce que la liste avec actor.mhp c'est plus facile à lire que si j'avais écrit $gameParty.battleMembers()[0].mhp etc
(et aussi parce que si tu jettes un oeil aux fichiers .js, c'est la variable qui est utilisée)
Tkt, à force tu prendras l'habitude de ce genre de trucs.
Chais pas ce que j'ai merdé, mais quand j'ai testé $gameActors.actor(1).mhp il m'a envoyé balader le jeu, mea culpa, c'est effectivement plus simple
|
M.V. |
maotd -
posté le 03/04/2016 à 22:43:20 (103 messages postés)
| Dr Latency | D'accord merci. Je pensais bien que c'était quelque chose comme ça. J'avais déjà vu les .actor dans les scripts de VXace mais maintenant c'est un peu plus clair.
Edit :
Version : RPG Maker MV (encore)
Question : Est-il possible de paramétrer les dégâts d'une compétence en fonction d'une variable? Et si oui comment faire?
Autre question, Est-ce qu'il y a une commande de script pour ajouter ou retirer un paramètre de classe (comme les types d'armes équipables, le taux de critiques, le nombre d'attaque, etc)?
Encore merci d'avance et désolé pour toutes ces questions bêtes.
|
Ma gallerie |
HuLijin -
posté le 07/04/2016 à 09:20:52 (1004 messages postés)
| Yeoun, mage-archère-louve | Pour tes formules de combat, c'est directement des bouts de code que t'écris dedans.
Tu peux parfaitement faire a.atk * $gameVariables.value(varID); par exemple. Ça te fera une compétence dont les dommages sont proportionnels à ta variable varID.
Tu peux même créer des fonctions dans un plugin et les appeler dans ta formule de combat si tu veux faire des trucs plus compliqués Et ça c'est un plugin très facile à faire si tu veux te lancer là-dedans un jour.
Pour l'autre question, tu parles bien des traits (fin c'est comme ça que ça s'appelle dans la version anglaise), l'espèce de gros cadre en haut à droite dans l'onglet classes ?
|
M.V. |
maotd -
posté le 07/04/2016 à 18:00:23 (103 messages postés)
| Dr Latency | Ah d'accord c'est aussi simple que ça. C'est très bon à prendre alors. Mais je vois pas trop ce que tu veux dire par fonctions à mettre dans un plugin. Tu as des exemples pour m'aider?
Oui je parle bien des traits (c'est pareil dans la version française). Je pense que ça doit être possible mais je vois pas du tout comment.
Et tant que je suis là j'en profite pour demander, si je veux ajouter une compétence avec une commande de script c'est $gameActors.setSkill(skillid); ?
|
Ma gallerie |
HuLijin -
posté le 07/04/2016 à 19:45:19 (1004 messages postés)
| Yeoun, mage-archère-louve | J'ai un peu de temps alors je m'occupe de la partie plugin.
Pour le reste, je jetterai un oeil demain pour voir dans le code. Mais ptet qu'Aminomad ou quelqu'un d'autre sera plus rapide pour répondre.
A priori, la fonction à utiliser pour apprendre un nouveau skill ce n'est pas setSkill mais learnSkill. Ça donnerait un truc du genre
1
| $gameActors.actor(actorId).learnSkill(skillID); |
Mais j'ai pas testé.
On passe au plugin. (Elle va plus ressembler à rien l'entraide avec des pavés comme ça...)
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
| //=============================================================================
// NomDeTonPlugin.js
//=============================================================================
/*:
* @plugindesc [ta description en anglais]
* @author [ton pseudo]
*
* @help [toute info nécessaire pour utiliser le plugin (en anglais)]
* [2eme ligne de l'aide]
* [3eme ligne]
* [etc]
*/
/*:fr
* @plugindesc [ta description en français]
* @author [ton pseudo]
*
* @help [toute info nécessaire pour utiliser le plugin (en français)]
* [2eme ligne de l'aide]
* [3eme ligne]
* [etc]
*/
(function() {
// Ecris tout ton code après cette ligne
// Deux exemples simples de formule
Game_BattlerBase.prototype.AtkPhysique = function(dmg) {
var value = dmg;
value *= this.atk;
return value;
};
Game_BattlerBase.prototype.DefPhysique = function() {
var value = this.def;
value /= 2;
return value;
};
// Ecris tout ton code avant cette ligne
})(); |
Et dans ta formule de combat, tu n'as plus qu'à écrire par exemple
1
| a.AtkPhysique(100) - b.DefPhysique(); |
En français, ici les dommages de base de la compétence (100) sont multipliés par la stat d'attaque physique de l'attaquant, puis on enlève la moitié de la stat de défense du défenseur.
C'est sûr qu'en l'état, ce n'est aps super sexy, tirais aussi vite à écrire la formule directement dans la base de données. Mais ça devient pratique si tu veux faire des trucs plus compliqués, comme ici :
qui est la formule que j'utilise pour quasi toutes mes compétences. (pos et rage sont des statistiques qui n'existent pas de base, qui sont aussi gérées via mon plugin)
J'explique super mal, et je crois que ça n'a pas des masses sa place en entraide, donc si tu veux des infos, hésite pas à MP.
|
M.V. |
maotd -
posté le 07/04/2016 à 22:18:42 (103 messages postés)
| Dr Latency | Merci pour les explications. J'ai pas tout compris en détail mais je pense avoir saisi la base quand même. Je décortiquerais tout ça un peu plus à tête reposée. Etant donné mon système de combat et de classe ça pourrait m'être très utile je pense.
edit: je me permet de upper concernant ma seconde quesiton:
Citation: Autre question, Est-ce qu'il y a une commande de script pour ajouter ou retirer un paramètre de classe (comme les types d'armes équipables, le taux de critiques, le nombre d'attaque, etc)? |
Je précise que je parles bien des "traits" comme c'est nommé dans RM MV.
Merci
|
Ma gallerie |
HuLijin -
posté le 08/04/2016 à 23:47:56 (1004 messages postés)
| Yeoun, mage-archère-louve | Pour ta question, j'ai beau regarder, j'ai pas l'impression qu'on puisse le faire simplement. De ce que j'en ai compris, à chaque fois que le logiciel en a besoin, les traits sont récupérés directement depuis les fichiers JSON utiles.
Faut attendre l'aide de quelqu'un de plus calé pour confirmation.
|
M.V. |
Aminomad -
posté le 09/04/2016 à 02:27:01 (150 messages postés)
| | J'ai cherché un peu et je trouve pas non plus de moyen simple pour faire ça.
Par contre je peux essayer d'approfondir une piste compliquée si ça t’intéresses
|
The Lone Chameleon |
maotd -
posté le 09/04/2016 à 09:30:38 (103 messages postés)
| Dr Latency | Merci pour vos réponses.
Non non ce n'est pas la peine de vous embêter avec des solutions compliquées. J'ai réussi à faire (à peu près) pareil en utilisant des statuts invisibles qui ne peuvent pas s'enlever. Ca marche assez bien mais j'aurais préféré quelque chose de plus propre. Mais si y'a pas alors on va pas s'embêter à trouver compliqué et ingérable. Autant que je garde ma solution sale et bancale en statuts. Ca demande juste de pas soigner les héros avec la commande pour soigner les héros
|
Ma gallerie |
Chaös17 -
posté le 09/04/2016 à 12:17:00 (868 messages postés)
| | Version : RPG Maker MV
Question : j'essaie de trouver la commande pour appeler un plugin d'autobattle
Plugin : https://snipt.net/Gilles/autobattlepluginjs/
|
Blog of Chaos17 |
HuLijin -
posté le 09/04/2016 à 12:36:38 (1004 messages postés)
| Yeoun, mage-archère-louve | Qu'est-ce que tu veux dire par "appeler" le plugin ?
Tu veux pouvoir l'activer et le désactiver quand tu veux ?
|
M.V. |
Chaös17 -
posté le 09/04/2016 à 12:41:47 (868 messages postés)
| | HuLijin a dit:
Qu'est-ce que tu veux dire par "appeler" le plugin ?
Tu veux pouvoir l'activer et le désactiver quand tu veux ?
|
Ouais.
Car c'est chiant de passer par la commande du groupe pour activer ce plugin et l'auteur a disparu donc je peux pas aller lui demander.
J'ai un plugin qui permet d'appeler un common event via le clavier, faut juste savoir quoi lui dire d'activer et c'est çà mon problème.
Le plugin de Yanfly marche, j'ai testé avec le menu objets :
1
| SceneManager.push(Scene_Item); |
J'aimerai donc faire de même avec le plugin d'autobattle si c'est possible.
|
Blog of Chaos17 |
HuLijin -
posté le 09/04/2016 à 12:46:07 (1004 messages postés)
| Yeoun, mage-archère-louve | Pas sûre d'avoir posé la bonne question
Qu'est ce que tu veux qu'il ait précisément comme comportement ton plugin ?
Qu'est ce que tu veux modifier ?
- sur la mini fenêtre des commandes d'équipe
- sur la mini fenêtre des commandes de chaque personnage
Ou alors tu veux faire ça :
1
| SceneManager.push(Scene_Battle); |
depuis un événement commun ?
*totalement perdue*
|
M.V. |
Chaös17 -
posté le 09/04/2016 à 12:50:21 (868 messages postés)
| | Je veux rien changer, je veux juste savoir si c'est possible d'activer l'auto battle de l'équipe via une touche du clavier.
|
Blog of Chaos17 |
HuLijin -
posté le 09/04/2016 à 12:55:59 (1004 messages postés)
| Yeoun, mage-archère-louve | Euh, t'appuies sur une touche de ton clavier, ça va activer/désactiver l'affichage des commandes pour auto attaque.
(ce cas là c'est faisable très rapidement sans grosse modif du code)
OU : si t'appuies sur une touche, t'as plus aucune commande qui s'affiche et toute ton équipe passe d'office en autoattaque, t'as plus à toucher au clavier/à la souris jusqu'à la fin du combat ?
(ce cas-là j'ai plus du tout en tête le fonctionnement des commandes de combat mais ça me semble pas spécialement insurmontable)
|
M.V. |
Chaös17 -
posté le 09/04/2016 à 13:00:46 (868 messages postés)
| | Je veux bien tester la première option!
|
Blog of Chaos17 |
HuLijin -
posté le 09/04/2016 à 13:08:54 (1004 messages postés)
| Yeoun, mage-archère-louve |
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
| /**
* Created by Gilles on 01.11.2015.
* @email: gill.es86@gmail.com
*/
/*:
* @plugindesc Allows Auto Attack in Battle. The players will always choose the enemy with the lowest hp
* @author Gilles Meyer
*
* @param Auto Attack Text Party
* @desc The text which will appear in the Party command Menu
* @default Auto Attack
*
* @param Auto Attack Text Actor
* @desc The text which will appear in the Actor command Menu
* @default Auto Attack
*
* @param Switch ID
* @desc Switch used to display/hide the auto attack commands
* @default 1
*
*
*/
(function() {
var parameters = PluginManager.parameters('AutoBattlePlugin');
var autoAttackPartyText = String(parameters['Auto Attack Text Party'] || "Auto Attack");
var autoAttackActorText = String(parameters['Auto Attack Text Actor'] || "Auto Attack");
var switchId = Number(parameters['Switch ID'] || 1);
function autoEnabled() { return $gameSwitches.value(switchId); };
var getEnemyWithLowestHP = function(enemies) {
var enemyIndex = 0;
for(var i=1; i < enemies.length; i++) {
if(enemies[i].hp < enemies[enemyIndex].hp || enemies[enemyIndex].hp == 0) {
enemyIndex = i;
}
}
return enemyIndex;
};
Scene_Battle.prototype.commandAutoFight = function() {
this.selectNextCommand();
do {
this.commandAutoAttack.apply(this, arguments);
} while(BattleManager.isInputting());
this._actorCommandWindow.deactivate();
};
Scene_Battle.prototype.commandAutoAttack = function() {
BattleManager.inputtingAction().setAttack();
var enemyIndex = getEnemyWithLowestHP(this._enemyWindow._enemies);
var action = BattleManager.inputtingAction();
action.setTarget(enemyIndex);
this.selectNextCommand();
};
// ## Autofight for Party
Window_PartyCommand.prototype.makeCommandList = function() {
this.addCommand(TextManager.fight, 'fight');
// Needs rework
if (autoEnabled()) { this.addCommand(autoAttackPartyText, 'autofight'); }
this.addCommand(TextManager.escape, 'escape', BattleManager.canEscape());
};
var _Scene_Battle_createPartyCommandWindow = Scene_Battle.prototype.createPartyCommandWindow;
Scene_Battle.prototype.createPartyCommandWindow = function() {
_Scene_Battle_createPartyCommandWindow.apply(this, arguments);
if (autoEnabled()) { this._partyCommandWindow.setHandler('autofight', this.commandAutoFight.bind(this)); }
};
// ## Autofight for each Actor
var Scene_Battle_createActorCommandWindow = Scene_Battle.prototype.createActorCommandWindow;
Scene_Battle.prototype.createActorCommandWindow = function() {
Scene_Battle_createActorCommandWindow.call(this,arguments);
if (autoEnabled()) { this._actorCommandWindow.setHandler('autoattack', this.commandAutoAttack.bind(this)); }
};
var _Window_ActorCommand_makeCommandList = Window_ActorCommand.prototype.makeCommandList;
Window_ActorCommand.prototype.makeCommandList = function() {
if(this._actor) {
if (autoEnabled()) { this.addCommand(autoAttackActorText, 'autoattack', this._actor.canAttack()); }
}
_Window_ActorCommand_makeCommandList.call(this, arguments);
};
})(); |
T'as plus qu'à activer/désactiver l'interrupteur de ton choix via un event commun avant tes combats. Par défaut j'ai mis l'interrupteur 1.
|
M.V. |
Chaös17 -
posté le 09/04/2016 à 13:18:02 (868 messages postés)
| | Merci je vais tester çà de suite.
Si j'ai bien regarder tu as ajouter ceci et rien d'autre ?
1
2
3
| var switchId = Number(parameters['Switch ID'] || 1);
function autoEnabled() { return $gameSwitches.value(switchId); }; |
Je demande çà parce que j'aimerai adapter ce code pour un autre plugin similaire.
|
Blog of Chaos17 |
HuLijin -
posté le 09/04/2016 à 13:24:42 (1004 messages postés)
| Yeoun, mage-archère-louve | nope, t'as des if (autoEnabled() ) { /* le code du mec */ } qui trainent et aussi la description où j'ai rajouté la possibilité de choisir l'interrupteur via un nouveau paramètre.
Mais à terme, je crois que ej vais finir par faire un tuto pour ce genre de bricoles sur les plugins.
|
M.V. |
Chaös17 -
posté le 09/04/2016 à 13:29:38 (868 messages postés)
| | Je viens de tester que ce soit avec ou sans common event activer çà bug :
http://imgur.com/a/WQhRm
|
Blog of Chaos17 |
HuLijin -
posté le 09/04/2016 à 14:12:39 (1004 messages postés)
| Yeoun, mage-archère-louve | Wut ? D'où c'est que t'as une ligne 158 dans ce plugin toi Oo
Accessoirement, avant de filer des bouts de code, je les teste, sauf si je dis le contraire, et Chez moi ça marche ©
Accessoirement, si tu ne renommes pas ton plugin correctement, ça ne va jamais prendre en compte tes propres paramètres, ça va prendre en compte ceux par défaut (quand ils sont indiqués).
|
M.V. |
Chaös17 -
posté le 09/04/2016 à 14:51:54 (868 messages postés)
| | Ok, j'ai copié à nouveau ton code et en effet c'est moi qui a merdé, désolé.
Merci pour ton aide
|
Blog of Chaos17 |
Sou -
posté le 09/05/2016 à 10:17:11 (396 messages postés)
| On a jamais assez de munitions | Bonjour à tous !
Support: RMXP
Question:
Je tente d'afficher une variable à la place de celle représentant les gold dans le script de base. J'ai donc modifié le script Window_gold comme ceci:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| class Window_Gold < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 0, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
cx = contents.text_size($data_system.words.gold).width
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, 120-cx-2, 32, "Tour", 2)
self.contents.font.color = system_color
self.contents.draw_text(124-cx, 0, cx, 32, $game_variable[0008], 2)
end
end
|
Mais ça me revoit une erreur de syntaxe sur la ligne du $game_variable[0008]. Pouvez-vous m'expliquer pourquoi s'il vous plait.
Merci d’avance comme à chaque fois
RESOLU
|
Je suis Sou et c'est tout. |
Mack -
posté le 09/05/2016 à 10:28:55 (2310 messages postés)
- - | |
^^
( Faut pas mettre les 0 devant, et c'est $game_variableS )
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
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. | 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!!
|