Présentation et problème de mon Mod - BtbA

Tous les mods maisons en cours de développement par les moddeurs de la confrérie.
Répondre
Avatar du membre
BtbA
Moddeur aspirant
Moddeur aspirant
Messages : 3

Présentation et problème de mon Mod - BtbA

Message par BtbA »

Bonjour a tous.

Je travaille sur un Mod pour Fallout New Vegas qui ajouterait des armes et des munitions à fabriquer sur un établit, ainsi que des objets permettant de les fabriquer.
Mes travaux se font en majorité sur le G.E.C.K, j'ai Gimp pour les images (qui va bien) et Blender pour la 3D mais je ne touche pas aux Meshes et Textures, je me contente de copier(/voler :z: ...) ce que je trouve. Chaque chose en son temps ! ^^

Je "maîtrise" (je ne parle pas des Cellule extérieur/intérieur) plutôt bien le G.E.C.K, j'ai pu créer tous ce que j'avais en tête et je suis content du résultat, bien qu'il reste encore beaucoup de travail (quand j'ai commencé, j'étais partit pour faire 8 munitions et 20/30 armes. Pour l'heure, j'ai 30 munitions et je prévois presque 300 armes sur papier....).
Je prévois ensuite de répartir à travers le monde de Fallout Nv plusieurs choses (des Pnjs, une petite histoire avec un gros Méchant..) en rapport avec les armes et leurs munitions.
Mon but ultime sera ensuite de savoir créer les extérieurs dans lesquelles je mettrais mes Mods...

Mais bon, j'en suis encore loin =) et j'ai un problème:

