Forum WTeam
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Forum WTeam

Le site des moddeurs 100% francophone.
 
AccueilPortailGalerieRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment : -23%
(Black Friday) Apple watch Apple SE GPS 44mm ...
Voir le deal
199 €

 

 Script déplacement.

Aller en bas 
2 participants
AuteurMessage
Selo
Spectre ArchipelModeur
Spectre ArchipelModeur
Selo


Masculin Nombre de messages : 69
Age : 28
Date d'inscription : 27/12/2009

Script déplacement. Empty
MessageSujet: Script déplacement.   Script déplacement. Icon_minitimeMer 01 Sep 2010, 18:56

Bonjour.

Je voudrais que quand on boit la potion AAPMaison1, l'objet AAMaison1 apparaisse devant le joueur.
Ensuite, quand on appuie sur 8 l'objet avance, sur 2 l'objet recule, sur 4 l'objet vas a gauche, sur 6 l'objet vas a droite, sur - l'objet vas en bas, sur + l'objet vas en haut et puis sur F, l'objet ne bouge plus et devient Static, avec les collisions et tout

Je n'ai aucune idée de la difficulté du script mais j'ai cherché toute la soirée d'hier comment faire, finalement je me suis dit que poser la question ici serai le plus simple Content

Merci d'avance ! Très content
Revenir en haut Aller en bas
Mike89
Maître ArchipelModeur
Maître ArchipelModeur
Mike89


Masculin Nombre de messages : 3151
Age : 68
Date d'inscription : 06/03/2007

Script déplacement. Empty
MessageSujet: * En bas tu sélectionne le script que tu as ecrit   Script déplacement. Icon_minitimeMer 01 Sep 2010, 20:40

Je vois, je vois... et je sais le faire, si, si, je sais.
Comment je sais ? Parce que je me suis amusé à lire tout ce qu'il y a là :
http://cs.elderscrolls.com/constwiki/index.php/Main_Page
... que j'ai ensuite traduit partiellement là :
http://wiwiki.wiwiland.net/index.php/TESCS2_:_Aide_aux_Moddeurs

En particulier là :
http://wiwiki.wiwiland.net/index.php/TESCS2_:_Types_de_script

1) Les grandes lignes de la méthode pour faire apparaître :

Mettre la maison dans le monde (référence) et, dans la fenêtre REFERENCE, tu coches la case "Initialy Disabled".
Tu lui donnes pour EditorId à cette ref AAMaison1ref01 (ou ce que tu veux)

Tu as donc une maison dans le jeu qui sera invisible.

Pour rendre la maison visible, il faut mettre dans un script d'effet que tu attribueras à ta potion la commande :

AAMaison1ref01.Enable

Et voilà. Quand tu bois la potion, la maison apparaît

- Tu écris un script d'effet : attention dans la cas en haut, il faut mettre Type Script : Magic Effect (au lieu de Object)
sinon tu ne pourras pas le voir dans la liste des scripts d'effets pour la potion.
Code:
scn MaisonVisibleSCRIPT
begin ScriptEffectStart
AAMaison1ref01.Enable
end

Tu crée une potion avec une bouteille à potion par exemple...
Tu remplis les infos.
Dans le tableau des effet (tableau Results), tu fais clic-droit, new.
Dans la fenêtre Effect Item qui viens de s'ouvrir :
* tu sélectionnes "ScriptEffect" dans la liste des effets.
* cela permet de saisir les "Script effect info" : MaisonVisibleSCRIPT dans la liste des scripts
* tu peux éventuellement ajouter un effet visuel...

Tu mets une bouteille de potion dans un coin quelque part... il restera dans le jeu à la ramasser et la boire.

2) Pour bouger la maison avec des touches clavier

