PLS in trng

help ._.

Domande, commenti e bugs report sul Next Generation Level Editor / Questions, comments and report bugs about the Next Generation Level Editor

Moderatori: Raidermatty, Taras, LoreRaider, Delta, Paolone

Rispondi
Avatar utente
deskj
Master TR Player
Master TR Player
Messaggi: 3004
Iscritto il: 09 giugno 2004, 18:31

PLS in trng

Messaggio da deskj »

Sto cercando di realizzare una luce pls alla trl/tru ingame, ma ho qualche problema :|
Questo è un video di come funziona in questo momento, ma i problemi di cui parlo qui non si notano perché riguardano i comandi, non tanto il funzionamento della luce ingame.

[youtube][/youtube]

Prima di entrare nel dettaglio della richiesta di aiuto, dico nel modo più breve possibile come è fatta così posso spiegare meglio i dubbi :D In realtà è una cosa estremamente semplice, dato che può essere attivata ingame in qualsiasi momento con un tasto, proprio come trl/tru. Certo, fare una piccola animazione in cui lara allunga un braccio per accenderla mentre è ferma in piedi che contiene un animCommand sarebbe stato molto più realistico e bello da vedere, ma in termini di gameplay credo sia anche più comodo così :D

1- Ho creato la stringa di script di un AddEffect1 con una luce piatta bianca associata alla JOINT_ABDOMEN, con determinate coordinate per posizionarla frontalmente a lara, leggermente spostata a sinistra e all'altezza della bretella dello zaino.

2- Ho esportato questi due trigger e li ho associati a un TriggerGroup1: uno per attivare su Lara l'AddEffect precedente, l'altro per il suono di accensione della torcia.
Immagine
Immagine


3- Ho esportato questi due trigger e li ho associati a un TriggerGroup2: uno per disattivare su Lara l'AddEffect, l'altro per il suono di spegnimento della torcia.
Immagine
Immagine

4- Ho creato un GlobalTrigger1 che attiva il TriggerGroup1 quando si preme il tasto dei flare (ovviamente rimuovendo questi ultimi dall'inventario con un equipment)

Codice: Seleziona tutto

GlobalTrigger= 1, IGNORE, GT_GAME_KEY2_COMMAND, KEY2_USE_FLARE, IGNORE, 1, IGNORE
Questo accende la torcia e fa eseguire il suono di accensione.

5- Ho creato un GlobalTrigger2 che attiva il TriggerGroup2 quando si preme il tasto L da tastiera.

Codice: Seleziona tutto

GlobalTrigger= 2, IGNORE, GT_KEYBOARD_CODE, 38, IGNORE, 2, IGNORE
Questo spegne la torcia e fa eseguire il suono di spegnimento.

6- Ho creato un GlobalTrigger3 che attiva il TriggerGroup1 (accensione torcia+suono) quando si seleziona il PLS dall'inventario.

Codice: Seleziona tutto

GlobalTrigger= 3, IGNORE, GT_USED_INVENTORY_ITEM, 232, IGNORE, 1, IGNORE
E questo è tutto :D

Il problema principale è: quando premo i pulsanti per accendere e spegnere la torcia, il suono parte a raffica fino a quando non viene lasciato il tasto (per fare il video ho appena dovuto sfiorare i tasti, altrimenti i suoni partivano a cascata).
Il primo ignore nelle stringhe dei GlobalTrigger, sono le costanti FGT che riguardano quando e quante volte il GT può essere eseguito. Certo, se metto un FGT_SINGLE_SHOT il problema di risolve, ma così posso accendere e spegnere la torcia una volta sola per tutto il livello :P non ho proprio trovato niente ._.
anche nel trigger esportato, il suono è specificato che va eseguito una sola volta, quindi il problema sta solo nel GlobalTrigger e non nel triggergroup associato.
Forse però non è nemmeno risolvibile questo (certo, usando la pappardella che dicevo prima con animazione e animcommands sarebbe tutto diverso e il problema non ci sarebbe, ma così potrei attivare la torcia solo quando lara è ferma in piedi ed è scomodo)

Altri dubbi: Avrei voluto fare in modo che la torcia si potesse accendere e spegnere dalla stesso tasto (flare key), ma mi sa che non è possibile nemmeno questo.
Mettendo i global trigger di accensione e spegnimento della torcia sullo stesso tasto, i trigger di attivazione e disattivazione dell'addeffect si annullano a vicenda, e si sentono solamente i suoni di attivazione e spegnimento sovrapposti. Il penultimo IGNORE delle stringhe dei GlobalTrigger riguardano condition triggergroup che non ho capito bene cosa siano, ma credo abbia a che fare con gli organizer. ma gli organizer non credo che mi possano aiutare :P
Cioè, mettendo entrambe accensione e spegnimento sullo stesso tasto, l'ideale sarebbe che il primo triggergroup (accensione) funzioni solo sotto la condizione in cui la luce sia spenta; viceversa il secondo (spegnimento) funzioni solo nel caso in cui la luce sia già accesa
però oltre ad essere una cosa un po' intricata non credo sia fattibile... e poi accensione e spegnimento su tasti diversi credo vada benissimo lo stesso :D

In ogni caso di tutte queste nuove funzionalità del trng so davvero molto poco perché non ci ho praticamente mai sperimentato, magari si possono fare altre cose che non so :mumble:
Avatar utente
psiko
Master TR Player
Master TR Player
Messaggi: 5389
Iscritto il: 24 maggio 2005, 18:05

Re: PLS in trng

Messaggio da psiko »

prova a separare i triggergroup per la luce e per il suono: crea cioè due triggergroup separati (uno per la luce e uno per il suono), e fai due global trigger che agiscono in game sempre con quel tasto, quindi fai a meno del triggergroup combinato.
Nel global trigger per il suono metti questa flag:

FGT_SINGLE_SHOT_RESUMED

(leggi le reference da ng_center per vedere cosa fa)...

vediamo che succede :) :D
Avatar utente
deskj
Master TR Player
Master TR Player
Messaggi: 3004
Iscritto il: 09 giugno 2004, 18:31

