13-11-2006, 08:48 PM
Et bien en fait j'y ai pensé. Déjà un seul état est "réciproque": si A déclare la guerre à B, B passe automatiquement en statut "ennemi de A".
Par contre pour un cessez-le-feu (retour à l'état neutre après une guerre) ou pour une alliance entre deux partis ce n'est pas automatique: si A propose une alliance à B, B doit d'abord accepter, auquel cas on modifie le statut des deux partis.
Ce qui m'amène à penser qu'une autre table est nécessaire, afin de stocker les propositions en cours. Elle sera de la forme (id_proposition, #id_parti_1, #id_parti_2, proposition). A la connexion "parti_1" recevra la proposition et pourra choisir. On efface alors l'entrée dans la table proposition et on met éventuellement à jour la table diplomatie suivant sa décision.
Pour l'entrée des "privés" dans les "alliances" il est clair qu'on ne peut pas se contenter de supprimer l'ardoise du privé. Ce que je pensais faire est que lorsqu'un privé rentre dans une alliance, ses références dans la table diplomatie disparaissent MAIS ses anciens alliés sont perdus et ses anciens ennemis reçoivent un message leur signalant l'entrée du privé X dans l'alliance A, et leur permettant de basculer l'alliance A en ennemi (si ce n'était pas déjà le cas). Pareil pour un privé Z qui quitterait une alliance B: les ennemis de l'alliance B choisissent alors s'ils veulent traiter Z en ennemi ou pas. Ces choix se feraient toujours par l'intermédiaire de la table proposition, à qui il faudra rajouter quelques attributs.
Après il faut encore que je réfléchisse à fond et que je teste pour voir si tout ça ne créé pas des aberrations ou ne permet pas des exploitations de bugs par les joueurs...
Pour ton système Gtsoul je ne sais pas si ça marcherait car ça permettrait à une alliance B d'attaquer le joueur X de l'alliance A sans pour autant être inquiétée par les autres membres de l'alliance A, si cette dernière n'est pas déclarée en guerre avec B. Non ?
Par contre pour un cessez-le-feu (retour à l'état neutre après une guerre) ou pour une alliance entre deux partis ce n'est pas automatique: si A propose une alliance à B, B doit d'abord accepter, auquel cas on modifie le statut des deux partis.
Ce qui m'amène à penser qu'une autre table est nécessaire, afin de stocker les propositions en cours. Elle sera de la forme (id_proposition, #id_parti_1, #id_parti_2, proposition). A la connexion "parti_1" recevra la proposition et pourra choisir. On efface alors l'entrée dans la table proposition et on met éventuellement à jour la table diplomatie suivant sa décision.
Pour l'entrée des "privés" dans les "alliances" il est clair qu'on ne peut pas se contenter de supprimer l'ardoise du privé. Ce que je pensais faire est que lorsqu'un privé rentre dans une alliance, ses références dans la table diplomatie disparaissent MAIS ses anciens alliés sont perdus et ses anciens ennemis reçoivent un message leur signalant l'entrée du privé X dans l'alliance A, et leur permettant de basculer l'alliance A en ennemi (si ce n'était pas déjà le cas). Pareil pour un privé Z qui quitterait une alliance B: les ennemis de l'alliance B choisissent alors s'ils veulent traiter Z en ennemi ou pas. Ces choix se feraient toujours par l'intermédiaire de la table proposition, à qui il faudra rajouter quelques attributs.
Après il faut encore que je réfléchisse à fond et que je teste pour voir si tout ça ne créé pas des aberrations ou ne permet pas des exploitations de bugs par les joueurs...
Pour ton système Gtsoul je ne sais pas si ça marcherait car ça permettrait à une alliance B d'attaquer le joueur X de l'alliance A sans pour autant être inquiétée par les autres membres de l'alliance A, si cette dernière n'est pas déclarée en guerre avec B. Non ?