Certaines de mes armes peuvent être chargées de plusieurs types de munitions. Un fusil laser peut mettre les "munitions souche (énergie)", les "munitions lasers" et les "munitions lasers explosives". :D Quand le fusil est chargé d'une munition, son projectile change puisque mes munitions ont chacune un projectile qu’hérite mon arme. (Sauf les munitions souche que je laisse sans projectile pour que celui de l'arme opère.)
Jusque la, tout va bien. Mais je fait aussi des armes avec des tirs de projectile "unique", que seul cette arme avec cette munition aura. Par ex, un Minigun électrique, tirant les mêmes munitions électriques que les autres armes utilisant ces munitions mais avec un projectile différent (type Canon Tesla, sa fait une chaîne d'éclairs :p)

Etant donné que mes armes hérites des projectiles de mes munitions, j'ai donc pensé faire un Script à mettre sur l'arme, lui disant "quand tu mets cette munition, tu lui mets ce projectile".
En script, je jongle entre GetWeaponAmmo (pour lui dire "Cette munition") et SetWeaponProjectile (pour lui dire "Mets ce projectile"), j'ai essayai de mettre GetPlayerCurrentAmmo à la place de GetWeaponAmmo, j'ai essayai de comprendre le système de mettre "ref rAmmo" avant le Begin (sans succès).
Dans tous les cas, impossible de sauvegarder mon Script ! Mais comme j'y vais a l'aveugle, sans connaissance de base...

Mon Script (la meilleure version selon moi):

*************************
scn 0BtbAScriptWpnProjSpecialGatElec

Begin GameMode

If GetWeaponAmmo 0BtbAMunElec
SetWeaponProjectile 0BtbAProjWpnGatElec

EndIf
end
*************************

Alors voila, je ne vous demande pas de trop cogité sur mon problème tout de suite (sauf si c'est évident au premier coup d’œil xD). J'ai le temps, rien ne presse. Je désire avant tout voir votre section Tuto et apprendre déjà tous ce que je peux. Si mon problème persiste, je reviendrai vous voir mais en sachant un peu plus de quoi je parle ^^

Voila, sa fait *que* 3 semaines que je me suis mis au modding pour Fallout, je pense qu'une version finalisé sera prête d'ici la fin de l'été, le boulot qu'il me reste est déjà tout planifié sur .txt, y'a plus qu'à !

Je prépare un autre pavé a vous envoyer en Mp pour les détails de mon futur Mod (pour ceux que sa intéressent :) ).
Et merci a ceux qui ont pris le temps de lire ce pavé! (j’espère sans trop de faute... Je ne voudrais pas abîmer des œil xD)
Je cultive la paresse et récolte la sagesse.
Avatar du membre
A .
Administrateur | Traducteur aguerri | Moddeur en herbe
Administrateur | Traducteur aguerri | Moddeur en herbe
Messages : 5582

Re: Présentation et problème de mon Mod - BtbA

Message par A . »

Bon déjà tu es passé par le site du Geck, donc c'est pas mal :p

Il te manque une notion de base effectivement.
Ref rAmmo c'est une déclaration de variable. Tu dis au script : « alors voilà, y'a une variable de type référence, et elle s'appelle rAmmo ». On déclare les variables avant les blocs.

Dans l'exemple :

Code : Tout sélectionner

ref rAmmo
(ici normalement, un Begin de bloc GameMode ou n'importe quoi de cohérent)
set rAmmo to GetWeaponAmmo Weap10mmPistol
- tu déclares la variable
- tu dis « donner à la variable rAmmo la valeur de la munition du pitolet 10 mm

Ensuite tu vas avoir besoin d'un truc du style GetIsID (http://geck.bethsoft.com/index.php?title=GetIsID) qui va te permettre de sortir « le nom » donné à ta munition

Code : Tout sélectionner

If rAmmo.GetIsID TonTypedeMunition001 == 1
  Set TonArme.SetWeaponProjectile to TonTypedeProjectile001

ElseIf rAmmo.GetIsID TonTypedeMunition002 == 1
etc.

EndIf
Là il te manques des choses au préalable encore, il te faut encore une fonction en amont qui va prendre la référence de ton arme (un truc genre GetEquippedWeapon), pour la ranger dans une variable de type référence, pour pouvoir l'appeler ! Ici c'est « TonArme » la-dite variable.


Je pense que ce n'est pas trop compliqué, c'est juste que tu cherches à aller un peu vite dans les étapes :)

Tu creuses un peu, test le GetIsID (normalement devrait fonctionner dans ce cas là mais ça fait longtemps que je n'ai pas scripté), et tu repostes ton nouveau code ^^
Avatar du membre
BtbA
Moddeur aspirant
Moddeur aspirant
Messages : 3

Re: Présentation et problème de mon Mod - BtbA

Message par BtbA »

Merci A., tu m'as aidé à comprendre :honneur: je tournais autour depuis un moment sans mettre le doigt dessus xD

Bon, je n'ai toujours pas réussis à sauvegarder mon scripts mais je suis a peu près sur de la syntaxe de mes lignes, mise à part une.


Mon code: (mon script est un script objet)

scn 0BtbAScriptWpnProjSpecialGatElec

ref rWeapon
ref rAmmo

Begin GameMode

set rWeapon to PlayerRef.GetEquippedObject 5
set rAmmo to GetWeaponAmmo 0BtbAWpnGatElec03 ; (l'ID de mon arme)

If rWeapon.GetIsID 0BtbAWpnGatElec03 == 1 ; (l'ID de mon arme)
If rAmmo.GetIsID 0BtbAMunElec == 1 ; (l'ID de ma munition)
Set rWeapon.SetWeaponProjectile to 0BtbAProjWpnGatElec ; (l'ID de mon nouveau projectile)

endif
EndIf
End


La fonction GetEquippedObject parait la plus approprié pour mettre rWeapon. Le numéro "5" en fin de ligne renvoi a une arme (c'est le Slot ID). Si j'ai bien compris, "PlayerRef" pour cibler le joueur, cette commande est déjà référencée par le Geck. Pas besoin de l'appeler avant le bloc type donc.

J'ai cherché ensuite à mettre une référence pour le projectile, j'ai remplacé "GetWeaponAmmo' par "GetPlayerCurrentAmmo" qui a l'air adéquat, j'ai changé la syntaxe de "SetWeaponProjectile" (trouvée sur un forum anglais):


scn 0BtbAScriptWpnProjSpecialGatElec

ref rWeapon
ref rAmmo
ref rProj

Begin GameMode

set rWeapon to PlayerRef.GetEquippedObject 5
set rAmmo to GetPlayerCurrentAmmo
set rProj to GetWeaponProjectile 0BtbAProjWpnGatElec

If rWeapon.GetIsID 0BtbAWpnGatElec03 == 1
If rAmmo.GetPlayerCurrentAmmo 0BtbAMunElec == 1
Set rWeapon.SetWeaponProjectile rProj to rAmmo

endIf
EndIf
end


Je me suis demandé si le bloc type "GameMode" était le bon, il y en a un qui s'appelle "OnEquip" et parait plutôt bien (vu son nom) mais je n'ai pas compris les explications sur le site du Geck pour ce bloc type.
La fonction "SetWeaponProjectile" n'est pas claire non plus, sur le site du Geck, la syntaxe est tel que tu l'as donné A., mais plusieurs sujets de forum sortent plusieurs syntaxes différentes.
J'ai souvent vu, toujours sur le site du Geck, que les fonctions sont dispo pour TESO4 (Skyrim) ou OBSE (Oblivion) sans préciser quoi que ce soit de FOSE ou NVSE. Ces fonctions fonctionnent elles uniquement pour ces jeux ou n'est-ce juste pas précisé qu'elles fonctionnent également pour Fallout?

Donc voilà, j'ai avancé dans mon apprentissage mais toujours sans aucun résultat (puisque pas de sauvegarde ^^). Je ne vois pas quoi rajouté au script, je vais finir par les connaitre par cœur à force de parcourir les différentes fonctions xD
Mais je continu mes recherches, je ne dois pas être bien loin du but :)
Je cultive la paresse et récolte la sagesse.
Répondre

Retourner vers « En cours de développement »