Aller au contenu


(Résolu) L'Arme Est La Clé


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

#1 Dago_Bert

Dago_Bert

Posté 13 mars 2010 - 23:14

Bonjour à tous.Je travaille présentement sur Donjons5.Il y a une porte, mais je ne veux pas que la porte s'ouvre sans que le joueur ait un artefact en sa possession (c'est une arme).Si quelqu'un sait comment faire Image IPB.Merci.PS: je sais déjà comment faire pour qu'une porte s'ouvre seulement si le joueur a la clé mais je crois que c'est différent puisque cette fois-ci c'est une arme.

Modifié par Dago_Bert, 14 avril 2010 - 22:20.

http://img151.imageshack.us/img151/6506/wiwidoranim.gifWiwi d'or 2010 de l'avatar le plus moche. Nul ne peut battre le lama dans son domaine d'élégance

À la recherche de mods?  http://lorddagobert....traducteurs.fr/

#2 Kira

Kira

    Top-modeleuse...


Posté 13 mars 2010 - 23:28

Bonsoir Dago_Bert...

Voici un script simple, mais adapté à tes besoins, j'espère...

begin "Porte_bloquee"

 	if ( MenuMode == 1 )
 	return
 	endif

 	if ( OnActivate == 1 )
 	if ( Player->GetItemCount "ID_de_ton_arme" > 0 )
 	Activate
 	else
 	MessageBox "Il vous manque un élément essentiel..."
 	endif
 	endif
 end

Il suffit de l'attribuer à la porte, et elle deviendra d'une inviolabilité garantie...
Tout n'est qu'illusion... Surtout le fait de le penser.....
Image IPB
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)

#3 Dago_Bert

Dago_Bert

Posté 13 mars 2010 - 23:50

Merci Beaucoup Kira. ;)
http://img151.imageshack.us/img151/6506/wiwidoranim.gifWiwi d'or 2010 de l'avatar le plus moche. Nul ne peut battre le lama dans son domaine d'élégance

À la recherche de mods?  http://lorddagobert....traducteurs.fr/

#4 Big_Ben

Big_Ben

Posté 14 mars 2010 - 13:56

Je n'en suis pas certain, mais en ayant un script de cette forme, la porte ne vat-elle pas se rebloquer à chaque fois, obligeant le pj a garder l'arme sur lui pour la réouvrir?
Ne vaudrait 'il pas mieux rajouter une variable afin que la porte reste ouverte ?
De la forme

begin "Porte_bloquee"
short open
     if (open ==1)
     return
     endif

     if ( MenuMode == 1 )
        return
        endif

        if ( onactivate == 1 )
        if ( Player->GetItemCount "ID_de_ton_arme" > 0 )
        Activate
     Set open to 1
     else
        MessageBox "Il vous manque un élément essentiel..."
        endif
        endif
end

De cette manière la prote reste ouverte et en plus on ne fait pas tourner le script inutilement (même si c'est un tout petit script).
Si l'on tue un homme, on est un meutrier. SI l'on en tue plusieurs, on est conquérant. Mais si on les tue tous on est un Dieu.

Il n'existe que deux choses infinies, l'univers et la betise humaine... mais pour l'univers je n'ai pas de certitudes absolues. Albert Enistein.

#5 elendell

elendell

    Mécano Dell'Arte


Posté 15 mars 2010 - 00:18

Bonjour Big_Ben,

 Big_Ben, le 14 mars 2010 - 13:56, dit :

Je n'en suis pas certain, mais en ayant un script de cette forme, la porte ne vat-elle pas se rebloquer à chaque fois, obligeant le pj a garder l'arme sur lui pour la réouvrir?
Tu as raison mais Kira a fait ce qui correspond à l'énoncé de Dago_Bert car il n'a pas précisé : "Uniquement pour la première ouverture" :

 Dago_Bert, le 13 mars 2010 - 23:14, dit :

Il y a une porte, mais je ne veux pas que la porte s'ouvre sans que le joueur ait un artefact en sa possession...

A propos de ton script, il est fonctionnel mais :

 Big_Ben, le 14 mars 2010 - 13:56, dit :

     if (open ==1)
Attention, il manque 3 espaces dans cette syntaxe. La plupart du temps, cela va fonctionner mais les espaces en trop ou manquants sont générateurs de bugs aléatoires...

On peut optimiser ton script en supprimant 4 lignes. C'est évidemment ridicule pour un petit script comme celui-ci mais cela prend tout sons sens quand on regarde l'ensemble de tous les scripts dans une installation et surtout, quand on fait ensuite des scripts plus complexes et très longs, c'est presque indispensable d'être habitués à toujours optimiser au mieux tous les scripts.

Pour supprimer les 4 lignes tu peux faire comme ceci :

begin "Porte_bloquee"

short open

if ( open == 1 )
elseif ( MenuMode == 1 )
elseif ( OnActivate == 1 )
	if ( Player->GetItemCount "ID_de_ton_arme" > 0 )
		Activate
		Set open to 1
	else
		MessageBox "Il vous manque un élément essentiel..."
	endif
endif

end

Notes :

- Il n'est pas nécessaire de mettre une instruction là où je n'en n'ai pas mis car à partir du moment où une condition est vrai, il ne testera pas les "elseif" suivants du même bloc.

- On peut de la même manière supprimer 2 lignes dans le script de Kira.

#6 Big_Ben

Big_Ben

Posté 15 mars 2010 - 22:03

Okay merci pour tes précisions Elendell
C'est vrai que 4 lignes sur un script de cette taille c'est assez conséquent.
Si l'on tue un homme, on est un meutrier. SI l'on en tue plusieurs, on est conquérant. Mais si on les tue tous on est un Dieu.

Il n'existe que deux choses infinies, l'univers et la betise humaine... mais pour l'univers je n'ai pas de certitudes absolues. Albert Enistein.

#7 Dago_Bert

Dago_Bert

Posté 15 mars 2010 - 22:36

Merci à tous pour votre aide.
C'est vrai que c'est mieux avec la variable qui fait que la porte reste ouverte.
http://img151.imageshack.us/img151/6506/wiwidoranim.gifWiwi d'or 2010 de l'avatar le plus moche. Nul ne peut battre le lama dans son domaine d'élégance

À la recherche de mods?  http://lorddagobert....traducteurs.fr/




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

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