Baldur's Gate et Dragon Age | La Couronne de Cuivre
 

Précédent   Baldur's Gate et Dragon Age | La Couronne de Cuivre > La Forge de GrondMarteau > La Forge des Apprentis > Problèmes Techniques

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.

Discussion fermée
 
Outils de la discussion Noter la discussion
Vieux 19/10/2003, 16h32   #1
Grenouillebleue, Adepte de Grondmarteau
Loup Effrayant
 
Date d'inscription: septembre 2003
Localisation: Paris
Messages: 707
Par défaut

Voilà un script créé pour un ennemi, qui est supposé faire trois choses:

1. Transformer le gars en ennemi dès que son boss a fini son speech
2. Le faire ignorer tous les summons pour se concentrer sur les joueurs
3. Le faire boire une potion lorsqu'il tombe à moins de 50% de vie.

Les points 1. et 2. marchent sans souci, mais j'ai du mal avec le 3e... j'ai beau essayer, ça ne correspond pas. Porque ?


Citation:


// Passer ennemi

IF
G("barbefight",1)
!Allegiance(Myself,ENEMY)
THEN
RESPONSE #100
* * * * * * * * EquipMostDamagingMelee()
* * * * * * ** Enemy()
* * * * * * ** Continue()
END


// Boire potion

IF
** !GlobalTimerNotExpired("time","LOCALS")
** HPPercentLT(Myself,50)
** HasItem("Potn52",Myself)
THEN
** RESPONSE #100
* ** UseItem("Potn52",Myself)*
* ** SetGlobalTimer("time","LOCALS",8)
* * * * * * * * Continue ()
END


// Ignorer les summons

IF
!Gender(SixthNearestEnemyOf(Myself),SUMMONED)*
See(SixthNearestEnemyOf(Myself))
False()
THEN
** RESPONSE #100
END

IF
!Gender(FifthNearestEnemyOf(Myself),SUMMONED)*
See(FifthNearestEnemyOf(Myself))
False()
THEN
** RESPONSE #100
END

IF
!Gender(FourthNearestEnemyOf(Myself),SUMMONED)*
See(FourthNearestEnemyOf(Myself))
False()
THEN
** RESPONSE #100
END

IF
!Gender(ThirdNearestEnemyOf(Myself),SUMMONED)*
See(ThirdNearestEnemyOf(Myself))
False()
THEN
** RESPONSE #100
END

IF
!Gender(SecondNearestEnemyOf(Myself),SUMMONED)*
See(SecondNearestEnemyOf(Myself))
False()
THEN
** RESPONSE #100
END

IF
!Gender(NearestEnemyOf(Myself),SUMMONED)*
See(NearestEnemyOf(Myself))
False()
THEN
** RESPONSE #100
END

// Attaquer la cible la plus proche non-summon

IF
True()
THEN
** RESPONSE #100
* * * * * * * * EquipMostDamagingMelee()
* * * * * * * * AttackReevaluate(LastSeenBy(),30)

END
__________________
MOD KIM TERMINE
- Des centaines de dialogues et d'interactions
- De nombreuses quêtes
- De nouveaux objets magiques
- Une véritable romance

Roman d'Heroic Fantasy en feuilleton (un chapitre par jour)
Intro 01 02 03 04 05 06 07 08 09 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
Grenouillebleue est déconnecté  
Vieux 19/10/2003, 16h50   #2
Silk
Invités
 
Messages: n/a
Par défaut

Tu ne peux pas utiliser de boucles avec bgscript ? :heu:
 
Vieux 19/10/2003, 16h57   #3
Grenouillebleue, Adepte de Grondmarteau
Loup Effrayant
 
Date d'inscription: septembre 2003
Localisation: Paris
Messages: 707
Par défaut

Euh, utiliser quoi avec quoi ?
Qu'est-ce qu'une boucle ? Qu'est-ce que BGScript ? En quoi ça m'aiderait ?

Pour l'instant, j'ai fait tous mes scripts sur le blocnotes
__________________
MOD KIM TERMINE
- Des centaines de dialogues et d'interactions
- De nombreuses quêtes
- De nouveaux objets magiques
- Une véritable romance

Roman d'Heroic Fantasy en feuilleton (un chapitre par jour)
Intro 01 02 03 04 05 06 07 08 09 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
Grenouillebleue est déconnecté  
Vieux 19/10/2003, 17h09   #4
Silk
Invités
 
Messages: n/a
Par défaut

bgscript est le langage utilisé baldur's gate. Une boucle c'est une vérification. Exemple NWN :

