Sujet n°1371
Posté par
Sphinx le
28 Juil - 10:39 (2008)Titre :
[Tuto] Créer un nouveau typeVoici comment faire pour créer un 18° type :
Sur ce screen, vous reconnaissez l'onglet Système de la base de données de RMXP. La partie qui nous intéresse est encadrée de bleu. Rajouter le / les types dans les attributs
(sélectionnez une ligne vide (zone encadrée rouge) et modifiez / ajoutez le nom dans la zone de texte en dessous (encadrée vert)) afin de le(s) rendre disponible(s) pour les pokémons et les attaques.
Maintenant ca se complique pour les non-scripteurs, car nous attaquons la partie scriptée de la création d'un type.
Nous allons commencer par modifier le script Pokemon_Skill. Rappelez-vous tout de même qu'une copie de ce script se trouve au dessus du script Scene_Debug pour permettre à la modification du menu debug de Drakhaine de fonctionner. Il faut donc appliquer les modifications dans les 2 scripts.
Ajoutez ceci :
Code: |
def type_test? # vous pouvez remplacer test par n'importe quel mot, c'est ce qui désignera le type dans les scripts return type == 18 # si vous ajoutez plusieurs types, remplacez 18 par le numéro de l'attribut end
|
A la fin du script, avant :
Ensuite, toujours dans Pokemon_Skill, ajoutez votre type là dedans (lignes 651 / 652 normalement) :
Code: |
p = [1, 7, 8, 9, 10, 12, 13, 14, 16] # ajoutez ", 18" (où 18 est le n° du type) si les attaques de votre type seront physiques (comme le type combat / acier / ...) s = [0, 2, 3, 4, 5, 6, 11, 15, 17] # ajoutez ", 18" (où 18 est le n° du type) si les attaques de votre type seront spéciales (comme le type eau / feu / ...)
|
Après cette modification, nous allons changer de script. Nous allons continuer avec le script Pokemon_Data.
Après :
Code: |
$data_table_type[ 17 ]=[ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 1 , 1 , 1 , 0 , 2 , 1 , 0.5 , 1 , 1 , 0.5 ]
|
Ajoutez :
Code: |
$data_table_type[ 18 ]=[ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
|
Si vous êtes observateurs, vous aurez noté que les lignes $data_table_type[n] (jusqu'au type 17) contiennent 17 valeurs séparées par des virgules, alors que la ligne que j'ajoute en contiennent 18... Nous allons y remédier. Avant tout, sachez que ces valeurs sont des multiplicateurs. Les dégâts sont multipliés par cette valeur.
Ainsi, la valeur 0 correspond à une immunité (dégâts nuls). 0.5 correspond à une résistance (dégâts multipliés par 0.5, donc divisés par 2). 1 correspond à une neutralité (les dégâts sont multipliés par 1, aucune modification). 2 correspond à une faiblesse (dégâts multipliés par 2). Ainsi, si vous mettez 100, les dégâts seront multipliés par 100.
Mais il faut lire tout ca en tableau. Les lignes (qui désignent le(s) type(s) du pokémon défenseur) sont rapides à lire, mais les colonnes (multiplicateurs qui influent sur les dégâts selon le type de l'attaque) se lisent ainsi :
$data_table_type[ n ]=[ Normal , Feu , Eau , Electrique , Plante , Glace , Combat , Poison , Sol , Vol , Psy , Insecte , Roche , Spectre , Dragon , Acier , Ténèbres ]
Il faut ensuite ajouter sur toutes les autres lignes le multiplicateur du nouveau type selon le même modèle.
Après ca, sur le même script, ligne 919, remplacez :
par :
où n est égal au nouveau nombre de types (18 si vous n'en ajoutez qu'un seul)
Dans le script Pokemon, ajoutez ceci :
Code: |
def type_test? # remplacez test par le mot qui désigne votre type (voir en haut de ce tuto) if [@type1, @type2].include?(18) return true end return false end
|
A la fin du script, avant :
Pour terminer, dans le script Pokemon_Battle_Core_1, lignes 1950 à 1988, vous avez ceci :
Code: |
case type when 0 return "???" when 1 return "NORMAL" when 2 return "FEU" when 3 return "EAU" when 4 return "ELECTRIK" when 5 return "PLANTE" when 6 return "GLACE" when 7 return "COMBAT" when 8 return "POISON" when 9 return "SOL" when 10 return "VOL" when 11 return "PSY" when 12 return "INSECTE" when 13 return "ROCHE" when 14 return "SPECTRE" when 15 return "DRAGON" when 16 return "ACIER" when 17 return "TENEBRES" end end
|
Nous allons y rajouter le 18° type, donc insérez ceci :
Code: |
when 18 return "TEST" # <= vous pouvez remplacer le mot TEST entre "" par n'importe quel mot (qui désigne votre type) sans oublier de le laisser entre ""
|
avant
et voilà... Vous n'avez plus qu'à mettre une image appelée T18.png dans votre dossier Pictures et votre nouveau type sera terminé !
PS : dans la partie scriptée & la partie attributs, vous pouvez nommer votre type "bidons" et insérer sur l'image T18.png le type TEST... Les noms présents dans la BDD & dans les scripts (tant que c'est le même qui est utilisé pour tous les scripts) n'ont aucun impact sur le type en lui même... C'est son image qui importe ^_^
Edit : Pour ajouter plus de 20 types, il faut déplacer les éléments qui servent pour les objets.
/!\ Attention : cela entraine obligatoirement une mise à jour de tous les objets du sac /!\
Il faut modifier le numéro des attributs concernant le sac. Ca se passe dans le script Item_Data, lignes 308 à 320.
Remplacez les nombres (29 à 34) par les nouveaux nombres des attributs que vous aurez assigné aux attributs du sac :
Code: |
when 29 # <= Dénombrable custom_list[0] = true when 30 # <= Consommable custom_list[1] = true when 31 # <= Usage sur map custom_list[2] = true when 32 # <= Usage en combat custom_list[3] = true when 33 # <= Usage sur pokémons custom_list[4] = true when 34 # <= Apte / Non apte custom_list[5] = true end
|
Ensuite on va effectuer une modification similaire quelques lignes en dessous, aux lignes 336 à 345.
Remplacez les nombres (23 à 27) par les nouveaux nombres des attributs que vous aurez assigné aux attributs du sac :
Code: |
when 23 # <= Objet $data_item[i].unshift("ITEM") when 24 # <= Ball $data_item[i].unshift("BALL") when 25 # <= CT / CS $data_item[i].unshift("TECH") when 26 # <= Baies $data_item[i].unshift("BERRY") when 27 # <= Clefs $data_item[i].unshift("KEY")
|
Ainsi, vous pourrez libérer autant d'espaces que vous le souhaiterez pour ajouter autant de types que vous le voudrez.
Posté par
Newtiteuf le
28 Juil - 10:51 (2008)super tuto/script, bravo !
Posté par
Sphinx le
28 Juil - 11:02 (2008)^_^ merci NT ^_^
(xP jdois avouer que j'ai ramé pour trouver tous les points à changer, mais quand je vois le final, je me dis que j'ai trop cherché inutilement, la solution ayant été uniquement dans 3 scripts (+ 1 copie) :lol:)
Posté par
Empire1601 le
28 Juil - 12:03 (2008)Dedieu t'as du mettre vachement de temps avant de trouver la solution :shock:
Bravo en tout cas !
Posté par
Sphinx le
28 Juil - 15:02 (2008)Maj : j'ai enfin trouvé comment faire pour ajouter plus de 20 types (>> déplacer les attributs du sac qui commencent à l'attribut n°21) mais cela nécessitera logiquement une maj de tous les objets de la BDD... ^_^ 20 types, c'est déjà pas mal, vous ne trouvez pas ?
Posté par
Dark' le
28 Juil - 17:18 (2008)MERCI !!!!!!!!!! J'avais justement besoin de nouveaux types, et de plus, il m'en fallait... 20 ! Sphonx, tu est génial !
Posté par
Sphinx le
28 Juil - 17:27 (2008)sph
onx :shock:
:cry:
^_^ mais oui, je sais, je suis génial :lol:
merci
^_^ à tout hasard, je ne suis pas contre une ptite place dans vos crédits
(sisi, vous savez, à la fin, les ptites lignes que personne ne lit !
)
Posté par
Dark' le
28 Juil - 17:53 (2008)Pour ma part tu y est déjà ^^ (Aide, Système Jour/Nuit, Aide, Soutien mental, Aide...)
Posté par
Sphinx le
28 Juil - 17:59 (2008) certains (surtout les "ptits nouveaux" que je ne croise pas souvent mais que je salue quand même) n'ont jamais reçu mon aide (en tout cas, pas au point de me mettre dans leurs crédits
) donc...
mais ravi d'avoir pu t'aider
Posté par
Newtiteuf le
29 Juil - 10:23 (2008)Sphinx, mes credits a moi on seras obligé de les lire !
J'ai plusieurs idées:
-Apparitions dans le jeu (ca serais drole de voir un sphinx XP)
-Crédits tres animés
-Apparitions des crédits 3 fois avant la ligue
-Crédits avant le début du jeu !
-Crédits sur la page noir avec Pokemon Script Project marqué dessus !
Posté par
Sphinx le
29 Juil - 10:35 (2008)^_^ looool
je n'en doute pas (
tordu comme t'es, tu serais bien capable de faire tomber ton sphinx du ciel :lol:)
^_^ sérieusement, jte remercie :lol:
Posté par
Newtiteuf le
29 Juil - 10:38 (2008)derien c'est normal tu m'as aidée non ?
Posté par
Cam' le
29 Juil - 10:48 (2008)Tu as reussi ! Tu as reussi à trouver le truc ou j'étais bloqué !
Félicitation Sphinx ^^
Tu seras dans mes crédits. Je crois que tu y es déjà pour euuuh... "Membre sympa qui me donne du courage sans s'en rendre compte" ^^
Posté par
Sphinx le
29 Juil - 11:17 (2008) beaucoup m'ont également grandement aidés
(^_^ un juste retour des choses, quoi... ^_^)
:lol: merci cam :lol:
Posté par
Slash le
29 Juil - 15:20 (2008)un grand bravo sur ce coup la sphinx, c'est de l'exxcelent boulot
ca en facilitera plus d'un (moi le 1er)
et ce tuto est tres bien expliquer bravo
Posté par
Sphinx le
29 Juil - 15:32 (2008)^_^" je me suis aperçu à l'instant d'une modif supplémentaire dans le script P_B_C_1 ^_^"
oubli réparé, je viens d'éditer mon tuto
(merci slash =))
Posté par
Jordan le
30 Juil - 14:05 (2008)je sent que ça sera pratique!
Posté par
Krosk le
30 Juil - 17:03 (2008)et un secret de psp de plus qui est dévoilé.
Pour la limitation a 20 types, c t intentionnel, je me suis dit qu'il n'y avait pas besoin d'en faire plus. J'ai peut etre eu tort...
Posté par
Sphinx le
30 Juil - 17:17 (2008)^_^ tu sais, celui qui en aura besoin de plus, ben... il sait comment faire de la place en plus ^_^
mais je te l'accorde, 20 types, ca peut suffire
Posté par
Dark' le
31 Juil - 15:49 (2008) Krosk a écrit: |
Pour la limitation a 20 types, c t intentionnel, je me suis dit qu'il n'y avait pas besoin d'en faire plus. J'ai peut etre eu tort...
|
Eh ! Tu m'avais dit que tu avais configuré une limitation a 17, pas a 20, quand je t'ai demandé ! Vilain !
Nan, je déc'
Encore merci a Sphinx d'voir dévoiler ce que Krosk nous avait caché !
Posté par
Krosk le
31 Juil - 16:02 (2008)Oui, je t'ai dit que j'ai configuré une limitation a 17, ce qui est vrai puisqu'il y a 17 types présents et pas possible d'en ajouter un de plus sans modification lourde. J'ai jamais dit que c'était impossible de rajouter des types en plus, j'ai meme dit le contraire mais qu'il fallait travailler sur les scripts.
Au dela de 20, ca demande beaucoup trop de changement par contre.
Posté par
Dark' le
1 Aoû - 13:04 (2008)Ah, ok !
Le prend pas mal, surtout !
J'ai pas critiqué, j'avais juste envie de dire quelque chose...
Et j'ai encore parler pour rien... quel âne...
Posté par
Newtiteuf le
2 Aoû - 10:58 (2008)Je trouve la limitation tres bien, mais je pense qu'il faudra repensé a la limitation si un nouvel opus de pokemon sortait !