![]() |
| Merci de prendre connaissance des conditions d'utilisation des forums, des blogs et du chat |
| | |||||||
| Problèmes Techniques Un problème technique lors de la création d'un mod? Exposez votre probleme et les membres vous aideront de leur mieux. |
![]() |
| | Outils de la discussion | Noter la discussion |
| | #1 |
| Araignée Géante ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Bon. Toujours dans ma quête de l'infinie clarté, je crée un topic spécialement pour tous les problèmes techniques que je vais rencontrer pour mon mod, histoire de ne pas vous inonder avec une foule de topics inutiles. Grâce à Pocket Plane Group, j'ai déjà plus de facilités pour créer mon mod. Cependant, je me pose encore la question de base qui me semble capitale: comment créer mon mod pour SoA et ToB en même temps? Exemple: j'ai crée un fichier .2da pour les capacités spéciales. Les levels vont jusqu'au 40 mais est-ce que pour autant, cela signifie que mon mod va aussi sur ToB? Quelles sont les options à cocher et dans quel logiciel dois-je aller pour installer le mod à la fois sur SoA et sur ToB? Merci d'avance
__________________ STATUT : Toujours sur la brèche pour votre plaisir, m'ssieurs dames Lefou hurle sa démence en RP sur La Couronne de Zinc Le Trailer des Chroniques de Severian, un mod PNJ pour La Couronne de Cuivre Dernière modification par Jack The Ripper ; 31/12/2007 à 14h57. |
| | |
| | #2 |
| Modérateur ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: avril 2003 Localisation: En migration (entre Arcachon, Bordeaux et différentes villes d'Ile de France)
Messages: 722
| Il semblerait que le mod que tu veux faire est un mod de Kit. Je ne suis pas un spécialiste mais il me semble que pour que le kit soit compatible, ToB il faut 2 choses :
|
| | |
| | #3 |
| Araignée Géante ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Merci pour ta réponse, Deecy. Pour ToB, ça m'a l'air d'être ça en effet. Par contre non ce n'est pas un kit de classe, les capacités spéciales sont des innate abilities, qui dépendent de la race, et j'aimerais justement qu'elles augmentent avec les niveaux. Alors autant je sais faire ça ds le cadre d'un kit de classe, autant je sais créer des innate abilities, autant les faire augmenter avec les niveaux non ça je ne vois pas comment..Sinon tant pis, je me contenterai d'innate abilities fixes. En fait, je crois que je vais faire comme deratiseur m'a dit: un kit de classe d'abord que j'incluerai dans le chara. Parce que en fait, j'aurais besoin que sa classe de rôdeur puisse utiliser les armes de guerrier avec le max de ***. Vu que c'est codé en dur, je me demande justement si c'est possible.
__________________ STATUT : Toujours sur la brèche pour votre plaisir, m'ssieurs dames Lefou hurle sa démence en RP sur La Couronne de Zinc Le Trailer des Chroniques de Severian, un mod PNJ pour La Couronne de Cuivre Dernière modification par Jack The Ripper ; 02/01/2008 à 13h10. |
| | |
| | #4 |
| Araignée Géante ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Le moyen le plus simple serait peut-être de faire un kit de classe de guerrier avec les caractéristiques du rôdeur+celles que tu veux mettre à ton kit. Comme ça, aucune restriction de départ, tu peux faire ce que tu veux ![]() |
| | |
| | #5 |
| Araignée Géante ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | J'y ai réfléchi t'inquiète, mais il semblerait qu'un kit de guerrier exclut totalement l'icone de camouflage dans les ombres. C'est du coddage en dur, pas moyen de changer ça. :s
__________________ STATUT : Toujours sur la brèche pour votre plaisir, m'ssieurs dames Lefou hurle sa démence en RP sur La Couronne de Zinc Le Trailer des Chroniques de Severian, un mod PNJ pour La Couronne de Cuivre |
| | |
| | #6 |
| Squelette ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Tu peux très bien faire un kit de rôdeur et l'autoriser à monter à 5 dans les compétence d'arme. Mais ça reste quand même bien trop bourrin. (vu qu'il a des sorts de druide et des compétences qu'un guerrier n'a pas) Pour les compétences qui augmentent à chaque lvl c'est très facile, c'est la même chose que d'augmenter la resistance au dégâts. Dans les effets de sort tu as "modifier la compétence ..." Par exemple tu fais un sort qui augmente le camouflage de 5 et tu fait appliquer ce sort tous les 2 lvls dans ton clad.2da. Si tu veux qu'il invoque des ombres de plus en plus puissante suivant son lvl, tu vas devoir créer chaque ombre séparément (une par lvl), et à chaque lvl tu appliques un sort innée qui : 1. enlève l'ancienne compétence d'appel d'ombre lvl x 2. ajoute la nouvelle compétence d'appel d'ombre "x+1" Si ce n'est pas de genre de chose que tu veux faire, contacte moi sur msn, j'essaierais de t'aider. |
| | |
| | #7 |
| Goule ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: décembre 2007
Messages: 479
| Ton message signifie-t'il que tu es en panne d'inspiration où que la romance ne s'enclenche pas? |
| | |
| | #8 |
| Basilic Mineur ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | A mon avis, son message signifie qu'elle a envoyé trop tôt et qu'elle est en train d'éditer pour finir sa phrase ![]()
__________________ ArkSeth, de l'Auberge de la Plume d'Ambre. Statut: Étudiant quand j'ai l'temps. la joie de t'avoir connu surpasse la peine de t'avoir perdu... Kupo. Rp: Elza, Elfette d'outreplan. Actuellement en cours: P&Ch - lFdlS. Coordinateur du Projet nBg et auteur de la Gigue des Ombres. Donnez vos avis! ![]() |
| | |
| | #9 |
| Araignée Géante ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Arf, je pensais pas avoir à le remonter avant un moment, ce topic. Voilà le problème: j'ai commencé à programmer la romance, et j'ai donc écrit un premier script ainsi que le .d correspondant. Les voici: #Sher.baf (extrait) // ROMANCE / AMITIE // Dialogue 1 IF Global("#SherQuest1","GLOBAL",-1) THEN RESPONSE #100 SetGlobalTimer("#SherTimer","LOCALS",ONE_DAY) END IF GlobalTimerExpired("#SherTimer","LOCALS",ONE_DAY) InParty("#Sheratan") !StateCheck(Player1,STATE_SLEEPING) !Detect([ENEMY]) THEN RESPONSE #100 IncrementGlobal("#SherMatch","GLOBAL",1) IncrementGlobal("#SherRomanceActive","GLOBAL",1) IncrementGlobal("#SherLoveTlk","LOCALS",1) StartDialogNoSet("#SherJ",Player1) END #Sher.d (extrait, l'important est en orange) // Blocs communs IF ~~ THEN BEGIN SyvaneBenisse SAY @78 IF ~~ THEN DO ~SetGlobal("#SherQuest1","GLOBAL",-1) LeaveParty() EscapeArea()~ EXIT // Sheratan quitte la party et la zone. END IF ~~ THEN BEGIN Projet SAY @79 IF ~~ THEN REPLY @80 GOTO MauvaiseIdee IF ~~ THEN REPLY @81 GOTO Ami END IF ~~ THEN BEGIN MauvaiseIdee SAY @82 = @84 IF ~~ THEN DO ~SetGlobal("#SherQuest1","GLOBAL",-1)~ EXIT END IF ~~ THEN BEGIN Ami SAY @83 = @84 IF ~~ THEN DO ~SetGlobal("#SherQuest1","GLOBAL",-1)~ EXIT END // ROMANCE/AMITIE // DIALOGUE 1 IF ~Global("#SherMatch","GLOBAL",1) Global("#SherRomanceActive","GLOBAL",1) Global("#SherLoveTlk","LOCALS",1) GlobalTimerExpired("#SherTimer","LOCALS",ONE_DAY)~ THEN BEGIN RomanceTalk1 SAY @120 IF ~~ THEN REPLY @121 GOTO Compagnons IF ~~ THEN REPLY @123 GOTO Compagnons IF ~~ THEN REPLY @122 GOTO Etroit END Avec ceci installé, Sheratan, une fois la quête accomplie (#SherQuest1","GLOBAL",-1), a du mal à avancer, c'est le seul effet que j'ai constaté. Je précise également que j'ai vérifié la variable avec la CLUA, et elle est bien à -1. Et j'ajoute pour finir que j'ai regardé dans le tutorial romance de Rasthor en plus des conseils de Deecy. Etant donné que je travaille dessus depuis hier avec 8 heures au compteur, sur ce seul premier dialogue, j'ai plus vraiment le choix que de demander de l'aide ici. Enfin tout ceci a eu le mérite de me faire assimiler le système de variables, c'est déjà ça de pris. Avec ce modèle, ça devrait aller pour la suite. Qu'est-ce qui cloche? Merci de votre aide ![]() EDIT: ma souris est morte, elle fait n'importe quoi. %@*! ![]() ![]()
__________________ STATUT : Toujours sur la brèche pour votre plaisir, m'ssieurs dames Lefou hurle sa démence en RP sur La Couronne de Zinc Le Trailer des Chroniques de Severian, un mod PNJ pour La Couronne de Cuivre Dernière modification par Jack The Ripper ; 01/03/2008 à 22h09. |
| | |
| | #10 |
| Gelée de Moutarde ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Si ton personnage a du mal à avancer, c'est probablement parce que son script n'arrête pas de déclencher quelque chose en boucle. J'ai un suspect dans ce que tu as montré, et d'ailleurs tu ne l'avais pas mis en orange. Je serais même prêt à parier dessus.Tu dis que la quête a déclenché la mise à -1 de la variable de quête. Dans ton script, lorsque la variable #SherQuest1 est à -1, tu fais quelque chose, mais tu ne modifies pas la variable. Du coup, ton script va répéter sans arrêt l'action en question, la mise à jour du timer. Deux conséquences :
Solution simple : dans le premier bloc, mets la variable à autre chose que -1 une fois que tu as programmé le timer. Et un pas de plus de franchi dans la compréhension des variables ! ![]() Une autre petite chose (dans le dialogue et dans le script) : GlobalTimerExpired s'utilise avec deux paramètres seulement. GlobalTimerExpired("#SherTimer","LOCALS") suffit puisque tu as précisé sa durée lors de la création. Dans l'autre cas, il y aurait un risque de ne pas mettre la même valeur des deux côtés et bonjour les incohérences. |
| | |
| | #11 |
| Araignée Géante ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Merci Isaya! Je n'y serai pas arrivée seule là, impossible de savoir ce qui clochait (en même temps, je suis toujours au modeste grade d'apprentie ).Donc, si j'ai bien suivi, ça donne ça (en rouge) ? #Sher.baf (extrait) // ROMANCE / AMITIE // Dialogue 1 IF Global("#SherQuest1","GLOBAL",-1) THEN RESPONSE #100 SetGlobalTimer("#SherTimer","LOCALS",ONE_DAY) SetGlobal("#SherQuest1","GLOBAL", 20) END IF GlobalTimerExpired("#SherTimer","LOCALS") Global("#SherQuest1","GLOBAL",20) InParty("#Sheratan") !StateCheck(Player1,STATE_SLEEPING) !Detect([ENEMY]) THEN RESPONSE #100 IncrementGlobal("#SherMatch","GLOBAL",1) IncrementGlobal("#SherRomanceActive","GLOBAL",1) IncrementGlobal("#SherLoveTlk","LOCALS",1) StartDialogNoSet("#SherJ",Player1) END #Sher.d (extrait, l'important est en orange) // Blocs communs IF ~~ THEN BEGIN SyvaneBenisse SAY @78 IF ~~ THEN DO ~SetGlobal("#SherQuest1","GLOBAL",-1) LeaveParty() EscapeArea()~ EXIT // Sheratan quitte la party et la zone. END IF ~~ THEN BEGIN Projet SAY @79 IF ~~ THEN REPLY @80 GOTO MauvaiseIdee IF ~~ THEN REPLY @81 GOTO Ami END IF ~~ THEN BEGIN MauvaiseIdee SAY @82 = @84 IF ~~ THEN DO ~SetGlobal("#SherQuest1","GLOBAL",-1)~ EXIT END IF ~~ THEN BEGIN Ami SAY @83 = @84 IF ~~ THEN DO ~SetGlobal("#SherQuest1","GLOBAL",-1)~ EXIT END // ROMANCE/AMITIE // DIALOGUE 1 IF ~Global("#SherMatch","GLOBAL",1) Global("#SherRomanceActive","GLOBAL",1) Global("#SherLoveTlk","LOCALS",1) GlobalTimerExpired("#SherTimer","LOCALS")~ THEN BEGIN RomanceTalk1 SAY @120 IF ~~ THEN REPLY @121 GOTO Compagnons IF ~~ THEN REPLY @123 GOTO Compagnons IF ~~ THEN REPLY @122 GOTO Etroit END
__________________ STATUT : Toujours sur la brèche pour votre plaisir, m'ssieurs dames Lefou hurle sa démence en RP sur La Couronne de Zinc Le Trailer des Chroniques de Severian, un mod PNJ pour La Couronne de Cuivre Dernière modification par Jack The Ripper ; 02/03/2008 à 02h30. |
| | |
| | #12 |
| Araignée Géante ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Un double-post pour rendre tout cela plus clair. Donc le timer marche à la perfection: Sheratan se met bien à parler après un jour comme le stipule le 'ONE_DAY'. Cependant, il semblerait qu'il y ait un conflit avec un autre timer, voici le bloc concerné: #Sher.d: // Chapitre I - Rappel de la traque de Mekhren IF ~Global("#SMekhrenRemind","LOCALS",1)~ THEN BEGIN Rappel SAY @100 IF ~~ THEN DO ~SetGlobalTimer("#SMekhrenTimer","LOCALS",ONE_DAY)~ EXIT END // Chapitre I - Rappel ignoré + 24h Sheraratan s'en va IF ~Global("#SMekhrenRemind","LOCALS",2)~THEN BEGIN PasArmure SAY @101 IF ~~ THEN DO ~SetGlobal("#SherQuest1","GLOBAL",-1) LeaveParty() EscapeArea()~ EXIT // Sheratan quitte la party et la zone. END #Sher.baf IF Global("#SherJoined","GLOBAL",2) // Premier engagement de Sheratan THEN RESPONSE #100 SetGlobal("#SCimetiere", "GLOBAL", -1) SetGlobalTimer("#SMekhrenTimer","LOCALS",ONE_DAY) SetGlobal("#SherQuest1","GLOBAL",1) ActionOverride("#SBlaidd", StartDialog("#SKikOut","#Sheratan") SetGlobal("#SherJoined","GLOBAL",1) END IF GlobalTimerExpired("#SMekhrenTimer","LOCALS") !Global("#SherQuest1","GLOBAL",-1) THEN RESPONSE #100 IncrementGlobal("#SMekhrenRemind","LOCALS",1) StartDialogNoSet(Player1) END Je suis en train de me demander s'il faudrait pas remettre le compteur à zéro, ou quelque chose du même genre...En fait concrètement, au bout d'un jour après la Quête ("#SherQuest1"), Sheratan se met bien à parler mais c'est ce script qui se lance, avec la réplique @100 qui tourne en boucle. Or, ce script n'est qu'un rappel de Sheratan si la Quête n'a pas été faite (donc le "#SherQuest1"), en aucun cas il ne doit se reproduire après la réalisation de la Quête mais c'est bien la romance qui doit débuter. Merci d'avance, Isaya.
__________________ STATUT : Toujours sur la brèche pour votre plaisir, m'ssieurs dames Lefou hurle sa démence en RP sur La Couronne de Zinc Le Trailer des Chroniques de Severian, un mod PNJ pour La Couronne de Cuivre Dernière modification par Jack The Ripper ; 02/03/2008 à 10h56. |
| | |
| | #13 |
| Araignée Éclipsante ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: mai 2004 Localisation: dans le vent...
Messages: 1 266
| Zut, ce sont des choses que j'aurais dû remarquer pourtant ! Désolé Rip' ![]() *Un peu rouillé du modage* Pour tes derniers messages, je dirais que le timer doit se déclencher à un moment, en raison d'une variable que tu enclenches (volontairement ou involotairement). Or, tu as deux scripts avec des timers terminés et des variables identiques (si je ne me plante pas), et comme tu utilises la fonction StartDialogNoSet (d'ailleurs y a qu'une seule information à stipuler je crois, le "player1"), le jeu va chercher le permier dialogue qui remplit les conditions, donc pas forcément celui que tu veux. Peut-être qu'en rajoutant ou modifiant une variable ? Mais je laisse Isaya faire avant de dire encore des bêtises... ![]() |
| | |
| | #14 |
| Araignée Géante ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Je viens d'éditer le message précédent, vous trouverez l'edit en mauve. En fait, il faudrait que j'installe une variable à cet endroit comme ceci? (en vert) #Sher.baf (extrait) // ROMANCE / AMITIE // Dialogue 1 IF Global("#SherRomanceActive","GLOBAL",1) THEN RESPONSE #100 SetGlobalTimer("#SherTimer","LOCALS",ONE_DAY) END IF GlobalTimerExpired("#SherTimer","LOCALS") Global("#SherRomanceActive","GLOBAL",1) InParty("#Sheratan") !StateCheck(Player1,STATE_SLEEPING) !Detect([ENEMY]) THEN RESPONSE #100 StartDialogNoSet("#SherJ",Player1) END #Sher.d (extrait, l'important est en orange) // Blocs communs IF ~~ THEN BEGIN SyvaneBenisse SAY @78 IF ~~ THEN DO ~SetGlobal("#SherQuest1","GLOBAL",-1) LeaveParty() EscapeArea()~ EXIT // Sheratan quitte la party et la zone. END IF ~~ THEN BEGIN Projet SAY @79 IF ~~ THEN REPLY @80 GOTO MauvaiseIdee IF ~~ THEN REPLY @81 GOTO Ami END IF ~~ THEN BEGIN MauvaiseIdee SAY @82 = @84 IF ~~ THEN DO ~SetGlobal("#SherQuest1","GLOBAL",-1)~ EXIT IF ~~ THEN DO ~SetGlobal("#SherRomanceActive","GLOBAL",1)~ EXIT END IF ~~ THEN BEGIN Ami SAY @83 = @84 IF ~~ THEN DO ~SetGlobal("#SherQuest1","GLOBAL",-1)~ EXIT IF ~~ THEN DO ~SetGlobal("#SherRomanceActive","GLOBAL",1)~EXIT END // ROMANCE/AMITIE // DIALOGUE 1 IF ~Global("#SherRomanceActive","GLOBAL",1) GlobalTimerExpired("#SherTimer","LOCALS")~ THEN BEGIN RomanceTalk1 SAY @120 IF ~~ THEN REPLY @121 GOTO Compagnons IF ~~ THEN REPLY @123 GOTO Compagnons IF ~~ THEN REPLY @122 GOTO Etroit END EDIT: je viens de tester, ça ne marche pas du tout, on tombe toujours sur le @100 après une journée, et il y a également conflit avec ce bloc: #S5Flago.baf IF IsOverMe("#Sheratan") Global("#SFiveFlagon","AR0500",0) THEN RESPONSE #100 ActionOverride("#Sheratan",StartDialogueNoSet(Player1)) SetGlobal("#SFiveFlagon","AR0500",1) END IF IsOverMe("#Sheratan") InParty("#Sheratan") IsValidForPartyDialog("#Sheratan") !StateCheck("#Sheratan",STATE_SLEEPING) Global("#SFiveFlagon","AR0500",0) THEN RESPONSE #100 SetGlobal("#SFiveFlagon","AR0500",1) ActionOverride("#Sheratan",StartDialogueNoSet(Player1)) END IF IsOverMe("#Sheratan") InParty("#Sheratan") IsValidForPartyDialog("#Sheratan") !StateCheck("#Sheratan",STATE_SLEEPING) Global("#SherQuest1","GLOBAL",100) THEN RESPONSE #100 ActionOverride("#Sheratan",StartDialogueNoSet(Player1)) END #SherJ.d // A la sortie de l'auberge // Si Mekhren et Isabel sont morts IF ~Global("#SherQuest1","GLOBAL",100) Dead("#SMekhr")~ THEN BEGIN Succes SAY @75 IF ~~ THEN REPLY @76 GOTO Projet IF ~~ THEN REPLY @77 GOTO SyvaneBenisse END // A la sortie de l'auberge // Si Mekhren et Isabel sont toujours vivants IF ~Global("#SherQuest1","GLOBAL",100) !Dead("#SMekhr")~ THEN BEGIN Succes SAY @85 IF ~~ THEN REPLY @76 GOTO Projet IF ~~ THEN REPLY @86 GOTO SyvaneBenisse END // Blocs communs IF ~~ THEN BEGIN SyvaneBenisse SAY @78 IF ~~ THEN DO ~SetGlobal("#SherQuest1","GLOBAL",-1) LeaveParty() EscapeArea()~ EXIT // Sheratan quitte la party et la zone. END IF ~~ THEN BEGIN Projet SAY @79 IF ~~ THEN REPLY @80 GOTO MauvaiseIdee IF ~~ THEN REPLY @81 GOTO Ami END IF ~~ THEN BEGIN MauvaiseIdee SAY @82 = @84 IF ~~ THEN DO ~SetGlobal("#SherQuest1","GLOBAL",-1)~ EXIT IF ~~ THEN DO ~SetGlobal("#SherRomanceActive","GLOBAL",1)~ EXIT END IF ~~ THEN BEGIN Ami SAY @83 = @84 IF ~~ THEN DO ~SetGlobal("#SherQuest1","GLOBAL",-1)~ EXIT IF ~~ THEN DO ~SetGlobal("#SherRomanceActive","GLOBAL",1)~EXIT END Ce bloc se déclenche en boucle à la sortie de l'auberge. J'ai réussi à retourner dans l'auberge et après une nuit, c'est le fameux @100 qui est apparu aussi. Honnêtement, je n'ai plus de solution là.
__________________ STATUT : Toujours sur la brèche pour votre plaisir, m'ssieurs dames Lefou hurle sa démence en RP sur La Couronne de Zinc Le Trailer des Chroniques de Severian, un mod PNJ pour La Couronne de Cuivre Dernière modification par Jack The Ripper ; 02/03/2008 à 11h41. |
| | |