// Ce script détruit tout objet dans la zone dont le nom est "albert"
void main()
{
object oA;
string sResA;

oA = GetFirstObjectInArea(OBJECT_SELF);
sResA=GetResRef(oA);
if(sResA=="albert")
{
DestroyObject(oA);
oA = GetNextObjectInArea(OBJECT_SELF);
}
}

C'est une boucle. Ca pourrait se traduire par tant que... alors... Ici, tu pourrais appliquer à : "tant que l'ennemi le plus proche est un summon, passer à l'ennemi suivant" jusqu'à ce qu'il tombe sur un non-summon, auquel cas il l'attaque. Dans ton cas, ça ne marche qu'avec les 6 premiers ennemis, mais si c'est 6 summons (non, ce n'est pas limité à 5 )...
 
Vieux 19/10/2003, 17h17   #5
Grenouillebleue, Adepte de Grondmarteau
Loup Effrayant
 
Date d'inscription: septembre 2003
Localisation: Paris
Messages: 707
Par défaut

Je ne crois pas qu'on ait ce genre de boucle dans BG2, vu les scripts que j'ai lu dans les mods Tashia, Chloe, Imoen ou Kelsey.

Quoi qu'il en soit, cette partie marche (et non, on ne peut avoir plus de cinq summons sans changer leur genre - et si on change leur genre, alors le script en tient compte ).

Ce qui ne marche pas, c'est le fait qu'il boit une potion.
POURQUOI CA NE MARCHE PÔ ?

En fait, je suppose que ma question, c'est: est-ce qu'il y a une commande qui fait recommencer le script au début ?

Tel que je vois les choses:
1. Le script dit au pirate de passer rouge, il le fait
2. Le script dit au pirate que s'il est blessé, il doit boire une potion; comme ce n'est pas le cas, ça passe à la suite
3. Le script dit au pirate d'attaquer la cible non-summon la plus proche. Il le fait

Et ? Est-ce que le script recommence de temps en temps (ce qui permettrait de déclencher la potion) ou est-ce qu'il s'arrête une fois arrivé en bas ? Si oui, comment le faire repartir ?
__________________
MOD KIM TERMINE
- Des centaines de dialogues et d'interactions
- De nombreuses quêtes
- De nouveaux objets magiques
- Une véritable romance

Roman d'Heroic Fantasy en feuilleton (un chapitre par jour)
Intro 01 02 03 04 05 06 07 08 09 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
Grenouillebleue est déconnecté  
Vieux 19/10/2003, 17h24   #6
Silk
Invités
 
Messages: n/a
Par défaut

Je sais, mais je parle par exemple des dominés et des lapins du sort de souhait... Il va les attaquer...
 
Vieux 19/10/2003, 17h36   #7
Grenouillebleue, Adepte de Grondmarteau
Loup Effrayant
 
Date d'inscription: septembre 2003
Localisation: Paris
Messages: 707
Par défaut

Pour les dominés, je vais mettre une condition supplémentaire. Ca aura en plus l'avantage d'éviter qu'ils s'attaquent les uns les autres si le PJ en domine quelques-uns.

Citation:

IF
!Gender(SixthNearestEnemyOf(Myself),SUMMONED)
!StateCheck(SixthNearestEnemyOf(Myself),STATE_CHARMED)
See(SixthNearestEnemyOf(Myself))
False()
THEN
* RESPONSE #100
END
Et pour mon problème, il est réglé: il suffisait de remplacer "Attackreevaluate" par un "attack" tout simple. Visiblement, mon attackreevaluate bloquait le script

Enfin, si le perso utilise un sort de Wish pour avoir des lapins
1. Il est stupide
2. Il mérite bien que les pirates s'en prennent aux lapins
__________________
MOD KIM TERMINE
- Des centaines de dialogues et d'interactions
- De nombreuses quêtes
- De nouveaux objets magiques
- Une véritable romance

Roman d'Heroic Fantasy en feuilleton (un chapitre par jour)
Intro 01 02 03 04 05 06 07 08 09 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
Grenouillebleue est déconnecté  
Vieux 19/10/2003, 17h38   #8
Silk
Invités
 
Messages: n/a
Par défaut

C'est bien ce que je pensais... Je me suis déjà fait une armée de 49 soldats avec le bâton de domination rangés en 7*7...

La domination est une des techniques les plus puissantes existantes faces à des adversaires dominables (pas des adversaires épiques comme Irenicus)...
 
Vieux 19/10/2003, 18h26   #9
Isaya, Adepte de Grondmarteau
Loup Vampirique
 
Date d'inscription: juillet 2003
Localisation: Plaisir
Messages: 1 819
Envoyer un message via MSN à Isaya
Par défaut

Citation:
Originally posted by Grenouillebleue@dimanche 19 octobre 2003, 16:11
Je ne crois pas qu'on ait ce genre de boucle dans BG2, vu les scripts que j'ai lu dans les mods Tashia, Chloe, Imoen ou Kelsey.

En fait, je suppose que ma question, c'est: est-ce qu'il y a une commande qui fait recommencer le script au début ?

Et ? Est-ce que le script recommence de temps en temps (ce qui permettrait de déclencher la potion) ou est-ce qu'il s'arrête une fois arrivé en bas ? Si oui, comment le faire repartir ?
Non, il n'y a pas de boucle dans les scripts BG.
Les scripts tournent en permanence : le taux de rafraîchissement de l'IA définie dans le programme de config détermine le rythme de répétition (typiquement 30 fois par seconde).
Une itération du script s'arrête dès qu'elle trouve une condition de remplie. La fois suivante, l'évaluation des conditions reprendra normalement depuis le début. Je crois que la commande Continue() permet de continuer depuis le point atteint.
Isaya est déconnecté  
Vieux 19/10/2003, 18h31   #10
Silk
Invités
 
Messages: n/a
Par défaut

Ca, c'est une remarque très intéressante
 
Vieux 21/10/2003, 00h58   #11
Grenouillebleue, Adepte de Grondmarteau
Loup Effrayant
 
Date d'inscription: septembre 2003
Localisation: Paris
Messages: 707
Par défaut

Yup, voilà l'info dont j'avais besoin pour comprendre comment mettre mon script

Merci m'siou !
__________________
MOD KIM TERMINE
- Des centaines de dialogues et d'interactions
- De nombreuses quêtes
- De nouveaux objets magiques
- Une véritable romance

Roman d'Heroic Fantasy en feuilleton (un chapitre par jour)
Intro 01 02 03 04 05 06 07 08 09 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
Grenouillebleue est déconnecté  
Vieux 28/10/2003, 12h51   #12
Elgaern, Ex Grand Gourou
Génie
 
Avatar de Elgaern
 
Date d'inscription: novembre 2002
Localisation: Grenoble (ou Riln ;) )
Messages: 2 437
Par défaut

