Chgt de zone spécial.

Répondre
Partager Rechercher
Bon j'ai un projet de module qui se comporterai un peu comme daoc.


je voudrais faire non pas de la capture de flag, mais de la capture de point stratégique.

j'aimerai créé 2 equippes good vs evil qui se font la guerre pour des chateau des village/ville etc...


mon soucis, c de créé des strigger de chgt de zone celon l'occupation de l'ennemi.


Ds daoc, lorsqu'on capture un chateau, les gardes NPC apparaissent.

Donc il va falloir que je créé 2 meme zones avec un chateau qui est occupé soit par les force du bien, soit par les force du mal.


j'aimerai donc créé un strigger ayant la possibilité de vous faire passer ds 2 zones differentes suivant la situation, donc une variable.

mon soucis c'est que les striggers de destination ne vous propose qu'un tag. donc il va falloir créer un script avec le OnClick.


est ce quelqu'un a une petite idée de comment je pourrais ecrire ce script?
bon bah j'ai réussi mon projet cette nuit! apres tous ce temps je n'ai pas perdu la main en programmation

Je vous partage donc mon travail.


j'ai créé 3 zones, une ZoneA , une ZoneB1 & une ZoneB2

B1 & B2 car c'est sencé etre la meme zone mais l'une est occupé suivant la situation par l'ennemi ou par les alliés.



J'ai créé 3 striggers que j'ai nommé ZoneA , une ZoneB1 & une ZoneB2.

et un levier ds la zone A.

le levier est là pour faire basculer une variable a "1" ou a "0"

a mettre dans le OnUsed

Code PHP:

void main()
{
  
object oPC GetLastUsedBy();


      if ((
GetLocalInt(oPC"levier") == ))
       {
       
ActionPlayAnimation (ANIMATION_PLACEABLE_ACTIVATE);
       
SendMessageToPC(oPC,"l'etat passse a 1");
       
SetLocalInt(oPC"levier"1);
       }
     else
       {
       
ActionPlayAnimation (ANIMATION_PLACEABLE_DEACTIVATE);
       
SendMessageToPC(oPC,"l'etat passse a 0");
       
SetLocalInt(oPC"levier"0);
       }



et le script pour le strigger lorsque le joueur va cliquer dessu.
double destination.

a mettre dans le OnClick

Code PHP:

void main()
{

object oPC =  GetClickingObject();

object oWPA GetObjectByTag("ZoneB1");
object oWPB GetObjectByTag("ZoneB2");

      if ((
GetLocalInt(oPC"levier") == ))
       {
       
AssignCommand(oPCActionJumpToObject(oWPA));
       }
     else
       {
       
AssignCommand(oPCActionJumpToObject(oWPB));
       }


Cet idée assez simpliste permet de develloppé d'autres idée.

Par exemple de faire passer un mode été / hivers. Avec la gestion du temps on peux definir un état a 1 ou 0 (été ou hivers)
Et pendant une periode X on sera ds un état hivers (0) ce qui fais qu'on se promenera ds des zones enneigé etc et lorsque l'etat repas a 1 on va passer en mode été.

donc la je vais pouvoir faire un chateau good & evil.

biensur la variable ne s'arrete pas a un levier qui vous bascule a 1 ou a 0!
vous pouvez donc créer un nombre de destination X grace a n'importe quel autre générateur devenement , créé un strigger a destination multiple aléatoire ou suivant un evenement de quete.
heuu... pourquoi tu as 2 zones en fonction de l'occupation ? c'est pas seulement les pnj qui changent ? (moi j'aurais plutôt vu un spawn de pnjs de la faction victorieuse après élimination des pnjs de la faction perdante...)

bon c'est sur que si les meubles changent de place etc...

mais bon pour moi le problème d'avoir 2 zones présentant le même endroit sur un mod multijoueurs c'est le risque d'avoir des pj sur les 2 zones en même temps... c'est sûrement facilement scriptable... mais ça risque d'être assez lourd.

en tout cas, c'est sur que pour simuler le changement de saison c'est le plus pratique... même si ya peut-être moyen autrement... exemple : été=> automne, changement des couleurs des arbres...
(en jouant avec les plaçables)
bah y a tout qui va changer... l'ambiance, la musique, les perso donc oui je ne pas faire mieu...

maintenant qud le chateau a été conquéri il suffit de faire un spawn des joueurs ds le chateau vers le nouveau chateau.
Citation :
Provient du message de Oberon[GoS]
reste le cas du joueur qui est entrain de charger la zone au moment où celle si change... je serai curieux de savoir comment nwn gère ça...
dans ce cas là il va falloir que je fasse un renvoie automatique vers l'autre zone.

mais bon vu que je commence a maitrisé les cameras je ferai un cutscene pour tout les joueur du server a chaque prise de chateau. je changera la variable pour le changement de zone a se moment là et effectuerai ma teleportation juste apres..


il sera donc impossible de passer une zone en meme tps.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés