ouhlàlà, que de confusions
Il est temps de mettre les choses à clair :
- lorsque je parle de
serveur, je fais référence à ce qui gère la partie. Lorsque je parle de
client, il s'agit du joueur qui se connecte au serveur.
Dans le cas d'une partie locale (lorsque vous lancez le jeu et que vous créez une partie solo),
vous êtes à la fois serveur et client, la console ingame étant fusionnée avec la console serveur.
- un
fichier npc est un fichier utilisé uniquement par le serveur. Les clients n'en ont pas besoins. Les clients n'utilisent même pas les fichiers npcs. Vous pourriez tous les supprimer que vous pourriez toujours vous connecter à un serveur utilisant des npcs. Si vos fichiers npcs sont différents de ceux du serveur, ça ne change rien puisque les fichiers npcs du client ne sont même pas lus, complètement ignorés vous dis-je.
- Lorsqu'un npc est spawné sur le serveur, le serveur va chercher dans le fichier npc correspondant qu'il possède les caractéristiques du npc, par exemple son nombre de points de vie, les armes qu'il porte, mais aussi son skin. Le serveur envoie ensuite ces infos à chacun des clients pour que le client puisse "voir" le npc.
- le client reçoit donc par exemple l'info qu'aux coordonnées devant lui se trouve un skin portant cette arme et avec tant de points de vie.
Le skin et l'arme doivent donc être possédés par le client, sinon le client crashe car son jeu essaie de faire apparaitre devant lui quelque chose qu'il ne possède pas (un peu comme si je vous demandais d'essayer d'imaginer le néant. Vous essayerez d'imaginer un espace vide, blanc, noir ou flou, mais vous ne pouvez pas imaginer le néant).
- les skins des bots et des joueurs sont interchangeables car tous basés sur le
même squelette. C'est pour cela que si vous n'avez pas le skin d'un camarade, votre jeu vous le remplace par Kyle (le skin par défaut).
Ce n'est pas le cas des skins des npcs car les npcs peuvent utiliser des skins ayant leur propre squelette (Rancor, R2D2, ...). Il faut donc posséder le skin recquis par le npc.
- le "Droid Unit" dans OJRP (qui est à l'origine le gadget Seeker (la boule blanche flottante) que j'ai modifié pour pouvoir mettre un npc normal à la place) fait spawner le npc "Seeker" possédé par le serveur. Ce gadget permet de faire spawner UN seul npc "seeker" par vie, dont la caractéristique (imposée par le code source) est de suivre le joueur et d'attaquer les ennemis).
De ce qui a été dit précédemment, le fichier npc doit juste
être possédé/modifié par le serveur. Les clients n'en ont pas besoin, et n'ont PAS BESOIN DE LE MODIFIER CHEZ EUX. Cela ne sert à rien et sera complètement inutile.
En revanche, le skin utilisé par ce npc DOIT ETRE POSSEDE PAR LES CLIENTS.
Par exemple, Aidden voudrait faire effectuer une mission d'escorte mais hésite encore entre escorter un R2, un Clone Trooper ou un mandalorien rouge. Il va donc mettre les 3 skins sur son serveur, et demander à ses joueurs de télécharger les 3 skins.
Quelques minutes avant de lancer le serveur, Aidden s'est enfin décidé et a choisi de faire escorter le Clone Trooper. Il va donc modifier le fichier seeker.npc pour y indiquer le skin du clone trooper. Puis il va lancer le serveur. Les joueurs ont déjà les skins, et n'ont donc besoin de ne rien faire.