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é...
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] Immobilité PC pendant une animation
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
[SCRIPT] Immobilité PC pendant une animation
.
Le groupe se retrouvera téléporté dans une autre carte.
Au départ de la carte, je lance l'animation de téléportation sur chaque créature.
Idem lorsque l'on arrive sur l'autre carte.
Le hic, c'est que les créatures peuvent bouger pendant l'animation qui dure quelques secondes.
Je pensais faire un CUTSCENE pour gérer le changement de carte.
Avez-vous un moyen plus simple?
Une CUTSCENE où les créatures changent de carte, ça fonctionne?
Cocrane
Au départ de la carte, je lance l'animation de téléportation sur chaque créature.
Idem lorsque l'on arrive sur l'autre carte.
Le hic, c'est que les créatures peuvent bouger pendant l'animation qui dure quelques secondes.
Je pensais faire un CUTSCENE pour gérer le changement de carte.
Avez-vous un moyen plus simple?
Une CUTSCENE où les créatures changent de carte, ça fonctionne?
Cocrane
- 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
.
Yep !
Exemple tiré de la téléportation de mon groupe dans le Royaume de Diamant Éternel :
Tu peux changer LeaveAreaLUAEntry("GW0000","Entry1",[0.0],4) par LeaveAreaLUA("GW0000","",[x.y],4)) avec [x.y] comme coordonnées.
Tu peux même zapper le second bloc
qui ne sert qu'à afficher un textscreen avant la téléportation dans l'autre carte.
Exemple tiré de la téléportation de mon groupe dans le Royaume de Diamant Éternel :
Code : Tout sélectionner
IF
tes conditions
THEN
RESPONSE #100
ClearAllActions()
SetInterrupt(FALSE)
SmallWait(5)
StartCutSceneMode()
CutSceneId(Player1)
CreateVisualEffectObject("SPPORTAL",Player1)
CreateVisualEffectObject("SPPORTAL",Player2)
CreateVisualEffectObject("SPPORTAL",Player3)
CreateVisualEffectObject("SPPORTAL",Player4)
CreateVisualEffectObject("SPPORTAL",Player5)
CreateVisualEffectObject("SPPORTAL",Player6)
Wait(2)
FadeToColor([30.0],0)
Wait(1)
EndCutSceneMode()
TextScreen("GWChap01")
SmallWait(1)
StartCutSceneMode()
CutSceneId(Player1)
LeaveAreaLUAPanicEntry("GW0000","Entry1",[0.0],4)
LeaveAreaLUAEntry("GW0000","Entry1",[0.0],4)
ActionOverride(Player2,LeaveAreaLUAEntry("GW0000","Entry1",[0.0],4))
ActionOverride(Player3,LeaveAreaLUAEntry("GW0000","Entry1",[0.0],4))
ActionOverride(Player4,LeaveAreaLUAEntry("GW0000","Entry1",[0.0],4))
ActionOverride(Player5,LeaveAreaLUAEntry("GW0000","Entry1",[0.0],4))
ActionOverride(Player6,LeaveAreaLUAEntry("GW0000","Entry1",[0.0],4))
Wait(1)
MultiPlayerSync()
SetInterrupt(TRUE)
FadeFromColor([30.0],0)
Wait(1)
EndCutSceneMode()
END
Tu peux même zapper le second bloc
Code : Tout sélectionner
EndCutSceneMode()
TextScreen("GWChap01")
SmallWait(1)
StartCutSceneMode()
CutSceneId(Player1)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Ok, donc un changement de carte peut se faire dans un CUTSCENE.
Pour le changement de carte, je me contente en général du mot clé LeaveAreaLUA où je signale la coordonnée d'arrivée.
Je vois qu'avec
LeaveAreaLUAPanicEntry("GW0000","Entry1",[0.0],4)
LeaveAreaLUAEntry("GW0000","Entry1",[0.0],4)
On arrive sur l'entrée spécifiée de la carte d'arrivée.
J'ai raté quelque chose?
Cocrane
Pour le changement de carte, je me contente en général du mot clé LeaveAreaLUA où je signale la coordonnée d'arrivée.
Je vois qu'avec
LeaveAreaLUAPanicEntry("GW0000","Entry1",[0.0],4)
LeaveAreaLUAEntry("GW0000","Entry1",[0.0],4)
On arrive sur l'entrée spécifiée de la carte d'arrivée.
J'ai raté quelque chose?
Cocrane
- 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
.
Non, c'est la raison pour laquelle je t'ai indiqué les deux solutions. Si tu privilégies la version avec Entry, n'oublie-pas d'inclure ceci dans ton tp2 :
Code : Tout sélectionner
APPEND ~ENTRIES.2DA~ ~GW0000 1720.2676 * * * * * * * *~ UNLESS ~GW0000~
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Ok pour le APPEND.
La version sans me plait bien.
Le groupe n'est pas obligé d'être rassemblé. Si une personne arrive sur le Trigger, il est téléporté. Si un 2nd arrive, idem.
> Ca fonctionne bien
J'ai essayé de tester la présence des PLAYERS pour télécharger ceux qui sont sur la zone en une seule fois. Du coup, j'ai fragmenté la Cutscène en plusieurs tests successifs pour mais seul le premier test se déclenche.
Cocrane
La version sans me plait bien.
Le groupe n'est pas obligé d'être rassemblé. Si une personne arrive sur le Trigger, il est téléporté. Si un 2nd arrive, idem.
> Ca fonctionne bien
J'ai essayé de tester la présence des PLAYERS pour télécharger ceux qui sont sur la zone en une seule fois. Du coup, j'ai fragmenté la Cutscène en plusieurs tests successifs pour mais seul le premier test se déclenche.
Résultat: CUTSCENE lancée mais plus rien ne se passe ensuite.// Début Cutscene
IF
Range([PC],3)
THEN
RESPONSE #100
Createcreature("MINSC",[-1.-1],10) // temoin
ClearAllActions()
//SetInterrupt(FALSE)
SmallWait(5)
StartCutSceneMode()
CutSceneId(LastTrigger)
FadeToColor([30.0],0)
SetGlobal("COM021_CS","COM021",1)
Continue()
END
// Gestion Player1
IF
Global("COM021_CS","COM021",1)
Global("COM021_P1","COM021",0)
Range(PLAYER1,3)
THEN
RESPONSE #100
SetGlobal("COM021_P1","COM021",1)
CreateVisualEffectObject("SPPORTAL",PLAYER1)
SmallWait(5)
ActionOvErride(LastTrigger,LeaveAreaLUA("COM023","",[1400.700],10))
Continue()
END
// Gestion Player2
IF
Global("COM021_CS","COM021",1)
Global("COM021_P2","COM021",0)
Range(PLAYER2,3)
THEN
RESPONSE #100
SetGlobal("COM021_P2","COM021",1)
CreateVisualEffectObject("SPPORTAL",PLAYER2)
SmallWait(5)
ActionOvErride(LastTrigger,LeaveAreaLUA("COM023","",[1400.700],10))
Continue()
END
// Fin Cutscene
IF
Global("COM021_CS","COM021",1)
THEN
RESPONSE #100
Wait(4)
SetGlobal("COM021_CS","COM021",0)
//SetInterrupt(TRUE)
FadeFromColor([30.0],0)
Wait(1)
EndCutSceneMode()
Createcreature("MINSC",[-1.-1],10) // temoin
END
Cocrane
- deratiseur
- Golem de fer
- Messages : 3714
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
.
Et l'effet 165 "pause target" ? je l'utilise pour un objet qui fait arrêt du temps affectant aussi le lanceur, et il est utilisé à la base une seconde lors du lancement de "mains ardentes".
Tu pourrais affecter tes personnage avec un sort qui utilise cet effet pendant que le reste de l'animation est joué autour d'eux.
Tu pourrais affecter tes personnage avec un sort qui utilise cet effet pendant que le reste de l'animation est joué autour d'eux.
- 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
.
Coco, tu peux expliquer en détail ce qui se passe. Exemple : player1 passe sur le trigger, est téléporté dans la carte suivante. Quelle carte affiche le jeu ? Que se passe-t-il quand tu sélectionnes un autre perso (tu reviens sur la carte initiale ou pas), etc...
Par ailleurs, est-ce vraiment utile que tu sépares ton groupe pour ton scénario ? Si non, tu te compliques singulièrement la vie.
Par ailleurs, est-ce vraiment utile que tu sépares ton groupe pour ton scénario ? Si non, tu te compliques singulièrement la vie.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Freddy,
seul le 1ier block du trigger se déclenche, soit:
[HTML]IF
Range([PC],3)
THEN
RESPONSE #100
Createcreature("MINSC",[-1.-1],10) // temoin
ClearAllActions()
//SetInterrupt(FALSE)
SmallWait(5)
StartCutSceneMode()
CutSceneId(LastTrigger)
FadeToColor([30.0],0)
SetGlobal("COM021_CS","COM021",1)
Continue()
END[/HTML]
Au bou d'un moment, l'écran n'est plus noir, les PNJ sont tj sur la carte d'origine et on est bloqué en mode Cutscene.
A voir, si c'est différent avec le code dans le script de la carte.
Ce n'est pas indispensable au niveau scénario mais c'est plus sympa. Donc je tente et je m'adapterai si je ne trouve pas.
Cocrane
seul le 1ier block du trigger se déclenche, soit:
[HTML]IF
Range([PC],3)
THEN
RESPONSE #100
Createcreature("MINSC",[-1.-1],10) // temoin
ClearAllActions()
//SetInterrupt(FALSE)
SmallWait(5)
StartCutSceneMode()
CutSceneId(LastTrigger)
FadeToColor([30.0],0)
SetGlobal("COM021_CS","COM021",1)
Continue()
END[/HTML]
Au bou d'un moment, l'écran n'est plus noir, les PNJ sont tj sur la carte d'origine et on est bloqué en mode Cutscene.
A voir, si c'est différent avec le code dans le script de la carte.
Ce n'est pas indispensable au niveau scénario mais c'est plus sympa. Donc je tente et je m'adapterai si je ne trouve pas.
Cocrane
- 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
.
Ça me semble normal puisque tu lances un CutScenemode sans le fermer.
Puisque tu crées MINSC comme un test, oublie-le.
Puis lance tes autres blocs avec Global("COM021_CS","COM021",1).
Puisque tu crées MINSC comme un test, oublie-le.
Code : Tout sélectionner
IF
Range([PC],3)
THEN
RESPONSE #100
SetGlobal("COM021_CS","COM021",1)
Continue()
END
Code : Tout sélectionner
// Gestion Player1
IF
Global("COM021_CS","COM021",1)
Global("COM021_P1","COM021",0) // Pas sûr que ce soit très utile à l'usage.
Range(PLAYER1,3)
THEN
RESPONSE #100
SetGlobal("COM021_P1","COM021",1) // id.
SetInterrupt(FALSE)
SmallWait(5)
StartCutSceneMode()
CutSceneId(Player1)
CreateVisualEffectObject("SPPORTAL",Player1)
Wait(2)
FadeToColor([30.0],0)
Wait(1)
LeaveAreaLUAPanicEntry("GW0000","Entry1",[0.0],4)
LeaveAreaLUAEntry("GW0000","Entry1",[0.0],4)
Wait(1)
SetInterrupt(TRUE)
FadeFromColor([30.0],0)
Wait(1)
EndCutSceneMode()
END
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
- deratiseur
- Golem de fer
- Messages : 3714
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
.
Cocrane, l'effet pause à une durée que tu configure comme tu veux. Donc oui, tu peut "pauser" le personnage, le déplacer par script ou tu veux, et si tu peux qu'il recommence à bouger, cale la pause pour qu'elle soit arrêtée pile à ce moment. Si tu veux qu'il ne bouge toujours pas, cale la pause plus longue.
heu, ça fait 2 sujets traités différemment sur le même topic
ps : c'est la qu'on voit que je suis toujours aussi nul en coding -> j'utilise des solutions plus simpliste
heu, ça fait 2 sujets traités différemment sur le même topic
ps : c'est la qu'on voit que je suis toujours aussi nul en coding -> j'utilise des solutions plus simpliste
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Salut Dérat,
que dire de quelqu'un qui est nul et dont l'idée est visiblement la meilleure.
L'avantage de ton idée est qu'il n'y a pas de Cutscène et que les autres personnages peuvent du coup vivre leurs vies. Ainsi les créatures sont déplacées selon leur présence à proximité du trigger déclenché.
J'ai commencé à tester l'idée hier et je viens de trouver un paramétrage qui me convient. Le sort lance:
- la pause
- l'animation
- le changement de carte (via un script déclenché avec l'effet changement de l'IA Script)
J'ai eu des difficultés avec la gestion de la zone pour faire téléporter l'ensemble des présents. (d'où le passage du script déplacement dans le sort lui même)
Je suis parti sur l'exemple du sort Boule de feu pour le paramétrage de la zone d'effet. Si je retire l'animation de la boule, une seule créature subit l'effet. Si je mets une animation comme celle de la dissipation de magie, l'effet de groupe "remarche".
Je ne capte pas la nécessité d'avoir une animation de zone. :-) Mais ce n'est pas bloquant.
En gros, ta solution me plait et ça marche.
Cocrane
que dire de quelqu'un qui est nul et dont l'idée est visiblement la meilleure.
L'avantage de ton idée est qu'il n'y a pas de Cutscène et que les autres personnages peuvent du coup vivre leurs vies. Ainsi les créatures sont déplacées selon leur présence à proximité du trigger déclenché.
J'ai commencé à tester l'idée hier et je viens de trouver un paramétrage qui me convient. Le sort lance:
- la pause
- l'animation
- le changement de carte (via un script déclenché avec l'effet changement de l'IA Script)
J'ai eu des difficultés avec la gestion de la zone pour faire téléporter l'ensemble des présents. (d'où le passage du script déplacement dans le sort lui même)
Je suis parti sur l'exemple du sort Boule de feu pour le paramétrage de la zone d'effet. Si je retire l'animation de la boule, une seule créature subit l'effet. Si je mets une animation comme celle de la dissipation de magie, l'effet de groupe "remarche".
Je ne capte pas la nécessité d'avoir une animation de zone. :-) Mais ce n'est pas bloquant.
En gros, ta solution me plait et ça marche.
Cocrane
- 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
.
Fais attention à la gestion des persos sur plusieurs cartes.
Tu peux vite te retrouver avec du lag, le moteur tentant de gérer les actions de plusieurs persos et les ressources de plusieurs cartes. Le fichier MASTAREA.2da qui gère l'ordre de priorité des scripts de cartes les uns sur les autres peut très vite bloquer certaines actions.
Sinon, pour ton projectile, rien ne t'empêche d'utiliser un projectile "one target" sans zone et sans fichier bam associé : bref un projectile invisible.
Tu peux vite te retrouver avec du lag, le moteur tentant de gérer les actions de plusieurs persos et les ressources de plusieurs cartes. Le fichier MASTAREA.2da qui gère l'ordre de priorité des scripts de cartes les uns sur les autres peut très vite bloquer certaines actions.
Sinon, pour ton projectile, rien ne t'empêche d'utiliser un projectile "one target" sans zone et sans fichier bam associé : bref un projectile invisible.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
- deratiseur
- Golem de fer
- Messages : 3714
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
.
Tous les projectiles INAREA sont des projectiles de zone invisibles :
INAREA, invisible sur 10 mètres
INAREANS, invisible sur 10 mètres, ignore le centre (par exemple pour un sort qui génère des effets autour du lanceur, ça permet de lancer le sort sur le lanceur, mais lui même n'est pas affecté par le sort)
INAREANP, invisible sur 10 mètres, ne cible que les ennemis, ignore les cibles amicales
INAREAPA, invisible sur 10 mètres, ne cible que les cibles amicales, ignore les ennemis
INAREASM, invisible sur 3 mètres
Pratique : pour avoir un sort de zone invisible qui cible toutes les cibles amicales sur 60 mètres, simplement patcher le projectile INAREAPA en changeant la rayon de la zone : WRITE_LONG 0x204 512 WRITE_LONG 0x206 512
Un sort qui repousse tout ceux sur trois mètres autour du lanceur ? (en invisible, donc, même s'il est plus cool de jouer une anim) : soit :
patcher INAREANS en WRITE_LONG 0x204 80 WRITE_LONG 0x206 80 (rayon = 3m)
patcher INAREASM avec WRITE_BYTE 0xc (THIS | 16) (cad cocher l'option "ignore center")
INAREA, invisible sur 10 mètres
INAREANS, invisible sur 10 mètres, ignore le centre (par exemple pour un sort qui génère des effets autour du lanceur, ça permet de lancer le sort sur le lanceur, mais lui même n'est pas affecté par le sort)
INAREANP, invisible sur 10 mètres, ne cible que les ennemis, ignore les cibles amicales
INAREAPA, invisible sur 10 mètres, ne cible que les cibles amicales, ignore les ennemis
INAREASM, invisible sur 3 mètres
Pratique : pour avoir un sort de zone invisible qui cible toutes les cibles amicales sur 60 mètres, simplement patcher le projectile INAREAPA en changeant la rayon de la zone : WRITE_LONG 0x204 512 WRITE_LONG 0x206 512
Un sort qui repousse tout ceux sur trois mètres autour du lanceur ? (en invisible, donc, même s'il est plus cool de jouer une anim) : soit :
patcher INAREANS en WRITE_LONG 0x204 80 WRITE_LONG 0x206 80 (rayon = 3m)
patcher INAREASM avec WRITE_BYTE 0xc (THIS | 16) (cad cocher l'option "ignore center")
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Freddy, Dérat,
je note dans vos retours la possibilité d'utiliser un projectile de zone invisible.
Par contre, je ne maîtrise pas ce domaine même avec vos commentaires.
Moi, je vais sur DLTCEP \ Spell et je sélectionne l'animation projectile que je veux associer au sort.
Est qu'il y a un projectile qui correspond à mon besoin dans la liste?
ou faut il que j'en modifie / créé un comme le suggère Dérat.
Cocrane
je note dans vos retours la possibilité d'utiliser un projectile de zone invisible.
Par contre, je ne maîtrise pas ce domaine même avec vos commentaires.
Moi, je vais sur DLTCEP \ Spell et je sélectionne l'animation projectile que je veux associer au sort.
Est qu'il y a un projectile qui correspond à mon besoin dans la liste?
ou faut il que j'en modifie / créé un comme le suggère Dérat.
Cocrane
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité