Przejdź do głównej treści

Frameworki kodowe

Limity i błędy

Limity projektu oraz komunikaty, które możesz zobaczyć, razem z poprawkami.

Limity

LimitWartość
Rozmiar źródła8 MiB
Rozmiar skompilowanej gry16 MiB
Pliki1000
Frameworki64
Pliki scenariuszy512
Zestawy treści na framework512
Zestawy treści na grę2048
Akcje na framework96
Akcje na grę192
Funkcje ledgera na framework64
Ramki na frameworkod 1 do 16
Ramki na grę128
Sekcje na framework64
Opcje danych wejściowychod 2 do 128
Zapisane kroki akcji na projekt512
Kroków na akcję64
Kroków na scenariusz32
Sprawdzeń ledgera na scenariusz32
Oczekiwanych zapisów na krok64

Wiersze powyżej ograniczają twoje źródło. Fabled kompiluje też twoje źródło w jedną grę, a ta skompilowana gra musi mieć mniej niż 16 MiB, zanim będzie można ją przygotować.

Serwer sprawdza te same limity jeszcze raz, gdy przygotowujesz grę, i jego werdykt jest ostateczny.

Błędy i poprawki

Każdy wiersz cytuje część komunikatu. Komunikat w The Forge może dodawać plik, linię lub nazwy, których dotyczy.

