Objets aléatoires
From Worms Knowledge Base
Les objets aléatoires de Worms 2, Worms Armageddon et Worms World Party sont les mines et les barils de pétrole.
Contents
Types d'objets
Il peut y avoir quatre valeurs : pas d'objet, mines uniquement, barils uniquement, ou bien les deux.
Nombre d'objets
Cette valeur n'existe que dans W:A. Vous pouvez définir le nombre d'objets qui vont apparaître, de 1 à 250. Pour avoir zéro objets, mettez tout simplement "pas d'objets" comme type.
Attention cependant, si vous dites, par exemple, qu'il y aura 250 objets, il n'y aura pas forcément 250 objets. En effet, il doit y avoir un écart minimal entre les objets, ainsi qu'entre les objets et les vers. Donc cette option ne représente que le nombre maximum d'objets, et donc pas le nombre exact
On ne peut pas choisir n'importe quelle valeur entre 1 et 250. Voici la liste des valeurs possibles :
Tous les entiers de 1 à 30, tous les multiples de 5 de 35 à 100, tous les multiples de 10 de 110 à 250.
Comment cette option est-elle sauvegardée dans un fichier WSC ?
Vieux schemes
Dans les schemes WWP et les schemes W:A v1 (et les vieux schemes W:A v2 avant la version 3.6.28.0), seuls le type d'objet est sauvegardé, ce qui fait qu'il y aura jusqu'à 8 objets sur le terrain.
Les valeurs sont : 0x00=Pas d'objet, 0x01=Mines, 0x02=Barils de pétrole, 0x05=Les deux.
Nouveaux schemes
Dans les nouveaux schemes de W:A, il y a également l'option nombre d'objets. Du coup, le type et le nombre d'objets sont deux valeurs stockées dans le même octet.
Types
Vous devez faire un modulo (%) par 4 avec cette valeur. Le modulo est en fait une opération qui prend le reste d'une division euclidienne.
- Si vous obtenez 0, il n'y aura pas d'objets.
- Si vous obtenez 1, il n'y aura que des mines.
- Si vous obtenez 2, il n'y aura que des barils.
- Si vous obtenez 3, il y aura des mines et des barils.
Par exemple
Vous avez la valeur "79".
79 % 4 = 3 (parce que 79 / 4 = 19 et il reste 3)
Donc il y aura les deux types d'objets dans ce scheme.
Prenons un autre exemple
Vous avez maintenant la valeur "246".
246 % 4 = 2 (parce que 246 / 4 = 61 et il reste 2)
Donc il n'y aura que des barils de pétrole dans ce scheme.
Nombre d'objets
Alors là, c'est un peu plus compliqué.
Tout d'abord, vous devrez réutiliser le résultat du modulo ci-dessus. On va l'appeler M.
Puis, en considérant que V est la valeur de l'octet, faites :
N = V - (8 + M)
Et enfin, divisez N par 4 pour obtenir la clé de l'array (E).
E = N / 4.
Ajustez E selon votre array. C'est-à-dire par exemple :
- Vous pouvez faire un array dont la clé 0 vaut NULL. Dans ce cas, vous n'aurez pas besoin de changer le résultat, vous avez déjà la clé de l'array.
- Vous pouvez faire un array normal (0 => 1, 1 => 2...). Il vous faudra dans ce cas enlever 1 à E.
- Vous pouvez enfin faire un array avec les valeurs de 35 à 250 uniquement. Si E < 31, E équivaut déjà à la valeur (si E = 5 par exemple, alors C = 5 - si on considère que C est le nombre d'objets). Si E >= 31, alors enlevez 31 pour avoir la clé de la valeur dans l'array (par exemple, 32 - 31 = 1, et 1 est la deuxième entrée de l'array - un array commence à 0, 1 => 40 donc C = 40).
Pour rappel, les valeurs de l'array sont :
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, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250.
Par exemple
On reprend la valeur "79". V = 79.
Comme on a vu plus haut, M = 3.
Donc :
N = 79 - (8 + 3)
N = 79 - 11
N = 68.
Ensuite, calculons E :
E = 68 / 4
E = 17.
Regardons ce qu'il se passe dans chacun des trois arrays de tout à l'heure :
- Il suffit de prendre la clé E de l'array. Donc on prend la clé n°17, qui vaut 17. Donc C = 17.
- 17 - 1 = 16. On va donc prendre la clé n°16 de l'array. Elle contient 17, donc C = 17.
- 17 < 31, donc C = E = 17 tout simplement.
Donc il y aura 17 mines et barils.
Essayons avec l'autre exemple
V = 246.
Comme on a dit, M = 2.
Donc :
N = 246 - (8 + 2)
N = 246 - 10
N = 236.
Calculons E :
E = 236 / 4
E = 59.
Ensuite, pour les arrays :
- Il suffit de prendre la clé E de l'array, donc la clé n°59. La clé n°59 contient la valeur 250. Donc C = 250.
- 59 - 1 = 58. On va donc prendre la clé n°58 de l'array, qui contient la valeur 250. Donc C = 250.
- 59 > 31, donc on doit faire 59 - 31, ce qui nous donne 28. La valeur de la clé n°28 est 250. Donc C = 250.
Il y aura donc 250 barils sur le terrain, et uniquement des barils.
Valeurs invalides de l'octet
Les valeurs suivantes sont transformées en 1 (8 mines) par le jeu :
3, 4, 6, 7, 8, 9, 10, 11, 248, 249, 250, 251, 252, 253, 254, 255.