Transakcje na wyspie umożliwiają sprzedawanie przedmiotów, ofert oraz ofert zestawów na wyspie przy użyciu Verse.
W tym przewodniku dowiesz się, jak skonfigurować własne przedmioty, oferty oraz oferty zestawów. Następnie za pomocą modułu rynku w interfejsie API Verse będziesz prowadzić sprzedaż przedmiotów w trakcie gry.
Przedmioty
Przedmioty w języku Verse definiuje się jako uprawnienia, które można podzielić na dwie kategorie: przedmioty jednorazowe, które znikają z ekwipunku gracza po wykorzystaniu, oraz przedmioty trwałe, które gracz może zachować, gdyż nie są one usuwane z jego ekwipunku.
Każde uprawnienie Verse ma następujące właściwości:
Name: Nazwa uprawnienia składająca się z maksymalnie 50 znaków.
Description: Długi opis wyświetlany wraz z uprawnieniem, składający się z maksymalnie 500 znaków.
ShortDescription: Krótki opis z podsumowaniem uprawnienia widoczny w mniejszym oknie dialogowym i składający się z maksymalnie 100 znaków.
Icon: Obraz przedstawiający uprawnienie.
Jeśli twoje uprawnienie jest płatnym przedmiotem losowym, musisz podać w opisie dokładną liczbową szansę na to, co gracz może otrzymać. Aby dowiedzieć się więcej, patrz: Płatne przedmioty losowe.
Uprawnienie Verse może mieć również następujące właściwości opcjonalne:
MaxCount: Maksymalna liczba sztuk danego uprawnienia, jaką gracz może posiadać w dowolnej chwili.
Consumable (przedmiot jednorazowy): W przypadku ustawienia dla tej opcji wartości true, uprawnienie będzie zużywalne, co oznacza, że z każdym kolejnym użyciem całkowita liczba sztuk tego uprawnienia będzie się zmniejszać. Jeśli zaś w tej opcji wybrane zostanie ustawienie false, uprawnienie będzie przedmiotem trwałym, a jego użycie nie będzie powodowało usunięcia go z ekwipunku
PaidArea: W przypadku ustawienia dla tej opcji wartości true, dane uprawnienie zapewnia dostęp do obszaru ukrytego za zaporą płatniczą.
PaidRandomItem: W przypadku ustawienia dla tej opcji wartości true, uprawnienia te są kupowane lub odbierane za zawartość w celu uzyskania losowej nagrody.
ConsequentialToGameplay: Jeśli jest to ustawione na wartość true, przedmiot zapewnia graczowi znaczącą przewagę na twojej wyspie. Aby uzyskać więcej szczegółów, patrz: Wpływające na rozgrywkę.
Jeśli masz aktywne uprawnienia, które nie są używane, i nie potwierdzisz zakupów w aplikacji w kwestionariuszu IARC, proces moderacji wyspy zakończy się niepowodzeniem.
Aby obejść ten problem, możesz zakomentować swoje uprawnienia w Verse do momentu, gdy będziesz gotowy(-wa) do użycia ich w grze. Gdy uprawnienia są oznaczone jako komentarz, nie trzeba zgłaszać zakupów w aplikacji w kwestionariuszu IARC.
Tworzenie uprawnienia jednorazowego w Verse
Uprawnienia są definiowane w Verse jako pochodne klasy bazowej uprawnienia. Poniższy fragment kodu przedstawia proces tworzenia przedmiotu jednorazowego. W tym przykładzie utworzysz nasiona kukurydzy w formie przedmiotu zużywalnego. Poniżej znajduje się ikona nasion, którą możesz wykorzystać.
# The base entitlement you should define for ALL of your entitlements in your experience.
my_island_entitlement := class<abstract><castable>(entitlement){}
CornSeedPacket<public> := module:
Name<public><localizes> : message = "Corn seed pack"
Description<public><localizes> : message = "A pack of corn seeds. Opening a pack yields 10 corn seeds for planting."
ShortDescription<public><localizes> : message = "Contains 10 corn seeds for planting."
cornseedpacket<public> := class<concrete>(my_island_entitlement):
var Name<override>:message = CornSeedPacket.Name
Tworząc uprawnienie, musisz uwzględnić ścieżkę do prawidłowej tekstury ikony, aby kod Verse został prawidłowo skompilowany. Pakiet nasion kukurydzy oraz inne ikony z tego przewodnika możesz wykorzystać za darmo!
Zadbaj, aby ikony uprawnień były teksturami w rozmiarze będącym potęgą dwójki, aby w twojej witrynie prezentowane były obrazy najwyższej jakości. Informacje na temat importowania tekstur do UEFN w celu wykorzystania ich w charakterze ikon zawiera artykuł Importowanie zasobów. Informacje na temat uwidaczniania zasobów, takich jak tekstury, w Verse zawiera artykuł Uwidacznianie zasobów.
Tworzenie uprawnień trwałych w Verse
Uprawnienia trwałe w Verse mają taki sam format, jak uprawnienia jednorazowe, jednak kluczowa różnica polega na tym, że w ich przypadku we właściwości Consumable należy ustawić wartość false, a nie true. Gracze mogą zakupić uprawnienia trwałe tylko raz i mogą posiadać tylko jeden egzemplarz danego trwałego uprawnienia.
W tym przykładzie utworzysz uprawnienie trwałe w postaci łopaty. Pod poniższym fragmentem kodu dostępna jest ikona z teksturą łopaty.
Shovel<public> := module:
Name<public><localizes>: message = "Shovel"
Description<public><localizes>: message = "An unbreakable shovel used to dig holes for planting."
ShortDescription<public><localizes>: message = "Digs holes."
shovel<public> := class<concrete>(my_island_entitlement):
var Name<override>:message = Shovel.Name
var Description<override>:message = Shovel.Description
var ShortDescription<override>:message = Shovel.ShortDescription
var Icon<override>:texture = # path to your texture here
Domyślnie, przedmioty nie są Consumable i mają właściwość MaxCount ustawioną na 1. Jeżeli przedmiot znajduje się w obszarze płatnym lub stanowi płatny przedmiot losowy lub zapewnia znaczącą przewagę wpływającą na rozgrywkę, należy zdefiniować odpowiednie pola w kodzie.
Zasady weryfikacji uprawnień
Prawidłowe uprawnienie w Verse musi spełniać poniższe wytyczne. Zakupy uprawnień, które ich nie spełniają, będą kończyły się niepowodzeniem.
Zasady decydujące o poprawności uprawnienia:
Właściwość Name ma limit znaków 50.
Właściwość Description ma limit znaków 500.
Właściwość ShortDescription ma limit znaków 100.
Właściwość MaxCount musi mieć wartość 1, gdy Consumable=false.
Właściwość MaxCount jest ograniczona do wartości maksymalnej 10,000,000.
Ustawienie MaxCount < 1 nie jest uniemożliwiane, ale spowoduje niepowodzenie, ponieważ nie można przyznać graczowi mniej niż jednej sztuki pojedynczego przedmiotu.
Katalog uprawnień
Katalog uprawnień umożliwia wyświetlanie wszystkich uprawnień oferowanych graczom.
Możesz wyświetlić raport z listą twoich uprawnień w UEFN, klikając kolejno opcje Narzędzia > Katalog uprawnień lub dokonując wyboru bezpośrednio z katalogu w Portalu Twórcy dla twojej wyspy.
Oferty
Oferta określa cenę przedmiotu lub zasobu w V-dolcach. Każda oferta ma własną nazwę, opis oraz ikonę, niezależnie od specyfikacji uprawnienia. Ofertę definiuje się w Verse.
Każda oferta ma następujące właściwości:
Name: Nazwa oferty.
Description: Długi opis wyświetlany wraz z ofertą.
ShortDescription: Krótki opis, który możesz wykorzystać do podsumowania oferty w mniejszych oknach dialogowych.
Icon: Obraz przedstawiający ofertę.
EntitlementType: Deklaracja uprawnienia uwzględnionego w ofercie.
Price: Cena w V-dolcach. Cena nie może być mniejsza niż 50 V-dolców ani większa niż 5000 V-dolców. Musi być ona wielokrotnością liczby 50.
Nie używaj pojęć ze sklepu Fortnite w odniesieniu do przedmiotów lub wskaźników postępów, takich jak „PD”. Gracze zawsze powinni mieć jasność w zakresie tego, czy kupują przedmioty, których można używać w całej grze Fortnite, czy tylko na twojej wyspie.
Więcej informacji na temat wytycznych dotyczących pojęć i nazewnictwa w ramach monetyzacji na wyspach znajdziesz w sekcji Pojęcia i nazewnictwo.
Tworzenie prostej oferty
Ten fragment kodu pozwala zdefiniować podstawową ofertę dla prostej oferty, czyli pakietu nasion kukurydzy. Jako ikonę w tej ofercie możesz wykorzystać ikonę nasion kukurydzy z przykładowego uprawnienia.
CornSeedPacket<public> := module:
Name<public><localizes> : message = "Corn seed pack"
Description<public><localizes> : message = "A pack of corn seeds. Opening a pack yields 10 corn seeds for planting."
ShortDescription<public><localizes> : message = "Contains 10 corn seeds for planting."
corn_seed_pack<public> := class(entitlement_offer):
var Name<override> : message = CornSeedPacket.Name
var Description<override> : message = CornSeedPacket.Description
var ShortDescription<override> : message = CornSeedPacket.ShortDescription
Cena w V-dolcach musi być wielokrotnością liczby 50 i mieścić się w zakresie od 50 do 5000 V-dolców.
Musisz zadbać o to, aby gracze wyraźnie widzieli liczbową szansę otrzymania każdego z płatnych przedmiotów losowych przed zakupem. Niezastosowanie się do tego wymogu będzie uznane za naruszenie Zasad dla deweloperów wysp w Fortnite i spowoduje nałożenie odpowiednich sankcji na ciebie i twoją wyspę.
Aby dowiedzieć się więcej, patrz: Ograniczenia dotyczące transakcji na wyspie.
Tworzenie i modyfikowanie ofert stałych i alternatywnych
Możesz utworzyć alternatywne oferty tego samego uprawnienia, aby móc oferować go w specjalnych cenach w okresach urlopowych, w ramach bonusów wprowadzających bądź w celu zróżnicowania cen w zależności od regionu. Możesz również wykorzystać tę opcję do testowania uprawnienia, tworząc identyczną ofertę z wykorzystaniem różnych ikon, by sprawdzić, która bardziej przypadnie graczom do gustu. Wykorzystajmy tę ikonę jako przykład.
CornSeedPacketAlternate<public> := module:
Name<public><localizes> : message = "Corn seed pack"
Description<public><localizes> : message = "Special price! Only today!"
ShortDescription<public><localizes> : message = "Special offer half price!"
corn_seed_pack_alternate<public> := class(entitlement_offer):
var Name<override> : message = CornSeedPacketAlternate.Name
var Description<override> : message = CornSeedPacketAlternate.Description
var ShortDescription<override> : message = CornSeedPacketAlternate.ShortDescription
var Icon<override> : texture = # Your texture here
Oferty zestawów
Zestawy definiuje się w Verse. Mogą one zawierać kombinację różnych ofert, stosy tej samej oferty lub połączenie obu tych wariantów. Podobnie jak w przypadku prostych ofert, oferty zestawów mają określoną własną cenę, nazwę oraz opis, a także ikonę, która odróżnia je od uprawnień i ofert. Możesz również zagnieździć oferty, dodając zestawy do oferty zestawów. Przykładem będzie ograniczony czasowo zestaw zawierający łopatę oraz zestaw pakietów nasion kukurydzy. W ten sposób można wykorzystać mniejsze zestawy jako bloki konstrukcyjne do tworzenia większych zestawów łączonych.
Standardowymi typami zestawów są:
Zestaw ze stosami przedmiotów: Zestaw zawierający wiele ofert tego samego uprawnienia, zazwyczaj po niższej cenie.
Zestaw z wieloma ofertami: Zestaw łączący oferty wielu uprawnień. Może zawierać również połączenie ofert stosów przedmiotów i zwykłych ofert.
Przy zagnieżdżaniu można utworzyć maksymalnie 5 poziomów ofert, inaczej transakcja zakończy się niepowodzeniem. W miarę możliwości staraj się ograniczać zagnieżdżanie ofert.
Tworzenie zestawu ze stosami przedmiotów
Ten fragment kodu definiuje zestaw ze stosem nasion kukurydzy. Zestaw zawiera tablicę krotek ofert, w której zdefiniowana jest oferta wraz z wartością int wskazującą liczbę ofert. W tym przypadku zestaw będzie zawierał dwie oferty corn_seed_pack. W tym przykładzie podano ikonę.
CornSeedPacketBundle<public> := module:
Name<public><localizes> : message = "Corn seed pack bundle"
Description<public><localizes> : message = "Two packs of corn seeds. Opening a pack yields 10 corn seeds for planting."
ShortDescription<public><localizes> : message = "Two packs of corn seeds containing 10 corn seeds for planting."
corn_seed_pack_bundle<public> := class(bundle_offer):
var Name<override> : message = CornSeedPacketBundle.Name
var Description<override> : message = CornSeedPacketBundle.Description
var ShortDescription<override> : message = CornSeedPacketBundle.ShortDescription
var Icon<override> : texture = # your texture here
Tworzenie zestawów z wieloma ofertami
Gracze mogą preferować unikanie zawierania wielu transakcji, więc możesz utworzyć zestaw obejmujący wiele ofert, które zawierają różne uprawnienia. Ten fragment kodu pozwala utworzyć zestaw z wieloma ofertami, w ramach którego gracz otrzyma maksymalną liczbę pakietów kukurydzy i łopatę.
StarterBundle<public> := module:
Name<public><localizes> : message = "Starter bundle"
Description<public><localizes> : message = "Everything a new player needs. Get fully stocked to start quickly! A shovel that digs holes, and ten packs of corn seeds each containing 10 corn seeds for planting."
ShortDescription<public><localizes> : message = "A shovel that digs holes, and ten packs of corn seeds each containing 10 corn seeds for planting."
starter_bundle<public> := class(bundle_offer):
var Name<override> : message = StarterBundle.Name
var Description<override> : message = StarterBundle.Description
var ShortDescription<override> : message = StarterBundle.ShortDescription
var Icon<override> : texture = # your texture here
W Verse zestawy nie zawierają bezpośrednio uprawnień. Zamiast tego, zawierają one oferty, w których zawarte są definicje uprawnień.
Oferty tworzone dynamicznie
Oferta tworzona dynamicznie jest ofertą lub zestawem generowanym w czasie wykonywania programu w Verse. Częste przypadki użycia ofert dynamicznych:
Oferta na maksymalną ilość drewna, jaką może posiadać gracz w grze opartej na tworzeniu.
Zestaw mikstur przywracających maksimum zdrowia i many na wejściu do lochu w grach z eksploracją lochów.
Dla uproszczenia powiąż je z czymś prostym, jak przycisk lub znak. W kodzie Verse przepływ wyglądałby następująco: W momencie interakcji > wywołaj BuyOffer.
Podany fragment kodu przedstawia sposób sprzedaży zestawu pakietów kukurydzy pozwalający uzupełnić zapas gracza do maksymalnej liczby sztuk, jaką może posiadać. W razie niepowodzenia zakupu wyświetlany jest komunikat o błędzie.
TryBuyOffer(Player : player)<suspends>:void =
Purchases := GetPurchasedEntitlements(Player, Entitlements.corn_seed_pack)
var NumPlayerCornSeedPacks : int = 0
if (Purchase := Purchases[0]):
set NumPlayerCornSeedPacks = Purchase(1)
# Limit to at least 1 packet.
# If the player has the maximum amount, the offer displays with a disabled purchase button.
NumCornSeedPacks := Max(1, Entitlements.corn_seed_pack{}.MaxCount - NumPlayerCornSeedPacks)
Zasady weryfikacji ofert
Prawidłowa oferta lub zestaw ofert musi spełniać poniższe wytyczne. Zakupy, które nie będą spełniały tych zasad, nie przejdą pomyślnie moderacji. Zasady decydujące o poprawności oferty:
Maksymalna liczba poziomów zagnieżdżenia nie może przekraczać 5.
Łączna liczba identyfikatorów uprawnień nie może przekraczać 100 na ofertę. Oznacza to, że w przypadku równoczesnej sprzedaży różnych uprawnień ich całkowita liczba nie może przekraczać 100.
Cena oferty musi się mieścić w zakresie od 50 do 5000 V-dolców i musi być wielokrotnością liczby 50.
Domyślny tekst nazwy oferty
Namemoże się składać z maksymalnie 50 znaków.Domyślny tekst opisu oferty
Descriptionmoże się składać z maksymalnie 500 znaków.Domyślny tekst krótkiego opisu
ShortDescriptionmoże się składać z maksymalnie 100 znaków.Oferta musi zawierać co najmniej 1 uprawnienie.
Liczba sztuk uprawnienia w ofercie nie może być większa niż wartość właściwości
MaxCountzdefiniowana dla tego uprawnienia.Oferta nie może zawierać uprawnienia trwałego, dla którego wartość
MaxCount> 1.
Możesz zdecydować się na wprowadzenie ograniczeń dotyczących tego, gdzie oferty są prezentowane i kto może je zobaczyć. Aby dowiedzieć się więcej, patrz: Ograniczenia dotyczące transakcji na wyspie.
Tworzenie witryny sklepu
Masz już uprawnienia i skonfigurowane dla nich oferty oraz zestawy, więc potrzebujesz miejsca, by je sprzedawać!
Domyślny UI
W domyślnym interfejsie użytkownika witryny sklepu po otwarciu wyświetlana jest lista wszystkich dodanych uprawnień i ofert. Pierwsze uprawnienie na liście jest wyróżnione, a w oknie obok listy uprawnień wyświetlane jest jego omówienie.
Witryny mogą liczyć wiele stron.
Listy zawierające więcej niż pięć pozycji można przewijać.
Gracz uruchamia proces zakupu, wywołując metodę BuyOffer lub korzystając z domyślnej witryny sklepu za pomocą metody ShowOffersDialog. Poniżej przedstawiono przykłady niektórych urządzeń, które można wykorzystać do powiązania procesu zakupu w witrynie sklepowej z projektem gry:
Urządzenie wolumenów
Urządzenie licznika czasu Scene Graph
Postacie NPC
Urządzenie rozmowy
Podczas projektowania witryny sklepowej dobrą praktyką jest wymaganie od gracza podjęcia decyzji o rozpoczęciu procesu zakupu. Pominięcie tego wyboru i wymuszenie na graczu rozpoczęcia procesu zakupu ogranicza jego swobodę działania i może spowodować niezadowolenie graczy.
Przy wszystkich ofertach wyświetlane są przyciski Kup i Sprawdź, które otwierają okna rynku pozwalające zakupić daną pozycję lub sprawdzić zawartość oferty. Przycisk Sprawdź zestaw wyświetlany jest tylko w przypadku zestawów.
Wybranie przycisku Zamknij pozwala zamknąć rynek.
Sposób działania witryny sklepu jest w pełni kontrolowany przez twórcę:
Możesz samodzielnie decydować, jakie przedmioty czy właściwości rozgrywki chcesz oferować graczom.
Możesz też ustalić cenę każdej oferty produktu lub zestawu.
Możesz zaprezentować własną witrynę sklepu lub skorzystać z gotowego UI witryny sklepu Fortnite.
UI witryny sklepu
Ten fragment kodu definiuje ogólne wywołanie zwrotne zdarzenia, które otwiera wstępnie utworzony UI witryny sklepu Fortnite. Wywołanie zwrotne może pochodzić z subskrypcji, naciśnięcia przycisku, zdarzenia rozmowy itd.
OnEvent(Agent:agent):void=
if(Player:= player[Agent]):
spawn{ShowOffersDialog(Player, array{
ExampleOffers.shovel{},
ExampleOffers.cornseedpacket{}
})}
Obsługa zakupów
Ten fragment kodu zawiera ogólny proces zakupu oferty. W razie niepowodzenia zakupu wyświetlany jest komunikat o błędzie.
Aby ułatwić debugowanie nieudanych zakupów, uwzględnij sposób identyfikacji nieudanego zakupu w komunikacie o błędzie, na przykład poprzez dołączenie nazwy oferty w powyższym komunikacie o błędzie.
# Track which players you're listening for entitlement changes for
var EntitlementChangeSubscription:[player]?cancelable = map{}
# Track Player Join subscription
var PlayerJoinSubscription:?cancelable = false
# Track Player Left subscription
var PlayerLeftSubscription:?cancelable = false
# Runs when the device is started in a running game, register to listen for players joining & leaving the experience
Nie używaj warunku powodzenia próby zakupu za pomocą BuyOffer, ShowOffersDialog, ConsumeEntitlement ani GrantEntitlement do wprowadzania zmian związanych z uprawnieniami. Zamiast niego użyj GetEntitlementChangedEvent.
Weryfikowanie zakupów
Dobrą praktyką jest weryfikowanie zakupów gracza, gdy dołącza. Ten fragment zawiera ogólny proces weryfikacji oferty.
OnPlayerJoin(InPlayer:player):void =
# Run the validation check to ensure the Player's data in your experience matches what the Marketplace API says they own.
spawn{ ValidatePreviousPurchases(InPlayer) }
ValidatePreviousPurchases(Player:player)<suspends>:void=
Purchases := GetPurchasedEntitlements(Player, Entitlements.example_entitlement)
# Perform any checks to ensure your saved data matches what the Marketplace says the player owns.
Dodatkowe funkcje
Płatne losowe przedmioty
Istnieją dwa sposoby oferowania płatnych przedmiotów losowych na swojej wyspie:
Możesz je bezpośrednio oferować do zakupu za V-dolce.
Możesz je pośrednio oferować, pozwalając graczom kupować uprawnienia za V-dolce, które następnie mogą zostać wykorzystane do odebrania nagrody losowej lub mogą wpływać na prawdopodobieństwo jej otrzymania.
Podczas tworzenia przedmiotu, który bezpośrednio przyznaje nagrodę losową lub który można wymienić tylko na nagrodę losową, musisz ustawić funkcję PaidRandomItem na wartość true w tym uprawnieniu i ujawnić dokładne liczbowe prawdopodobieństwo otrzymania każdego możliwego losowego przedmiotu przed jego zakupem. Podaj dokładne wartości liczbowe prawdopodobieństwa uzyskania każdego z możliwych losowych przedmiotów bezpośrednio w opisie oferty lub wyjaśnij w opisie oferty, gdzie można sprawdzić te wartości.
Poniżej zamieszczamy kilka przykładów.
Jeśli za V-dolce oferujesz „pudełko z tajemniczym przedmiotem”, musisz ustawić funkcję
PaidRandomItemw uprawnieniu na wartośćtruei ujawnić dokładne liczbowe prawdopodobieństwo otrzymania poszczególnych możliwych przedmiotów.Jeśli za V-dolce oferujesz „dopalacz szczęścia” dający graczowi większe prawdopodobieństwo otrzymania przedmiotu losowego w trakcie rozgrywki, musisz ustawić funkcję
PaidRandomItemw uprawnieniu na wartośćtruei ujawnić dokładne liczbowe prawdopodobieństwo uzyskania poszczególnych możliwych przedmiotów.Jeśli za V-dolce oferujesz żetony, które można wykorzystać tylko do odebrania przedmiotu losowego, musisz użyć funkcji
RestrictPaidRandomItems, aby uniemożliwić otrzymanie nagrody losowej graczom, którzy nie mają do niej dostępu.Jeśli za V-dolce oferujesz żetony, które można wykorzystać do odebrania różnych przedmiotów (w tym przedmiotu losowego), musisz użyć funkcji
RestrictPaidRandomItems, aby uniemożliwić otrzymanie nagrody losowej graczom, którzy nie mają do niej dostępu.
Jeśli oferujesz zawartość, którą można wymienić na różne przedmioty, w tym nagrodę losową, musisz użyć funkcji RestrictPaidRandomItems, aby uniemożliwić otrzymanie nagrody losowej graczom, którzy nie mają do niej dostępu. Zanim gracz otrzyma losową nagrodę, musisz podać dokładne prawdopodobieństwo uzyskania każdego z możliwych przedmiotów.
OnEvent(Agent:agent):void=
if (Player := player[Agent]):
if (RestrictPaidRandomItems[Player]):
Print("Player is not allowed to purchase PaidRandomItems.")
else:
Print("Player is allowed to purchase PaidRandomItems.")
Bezpośrednie monity o zakup
Jeśli twoja wyspa posiada bezpośrednie monity o zakup, musisz użyć funkcji RestrictDirectPromptsToPurchase, aby określić, czy gracz kwalifikuje się do otrzymania monitu.
OnEvent(Agent:agent):void=
if (Player:= player[Agent]):
if (RestrictDirectPromptsToPurchase[Player]):
Print("Player is not allowed to receive direct purchase prompts.")
else:
Print("Player is allowed to receive direct purchase prompts.")
Wpływające na rozgrywkę
Jeśli przedmiot, który sprzedajesz, daje graczom znaczącą przewagę na twojej wyspie, musisz ustawić ConsequentialToGameplay na wartość true.
Do przedmiotów wpływających na rozgrywkę zaliczają się wszelkie przedmioty, które po zakupie zapewniają graczom znaczącą przewagę w grze. Ten wpływ może być bezpośredni (np. przedmiot zwiększający tempo postępów, moc lub możliwości gracza w rozgrywce) albo pośredni (np. przedmiot dający dostęp do czegoś, co w znaczący sposób wpływa na to, jak szybko gracz może czynić postępy w grze lub jakie ma szanse na wygraną).
Jeśli istnieje alternatywa dla sprzedawanego przedmiotu, która zapewnia taką samą korzyść i jest swobodnie dostępna dla wszystkich graczy w tym samym czasie, gdy oferta jest prezentowana, bez żadnych warunków, wówczas nie musisz ustawiać ConsequentialToGameplay na wartość true. Oznacza to, że gracze muszą mieć dostęp do przedmiotu bez wykonywania określonych zadań lub spełniania wymagań rozgrywki.
Jeśli dany przedmiot ma przypadkowy, ale nieistotny wpływ na rozgrywkę – tak jak w przypadku przedmiotów o różnych kolorach, które działają tak samo, ale w różnych środowiskach są nieco inaczej widoczne – nie trzeba ustawiać parametru ConsequentialToGameplay na wartość true.
# The base entitlement you should define for ALL of your entitlements in your experience.
my_island_entitlement := class<abstract><castable>(entitlement){}
CornSeedPacket<public> := module:
Name<public><localizes> : message = "Corn seed pack"
Description<public><localizes> : message = "A pack of corn seeds. Opening a pack yields 10 corn seeds for planting."
ShortDescription<public><localizes> : message = "Contains 10 corn seeds for planting."
cornseedpacket<public> := class<concrete>(my_island_entitlement):
var Name<override>:message = CornSeedPacket.Name