Il faut un script avec OBSE (extension de script pour Oblivion) et faire un script sur la maison.
Un script sur la maison... avec une maison activateur et non pas static (les statics n'ont pas de script).
Créer
un activateur et lui mettre le nif de la maison, et un script
d'objet... qui contiendra ce qu'il faut faire si la maison est enable et
que la touche machin est actionnée.

Pour bouger la maison avec des touches, il faut pour cela utiliser OBSE, et en particulier les fonctions de détection de touches.
Et écrire un script qui agit en conséquence : augmenter le X ou le Y... de la ref de la maison :

Exemple pour bouger :

Code:
SetPos X ((GetPos X) + 100)  ; la maison bouge d'environ 1 m à 1,5 m selon l'axe des X


http://wiwiki.wiwiland.net/index.php/TESCS2_:_SetPos
http://wiwiki.wiwiland.net/index.php/TESCS2_:_GetPos

Pour tester les touches :
http://cs.elderscrolls.com/constwiki/index.php/IsKeyPressed2

Cela donnerais quelque chose comme :

Code:
If GetDisabled == 0 && IsKeyPressed2 == 77  ; Num  6 dans la liste des codes touches
        SetPos X ((GetPos X) + 100)
EndIf
If GetDisabled == 0 && IsKeyPressed2 == 75  ; Num  4 dans la liste des codes touches
        SetPos X ((GetPos X) - 100)
EndIf
If GetDisabled == 0 && IsKeyPressed2 == 72  ; Num  8 dans la liste des codes touches
    SetPos Y ((GetPos Y) + 100)
EndIf
If GetDisabled == 0 && IsKeyPressed2 == 80  ; Num  2 dans la liste des codes touches
    SetPos Y ((GetPos Y) - 100)
EndIf

Ajouter aussi une condition sur l'ensemble du genre Getdistance player < 4000... si le joueur est pas là, rien ne bouge.

Pour pouvoir compiler le script avec Obse et que çà fonctionne dans le jeu, il faut installer OBSE, et aussi : lancer le TESCS avec le raccourcis OBSE et lancer le jeu avec le lanceur OBSE...
Revenir en haut Aller en bas
Selo
Spectre ArchipelModeur
Spectre ArchipelModeur
Selo


Masculin Nombre de messages : 69
Age : 28
Date d'inscription : 27/12/2009

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeVen 03 Sep 2010, 07:58

Shocké Shocké Shocké
Merci de cette reponse rapide . WAHHH !!!

Mais lorsque je sauvegarde le script pour le déplacement de la maison je reçois un message d'erreur ! MISSING PARAMETER INT !
Triste
Revenir en haut Aller en bas
Mike89
Maître ArchipelModeur
Maître ArchipelModeur
Mike89


Masculin Nombre de messages : 3151
Age : 68
Date d'inscription : 06/03/2007

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeVen 03 Sep 2010, 16:32

Selo a écrit:
Shocké Shocké Shocké
Merci de cette reponse rapide . WAHHH !!!

Mais lorsque je sauvegarde le script pour le déplacement de la maison je reçois un message d'erreur ! MISSING PARAMETER INT !
Triste

Je n'ai pas assez de renseignements : cela veux dire qu'il y a une commande pour laquelle il manque un paramètre de type "entier".

Le message doit certainement comporter un n° de ligne, qui indique où se trouve l'erreur (je ne peux pas deviner çà...).
Regarde donc ce qu'il y a dans la ligne en question et vérifie la syntaxe de la fonction... il doit manquer quelque chose.
Si tu ne trouves pas... donne moi TOUTE la ligne du script.
Revenir en haut Aller en bas
Selo
Spectre ArchipelModeur
Spectre ArchipelModeur
Selo


Masculin Nombre de messages : 69
Age : 28
Date d'inscription : 27/12/2009

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeVen 03 Sep 2010, 17:35

Script déplacement. 795981PB01
Revenir en haut Aller en bas
Mike89
Maître ArchipelModeur
Maître ArchipelModeur
Mike89


Masculin Nombre de messages : 3151
Age : 68
Date d'inscription : 06/03/2007

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeVen 03 Sep 2010, 18:20

Désolé. Deux erreurs dans le script. Mais tu pourrais chercher un peu. On apprend en cherchant. Et quand on sait faire, cela va plus vite.


Erreur de syntaxe pour isPressedKey2 : il n'y a pas besoin de ==
Et tu auras aussi une erreur à la ligne suivante : dans le SetPos, la nouvelle valeur de position ne marche pas si on met une formule. Il faut d'abord calculer avec une variable de type float.

Code:

float valeur

begin...

If GetDisabled == 0 && IsKeyPressed2 77  ; Num  6 dans la liste des codes touches
        Set valeur to GetPos X + 100
        SetPos X valeur

EndIf

Adapte les autres lignes en utilisant "valeur"
Revenir en haut Aller en bas
Selo
Spectre ArchipelModeur
Spectre ArchipelModeur
Selo


Masculin Nombre de messages : 69
Age : 28
Date d'inscription : 27/12/2009

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeVen 03 Sep 2010, 18:50

Ahhh Je suis nul en script !
Merci beaucoup Très content
Revenir en haut Aller en bas
Mike89
Maître ArchipelModeur
Maître ArchipelModeur
Mike89


Masculin Nombre de messages : 3151
Age : 68
Date d'inscription : 06/03/2007

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeVen 03 Sep 2010, 19:37

Selo a écrit:
Ahhh Je suis nul en script !
Merci beaucoup Très content
Non, c'est moi qui ai écrit des bêtises plus haut... mais je n'avais pas testé, ce qui n'est pas une excuse.

Il faudra que tu adaptes la vitesse de déplacement en modifiant le "100" : plus petit si çà va trop vite... et même 0.5 ... 0.001 si nécessaire.

Le script tourne à chaque frame, donc 10 à 50 fois par seconde selon la vitesse du jeu.
Revenir en haut Aller en bas
Selo
Spectre ArchipelModeur
Spectre ArchipelModeur
Selo


Masculin Nombre de messages : 69
Age : 28
Date d'inscription : 27/12/2009

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeMar 07 Sep 2010, 18:16

Alors tout marche mais il reste un petit probleme assez embettant.

J'ai rajouté une condition au touche de déplacement qui est

Citation :
AAFCQT01.StaticMaison01 == 1

Donc ci cette variable == 0 on ne peut plus la bouger.
J'ai donc mis la touche P avec son code :

Citation :
If GetDisabled == 0 && AAFCQT01.StaticMaison01 == 1 && IsKeyPressed2 25 ; Lettre P dans la liste des codes touches
Set AAFCQT01.StaticMaison01 to 0
EndIf


donc quand on appui sur P on ne peut plus bouger l'objet, ca, ca marche.
Mais les collisions ne viennent pas, elle reste la ou l'objet était à l'origine sur le tescs Suspect
Donc on a la maison a un endroit et les collisions a un autre.
J'ai peut-etre oublier un fonction importante, je ne sais pas Question
Revenir en haut Aller en bas
Mike89
Maître ArchipelModeur
Maître ArchipelModeur
Mike89


Masculin Nombre de messages : 3151
Age : 68
Date d'inscription : 06/03/2007

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeMar 07 Sep 2010, 19:10

Bravo pour avoir réussi.

Les collisions qui restent en place : un bug connu de la fonction setpos pour les statics.
Je ne pouvais pas tout te dire en même temps... Script déplacement. Icon_biggrin

Pour forcer les collisions à suivre l'objet, il faut le faire disparaitre puis réapparaitre le temps d'une frame. Cette disparition très courte ne se verra pas.

Exemple :
Code:
If aaadisabled == 1
    Enable
    Set aaadisabled to 0
EndIf

Pour chaque setpos : ajouter un Disable

Code:

If ...
    SetPos X, varx
    Disable
    Set aaadisabled to 1
EndIf


Et dans cette ordre... sinon tu auras disable et enable dans la même frame et cela risque de ne pas marcher (de ne rien faire).
Voilà !
Sympa d'utiliser OBSE, non ?
Revenir en haut Aller en bas
Selo
Spectre ArchipelModeur
Spectre ArchipelModeur
Selo


Masculin Nombre de messages : 69
Age : 28
Date d'inscription : 27/12/2009

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeMar 07 Sep 2010, 20:09

J'avais eu exactement l'idée de faire disparaitre puis réaparaitre mais je n'avais pas utilizer la bonne méthode frappe
Bon si cela marche, j'aurais fait le plus gros du boulot sur mon mod ! Content
Oui OBSE permet plus de choses c'est cool, c'est bethesda qui l'a sorti pour pouvoir creer d'autres mod plus évoluées ?
Revenir en haut Aller en bas
Mike89
Maître ArchipelModeur
Maître ArchipelModeur
Mike89


Masculin Nombre de messages : 3151
Age : 68
Date d'inscription : 06/03/2007

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeMar 07 Sep 2010, 20:30

Citation :
Oui OBSE permet plus de choses c'est cool, c'est Bethesda qui l'a sorti pour pouvoir creer d'autres mod plus évoluées ?

Non c'est une équipe de modeurs qui a isolé des morceaux de code dans l'exécutable d'Oblivion, ce qui a permis de créer une bibliothéque de fonctions (les dll qu'on installe avec Obse)... et avec deux exécutables supplémentaires (un pour le TESCS et un pour le jeu) qui contrôlent ceux de Bethesda. Un gros boulot de programmation...
Revenir en haut Aller en bas
Selo
Spectre ArchipelModeur
Spectre ArchipelModeur
Selo