Re: PLS in trng

Messaggio da deskj »

uh grazie mille per la risposta! :D appena finisco di studiare provo subito :P
ma eventualmente il FGT_SINGLE_SHOT_RESUMED non dovrebbe funzionare ugualmente anche se al TG del suono è associato il trigger dell'addeffect? (perché ovviamente avevo già provato anche questa costante - con i due trigger associati assieme però - ma niet :°)
cmq più tardi lo provo! :sbam: grazie :oops:
Avatar utente
psiko
Master TR Player
Master TR Player
Messaggi: 5389
Iscritto il: 24 maggio 2005, 18:05

Re: PLS in trng

Messaggio da psiko »

se non funziona, ho un'alternativa: anziché usare i tasti del gioco usare i tasti scancode (visto che impiegano più tempo per essere calcolati dall'engine, è più probabile che non vengano considerati come pressione continua on/off) :)

se non funziona neanche questa, vediamo cosa si può tentare con gli organizer :)
(per un effetto in HyperSquare ho dovuto creare ben DUE organizer, un global trigger e una rolling ball in una zona non raggiungibile... ma alla fine ha funzionato "quasi" perfettamente :D )
Avatar utente
deskj
Master TR Player
Master TR Player
Messaggi: 3004
Iscritto il: 09 giugno 2004, 18:31

Re: PLS in trng

Messaggio da deskj »

niente ho appena provato il FGT_SINGLE_SHOT_RESUMED su un GB separato epr il suono, ma nisba :/
dove posso trovare documentazione per gli scancode?

altrimenti, pensavo... non è che con un organizer si può fare in modo che, una volta attivata la luce, quel global trigger non possa essere usato per un tot di tempo per poi tornare "disponibile"? :D ancora non ho studiato gli organizer, mi sa che ho detto una gran cretinata :sbam:
Avatar utente
psiko
Master TR Player
Master TR Player
Messaggi: 5389
Iscritto il: 24 maggio 2005, 18:05

Re: PLS in trng

Messaggio da psiko »

mi sono perso la tua risposta su questo topic... hai risolto? cmq appena arrivo a casa ne riparliamo ;)
Avatar utente
deskj
Master TR Player
Master TR Player
Messaggi: 3004
Iscritto il: 09 giugno 2004, 18:31

Re: PLS in trng

Messaggio da deskj »

no purtroppo ancora no ._.
anche delta ha provato a darmi una mano, cercando di unire accensione e spegnimento su un unico tasto facendo un controllo su una porta "dummy", se è aperta o meno (aperta=lps on; spenta=lps off)
ma sembra non funzionare :P

eventualmente, per semplificare la cosa, ho pensato di fare in modo che si possa solamente accendere e che poi si spegne da sola dopo un tot di tempo con lo scorrere di una custom bar in un angolo, non so
certo, bisogna fare in modo che il tasto poi non funzioni per un tot, se no ripremendolo la barra si riempirebbe nuovamente... che casino :wall: mi sa che è irrealizzabile :D

