creer un script ou un PNJ ameliore une compétence.
Featured Replies
En ligne récemment 0
- Aucun utilisateur enregistré regarde cette page.
A better way to browse. Learn more.
A full-screen app on your home screen with push notifications, badges and more.
Ouvrir FSE et ouvrir le script d'acjordan, présent dans le dossier mapper/scripts/arroyo
a la procédure:
On peut lire effectivement que le script test le karma du joueur.
En fait si le joueur ne reponds pas a un de ces critères (pas critters
En gros,
Evil_Critter:=0; si le heros n'est pas maléfique
Slavery_Tolerant:=SLAVE_TOLERANT; si le heros ferme les yeux sur l'esclavage, mais n'est pas lui même esclavagiste
Karma perception :je ne sais pas trop de quoi il retourne pour l'instant, pas creusé.
Check karma est une macro qui lance justement l'analyse du karma du heros.
Get reaction est la derniere partie de la procedure qui est en fait une macro qui compile toutes ces infos et en ressort un résultat.
En fait ca sert a faire en sorte que si le heros est esclavagiste par exemple, il va avoir du mal a causer a la gonzesse des commandos a NRC.
et vice versa.
Ici, c'est s'il est mauvais, les gens d'arrroyo ne voudront pas l'aider.
Mais on peut imaginer un membre du village mauvais qui lui n'apprendrait un truc qu'a un heros du même alignement que lui (Oui j'ai beaucoup joué a donjon dragon
on continue.
la partie donc up de skill proprement dites:
if ((dude_iq < 4) or (local_var(LVAR_Taught_Player) == 1) or
(has_skill(dude_obj,SKILL_MELEE) < 36)) then begin
call Node001;
se traduit par:
Si le heros a une intelligence inférieure à 4 ou si la variable locale taught_player est égale a 1 (je ne sais pas ce que c'est faut que je regarde) ou si le skill du heros en arme de melée est inferieure a 36, alors lancer le noeud 1.
C'est en fait une serie de test préalable au lancement ou pas de l'upgrade du skill.
Si le heros rempli au moins un de ces 3 critères, alors on lance le node001.
Ici, si vous allez voir le node un vous verrez que c'est le node ou jordan ne veux plus vous apprendre le skill.
Soit parce que vous etes trop con (intelligence <4
soit parce que vous avez déja fait appela jordan (taught player=1)
soit parce que vous êtes vraiment une merde a la lance et que vous partez vraiment de trop loin
comme on a une command "if" on peut avoir une condition alternative.
Si le personnage a une intelligence >4 ET si la variable locale taught_player=0 (pas encore demandé a jordan de vous enseigner) ET si le skill est superieure a 36, alors on lance le NOde002 qui correspond au début du dialogue ou jordan vous propose la 1ere fois de vous aider.
Allons donc voir le node001.
sur la droite de FSE se trouve les liens vers les nodes justement.
Cliquez sur le node001 et vous serez amené a la ligne correspondante.
ici jordan vous affiche un FLOAT_MSG, un message flottant, celui ou il vous dit qu'il vous a déjà tout enseigné.
Petite parenthése.
Cliquez sous FSE sur l'icône de casier jauen comme indiqué sur la photo.
selectionner MSG.files comme indiqué sur la photo.
puis sur ACJORDAN.
Cela aura pour effet d'ouvrir directement le dialogues de jordan et ainsi de voir a quoi correspondent les nodes.
Attention, je rappelle que Jargo a fait ce logiciel pour une version US, donc vous n'aurez que les dialogues en anglais.
Mais bon, je ne pense pas que ça soit un réelle soucis pour vous.
cela vous permettra de voir a quoi correpondent les nodes.
Dessous vous avez donc le node002, qui initie le dialogue la première fois.
le node 002
Vous n'avais donc ni une intelligence <4, ni encore parlé a jordan (taugh_player=0) ni un skill pourrave <36 a la lance
donc jordan vous dit:
Reply(103);
"Chosen One, the way you use a spear, you'll be meat for the geckos
in no time. I can show you a few tricks."
en gros il vous propose de vous apprendre a etre moins un blaireau a la lance (donc skill arme de mélée)
vous avez 2 option de réponse:
qui correspondent donc a 104
{Sure.}
ou 105
{105}{}{No, thanks.}
Si vous repondez 104, alors le script va lancer le noeud 003.
NOption(104,Node003,004)
sinon il lancera le noeud 999 qui est le noeud correspondant a la fin de dialogue.
NOption(105,Node999,004)
Rassurez vous.
Lors de la création d'un dialogue, sous FSE vous n'aurez pas a vous taper tout ça, le logiciel le fera pour vous.
Je vous renvoie a mon tutoriel la dessus:
générer un dialogue sous FSE partie 2
donc continuons, allons voir le node003:
traduction:
NMessage(106);
il vous reponds que ca va prenddre un peu de temps:
{This will take a little while.}
ensuite vous avez:
gfade_out(600);
gfade_in(600);
Souvenez vous. lors de l'apprentissage, vous avez un ecran noir qui s'affiche puis le jeu revient a la normal.
cela simule le temps qui s'ecoule sous fallout.
gfade_out(600);
gfade_in(600);
est la procedure pour simuler ceci.
la valeur 600 correspond je crois au nombre de ticks qui est l'unité de temps de fallout ou l'ecran noir apparait et disparait.
Enfin j'en suis pas sur, , à verifier plus tard.
ensuite vous avez:
tout con:
game_time_advance(8*ONE_GAME_HOUR); fait avancer le jeu de 8 heures (en gros ca prends 8 heures à votre perso pour apprendre a upper sa competence)
critter_mod_skill(dude_obj,SKILL_MELEE,10); ici on modifie le skil du critter
la commande est critter_mod_skill.
Si vous la tapez manuellement sous FSE, vous verrez qu'elle attends 3 renseignements:
qui ? (dude_obj renvoie au héros, mais ca peut etre un membre de l'équipe)
Quelle competence?
SKILL_MELEE, (je ne vous traduit pas
de combien.
10
voila Izual.
Si tu veux modifier un de ces parametres c'est ici qu'il faut le faire.
Par exemple:
si tu veux que jordan t'apprenne plutot a te servir de tes poings, alors ouvre le fichier define.H situé dans le mapper/scripts/headers/
Ouais je sais, au début ca fait peur
Comme dans matrix, à la fin on voit directement les image en regardant les 0 et les 1
C'est ici que sont stockées les commandes se rapportant a telles ou telles compètences ( entre autre)
donc si tu veux plutot main nue, descend l'ascenceur jusqu'à trouvé les skills et notament
#define SKILL_UNARMED_COMBAT (3)
En fait tu sauras du coup comment ecrire la commande pour que ce soit la competence main nue qui soit augmentée plutot que melée.
critter_mod_skill(dude_obj,SKILL_UNARMED_COMBAT,10);
ensuite si tu veux que celle ci soit augmentée de 12...
je ne vais pas te faire l'affront de l'ecrire, je pense que tu as compris.
parcontre pour rester logique, n'oublie pas de remplacer partout SKILL_MELEE par SKILL_UNARMED_COMBAT.
Je crois d'ailleur que tu as un outil dans FSE pour ca.
Les petites jumelles en haut avec A et B dessous.
Elles te permettent de remplacer un nom par un autre.
Pour plus de coherence , pense également a corriger et enregistrer le dialogue à l'endroit correspondant. (ici le 103)
Sauve le dialogue, il sera stockée je le repete dans data/text/english/dialog/acjordan.
donc pense a le copier dans son homologue français si ton mapper ou ton jeu sont en français.
Sinon tu ne verras pas la difference.
les derneires lignes de code comme :
set_local_var(LVAR_Taught_Player,1);
on pour effet de passer la variable locale Taught_player (je soupçonne que ca doit vouloir dire un truc du genree joueur instruit, c'est à dire le joueur à t'il d"ja reçut la formation) de 0 (competence pas augmentée) à 1.
Ainsi on evite d'apprendre au joueur à l'infini de monter sa compétence.
souvenez vous la ligne test du node001
if ((dude_iq < 4) or (local_var(LVAR_Taught_Player) == 1) or (has_skill(dude_obj,SKILL_MELEE) < 36)) then begin call Node001; end else begin start_gdialog(NAME,self_obj,4,-1,-1); gSay_Start; call Node002; gSay_End; end_dialogue; endendc'était l'une des conditions pour laquelle jordan ne faisait plus que vous afficher un message flottant.Voila.
J'espere que vous avez suivit.
C'est une habitude à prendre.
Et des gens comme vous qui connaissez à fond le jeu avez savent quel script ouvrir pour comprendre comment faire tel ou tel chose.
Faut tenter, et assimiler les bases.
A +
Soifran
(faut que j'aille dépouiller les bulletins ;)
Ok...ca c'est fait...suivant...

FOMM à jour