Masculin Nombre de messages : 69
Age : 28
Date d'inscription : 27/12/2009

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeMar 07 Sep 2010, 20:34

Il reste un probleme mais c'est peut-etre mon PC, Quand on tente de déplacer la maison et quel entre en collision avec un autre objet du jeu, le jeu plante (rapport d'erreur et ce genre de chose).
C'est embettant quand on veut placer un gros objet comme un mur.
Ca plente aussi si l'objet touche le sol Neutre
Revenir en haut Aller en bas
Mike89
Maître ArchipelModeur
Maître ArchipelModeur
Mike89


Masculin Nombre de messages : 3151
Age : 68
Date d'inscription : 06/03/2007

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeMer 08 Sep 2010, 20:36

Selo a écrit:
Il reste un probleme mais c'est peut-etre mon PC, Quand on tente de déplacer la maison et quel entre en collision avec un autre objet du jeu, le jeu plante (rapport d'erreur et ce genre de chose).
C'est embettant quand on veut placer un gros objet comme un mur.
Ca plente aussi si l'objet touche le sol Neutre

Il ne faut pas oublier que les statics ne sont pas faits pour être bougés. Leurs NIFs n'ont pas de collisions "rebondissantes" gérées par le Havock comme les items. En fait les statics sont ignorés par le havock (ils ne tombent pas).
Peut être qu'en changeant certains paramètres havock dans le NIF (les transformer en quasi-items...), cela résolvrai le problème.