KomunikatPrzyczynaPoprawka
Project contains undeclared source files: rules/extra.ts.Istnieją pliki, do których nic się nie odwołuje. Komunikat podaje do pięciu ścieżek oraz liczbę pozostałych plików.Porównaj pliki drzewa z manifestem i schematami. Usunięcie funkcji ledgera zostawia jej plik reguł, więc usuń też ten plik.
Missing or misplaced project source.Wymieniona ścieżka nie ma pliku albo plik jest w złym folderze.Popraw ścieżkę albo dodaj plik.
Unrecognized key(s) in objectPlik JSON używa pola, którego format nie zna.Usuń pole albo popraw jego pisownię.
Input name is hidden, so it must declare a defaultValue.Ukryte dane wejściowe nie mają wartości domyślnej.Dodaj defaultValue albo pokaż dane wejściowe.
must be one of its optionsWartości domyślnej nie ma na liście opcji.Użyj jednej z opcji jako wartości domyślnej.
Parameter max_hp 99 is not between 1 and 40.Scenariusz lub preset łamie ograniczenia danych wejściowych.Zmień wartość albo ograniczenia.
is not assigned to any sectionSekcje istnieją, ale dane wejściowe nie należą do żadnej.Dodaj dane wejściowe do sekcji.
Duplicate semantic identity or source path.Dwa elementy mają to samo id albo ten sam plik źródłowy.Daj każdemu własne id i plik.
Invalid child Framework constraintMiejsce podrzędne wskazuje framework spoza gry.Użyj id frameworka z tej gry.
Ledger function must target an existing scalar field.To pole nie jest jednym z tych, które zwraca konstruktor.Zwróć pole z konstruktora albo popraw nazwę.
must define the required 'name' valueKonstruktor nie zwraca nazwy.Zwróć pole tekstowe o nazwie name.
The entry framework must be a character constructor.Framework wejściowy z manifestu nie jest postacią.Wskaż w entryFramework framework postaci.
while loops are not allowedReguła używa pętli, która może się nie skończyć.Użyj for of.
is a host global and not part of the TypeScript subsetReguła używa Math albo innego obiektu globalnego.Użyj wywołań hosta, na przykład math.min.
import is not allowedReguła importuje kod.Umieść logikę w samym pliku reguły.
must return a value on every reachable pathFunkcja z typem zwracanym ma ścieżkę bez return.Zwróć wartość na każdej ścieżce albo zadeklaruj void.
is not declared on this schemaAkcja zapisuje pole, którego konstruktor nie zwraca.Zwróć pole z konstruktora albo popraw nazwę.
FRAME_BINDING_UNKNOWNRamka wiąże pole, które nie istnieje.Powiąż zadeklarowane pole.
ACTION_MISSINGPrzycisk wskazuje alias akcji, który nie istnieje.Zadeklaruj alias albo popraw nazwę.
Expected ordered writesAkcja zapisała coś innego niż expectedWrites.Popraw regułę albo oczekiwane zapisy.
Constructor output does not match its scenario.expectedValues różni się od tego, co zwraca konstruktor.Popraw scenariusz albo konstruktor.
SCENARIO_COVERAGE_MISSINGAkcja nie ma kroku scenariusza.Dodaj co najmniej jeden krok dla akcji.
is a non-writable state fieldAkcja zapisuje wartość, którą wylicza funkcja ledgera.Zapisz pole przechowywane i pozwól funkcji ledgera wyliczyć resztę.
Action accesses require literal keys on self.Akcja wskazuje pole przez wartość zamiast przez tekst zapisany w kodzie.Wpisz nazwę pola w cudzysłowie. Użyj jednej akcji dla każdego pola.
functions but only the actionPlik akcji eksportuje dwie funkcje.Eksportuj jedną funkcję na plik akcji albo współdziel plik między akcjami. Funkcje pomocnicze zostaw bez export.
the step expects it to be refused withKrok oczekuje odmowy, ale akcja nie została odrzucona.Usuń expectedRefusal albo popraw ofertę, aby odmawiała.
Add expectedRefusalKrok listy został odrzucony, ale tego nie mówi.Dodaj expectedRefusal z kodem i bez zapisów.
Every ledger function needs an executable scenario.Funkcja ledgera nie ma wpisu na liście ledger żadnego scenariusza.Dodaj wpis ledgera z id funkcji, currentValue i oczekiwanym wynikiem.
effectful action helpers are not supportedFunkcja pomocnicza zapisuje przez ledger.set lub ledger.add.Niech funkcja pomocnicza zwraca wartość, a zapisz ją w akcji.
is not a writable state fieldLista fields wymienia pole, które nie jest zapisywane, na przykład wyprowadzane przez funkcję ledgera.Wymień tylko zapisane pola, które zwraca konstruktor.
is not satisfied: roll.missingScenariusz używa metody roll bez zapisanych rzutów albo używa jej preset, a rzucać może tylko serwer.W scenariuszu dodaj poolRolls z jednym slotem na wartość. Preset nie może używać roll, więc daj puli inną metodę dla presetów.
The roll dice must be one group such asKości w roll nie tworzą jednej grupy jak "3d6", na przykład 3d6x5.Zapisz jedną grupę kości, a mnożnik umieść w kluczu multiplier.
outside the min/max of inputKości mogą dać sumę, której wejście nie dopuszcza.Poszerz min i max wejść albo zmień kości.
give exactly one roll per input.Wartość count w roll różni się od liczby danych wejściowych puli.Ustaw count na liczbę danych wejściowych.
must offer exactly the methods of poolOpcje wejścia wybierającego metodę różnią się od metod puli.Niech opcje będą nazwami metod, bez dodatków i braków.
RequiredBrakuje klucza, którego potrzebuje format. Panel Problemy pokazuje listę JSON.Przeczytaj ścieżkę na liście. Wskazuje brakujący klucz. Dodaj go.
Expected number, received stringKlucz schematu ma zły typ. Panel Problemy pokazuje listę JSON.Przeczytaj path z listy. Wskazuje klucz, na przykład inputs, max_hp, min. Popraw tę wartość.

The Forge wyświetla problemy dla każdego pliku w sekcji Problemy. Problem z regułą podaje też linię i kolumnę. Gdy konstruktor się nie zgadza, komunikat wymienia pierwsze różnice i kończy się liczbą pominiętych. Popraw wymienione i sprawdź ponownie.

Serwer sprawdza ponownie