Question ayant trouvé sa réponse, sujet clos...
Elgaern est déconnecté  
Discussion fermée

Liens sociaux


Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Noter la discussion
Noter la discussion:

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

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are non
Navigation rapide

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
[BGT] Une simple question Xanathos Baldur's Gate Reloaded : les mods TUTU et Baldur's Gate Trilogy 1 23/10/2007 21h11
[Weidu]simple cmde: plusieurs composants Sith Problèmes Techniques 2 05/02/2005 12h06
[BifTool][BamWorkshop] léger souci... Akiro Les Outils 3 04/08/2004 15h30
Un monde persistant simple ? Atropos NeverWinter Nights & NeverWinter Nights 2 : Les Modules 16 15/05/2004 14h33
[BG]Souci Technique grave Grenouillebleue Problèmes Techniques 6 02/11/2003 01h13

Merci de soutenir La Couronne de Cuivre et le Wiki consacré à Baldur's Gate et aux RPG
Fuseau horaire GMT +2. Il est actuellement 08h34.

Les forums La Sirène Rougissante, La Couronne de Cuivre, ainsi que les sites associés Le Portail du Web et Le Monde de Baldur's Gate sont protégés par le Code de la propriété littéraire et artistique. Baldur's Gate I (1998), Tales of the Sword Coast (1999), Baldur's Gate II (2000) Shadows of Amn, et Throne of Bhaal (2001) sont ©BioWare, licenses et distribution ©ATARI. Dungeons & Dragons material est ©Wizards of the Coast. NeverWinter Nights est un produit ©Bioware, licenses et distribution ©ATARI. DRAGON AGE © 2002-2007 BioWare Corp. Dragon Age, the Dragon Age logo, BioWare Corp., and the BioWare logo are trademarks of BioWare Corp. in the United States, Canada and other countries. All other trademarks are the property of their respective owners. All rights reserved.
Conformément à l'article 34 de la loi 78-17 du 6 janvier 1978 dite loi "Informatiques et Libertés" vous disposez d'un droit d'accès, de modification, de rectification et de suppression de vos données personnelles (déclaration CNIL en cours mai 2007). Pour faire valoir ce droit contactez nous en cliquant ici et en utilisant le formulaire à votre disposition