Fallout Forum

GECK - Base di scripting, Ma proprio base base base

« Older   Newer »
  Share  
view post Posted on 12/10/2016, 22:09     +1   -1
Avatar

Si nascondono da me dietro muri di nebbia, l'umanità e l'abisso. Partoriscono mostri da aizzare gli uni contro gli altri. E più il sangue scorre, più la follia inebria. L'abisso nell'anima, la colpa dell'altro.

Group:
Seguaci dell'Apocalisse
Posts:
3,796
Karma:
+4
Location:
Da qualche parte, nel subconscio della gente

Status:


Ora ho capito meglio il concetto finalmente.
Se dovessi inserire un orario preciso dovrei fare così?

scn mioscript
Float fGiorno
Float fOra

Begin Gamemode
Set fGiorno to gamedayspassed
if fgiorno >= 3
set fOra to GameHour
if fOra >= 09.00
; appare persone e così via
endif
end

Grazie!
 
Top
view post Posted on 13/10/2016, 06:07     +1   -1
Avatar

Duchess and the proverbial mind spread

Group:
Administrator
Posts:
5,901
Karma:
+17

Status:


Esattamente, bravissimo.
Ti do qualche info in più su quell'esempio specifico, per curiosità:
- Al fondo, mancherebbe un endif. Ad ogni if corrisponde un endif oppure un else
- Quando metti' l'if con Gamehour, non ti serve usare i decimali, visto che è 9 spaccato
- In base a quanta precisione ti serve, potresti fare tutto semplicemente con GameDaysPassed e ti eviteresti l'uso di GameHour. Questo succede spesso con gli script, perchè sono molto basati sulla matematica, con qualche calcolo si riesce ad ottimizzare le cose, e l'ottimizzazione è importante.
GameDaysPassed restituisce una frazione della giornata, in centesimi mi pare (da verificare in gioco). Quindi, le tue 24 ore del terzo giorno sono i centesimi tra 3.00 e 3.99. Si può usare una proporzione matematica per trovare fGiorno
24 ore : 100 centesimi = 9 ore : x
da cui x = 100*9 / 24 = 37,5 decimi

Quindi If fGiorno >= 3.75 ; questo significa più o meno "le nove del terzo giorno"
 
Top
view post Posted on 13/10/2016, 12:28     +1   -1
Avatar

Si nascondono da me dietro muri di nebbia, l'umanità e l'abisso. Partoriscono mostri da aizzare gli uni contro gli altri. E più il sangue scorre, più la follia inebria. L'abisso nell'anima, la colpa dell'altro.

Group:
Seguaci dell'Apocalisse
Posts:
3,796
Karma:
+4
Location:
Da qualche parte, nel subconscio della gente

Status:


Finalmente, sono riuscito a capire un po le variabili. Grazie!
Anche se non ho capito le 24 ore in centesimi, mi dovrò aiutare con la calcolatrice.
In matematica facevo veramente, ma veramente pena.
In alternativa posso sempre usare GameHour, giusto?

Cosa cambia tra if e else? me lo sono sempre chiesto, in quanto lo vedo spesso negli script.
 
Top
view post Posted on 13/10/2016, 15:51     +1   -1
Avatar

Duchess and the proverbial mind spread

Group:
Administrator
Posts:
5,901
Karma:
+17

Status:


CITAZIONE
Anche se non ho capito le 24 ore in centesimi

Ci credo, ti sbaglio pure l'esempio, mannaggia a me.

24 ore : 100 centesimi = 9 ore : x
da cui x = 100*9 / 24 = 37,5 decimi

Quindi If fGiorno >= 3.375 !!!! <<< questo è corretto !!!

In alternativa puoi usare GameHour, si.

If significa SE, else puoi tradurtelo con SENNO'

If a == 2
; se a è 2 fai qualcosa
else
; sennò, se non è 2, fai qualcos altro
endif

C'è anche elseif, che unisce più condizioni diverse

If a == 2
; se a è due fai qualcosa
elseif a == 3
; se invece a è 3 fai qualcos altro
elseif a == 4
; se invece a è 4 fai qualcos altro
else
; se non è ne 2, ne 3 e ne 4, fai qualcos altro ancora
endif

Come vedi puoi avere molteplici controlli, l'importante è che chiudi con un endif al fondo.

Le if le puoi anche mettere una dentro l'altra ("nested")

If a == 2
if b == 3
;fai qualcosa
else
; fai qualcos altro
endif
endif

E' importante capire bene come ragiona lo script. Se a non è 2, non succede nulla, lo script non controllerà nemmeno che valore ha b. Se a è 2, allora passerà a controllare b: se b è 3, "fai qualcosa"; se b non è 3, "fai qualcos altro".
 
Top
view post Posted on 13/10/2016, 16:18     +1   -1
Avatar

Si nascondono da me dietro muri di nebbia, l'umanità e l'abisso. Partoriscono mostri da aizzare gli uni contro gli altri. E più il sangue scorre, più la follia inebria. L'abisso nell'anima, la colpa dell'altro.

Group:
Seguaci dell'Apocalisse
Posts:
3,796
Karma:
+4
Location:
Da qualche parte, nel subconscio della gente

Status:


Perfetto, ora ho capito tutto.
Mi hai offerto una panoramica ampia degli if, elseif, else, che prima non avevo. (oltre alle variabile)
Creerò qualche script con queste condizioni e variabili, per provarli in game.
Grazie Mille!
 
Top
19 replies since 21/2/2015, 17:39   375 views
  Share