uhm ma si può fare un'animazione che coinvolga solamente la parte superiore del corpo di lara (o solo una parte come solo il braccio destro)? come per i flare, insomma. Si semplificherebbe tutto in questo modo :D e l'effetto sarebbe pure più realistico
sapper
New TR Player
Messaggi: 13
Iscritto il: 21 febbraio 2009, 08:23

Re: PLS in trng

Messaggio da sapper »

deskj I think the following code will allow you to turn the pls on and off with the same key. I don't know why the code works, but it does.
I have no solution for the sound. Globaltriggers and sounds don't work together well since while a Globaltrigger is true it executes it's Triggergroup 30 times a second.

Codice: Seleziona tutto

Globaltrigger= 1,ignore,GT_GAME_KEY2_COMMAND,KEY2_USE_FLARE,5,2,ignore ; Exporting: CONDITION(43:62) for PARAMETER(68) ; <#> : Local Byte Beta1 ; <&> : Variables. The <#>Numeric Variable is = than (E)Value ; (E) : Value= 0 ; Values to add in script command: $8000, 68, $2B TriggerGroup= 5, $8000, 68, $2B ; Exporting: TRIGGER(304:0) for ACTION(5) ; <#> : LARA ID:18 in sector:(3,8) of Room0 ; <&> : Effect. Add to <#>Enemy the (E)AddEffect from script.txt ; (E) : AddEffect= 1 ; Values to add in script command: $5000, 18, $130 ; Exporting: TRIGGER(1:0) for FLIPEFFECT(127) ; <#> : Organizer. Enable <&>Organizer ; <&> : Organizer= 1 ; (E) : ; Values to add in script command: $2000, 127, $1 TriggerGroup= 2, $5000, 18, $130, $2000, 127, $1 ; activate TG and organizer 1 Organizer= 1,fo_tick_time,ignore,2,7 ; after 2 frames set Beta1 = 1 ; Exporting: TRIGGER(324:0) for FLIPEFFECT(232) ; <#> : Variables. Numeric. Set <&>Variable with (E)value ; <&> : Local Byte Beta1 ; (E) : Value 1 ; Values to add in script command: $2000, 232, $144 Triggergroup= 7, $2000, 232, $144 ;--------------------------------------------------------- Globaltrigger= 2,ignore,GT_GAME_KEY2_COMMAND,KEY2_USE_FLARE,6,3,ignore ; Exporting: CONDITION(43:60) for PARAMETER(68) ; <#> : Local Byte Beta1 ; <&> : Variables. The <#>Numeric Variable is = than (E)Value ; (E) : Value= 1 ; Values to add in script command: $8000, 68, $12B TriggerGroup= 6,$8000, 68, $12B ; Exporting: TRIGGER(305:0) for ACTION(5) ; <#> : LARA ID:18 in sector:(3,8) of Room0 ; <&> : Effect. Remove from <#>Enemy the (E)AddEffect from script.txt ; (E) : AddEffect= 1 ; Values to add in script command: $5000, 18, $131 ; Exporting: TRIGGER(1:0) for FLIPEFFECT(127) ; <#> : Organizer. Enable <&>Organizer ; <&> : Organizer= 2 ; (E) : ; Values to add in script command: $2000, 127, $2 TriggerGroup= 3, $5000, 18, $131 ,$2000, 127, $2 ;activate TG and organizer 2 organizer= 2,FO_TICK_TIME,ignore,2,8 ; after 2 frames set Beta1 = 0 ; Exporting: TRIGGER(68:0) for FLIPEFFECT(232) ; <#> : Variables. Numeric. Set <&>Variable with (E)value ; <&> : Local Byte Beta1 ; (E) : Value 0 ; Values to add in script command: $2000, 232, $44 Triggergroup= 8, $2000, 232, $44 ;----------------------------------------------------------
Avatar utente
deskj
Master TR Player
Master TR Player
Messaggi: 3004
Iscritto il: 09 giugno 2004, 18:31

Re: PLS in trng

Messaggio da deskj »

ehi sapper welcome on asptr.com :D
wow what a script :shock: i'm gonna try it right now
thankgod u specified all the exported triggers and this makes it very clear :D
you must have spent a lot of time on this, can't thank you enough :P
i'll let you know the result 2_26 I hope to find a solution for the sfx too, sooner or later :sbam:

--EDIT--
ehy i've just tried it and its fabulous, it was just what i wanted to do but i didn't know how to work with variables :D it's so smart :D if beta1=0 means pls is off so it can be turned on, viceversa if it's 1, it's very clear :D

