Aller au contenu


2 Script Qui Bug, Heure, Journal Et Dodo Et Heure


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

#1 chef

chef

Posté 23 juin 2006 - 10:49

Bon, maitenant que j ai découvert comment fonctionnais les heures ( :yahoo: ) voici deux script (qui ne marche pas, bien entendu...)...


begin B_B_st_forgeron_disable

if ( GetJournalIndex "B_B_forgeron" != 3 )
if ( GameHour >= 20 )
if ( GameHour <= 7 )

B_B_npc_forgeron->disable

endif
endif
endif


end

Enfaite, quand j'entre dans la cell, on me dis que il y a un probleme d'expression, et un right eval, ou un truc comme sa... Mais je ne sais pas pourquoi...

Le 2eme,

Il est sensé réveiller le joureur entre certaine heures, quand il dort (logique, puisque on le reveille...)

begin B_B_st_reveil_forgeron


if ( GetPcSleep == 1 )
if ( GameHour >= 23 )
if ( GameHour <= 2 )


MessageBox "Un bruit étrange vous réveille..." "Ok"
WakeUpPc

B_B_forgeron_voleur1->enable
B_B_forgeron_voleur2->enable
B_B_forgeron_voleur3->enable


endif
endif
endif

end

Seuolement, a l'heure voulue, il n'apparaissent pas...

Je préviens, que avant d'entré, ils ont été disablé...

Quelqu'un pourrait m'aider ?
merci !

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#2 TylerD

TylerD

Posté 23 juin 2006 - 10:53

Tu te serais pas encore gourré dans les signes ? On a respectivement :
superieur ou egale a 20 et inferieur ou egale a 7
superieur ou egale a 23 et inferieur ou egale a 2

Enfin ca aiderait si tu donnais les heures auxquelles tu souhaiterais que ton script marche

Peut etre vu que il n'y a pas la commande || comme dans le tescs 2 il te faut faire deux fois une condition semblable du genre :

begin B_B_st_reveil_forgeron

if ( GetPcSleep == 1 )
		if ( GameHour >= 23 )
			   MessageBox "Un bruit étrange vous réveille..." "Ok"
			   WakeUpPc
			   B_B_forgeron_voleur1->enable
			   B_B_forgeron_voleur2->enable
			   B_B_forgeron_voleur3->enable
		endif
		if ( GameHour <= 2 )
			   MessageBox "Un bruit étrange vous réveille..." "Ok"
			   WakeUpPc
			   B_B_forgeron_voleur1->enable
			   B_B_forgeron_voleur2->enable
			   B_B_forgeron_voleur3->enable
		endif
endif
end

Modifié par TylerD, 23 juin 2006 - 11:28.

Champion(s) de Cyrodiil - Les evenements d'Oblivion sous un autre angle.

Profil RP

Membre du clan des Fervents Partisans de l'Immuabilité Avatarienne!

#3 chef

chef

Posté 23 juin 2006 - 10:57

ah, c es juste, (je pense)
Je veux que le forgeron disparaisse entre 20 heure du soire et 7 heure du mat, et que les voleur apparraissent entre 23 heure et 2 h...

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#4 TylerD

TylerD

Posté 23 juin 2006 - 10:59

Donc regarde l'edition de mon post et fais de meme pour le premier script ca marchera peut etre
Champion(s) de Cyrodiil - Les evenements d'Oblivion sous un autre angle.

Profil RP

Membre du clan des Fervents Partisans de l'Immuabilité Avatarienne!

#5 chef

chef

Posté 23 juin 2006 - 11:13

SUPER ! le 2eme script fonctionne ! merci beacoup ! maitenant, il me reste le probleme du premier...

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#6 TylerD

TylerD

Posté 23 juin 2006 - 11:22

Tu fais la meme chose a savoir :
begin B_B_st_forgeron_disable

if ( GetJournalIndex "B_B_forgeron" != 3 )
		if ( GameHour >= 20 )
				 B_B_npc_forgeron->disable
		endif
		if ( GameHour <= 7 )
				 B_B_npc_forgeron->disable
		endif
endif

end

C'est meme plus simple comme ca

Edit : J'edite mon post au dessus pour faire un script plus court

