Aller au contenu


Race Sous-Marine


  • Veuillez vous connecter pour répondre
8 réponses à ce sujet

#1 BigBen

BigBen

Posté 29 avril 2010 - 14:33

Bonjour

Je voudrais savoir s'il est possible d'attacher ou de relier un script à une capacité d'une race (et pas par rapport au joueur). Pour l'exemple, je voudrais que cette race souffre d'atténuation de caractéristiques uniquement quand elle est hors de l'eau.
Quelqu'un a-t-il la solution?

Merci d'avance !

#2 abg

abg

    L'ABG pour les civilisés


Posté 29 avril 2010 - 14:48

 BigBen, le 29 avril 2010 - 14:33, dit :

Je voudrais savoir s'il est possible d'attacher ou de relier un script à une capacité d'une race (et pas par rapport au joueur). Pour l'exemple, je voudrais que cette race souffre d'atténuation de caractéristiques uniquement quand elle est hors de l'eau.
Quelqu'un a-t-il la solution?

On ne peut malheureusement pas "scripter un sort" ou "une race dans sa globalité" comme on peut scripter un objet ou un PNJ donné.

Sauf peut-être si tes PNJs sont tous des clones (comme les gardes) ou des créatures "clones" ou encore si tu es prêt à donner à tout tes PNJs appartenant à la race le même script (ou du moins la même portion de script)

Après c'est juste une histoire de détection "est dans l'eau/n'est pas dans l'eau" (attention à la commande GetWaterLevel pas fiable du tout dans certains intérieurs...)
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#3 Alchimeriste

Alchimeriste

Posté 29 avril 2010 - 16:42

abg dit :

Après c'est juste une histoire de détection "est dans l'eau/n'est pas dans l'eau" (attention à la commande GetWaterLevel pas fiable du tout dans certains intérieurs...)

Je crois qu'il existait un débat avec les bombes dans de l'eau de "Not Quite Dead" pour les détections mais ça ne va pas t'arranger puisque c'est spécifique à un joueur..
..there are more things in heaven and earth..than are dreamt of in your philosophy..

#4 abg

abg

    L'ABG pour les civilisés


Posté 29 avril 2010 - 17:51

 Alchimeriste, le 29 avril 2010 - 16:42, dit :

Je crois qu'il existait un débat avec les bombes dans de l'eau de "Not Quite Dead" pour les détections mais ça ne va pas t'arranger puisque c'est spécifique à un joueur..

Un moyen assez fiable de détecter qu'un PNJ est immergé est de surveiller les bruits de natation/pas dans l'eau (FootBareRight, FootBareLeft). Par contre dans le cas d'une créature, je ne sais pas  :?
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#5 BigBen

BigBen

Posté 29 avril 2010 - 18:49

ok. Et il y aurait moyen en attachant le script à un objet particulier à cette race (tout en empêchant quiconque de voler ou de prendre cet objet une fois mort)?

#6 Infomase

Infomase

Posté 29 avril 2010 - 19:14

Ben, le problème c'est lors du déclenchement d'une séquence de vol. Ca va faire sale.
<?php echo="Codeur en carton-pâte" ?>

#7 Alchimeriste

Alchimeriste

Posté 29 avril 2010 - 20:20

Peut être devrais tu expliquer le fond du problème, enfin ce que tu veux comme résultat au final : depuis plusieurs jours je tente de comprendre les scripts et ke me rends compte qu'en exposant les problèmes certains trouvent des solutions farfelue et détournées au premier abord mais carrément bonnes et tant que le joueur ne se rend pas compte des moyens utilisés bhen ça passe.

Par exemple y fallait y penser qu'un Getkekchoz sans rapport permet de pouvoir faire telle autre chose..

En gros le résultat c'est que ta race sous marine subissent des dommages à l'air libre? Elle est jouable?ce sont des pnjs?

Abg disait :

Citation

Après c'est juste une histoire de détection "est dans l'eau/n'est pas dans l'eau" (attention à la commande GetWaterLevel pas fiable du tout dans certains intérieurs...)

Ne peut on pas jouer sur deux types de détections, c'est à dire par rapport au niveau de l'eau puis si elle se trouve dans un intérieur? etc..
..there are more things in heaven and earth..than are dreamt of in your philosophy..