thank u so much! :sbam: now i'm gonna make some tries with the sfx, love u lol
Avatar utente
psiko
Master TR Player
Master TR Player
Messaggi: 5389
Iscritto il: 24 maggio 2005, 18:05

Re: PLS in trng

Messaggio da psiko »

ecco, le variabili... non ci ho mai capito niente, ma quello script sembra chiaro :D

Bravo SAPPER! :D
Avatar utente
deskj
Master TR Player
Master TR Player
Messaggi: 3004
Iscritto il: 09 giugno 2004, 18:31

Re: PLS in trng

Messaggio da deskj »

I somehow managed to make the SFXs work. Or well, now they're at least decent :P Still not perfect though.
I put the sxf trigger into another TG that I put in the organizer with the one that changes the beta1 variable. The only flaw is that the sound starts after the key is released, but at least it doesn't go on in cascade like before and it's not that noticable since usually the key is presed just for one moment. :P
This is the final script now. I really can't thank you enough, i must repay your kindness :D

Codice: Seleziona tutto

Equipment= FLARE_ITEM, 0 Pickup= 2, PLS, $0008,$03b0,$0000,$e000,$0000,$000a AddEffect= 1, ADD_LIGHT_FLAT, FADD_CONTINUE_EMIT, 7, -70, -100, 350, IGNORE, IGNORE, 9, IGNORE, MIST_COL_WHITE ;---PLS ON--- Globaltrigger= 1, IGNORE, GT_GAME_KEY2_COMMAND, KEY2_USE_FLARE, 2, 1, IGNORE; TG1 by flare_key if TG2 is true GlobalTrigger= 2, IGNORE, GT_USED_INVENTORY_ITEM, 232, 2, 1, IGNORE; TG1 by Inventory Pickup2 if TG2 is true TriggerGroup= 1, $5000, 12, $130, $2000, 127, $1 ; Activates AddEffect on Lara + Organizer 1 TriggerGroup= 2, $8000, 68, $2B; Condition LocalByteBeta1=0 Organizer= 1, fo_tick_time, IGNORE, 2, 3, 2, 4 ; After 2 frames activates TG3 + After 0 frames activates TG4 Triggergroup= 3, $2000, 232, $144; Sets LocalByteBeta1=1 Triggergroup= 4, $2000, 71, $1F1D; Play lps_on sfx ;---PLS OFF--- Globaltrigger= 3, IGNORE, GT_GAME_KEY2_COMMAND, KEY2_USE_FLARE, 6, 5, IGNORE; TG5 by flare_key if TG6 is true GlobalTrigger= 4, IGNORE, GT_USED_INVENTORY_ITEM, 232, 6, 5, IGNORE; TG5 by Inventory Pickup2 if TG6 is true TriggerGroup= 5, $5000, 12, $131 ,$2000, 127, $2 ; Removes Addeffect from Lara + Activates Organizer 2 TriggerGroup= 6, $8000, 68, $12B; Condition LocalByteBeta1=1 Organizer= 2, FO_TICK_TIME, IGNORE, 2, 7, 2, 8 ; After 2 frames activates TG7 + After 0 frames activates TG8 Triggergroup= 7, $2000, 232, $44; Sets LocalByteBeta1=0 Triggergroup= 8, $2000, 70, $1F68; Play lps_off sfx
LGG_PRODUCTION
Senior TR Player
Senior TR Player
Messaggi: 856
Iscritto il: 21 luglio 2009, 22:15

Re: PLS in trng

Messaggio da LGG_PRODUCTION »

io ho provato a mettere tutto questo nello script per vedere come funziona ma a me il gioco crasha :cry: .
Avatar utente
deskj
Master TR Player
Master TR Player
Messaggi: 3004
Iscritto il: 09 giugno 2004, 18:31

Re: PLS in trng

Messaggio da deskj »

devi personalizzare il trigger di addeffect sul tuo oggetto lara
è diverso da progetto a progetto (se ad esempio cancelli lara dal tuo progetto e ne inserisci poi un'altra dovresti rifare il trigger di nuovo)

per quanta riguarda l'oggetto in inventario, lo script è fatto su un pickup item 2
ho perfezionato lo script così che la luce funzioni solo dopo che lara l'ha raccolta :D

per i suoni invece attualmente dovresti ritrovarti quello del flare quando l'accendi, e uno della mitragliatrice della cittadella quando lo spegni

se lo usi credita me e sapper :D :D
Rispondi