Rispondi 
[Scripting] Scalaroccia
Artes
Nuovo Arrivato
*

Messaggi: 8
Registrato: 01-01-2019
Reputazione: 0
Mi Piace Ricevuti: 11
PokéMoney: 72.00₱
Messaggio: #1
Shocked Scalaroccia
Salute!

Premetto che non sono un granché come "scripter", per cui è possibile che il problema che mi lascia perplesso sia in realtà semplice.
In ogni caso, mi stavo occupando di gestire l'uso di Scalaroccia attraverso opportuni terrain tag.
Ho fatto così uso di alcuni script prodotti da Marty152 e chrono9665 e li ho modificati leggermente.
Mimando l'uso di Cascata ho quindi inserito in PField_FieldMoves (sto usando Essentials 17.2):
Come si vede, con l'uso di un solo terrain tag, basandomi sulla direzione, intendo permettere di utilizzare Scalaroccia in verticale (verso l'alto in salita) e in diagonale a destra (verso l'alto a destra in salita).
Ovviamente, in Game_Player ho modificato move_left e move_right come segue:
Ora, il primo problema che mi lascia perplesso è il seguente: se voglio scendere usando Scalaroccia in diagonale verso il basso a sinistra, secondo la mia interpretazione del codice il giocatore dovrebbe prima muoversi verso sinistra, quindi in diagonale verso il basso a sinistra fino al termine della discesa. Questo è, in effetti, quello che succede in ciascuno dei casi seguenti: a) premo Ctrl in debug e cammino normalmente; b) interpongo dei messaggi di testo (tipo Kernel.pbMessage("")) dopo ogni move_left. Se, invece, uso Scalaroccia, allora quello che accade è l'esatto opposto: il giocatore si muove prima in diagonale verso il basso fino al termine della discesa, e solo allora si muove a sinistra. Lo stesso uso dei terrain tag funziona alla perfezione per le scale.
Paradossalmente, benché la definizione di move_right suggerisca una cosa diversa, usando scalaroccia per salire prima il giocatore si muove in diagonale in alto a destra, e solo alla fine si muove a destra (cosa desiderata, ma per me incomprensibile), mentre se premo Ctrl e vi cammino liberamente, il giocatore si muove esattamente come il codice suggerisce, muovendosi prima verso destra e quindi in diagonale (indesiderabile).

Secondo problema: non mi è chiaro a cosa serva specificare un "move_speed" differente: io avrei voluto rallentare il movimento, ma qualunque numero ponga in luogo di 2 dà lo stesso risultato (posso mettere 0 o 200 e il giocatore si muove lo stesso alla medesima velocità); eccetto che nel caso in cui interrompo il movimento interponendo dei messaggi: in tal caso, allora, la velocità di movimento cambia effettivamente come desiderato. Lo stesso problema vale per Cascata, che è implementata in Essentials, quindi ardisco sospettare che non sia un errore mio; tutt'al più un vestigio di qualche codice precedente ormai obsoleto.

Infine, avrei voluto far sì che il giocatore, scendendo, si mettesse di spalle, esattamente come se stesse scalando (l'effetto "giocatore che cammina su un dirupo" non mi convince). Così avevo creato un climb_down da sostituire a move_down in pbDescendRock:
Tuttavia, il gioco sembra ignorare il mio desiderio, con la solita eccezione: se frammento il movimento ponendo dei messaggi dopo ogni climb_down, il movimento che ottengo è quello desiderato. Questa considerazione, tuttavia, è in parte oziosa, in quanto preferirei, in futuro, adottare soluzioni più "raffinate".

Modifica: Alla fine ho rinunciato ad utilizzare una versione modificata di Cascata, anch'essa problematica come ho segnalato, ed ho proceduto con un metodo differente. Il risultato non è ancora perfetto, ma per lo meno mi permette di operare tutto ciò che, finora, desideravo. Segnalo di seguito le versioni funzionanti dei comandi precedentemente inseriti, per chi fosse interessato:
Le modifiche dei vari move_... e l'introduzione dei vari climb_... non sono più necessarie.
Come si può osservare, faccio la stessa cosa che farebbe un evento, con i seguenti vantaggi:
- non è necessario inserire ogni volta tali eventi con tutti i dovuti controlli;
- non è necessario inserire ogni volta il corretto percorso per utilizzare Scalaroccia.

Ovviamente, lo script non è affatto completo: a parte il fatto che mancano alcune direzioni, mancano anche i dovuti controlli per gli eventuali veicoli; inoltre, occorre gestire correttamente gli eventi che seguono il giocatore (ammesso che sia possibile farlo con semplicità).

[Immagine: kRcy8rR.png]
(Questo messaggio è stato modificato l'ultima volta il: 08-03-2019 01:17 PM da Artes.)
25-02-2019 11:04 PM
Cerca Cita
 Mi piace ricevuti da: E²VaN , Lex@97
Rispondi 




Utente(i) che stanno guardando questa discussione: 1 Ospite(i)
Powered by MyBB, © 2002-2019 MyBB Group. Copyright © | 2015 Pokémon Hacking