Affichage des résultats 1 à 5 sur 5

Discussion: [TUTORIEL] Aide aux dialogues et commandes

  1. #1
    Date d'inscription
    March 2006
    Messages
    151

    Flèche [TUTORIEL] Aide aux dialogues et commandes

    Alors voilà afin d'aider les apprentis modeurs voici quelques aides aux sujets de certaines commandes ainsi qu'une petite liste de commandes bien pratique. Il est évident qu'il en manque mais pour commencer ce sera pas mal. J'invite d'ailleurs les codeurs à ne pas hésiter à m'aider à faire la liste des différentes commandes oubliées afin que je les ajoute voir, que je les commente pour celle qui sont un peu plus complexe. Je compte d'ailleurs sur vous pour me corriger en cas d'erreur majeure.

    En ce qui concerne les commandes manquantes je pense surtout à celles utilisées lors des cutscene vu que je ne m’en suis toujours pas servi.

    Je rappelle deux liens qui couvrent déjà l'essentiel tout en essayant de ne par réécrire ce qui y a déjà été expliqué.

    Pour les romances

    Pour la création plus générale de NPC

    Alors voici une liste de commandes que vous pouvez utiliser lors de vos dialogues ou de vos scripts :

    Commandes :
    • Ajouter de l’expérience : AddexperienceParty(12000)
    • Ajoute la valeur à une variable : IncrementGlobal("P$NPC","LOCALS",1)
    • Activer une variable : SetGlobal("J$NPC","GLOBAL",1)
    • Appliquer un sort : [code]ApplySpell(Myself,DRYAD_TELEPORT)
    • Caractéristique maximum requise : CheckStatLT(Player1,12,CHR)
    • Caractéristique minimum requise : CheckStatGT(Player1,11,CHR)
    • Chapitre requis : GlobalLT("Chapter","GLOBAL",4)
    • Créer une créature : CreateCreature("J$NPC",[2105.2330],6)
    • Joue une animation : CreateVisualEffect("SPFLESHS",[1470.1403])
    • Joue tel ou tel musique : PlaySound("O#son")
    • Kit :[code] Kit(Player1,BOUNTYHUNTER)
    • Mort d’une crétature ou d’un perso : Dead("Imoen2"))
    • Partir de la zone : EscapeArea
    • Pas de combat : CombatCounter(0)
    • Persos valide : !StateCheck("Player1"",CD_STATE_NOTVALID
    • Prendre de l’argent : TakePartyGold(100)
    • Quitter la partie : LeaveParty
    • Réputation minimum : ReputationGT(Player1,10)
    • Sexe du personnage : Gender(Player1,MALE)
    • Vérification de la présence d’un personnage dans le groupe : InParty(Myself)
    • Vérification de la présence d’ennemis : See([ENEMY]) ici oui des ennemi !See([ENEMY]) ici non-présence d’ennemis
    • Vérification du type de zone : !AreaType(DUNGEON) ou FOREST ou CITY
    • Vérification d’une zone : AreaCheck("AR0800")
    • Vois le preso : [code]See(Player1)
    Je rappelle que mettre un "!" devant une commande reviens à faire l'inverse.

    Interjections :

    INTERJECT_COPY_TRANS soit I_C_T

    Afin que notre NPC puisse s’exprimer pendant les événements du jeu il faut utiliser la commande INTERJECT_COPY_TRANS.

    Ceci-dis pour pouvoir utiliser cette commande il faut tout d’abord comprendre son fonctionnement.
    Pour commencer il nous faut utiliser Near Infinity. En effet pour savoir ou Weidu doit ajouter votre phrase il y a quelques références à trouver. Disons que nous voulons un PJ qui réagit lorsque Firkrag parle de l’héritage du PJ.
    Il faut d'abord trouver le fichier de dialogue existant concerné : ici FIRKRA02, puis dans Near infinity on cherche la phrase que dira Firkrag avant que le NPC ne prenne la parole. Vous prenez celle de votre choix ici la phrase concernée est dans « state 07 ».

    Munis de ces informations voici ce que nous devons écrire.

    Par défaut dans le fichier XXXXJ

    I_C_T FIRKRA02 07 NPCFIRGRAG1
    == XXXXJ IF ~InParty("NPC") InMyArea("NPC") !StateCheck("NPC",CD_STATE_NOTVALID)~ THEN ~Quoi t’es un enfant de Bhall !!~ THEN END
    Voilà ! Pour les explications : XXXXJ est, ais-je encore besoin de le rappeler : le fichier J de votre NPC. NPCFIRGRAG1 est le nom du bloc qui va intervenir vous pouvez mettre ce que vous voulez.

    Vous pouvez allonger en faisait parler Firkrag puis encore le NPC en mettant à la suite == et le bon nom de fichier. Et ce tant que vous n’avez pas mis END.

    IsGabber(Player1)

    Exemple :

    IF ~IsGabber(Player1)
    CombatCounter(0)~
    THEN BEGIN NPC#Flirts
    SAY ~(Votre compagnon semble inattentif...)~
    ++ ~(Vous lui mettez une claque)~ GOTO ( bon vous connaissez la suite hein ?)
    + ~RandomNum(2,1)~ + ~(Vous lui mettez votre pied au c**)~ GOTO (comme d’habitude)
    + ~RandomNum(2,2)~ + ~(Vous lui mettez votre pied au c**)~ GOTO (idem)
    END
    Bon j’ai pas terminé le bloc mais vous DEVEZ savoir faire maintenant sinon abandonnez votre mod.

    Lorsque vous mettez RandomNum(2,1) puis (2,2) ça veut dire que le jeu choisira l’un ou l’autre des deux dialogues. C’est la fonction aléatoire.

    CHAIN

    A placer dans le fichier de dlg BXXXX ici BNPC

    Cette commande permet de faire un banter en entre deux personnages ou plus de votre équipe.
    Disons NPC et Valygar

    CHAINE IF ~InParty("NPC") See("NPC")
    !StateCheck("NPC",CD_STATE_NOTINVALID)
    InParty("Valygar") See("Valygar")
    !StateCheck("Valygar",CD_STATE_NOTINVALID)
    CombatCounter(0)
    Global("NPCValygar1","GLOBAL",0)
    THEN BNPC NPCValygar1
    == BValyga ~...~
    DO ~SetGlobal("NPCValygar1","GLOBAL",1)~
    == BNP ~...~
    == BValyga ~...~
    == BNPC ~C'est reposant.~
    EXIT
    Avant chaque nouvelle réplique vous devez indiquer quel fichier et donc quel personnage associé à ce fichier va parler. A priori vous n’avez pas besoin de faire un script pour dire quand vous voulez que ce dialogue ce lance c’est le jeu qui gère ça mais cela n’empêche pas d’en faire un quand même si vous voulez que vos banters ce lancent à un moment précis.

    Voilà c’est tout pour le moment !
    Dernière modification par xena ; 27/07/2007 à 07h14.
    Venez voir mon mod en cours : Trriviahn et optionnellement Aireen
    Et là : mes idées de kits !

  2. #2
    Date d'inscription
    May 2004
    Localisation
    Angers
    Messages
    1 102
    Sympas l'idée de ce tutorial. Je me permets peut-être juste une toute petite remarque, pour les nouveaux modeurs. Tu as mélangé les commandes d'actions et les triggers, peut-être vaudrait-il mieux les séparer, pour une meilleure compréhension, non ?

    Autre chose, voici aussi le lien vers IESDP, qui rassemble toutes ces commandes et même beaucoup d'autres, en anglais, mais au combien pratique. Il y a d'ailleurs la possibilité de le télécharger. Voici le lien : http://iesdp.gibberlings3.net/


  3. #3
    Date d'inscription
    March 2006
    Messages
    151
    Originally posted by Shinook@dimanche 15 juillet 2007 à 13:04
    Sympas l'idée de ce tutorial. Je me permets peut-être juste une toute petite remarque, pour les nouveaux modeurs. Tu as mélangé les commandes d'actions et les triggers, peut-être vaudrait-il mieux les séparer, pour une meilleure compréhension, non ?

    Autre chose, voici aussi le lien vers IESDP, qui rassemble toutes ces commandes et même beaucoup d'autres, en anglais, mais au combien pratique. Il y a d'ailleurs la possibilité de le télécharger. Voici le lien : http://iesdp.gibberlings3.net/
    [snapback]280965[/snapback]
    Heu oui une fois que j'y ai eu posté j'y ai pensé aussi :8: mais comme après y avoir passé une bonne après midi j'en pouvais plus et je me suis dis stop ! Si j'ai du courage je trierai mais j'ai tellement de courage que j'ai pas pris le temps de relire les fautes et comme quand je tape mes doigts vont moins vite que mon cerveau...
    Bon mais le premier qui se plain je l'oriente vers le tuto de weidu en Anglais et il se débrouille .

    Et vu le nombre de gens qui savent coder comparé aux gens qui écrivent des tutoriaux surtout vous plaignez pas hein :notme:

    Venez voir mon mod en cours : Trriviahn et optionnellement Aireen
    Et là : mes idées de kits !

  4. #4
    Non inscrit Invités

    Re : [tutorial]Aide aux dialogues et commandes

    Bonjour,
    Je suis en train de me mettre à créer un petit pnj.
    Je cherche un tutorial sur comment rajouter des triggers pendant un dialogue.
    Du genre :
    Un dialogue entre mon NPC moddé et le PC.
    Le pc lui dit qu'il est très fort etc et qu'il pourrait casser un mur à mains nues.
    J'aimerai que cette phrase servent à déclencher une action du NPC, celui-ci, confiant irait devant un mur et essaierai de le casser (en échouant bien évidemment).
    Ainsi il perdrait quelque pv.

    C'est possible ?

  5. #5
    Date d'inscription
    July 2003
    Localisation
    Plaisir
    Messages
    6 398

    Re : [tutorial]Aide aux dialogues et commandes

    Un petit point de vocabulaire pour commencer : un trigger est une condition de déclenchement de quelque chose. Du point de vue d'un dialogue, c'est donc ce qui va initier un échange. Puisque tu évoques une réaction à un dialogue, ce que tu veux correspondrait davantage à une action.

    Ce que tu décris me fait penser à une petite animation pendant laquelle le personnage s'attaquerait à un mur puis abandonnerait au bout de quelques secondes (pendant ce temps, le jeu bloquerait les actions). Ce genre de chose s'effectue à partir d'un script qualifié de "cutscene" (intermède ?). Je ne suis pas certain qu'il soit possible de lancer un script à partir d'un dialogue. Mais un moyen couramment utilisé est d'affecter une valeur à une variable que le script du personnage utilisera comme trigger pour déclencher quelque chose. Et à partir d'un script, il est tout à fait possible de lancer une "cutscene".

    Une chose est sûre, si tu veux faire une telle scène, tu devras ajouter dans le script de déclenchement des contraintes liées aux zones dans lesquelles tu prévois de pouvoir déclencher l'action. En effet, il faut être sûr d'être à côté d'un mur et savoir y placer le personnage pour simuler l'effet.
    Une solution consisterait alors à déclencher le dialogue initial (dans lequel le PC lui dit qu'il est fort) à un endroit précis ayant un mur à proximité, pour lequel ton script de "cutscene" serait conçu.

    Enfin, pour montrer le personnage en train de frapper, il faudrait peut-être le faire se battre à mains nues. Si nécessaire, il faudrait recourir à un personnage invisible contre lequel il se battrait (tu pourrais l'appeler "mur" pour que les affichages du combat ait un sens), avec résistance maximum à tout type de dégat.

    Au final, la scène représenterait quand même pas mal de travail...
    Mais ton idée est très sympa donc ça vaudrait sûrement le coup.

Discussions similaires

  1. [DIAMANT] Aide : Scenario et Dialogues
    Par Freddy_Gwendo dans le forum Menace sur le Royaume de Diamant Éternel
    Réponses: 47
    Dernier message: 18/06/2015, 21h07
  2. Réponses: 0
    Dernier message: 10/02/2013, 08h43
  3. [BUG] Anomalie d'interface / commandes
    Par saroumane dans le forum Le Bazar de l'Aventurier
    Réponses: 4
    Dernier message: 26/08/2010, 16h17
  4. [NWN1][JEU] commandes pour retirer un don ?
    Par wawiwowew dans le forum L'Académie de Padhiver (NWN 1)
    Réponses: 4
    Dernier message: 26/04/2007, 10h03
  5. Réponses: 3
    Dernier message: 05/10/2003, 16h26

Les tags pour cette discussion

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  

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 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239