Autre idée : entre deux mouvements, laisser quelques frames sans bouger, afin de laisser les autres collisions s'adapter...

Pourtant je n'ai pas eu ce problème pour faire bouger mes bateaux qui naviguent sur les flots et parfois heurtent le rivage, ou sur lesquels le PJ se promène.... je ne me souviens plus. Peut être un paramètre de collision du nif à changer. Je regarderai cela.
Revenir en haut Aller en bas
Selo
Spectre ArchipelModeur
Spectre ArchipelModeur
Selo


Masculin Nombre de messages : 69
Age : 28
Date d'inscription : 27/12/2009

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeMer 08 Sep 2010, 21:23

Mike89 a écrit:

Pourtant je n'ai pas eu ce problème pour faire bouger mes bateaux qui naviguent sur les flots et parfois heurtent le rivage, ou sur lesquels le PJ se promène....

Oui, c'est peut etre ma configuration, windows 7 ou quelque chose comme cela.
Pourtant je connais un mod qui permet de faire quelque choses comme ca mais ce n'est pas sur oblivion mais fallout 3 (qui est plus avancée) et le jeu ne se quitte pas sur celui-la.

Ah oui, ces objets était dans la catégorie "armure", j'essayerais demain pour voir.
Revenir en haut Aller en bas
Selo
Spectre ArchipelModeur
Spectre ArchipelModeur
Selo


Masculin Nombre de messages : 69
Age : 28
Date d'inscription : 27/12/2009

Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitimeJeu 09 Sep 2010, 19:42

J'ai trouvé la solution, les collisions ne suivent pas quand on déplace l'objet mais seulement quand on appuie sur la touche pour que l'objet ne bougent plus (P)
Revenir en haut Aller en bas
Contenu sponsorisé





Script déplacement. Empty
MessageSujet: Re: Script déplacement.   Script déplacement. Icon_minitime

Revenir en haut Aller en bas
 
Script déplacement.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Basique/Moyen] Déplacement continu d'un objet
» Script faction
» Script Up rang
» [QUESTION] Les script
» Script sur armure

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum WTeam :: Public :: Vous avez un problème avec Oblivion et ses mods ?-
Sauter vers: