Page 1 sur 2

Script pour un menu qui change de version d'arme

Posté : 16 oct. 2010, 00:02
par Corax
Bon voilà je bosse sur un mod qui permet d'alterner entre différentes versions d'une arme via un petit menu qui apparaitrait quand on s'équipe de l'arme, mais le problème c'est que je bloque sur le script (la fenêtre du message est bien paramétré).

Je sais que le script doit donner un truc du genre:
scn nomduscript

float weaponCondition
short needequip
short button

begin OnEquip
ShowMessage bidule
endif
endif
Je suis sur que j'oublie un truc....

Re: Aide pour un script

Posté : 16 oct. 2010, 16:20
par Sylom
Bien que je ne sois pas un dieu niveau script, je vais quand même essayé de te mettre sur la bonne voie.
Pour commencer, il y a 2 variables en plus que tu dois définir :

Code : Tout sélectionner

int ChangeModeArme
short checkButtons
Pourquoi ? C'est assez simple en fait. Lorsqu'un message s'affiche, tu as les différentes options (appelées boutons) qui sont sélectionnables. Aux yeux de l'utilisateur lambda, ce sont des phrases.
Mais pour le moddeur et le jeu, ce sont des numéros. Ainsi, si tes options sont par exemple :
- Prendre la version avec lunette
- Ranger l'arme
- Lâcher une caisse
pour le jeu, la première option sera 0, la 2ème 1, etc... Il te faut donc un indicateur pour capturer ce nombre (aka le stocker une fois que l'utilisateur a cliqué pour choisir ou par erreur).

Ensuite après ton bloc OnEquip, on va rajouter un nouveau bloc : GameMode (en gros, ce qui se passe ingame... enfin je suis pas sûr, mais bon).

Code : Tout sélectionner

begin GameMode
if (checkButtons == 1)
	set ChangeModeArme to GetButtonPressed
ici, le jeu va stocker l'entier représentant le bouton activé dans ta variable ChangeModeArme. Cela va nous servir par la suite.
(Note importante : tu peux appeler la variable ChangeModeArme comme tu veux. Mais checkButtons, il est recommandé de le laisser tel quel.)
Une fois le bouton identifié, on va dire au jeu ce qu'il doit faire via des conditions "if ... else" (un peu comme en C, en Caml, etc...)

Code : Tout sélectionner

	if ChangeModeArme == 0 
		Instructions pour bouton 1
	elseif ChangeModeArme == 1
		Instructions pour bouton 2
	elseif ChangeModeArme == 2
		Instructions pour bouton 3
 etc... selon le nombre de boutons
	endif
set checkButtons to 0
endif
end
ça, c'est pour un script prédéfini pour une seule arme, en gros il n'est pas "universel" (pas applicable à toutes les versions de l'arme : il te faudra faire un clone en changeant les instructions).

Voilà, fin du script. Compile, reçois une erreur de la part du Geck, puis reviens me tirer les oreilles.

Re: Aide pour un script

Posté : 16 oct. 2010, 17:10
par Corax
Je me suis peut être mal expliqué, voilà ce que j'ai créé pour le moment:
Weapons:
WeapVSSRifle => Fusil de sniper silencieux VSS "Vintorez" Action Razor
WeapVSSRifleassault => Fusil de sniper silencieux VSS "Vintorez" Action Razor (Mode assaut)


Message:
ID: VSSvintorezselectionMSG
Title: VSS Vintorez
Message Text: Sélection du type de fusil:

Et voici les captures de la fenêtre pour chaque bouton:
0:
Image
1:
Image
2:
Image

Donc en gros il faut juste que la boite de message s'ouvre lorsqu'on sélectionne l'arme (et qu'on s'en équipe).

Re: Aide pour un script

Posté : 16 oct. 2010, 18:09
par Sylom
Je ne suis pas sûr d'avoir saisi le problème, parce qu'à vue d'oeil, ton message devrait s'afficher si tu as bien appliqué le script à ton arme.

Re: Aide pour un script

Posté : 16 oct. 2010, 18:20
par Corax
....J'ai rien compris aux scripts....

Si j'ai suivi je dois avoir ça:

scn vssscriptselection

float weaponCondition
int ChangeModeArme
short checkButtons
short needequip
short button

begin OnEquip
ShowMessage VSSvintorezselectionMSG
begin GameMode
if (checkButtons == 1)
set ChangeModeArme to GetButtonPressed
if ChangeModeArme == 0
elseif ChangeModeArme == 1
elseif ChangeModeArme == 2
endif
set checkButtons to 0
endif
end

Re: Aide pour un script

Posté : 16 oct. 2010, 18:24
par Sylom
Niet :

Code : Tout sélectionner

scn vssscriptselection

float weaponCondition
int ChangeModeArme
short checkButtons
short needequip
short button

begin OnEquip /*Ce qu'il doit faire quand tu équipes l'arme*/
ShowMessage bidule
end

begin GameMode /*Les instructions pour le message, donc pour le changement d'arme ou non */
               if (checkButtons == 1)
                  set ChangeModeArme to GetButtonPressed
                  if ChangeModeArme == 0 
              /*Et là tu remplaces par les instructions à faire si le bouton sélectionné est le 0*/
                  elseif ChangeModeArme == 1
              /*Idem mais ce coup-ci avec le bouton 1/
                 elseif ChangeModeArme == 2
           /*Bon là je suppose que tu as capté le truc */
                 endif
set checkButtons to 0
endif
end
And now ?

Re: Aide pour un script

Posté : 16 oct. 2010, 19:06
par Corax
Bon voilà le script final:

Code : Tout sélectionner

scn vssscriptselection

float weaponCondition
int ChangeModeArme
short checkButtons
short needequip
short button
short hasWeapVSSRifle
short hasWeapVSSRifleassault


begin OnEquip
	if IsActionRef player == 1
		if (player.GetItemCount WeapVSSRifle > 0)
			set hasWeapVSSRifle to 1
			else set hasWeapVSSRifle to 0
		endif

		if (player.GetItemCount WeapVSSRifleassault > 0)
			set hasWeapVSSRifleassault to 1
			else set hasWeapVSSRifleassault to 0
		endif
	 	set checkButtons to 1
		ShowMessage VSSvintorezselectionMSG
	endif
end

begin GameMode
	if (checkButtons == 1)
		set ChangeModeArme to GetButtonPressed
		if ChangeModeArme == 0 
			if hasWeapVSSRifle == 0
			player.additem WeapVSSRifle 1
			player.removeitem WeapVSSRifleassault 1
			endif
		elseif ChangeModeArme == 1
			if hasWeapVSSRifleassault == 0
			player.additem WeapVSSRifleassault 1
			player.removeitem WeapVSSRifle 1
			endif
		endif
	set checkButtons to 0
	endif
end
Le problème est que cela ne marche toujours pas!

Re: Aide pour un script

Posté : 17 oct. 2010, 00:29
par Corax
Bon finalement j'ai reussi à creer le scrip en me basant sur le mod carabine tau de Daishun. Merci à sylom pour son aide.

Re: Aide pour un script

Posté : 17 oct. 2010, 02:08
par alexh1
*Regarde les précédent posts...*

Arf... J'sais pas comment vous faites pour vous y retrouver... Content que ton problème soit réglé Corax. C'est pour quel mod?

Re: Aide pour un script

Posté : 17 oct. 2010, 09:37
par Corax
Armes Spetnaz - VSS & VAL
Plus de détails lundi.