Modifié par TylerD, 23 juin 2006 - 11:25.

Champion(s) de Cyrodiil - Les evenements d'Oblivion sous un autre angle.

Profil RP

Membre du clan des Fervents Partisans de l'Immuabilité Avatarienne!

#7 chef

chef

Posté 23 juin 2006 - 11:27

Sa ne marche pas... (j'ai essaier ton script, mais juste avant, j avais fait pareille, et sa marchais pas non plus) il me dis toujours que il y a un probleme d expression dans se script, et que y a un truc "right eval" ou quelque chose comme sa...

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#8 TylerD

TylerD

Posté 23 juin 2006 - 11:35

Si probleme d'expression il y a et que le second script marche desormais c'est donc dans cette ligne que se trouve l'erreur :
if ( GetJournalIndex "B_B_forgeron" != 3 )


mais la je passe la main a des gens qui conaissent mieux le premier tescs que moi

Essaye de mettre une messagebox pour voir si elle s'affiche en la placant juste apres la ligne Getjournal index . Essaye aussi d'utiliser <= ou >= au lieu de != il accepte peut etre pas "different de" dans ce cas la . Si c'est pas ca je vois pas

Modifié par TylerD, 23 juin 2006 - 11:41.

Champion(s) de Cyrodiil - Les evenements d'Oblivion sous un autre angle.

Profil RP

Membre du clan des Fervents Partisans de l'Immuabilité Avatarienne!

#9 chef

chef

Posté 23 juin 2006 - 16:25

Merci pour tout se que tu as deja fait  :green:

Bon, voila se que donne le script au final :

begin B_B_st_forgeron_disable

if ( GetJournalIndex "B_B_forgeron" != 3 )
if ( GameHour >= 20 )
B_B_npc_forgeron->disable
endif
if ( GameHour <= 7 )
B_B_npc_forgeron->disable
endif
endif

end

Mais, la ligne "if ( GetJournalIndex "B_B_forgeron" != 3 )" pose problème un problème d'expression toujours...
Quelqu'un peut m'aider ? Quand je met la ligne et son endif en commantaire, le script fonctionne...
merci

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#10 TylerD

TylerD

Posté 23 juin 2006 - 16:28

tu as vu mon edit precedent ? J'avais supposé qqs trucs
Champion(s) de Cyrodiil - Les evenements d'Oblivion sous un autre angle.

Profil RP

Membre du clan des Fervents Partisans de l'Immuabilité Avatarienne!

#11 chef

chef

Posté 23 juin 2006 - 16:41

Oui oui, je l'ai vu, mais il ne marche pas, il me dis toujours cette fichue erreur d'expression  :green:

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#12 Nerwal

Nerwal

    SAMU Kalendaarien


Posté 23 juin 2006 - 16:42

Bonjour :green:

Citation

Mais, la ligne "if ( GetJournalIndex "B_B_forgeron" != 3 )" pose problème un problème d'expression toujours...
Quelqu'un peut m'aider ? Quand je met la ligne et son endif en commantaire, le script fonctionne...

Vérifier que l'entrée de journal existe bien d'abord.

Ensuite on peut récrire la condition différemment :

begin B_B_st_forgeron_disable

if ( GetJournalIndex "B_B_forgeron" == 3 )
   return
endif

if ( GameHour >= 20 )
B_B_npc_forgeron->disable
endif
if ( GameHour <= 7 )
B_B_npc_forgeron->disable
endif


end

(note : ca manque un peu de getdisabled, aussi)

#13 chef

chef

Posté 23 juin 2006 - 17:11

Je vais tester sa...




EDIT :

Sa ne marche pas...

Script error : EXPRESSION in B_B_st_forgeron_disable.
Continue runnig executable ?

ensuite :

Left eval.

Continue runnig executable ?


Voila les deux message d'erreur...

Modifié par chef, 23 juin 2006 - 17:17.

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#14 dededos

dededos

Posté 23 juin 2006 - 17:15

Sans apporter de modifications de script, je vais mettre ma petite contribution a ce topic :

J'ai eu, pour un mod, tres souvent besoin de Disable, donc j'ai crée beaucoup de script dans ce style. Et alors que le script parraissait tout a fait correcte a l'ecriture, il buguait ingame.

Et il me semble que c'etait pareil : un probleme d'expression avec une entrée journal.

J'avais réussi a contourner le probleme en procédant de la sorte :

A chaque fois que dans je mettais a jour le journal avec une entrée ( dans la case Result d'un dialogue, par exemple ) je changeais aussi la valeur d'une variable globale, et donc je remplacais dans le script la condition de l'index du journal, par la condition sur la valeur de la variable globale. ( j'espere que c'est assez clair... )

Et curieusement, ca marchait.

Donc je ne sais pas si c'est le meme probleme, mais c'est peut etre une solution a essayer.  :mosc:

Je sais c'est inexplicable, mais pour moi ca avait fonctionné. :|

Bon courage sinon pour la solution !  :green:
"Wrong, Do it again!"
"If you don't eat yer meat, you can't have any pudding. How can you have any pudding if you don't eat yer meat?"
"You! Yes, you behind the bikesheds, stand still laddy!"

--------------------

Membre des Fervents Partisans de l'Immuabilité Avatarienne!

#15 chef

chef

Posté 23 juin 2006 - 17:29

Merci infiniment Dededos :green:

J'avais déjà essaier de contourné le script sans mettre le journal, et j'avais tenter de verouiller les porte quand il etais pas la, mais les fermeture bugait,e t lui aussi d'ailleur, mais maitenant sa marche, enfin, presque, le forgerons ne réapparrait pas, donc, je dois placé enable quelque part...

begin B_B_st_forgeron_disable

if ( B_B_disable_forgeron == 1 )
return
endif

if ( GameHour >= 20 )
B_B_npc_forgeron->disable
endif
if ( GameHour <= 7 )
B_B_npc_forgeron->disable
endif


if ( GameHour >= 7 )
B_B_npc_forgeron->enable
endif
if ( GameHour <= 20 )
B_B_npc_forgeron->enable
endif


end

Avec ceci, le nuit, il apparrait constament et disparait... Donc, il repette tout le temps "bonjour, que voulez vous, bonjour"...
et si je l'attaque, il sort sa hache, disaparait, apparrait, la resort, disaprait...

Donc, y a un probleme, me serais-je encore planté dans les signes ?

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#16 dededos

dededos

Posté 23 juin 2006 - 17:41

Moi j'aurais mis ce script la, mais ca fait longtemps que je n'ai pas scripter, donc je ne saurais etre sur...  :mosc:


begin B_B_st_forgeron_disable

if ( B_B_disable_forgeron == 1 )
return
endif

if ( Gamehour <= 7 )
B_B_npc_forgeron->disable
elseif ( Gamehour >= 20 )
B_B_npc_forgeron->disable
else
B_B_npc_forgeron->enable
endif


end


Edit : orthographe

Re-edit : en gros la meme chose que Nerwal, mais chez moi en beaucoup moins propre. :green:

Modifié par dededos, 23 juin 2006 - 17:44.

"Wrong, Do it again!"
"If you don't eat yer meat, you can't have any pudding. How can you have any pudding if you don't eat yer meat?"
"You! Yes, you behind the bikesheds, stand still laddy!"

--------------------

Membre des Fervents Partisans de l'Immuabilité Avatarienne!

#17 Nerwal

Nerwal

    SAMU Kalendaarien


Posté 23 juin 2006 - 17:42

begin B_B_st_forgeron_disable

if ( B_B_disable_forgeron == 1 )
return
endif

if ( GameHour <= 7 )
   if ( B_B_npc_forgeron->getdisabled == 0 )
	   B_B_npc_forgeron->disable
   endif

elseif ( GameHour >= 20 )
	if ( B_B_npc_forgeron->getdisabled == 0 )
	   B_B_npc_forgeron->disable
	endif

else
	if ( B_B_npc_forgeron->getdisabled == 1 )
	   B_B_npc_forgeron->enable
	endif
endif

end

Edit : bah grillé :green:
Même script que celui de dededos, avec des getdisabled

#18 chef

chef

Posté 23 juin 2006 - 18:16

Super les gas !  :green:  merci, sa marche  :mosc:

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill





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

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