Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

[SCRIPT] Décalage dans le temps à l'arrivée dans une carte

Répondre
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne

[SCRIPT] Décalage dans le temps à l'arrivée dans une carte

.

Message par Cocrane »

Le Charname arrive dans une carte.

Certaines créatures sont censés ne plus être là ou au contraire apparaitre.

Le script est soit lié à la map ou la créature.

J'observe en général un décalage d'une à deux secondes. Du coup, on a le temps de voir la créature avant qu'elle disparaisse.

Le moteur du jeu a trop de choses à faire? ^^
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

Ça dépend de l'emplacement de ton code de "suppression" des créatures.

Tu peux les poster pour avoir une réponse plus détaillée ? :)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Script d'une créature

DEBUT

// Gestion du compteur pour savoir si la compagnie est éliminée
IF
die()
GLOBAL("QG_GA_attaque","GLOBAL",1)
THEN
RESPONSE #100
IncrementGlobal("compteur_GA_mort","GLOBAL",1)
END

// Confrérie éliminée: il n'y a plus de mages dans la cité
IF
GLOBAL("GA_eliminee","GLOBAL",1)
!ActuallyInCombat()
THEN
RESPONSE #100
destroyself()
END

ETC...
FIN

J'ai p.e une piste, 95% de mes variables sont en mode "GLOBALE". Le moteur du jeu teste p.e beaucoup trop de variables et du coup ça le ralenti?
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

Non, ça n'a rien à voir.

Imaginons que tu veuilles supprimer le perso X présent dans la carte Y.

Quand tu entres dans la carte Y, le moteur charge toutes les données de la carte, puis applique les scripts des persos. Donc il y a forcément un moment où tu verras ce perso s'il est à portée de vue. C'est ce qui arrive à Yoshimo à la Couronne de Cuivre.

Dans ton cas, utilise une variable globale "TousMorts", puis ajoute au début du script de la carte Y :

Code : Tout sélectionner

IF
  Global("TousMorts","GLOBAL",1)
  Global("TousMorts","Y",0)
THEN
  RESPONSE #100
    ActionOverride("X",DestroySelf())
    SetGlobal ("TousMorts",Y",1)
END
Normalement, le script est lancé au moment où la carte est chargée et tu ne devrais pas voir la créature disparaitre.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Si j'utilise le code avec la variable tous morts, le destroyself() va provoquer la mort d'une seule créature parmi celles qui portent ce nom.

Si on enlève SetGlobal ("TousMorts",Y",1), le block va tourner en boucle et là je pense que toutes les créatures vont disparaitre. Mais on aura un bou de script qui tourne en continu.

Autre possibilité:
on arrive sur la carte
écran noir pendant deux secondes, le temps de permettre au jeu de traiter tous les scripts créatures.
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

Tu as essayé avec deux créatures portant la même variable de mort (Death variable) ?
Avec le bloc de script au tout début du script de la carte.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Oui.

En général, j'ai deux cas:
- il y a une créature de BG1 que je ne veux plus voir lorsque l'on joue à mon mod (cas d'un joueur qui joue à mon mod avec sans rejouer tout BG1)
- membres de la compagnie de mercenaires où la compagnie est éliminée au global. Les survivants ont quitté les différentes cartes où ils étaient.

Dans les deux cas, en général j'ai le temps de les voir. ^^

L'écran noir en cas d'init (suppression des créatures de BG1) me parait une bonne solution.
Répondre

Retourner vers « Scripts »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité