ATTENTION TRAVAUX !
Ce tutoriel est actuellement en cours de réécriture, il est donc incomplet, prenez cela en compte si vous êtes un nouveau membre.Maintenant que vous connaissez tous les principes de base, vous pouvez tenter de faire des modifications un peu plus majeures qui influent sur le comportement de votre arme.
Conditions d'explosionTout d'abord, vous pouvez décider dans quelles circonstances l'arme peut exploser.
Les propriétés qui vous permettent de contrôler cela sont les suivantes:
- Code:
-
<HasAdjustableFuse>false</HasAdjustableFuse>
...
<DetonatesOnLandImpact>true</DetonatesOnLandImpact>
<DetonatesOnExpiry>false</DetonatesOnExpiry>
<DetonatesOnObjectImpact>true</DetonatesOnObjectImpact>
<DetonatesOnWormImpact>true</DetonatesOnWormImpact>
<DetonatesAtRest>false</DetonatesAtRest>
<DetonatesOnFirePress>false</DetonatesOnFirePress>
<DetonatesWhenCantJump>false</DetonatesWhenCantJump>
...
<LifeTime>-1</LifeTime>
...
<PreDetonationTime>0</PreDetonationTime>
Tout d'abord,
LifeTime définit la stricte durée de vie de l'arme. Une fois que cette durée est écoulée, on dit que l'arme "expire", ce qui peut la mener à exploser, ou tout simplement disparaître.
Elle est exprimée en millisecondes, 1000 correspond donc à une seconde.
-1 signifie que l'arme a une durée de vie infinie, ce qui est le cas pour la plupart des armes qui explosent au contact.
Dans le cas où
HasAdjustableFuse a une valeur "true", LifeTime n'est pas pris en compte car la durée de vie de vie de l'arme est réglable de 1 à 5 secondes pendant le jeu.
DetonatesOnLandImpact détermine si le projectile doit exploser au contact du terrain ou pas.
DetonatesOnObjectImpact et
DetonatesOnWormImpact déterminent si elle doit exploser au contact d'un objet (caisse, baril), ou au contact d'un worm.
DetonatesOnExpiry détermine si le projectile doit exploser lorsqu'il expire (lorsque la durée correspondant à LifeTime est écoulée).
Si cette propriété est "false", alors le projectile disparaît simplement sans produire d'explosion.
DetonatesAtRest détermine si le projectile explose lorsqu'il arrête de bouger
DetonatesOnFirePress détermine si le projectile explose lorsqu'on clique une seconde fois après avoir tiré.
DetonatesWhenCantJump semble être ce qui reste de la Vache folle de Worms 3D, cette propriété détermine pour les armes animales si elles doivent exploser lorsqu'elles rencontre un mur par dessus lequel elles ne peuvent pas sauter.
PreDetonationTime est le retardement de l'explosion du projectile. Par exemple, pour la sainte grenade, on ajoute 2 secondes avant l'explosion, le temps d'entendre le son "Alléluia".
Comme LifeTime, cette propriété est exprimée en millisecondes.
Dans le cas où votre arme a une durée de vie limitée, vous pouvez afficher le nombre de secondes avant l'explosion, comme pour les grenades.
- Code:
-
<FuseTimerGraphicOffset>10</FuseTimerGraphicOffset>
<FuseTimerScale>0</FuseTimerScale>
FuseTimerScale détermine la taille de l'affichage des secondes. Il est à 0 si les secondes ne sont pas affichées, et en en général à 8 pour les armes de type grenades.
FuseTimerGraphicOffset détermine le décalage de l'afficheur par rapport au projectile. Il est généralement égal à 6 pour les grenades, et sa valeur n'a pas d'importance si FuseTimerScale est égal à 0.
Vous pouvez aussi faire en sorte que votre arme se comporte comme une mine, et se déclenche lorsqu'un worm passe à proximité. Dans ce cas, utilisez les propriétés suivantes:
- Code:
-
<Mass>0</Mass>
...
<StartsArmed>true</StartsArmed>
<ArmOnImpact>false</ArmOnImpact>
<ArmingCourtesyTime>0</ArmingCourtesyTime>
...
<ArmingRadius>0</ArmingRadius>
StartsArmed définit si l'arme est active lorsqu'elle est lancée ou pas. Pour une arme normale, cette propriété est "true", pour une arme se comportant comme une mine, elle devrait être "false".
Dans le cas où cette valeur est false, il semblerait que la propriété
Mass doive être supérieure à 0, sans quoi le projectile peut parfois avoir des comportements étranges. Dans ce cas, une valeur de 1 suffit.
Lorsqu'une arme n'est pas active, sa durée de vie ne diminue pas avec le temps. C'est seulement lorsqu'elle est activée que le décompte de LifeTime démarre.
ArmingRadius donne le rayon de détection de la mine, c'est à dire la distance minimum entre un worm et la mine permettant de l'activer.
ArmingCourtesyTime est la durée pendant laquelle la mine ne peut rien détecter. C'est un paramètre important à prendre en compte, pour que la mine ne détecte pas immédiatement le worm qui vient de la poser.
ArmOnImpact est une propriété qui semble n'être utilisé que pour la flèche empoisonnée. Apparemment, elle détermine si le projectile devient actif lorsqu'il touche le terrain, mais elle ne semble pas fonctionner sur les autres armes.
Notez que cette méthode permet aussi de créer des bombes à retardement qui restent sur le terrain pendant plusieurs tours avant d'exploser. Il suffit de mettre une valeur très grande à ArmingRadius, et le temps de retardement voulu à ArmingCourtesyTime.
Il n'est pas possible d'obtenir le même effet en mettant le retardement à LifeTime, car dans ce cas, le tour ne se termine pas avant que LifeTime ne soit écoulé.
Physique et mouvementVous pouvez aussi modifier la physique du projectile, c'est à dire la force avec laquelle il rebondit, dans le cas où il n'explose pas à l'impact, et la façon dont il ricoche sur l'eau.
- Code:
-
<TangentialMinBounceDamping>0</TangentialMinBounceDamping>
<ParallelMinBounceDamping>0</ParallelMinBounceDamping>
<TangentialMaxBounceDamping>0</TangentialMaxBounceDamping>
<ParallelMaxBounceDamping>0</ParallelMaxBounceDamping>
<SkimsOnWater>true</SkimsOnWater>
<MinSpeedForSkim>0.1</MinSpeedForSkim>
<MaxAngleForSkim>-0.4</MaxAngleForSkim>
<SkimDamping x='0.5' y='-0.5' z='0.5' />
Les quatre premiers paramètres définissent la force avec laquelle le projectile rebondit. On ne connaît pas encore exactement l'influence de ces propriétés sur les rebonds, mais à titre de référence, voici leurs valeur pour la Grenade.
- Code:
-
<TangentialMinBounceDamping>0.7</TangentialMinBounceDamping>
<ParallelMinBounceDamping>0.35</ParallelMinBounceDamping>
<TangentialMaxBounceDamping>0.8</TangentialMaxBounceDamping>
<ParallelMaxBounceDamping>0.8</ParallelMaxBounceDamping>
Il semblerait que ces valeurs soient des multiplicateurs de force, c'est à dire qu'une valeur de 1 à toutes les propriétés donne au projectile la capacité de rebondir indéfiniment, sans jamais perdre de sa vitesse, et qu'une valeur de 0 ne donne absolument aucun rebond.
Il est possible de faire coller un projectile au terrain en mettant une valeur de -1 à toutes ces propriétés.
SkimsOnWater détermine si le projectile peut ricocher sur l'eau.
Dans ce cas,
MinSpeedForSkim correspond à la vitesse minimum requise pour faire un ricochet, et
MaxAngleForSkim à l'angle maximum (en radians) requis.
Notez qu'en mettant une valeur de -90° (-1.57 radians) à MaxAngleForSkim, le projectile ricoche quelque soit l'angle l'impact.
Type d'armeFinalement, vous pouvez modifier le type de votre arme, et quelques paramètres mineurs à travers les propriétés suivantes:
- Code:
-
<IsAimedWeapon>true</IsAimedWeapon>
<IsPoweredWeapon>true</IsPoweredWeapon>
<IsTargetingWeapon>false</IsTargetingWeapon>
<IsControlledBomber>false</IsControlledBomber>
<IsBomberWeapon>false</IsBomberWeapon>
<IsDirectionalWeapon>true</IsDirectionalWeapon>
<IsHoming>false</IsHoming>
<IsLowGravity>true</IsLowGravity>
<IsLaunchedFromWorm>true</IsLaunchedFromWorm>
à suivre...