#8 abg

abg

    L'ABG pour les civilisés


Posté 29 avril 2010 - 21:02

 BigBen, le 29 avril 2010 - 18:49, dit :

ok. Et il y aurait moyen en attachant le script à un objet particulier à cette race

Non. Du moins pas de façon générique (partant du principe que tu souhaites affecter tous les PNJs relevant d'une race, pas simplement "un ou des PNJs bien définis"). Un script sur un objet peut influer sur l'objet lui-même (c'est sa cible par défaut) ou tel ou tel autre élément du jeu bien identifié (avec des redirections du style fargoth->AddSpell, "suffocation", player->Trucmachinchose...etc.). Mais il ne peut pas agir dans le vague (tous les membres non spécifiquement listés d'un groupe quelconque).
Que l'objet soit ou non dans l'inventaire d'un PNJ ne change rien...

C'est à mon sens l'une des plus grosses limitations du Morroscript  :(

Donc si tu voulais agir sur l'ensemble d'une race dont tu ne connais pas la liste des membres (par exemple gêner tout les argoniens hors de l'eau, PJ et PNJs compris), c'est cuit.
Par contre si la race en question est propre à ton mod, que tous les PNJs appartenant à cette race ne peuvent venir de ton mod, alors c'est faisable (en ajoutant un script local à chacun de ces PNJs que tu connais...)


 Alchimeriste, le 29 avril 2010 - 20:20, dit :

Peut être devrais tu expliquer le fond du problème, enfin ce que tu veux comme résultat au final : depuis plusieurs jours je tente de comprendre les scripts et ke me rends compte qu'en exposant les problèmes certains trouvent des solutions farfelue et détournées au premier abord mais carrément bonnes et tant que le joueur ne se rend pas compte des moyens utilisés bhen ça passe.

+1 pour la demande de précisions...
+1 pour le reste aussi : scripter Morrowind relève de la prestidigitation : j'appelle ça "tisser le voile de fumée". Du moment que le joueur ne s'aperçoit pas de la cuisine interne, tout va bien  :shock: Heureusement d'ailleurs qu'il ne s'en aperçoit pas tant les mécanismes (du jeu lui-même, comme des scripts que l'on construit dessus) sont généralement très crétins  :)

Citation

Après c'est juste une histoire de détection "est dans l'eau/n'est pas dans l'eau" (attention à la commande GetWaterLevel pas fiable du tout dans certains intérieurs...)

Alchimeriste dit :

Ne peut on pas jouer sur deux types de détections, c'est à dire par rapport au niveau de l'eau puis si elle se trouve dans un intérieur? etc..

Oui.

En extérieur le niveau de l'eau est forcément à zéro, donc pas de problème (enfin... juste dommage pour ceux qui rêvent de lacs montagnards  :? )
En intérieur c'est plus tordu car ce niveau (renvoyé par la commande GetWaterLevel) peut être fixé arbitrairement (à 0 comme à toute autre valeur). Le truc tordu est que GetWaterLevel continue imperturbablement à renvoyer une valeur (0) même s'il n'y a pas d'eau du tout dans la cell !

Donc si la commande GetInterior renvoie 0, pas de problème. Ce n'est même pas la peine de tester GetWaterLevel (qui renverra forcément 0 aussi), il suffit de surveiller la position Z. Mais en intérieur (GetInterior == 1), il vaut mieux en effet utiliser un moyen détourné. Comme dit plus haut, pour ma part je cherche à tester les sons de natation  :dry:
Tester les sons n'est pas toujours facile car la commande GetSoundPlaying est parfois capricieuse aussi, mais quand ça marche (et pour la nage : ça marche), c'est un moyen efficace de suivre la situation d'un PNJ (ou du PJ)...
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#9 BigBen

BigBen

Posté 30 avril 2010 - 15:40

C'était pour qu'une race créée de toute pièce ait des caractéristiques impressionnantes dans l'eau mais qu'une fois sur la terre ferme, elle ne soit pas plus redoutable que des guars...
PNJ ou PJ, je ne sais pas encore mais de toute façon, je peux faire un script pour l'un et pour l'autre.

Merci pour ces éclaircissements, je pense que je devrais y arriver maintenant ;)




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)