Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

[SCRIPT] Comment cumuler les pouvoirs de deux objets ?

Répondre
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne

[SCRIPT] Comment cumuler les pouvoirs de deux objets ?

.

Message par Cocrane »

Je prends un exemple:

l'objet A a un pouvoir magique appelé A. Idem pour B.

Si l'objet A et B sont sur le même porteur alors le pouvoir de l'un des deux objets augmente de pouvoir.

Si l'un des deux objets est retiré de son emplacement, l'augmentation est perdue.

Pour moi, le test est a réaliser lorsque l'on touche à l'équipement.
Existe il des mots clés pour traiter ce besoin?

Cocrane
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

Désolé, j'avais complètement oublié de te répondre. :$

En fait, j'avais oublié d'aller chercher dans les archives de mon mod comment j'avais effectué la manip pour un cas similaire.

En faisant le ménage sur mon DD, j'ai retrouvé les scripts.

Dans mon cas, le principe était le suivant (mais tu peux l'adapter au tien) :

Si <CHARNAME> est équipé d'un anneau et d'une amulette particuliers (chacun des deux lui accordant un pouvoir par jour), une cinématique se produit faisant "se fondre" les deux objets en un insigne.
Cet insigne cumule les propriétés d'équipement de l'anneau et de l'amulette. De plus, <CHARNAME> reçoit une capacité "divine" qu'il peut lancer une fois par jour. Cette capacité est traitée comme une capacité de haut niveau et n'est donc pas liée à l'insigne.

Par ailleurs, si <CHARNAME> est équipé d'une certaine armure, d'un certain casque et de certains gantelets, une autre cinématique lui retire ces objets et les remplace par une toute nouvelle armure.


Dans tous les cas, tout est géré par des scripts. Le but du jeu est de créer l'anneau, l'amulette, l'armure, le casque, les gants, l'insigne et une autre armure et d'effectuer un test :

Code : Tout sélectionner

IF
  Class(Player1,PALADIN_ALL) // Tests sur la classe : réservé aux paladins
  !FallenPaladin(Player1)
  Gender(Player1,FEMALE)  // Tests sur le sexe : réservé aux femmes
  !Global("GWSolNon","GLOBAL",1)  // Tests sur la campagne : on a accepté la mission.
  Global("GWFemPla","GLOBAL",0)
  !See([ENEMY])
  CombatCounter(0)
  HasItemEquipedReal("GWPlate",Player1) // Test sur l'équipement de l'armure
THEN
  RESPONSE #100
    SetGlobal("GWFemPla","GLOBAL",1)
    Wait(30) //15
    StartCutSceneMode()
    CutSceneId(Player1)
    ClearAllActions()
    SetInterrupt(FALSE)
    Wait(2)
    CreateVisualEffectObject("GWArmor1",Player1)
    Wait(6)
    DisplayStringWait(Player1,@4211) // À nouveau, vous sentez ces frissons si familiers parcourir votre corps… Vous avez la nette impression de disposer de nouveaux pouvoirs. Il s'agit maintenant de s'en montrer digne car rares sont celles qui ont eu l'honneur de bénéficier des largesses de Gwendolyne.
    ActionOverride(Player1,AddSpecialAbility("SPCL001")) // Apposition des mains
    ActionOverride(Player1,AddSpecialAbility("SPCL002")) // Cantique
    Wait(6) // SmallWait(6)
    SetInterrupt(TRUE)
    EndCutSceneMode()
END

Code : Tout sélectionner

IF
  Global("GWFemPla","GLOBAL",1) // Armure découverte
  Global("GWFemHel","GLOBAL",1) // Casque découvert
  Global("GWFemGan","GLOBAL",1) // Gants découverts
  Global("GWFemEqu","GLOBAL",0)
  HasItemEquipedReal("GWPlate",Player1)
  HasItemEquipedReal("GWHelm",Player1)
  HasItemEquipedReal("GWGants",Player1)
THEN
  RESPONSE #100
    SetGlobal("GWFemEqu","GLOBAL",1)
    Wait(30)
    StartCutSceneMode()
    CutSceneId(Player1)
    ClearAllActions()
    SetInterrupt(FALSE)
    Wait(3)
    CreateVisualEffectObject("SPHOLY",Player1)
    Wait(8)
    PlaySound("ACT_06")
    TakePartyItem("GWPLATE")
    DestroyItem("GWPLATE")
    TakePartyItem("GWGANTS")
    DestroyItem("GWGANTS")
    TakePartyItem("GWHELM")
    DestroyItem("GWHELM")
    GiveItemCreate("GWPlate1",Player1,1,1,1)
    DisplayStringWait(Player1,@4213)
    SmallWait(12)
    Wait(5)
    ForceSpell(Player1,GAIN_ONE_STR_PERMANENT)
    Wait(2)
    DisplayStringWait(Player1,11335) // La Force a été augmentée de 1 point de façon permanente
    Wait(2)
    ForceSpell(Player1,GAIN_ONE_CON_PERMANENT)
    Wait(2)
    DisplayStringWait(Player1,11334)
    Wait(2)
    ForceSpell(Player1,GAIN_ONE_WIS_PERMANENT)
    Wait(2)
    DisplayStringWait(Player1,11338)
    Wait(2)
    ForceSpell(Player1,GAIN_ONE_CHA_PERMANENT)
    Wait(2)
    DisplayStringWait(Player1,11339)
    Wait(2)
    ForceSpell(Player1,GAIN_ONE_DEX_PERMANENT)
    Wait(2)
    DisplayStringWait(Player1,11336)
    Wait(2)
    ForceSpell(Player1,GAIN_ONE_INT_PERMANENT)
    Wait(2)
    DisplayStringWait(Player1,11337)
    Wait(2)
    SetInterrupt(TRUE)
    EndCutSceneMode()
END

Tout ceci n'est qu'une indication, mais le principe reste le même : dans un script, tu vérifies que tel perso est équipé des éléments concernés et tu lui appliques certaines modifs, lui retire son équipement et le remplace par un nouveau.
Tu fais la même chose si ton perso perd ou retire son équipement.

Je l'avais testé dans Baldur.bcs et Baldur25.bcs : ça fonctionne très bien. Me restait juste à le transférer dans les fichiers Player.bcs adéquats pour éviter de surcharger le script original du jeu.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Merci Freddy,
ca correspond complètement à l'un de mes besoins.

Reste plus qu'à l'adapter. ^^

Cocrane
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

De rien. ;)

N'hésite pas si tu as d'autres questions.

L'avantage d'un projet pharaonique, c'est que l'on est obligé de toucher un peu à tout, parfois avec succès. Mais trop souvent, on s'aperçoit que certaines opérations sont quasi impossibles à réaliser. :gign:
Si ça peut te permettre de gagner du temps, c'est tout bénéf...

Ceci dit, depuis le temps et avec les modifications de l'exécutable par ToBEX, je reprends régulièrement certains éléments abandonnés pour essayer de les réaliser.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Répondre

Retourner vers « Scripts »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité