Salta al contenuto principale

Framework in codice

Limiti ed errori

I limiti di un progetto e i messaggi che puoi vedere, con le loro soluzioni.

Limiti

LimiteValore
Dimensione del sorgente8 MiB
Dimensione del gioco compilato16 MiB
File1000
Frameworks64
File di scenario512
Preset di contenuto per Framework512
Preset di contenuto per Gioco2048
Azioni per Framework96
Azioni per Gioco192
Funzioni del registro per Framework64
Frame per FrameworkDa 1 a 16
Frame per Gioco128
Sezioni per Framework64
Opzioni di inputDa 2 a 128
Passaggi di azione creati per progetto512
Passaggi per azione64
Passaggi per scenario32
Controlli del registro per scenario32
Scritture attese per passaggio64

Le righe sopra limitano il tuo sorgente. Fabled compila anche il tuo sorgente in un solo gioco, e questo gioco compilato deve restare sotto i 16 MiB prima di poter essere preparato.

Il server ricontrolla gli stessi limiti quando prepari un gioco e il suo verdetto è definitivo.

Errori e soluzioni

Ogni riga cita una parte di un messaggio. Il messaggio in The Forge può aggiungere il file, la riga o i nomi coinvolti.

MessaggioCausaSoluzione
Project contains undeclared source files: rules/extra.ts.Esistono file a cui nulla fa riferimento. Il messaggio elenca fino a cinque percorsi e indica il numero di file rimanenti.Confronta i file dell'albero con il manifesto e gli schemi. Eliminare una funzione del registro lascia il suo file di regole, quindi elimina anche quel file.
Missing or misplaced project source.Un percorso elencato non ha un file, oppure il file è nella cartella sbagliata.Correggi il percorso o aggiungi il file.
Unrecognized key(s) in objectUn file JSON usa un campo che il formato non ha.Rimuovi il campo o correggine l'ortografia.
Input name is hidden, so it must declare a defaultValue.Un input nascosto non ha un valore predefinito.Aggiungi un defaultValue, oppure mostra l'input.
must be one of its optionsUn valore predefinito non è nell'elenco delle opzioni.Usa una delle opzioni come valore predefinito.
Parameter max_hp 99 is not between 1 and 40.Uno scenario o un preset viola i limiti di un input.Cambia il valore o i limiti.
is not assigned to any sectionEsistono sezioni, ma un input non è in nessuna.Aggiungi l'input a una sezione.
Duplicate semantic identity or source path.Due elementi condividono un id o un file sorgente.Dai a ciascuno il proprio id e il proprio file.
Invalid child Framework constraintUno slot figlio punta a un Framework fuori dal gioco.Usa l'id di un Framework di questo gioco.
Ledger function must target an existing scalar field.Il campo non è tra quelli che il costruttore restituisce.Restituisci il campo dal costruttore, oppure correggi il nome.
must define the required 'name' valueUn costruttore non restituisce un nome.Restituisci un campo di testo chiamato name.
The entry framework must be a character constructor.Il Framework di ingresso del manifest non è un personaggio.Fai puntare entryFramework a un Framework di personaggio.
while loops are not allowedUna regola usa un ciclo che potrebbe non finire.Usa for of.
is a host global and not part of the TypeScript subsetUna regola usa Math o un altro oggetto globale.Usa le chiamate dell'host, come math.min.
import is not allowedUna regola importa codice.Metti la logica nel file di regole stesso.
must return a value on every reachable pathUna funzione con un tipo di ritorno ha un percorso senza return.Restituisci un valore su ogni percorso, oppure dichiara void.
is not declared on this schemaUn'azione scrive un campo che il costruttore non restituisce.Restituisci il campo dal costruttore, oppure correggi il nome.
FRAME_BINDING_UNKNOWNUn Frame collega un campo che non esiste.Collega un campo dichiarato.
ACTION_MISSINGUn pulsante indica un alias di azione che non esiste.Dichiara l'alias, oppure correggi il nome.
Expected ordered writesUn'azione ha scritto qualcosa di diverso da expectedWrites.Correggi la regola o le scritture attese.
Constructor output does not match its scenario.expectedValues è diverso da ciò che il costruttore restituisce.Correggi lo scenario o il costruttore.
SCENARIO_COVERAGE_MISSINGUn'azione non ha passi di scenario.Aggiungi almeno un passo per l'azione.
is a non-writable state fieldUn'azione scrive un valore che una funzione del registro ricava.Scrivi un campo salvato e lascia che la funzione del registro ricavi il resto.
Action accesses require literal keys on self.Un'azione indica un campo con un valore invece che con una stringa scritta nel codice.Scrivi il nome del campo tra virgolette. Usa un'azione per ogni campo.
functions but only the actionUn file di azione esporta due funzioni.Esporta una funzione per file di azione, oppure condividi il file tra azioni. Lascia le funzioni di supporto senza export.
the step expects it to be refused withUn passo si aspetta un rifiuto, ma l'azione non è stata rifiutata.Rimuovi expectedRefusal, oppure correggi l'offerta perché rifiuti.
Add expectedRefusalUn passo su elenco è stato rifiutato, ma non lo dichiara.Aggiungi expectedRefusal con il codice e nessuna scrittura.
Every ledger function needs an executable scenario.Una funzione del registro non ha alcuna voce nell'elenco ledger di nessuno scenario.Aggiungi una voce ledger con l'id della funzione, un currentValue e il risultato atteso.
effectful action helpers are not supportedUna funzione di supporto scrive con ledger.set o ledger.add.Fai restituire il valore alla funzione di supporto e scrivilo nell'azione.
is not a writable state fieldUn elenco fields indica un campo che non è memorizzato, come uno derivato da una funzione del registro.Elenca solo campi memorizzati che il costruttore restituisce.
is not satisfied: roll.missingUno scenario usa il metodo roll senza tiri registrati, o lo usa un preset, e solo il server può tirare.In uno scenario, aggiungi poolRolls con uno slot per punteggio. Un preset non può usare roll, quindi dai al pool un altro metodo per i preset.
The roll dice must be one group such asI dadi di roll non sono un solo gruppo come "3d6", per esempio 3d6x5.Scrivi un solo gruppo di dadi e metti il moltiplicatore nella chiave multiplier.
outside the min/max of inputI dadi possono dare un totale che un input non ammette.Allarga min e max degli input, oppure cambia i dadi.
give exactly one roll per input.Il count di roll è diverso dal numero di input della riserva.Imposta count al numero di input.
must offer exactly the methods of poolLe opzioni dell'input che sceglie il metodo sono diverse dai metodi della riserva.Usa come opzioni i nomi dei metodi, né più né meno.
RequiredManca una chiave di cui il formato ha bisogno. Il pannello Problemi mostra un elenco JSON.Leggi il percorso nell'elenco. Indica la chiave mancante. Aggiungila.
Expected number, received stringUna chiave dello schema ha il tipo sbagliato. Il pannello Problemi mostra un elenco JSON.Leggi il path nell'elenco. Indica la chiave, per esempio inputs, max_hp, min. Correggi quel valore.

The Forge elenca i problemi di ogni file nel pannello Problemi. Un problema di regola indica anche la riga e la colonna. Se il costruttore non corrisponde, il messaggio elenca le prime differenze e finisce con il numero di quelle omesse. Correggi quelle elencate e verifica di nuovo.

Il server controlla di nuovo