Opensource: Porovnání verzí
(→Podmínky přijetí změn) |
(→Skriptování) |
||
Řádka 85: | Řádka 85: | ||
* [[Scripting standard]] | * [[Scripting standard]] | ||
* [[Skriptování]] | * [[Skriptování]] | ||
+ | * [[Analyzer skriptů]] |
Verze z 3. 7. 2018, 12:09
GM tým shardu Erebor se rozhodl otevřít komunitě skripty sphere serveru, na kterých hra běží. Každý hráč tak má možnost podílet se na vývoji hry a opravě chyb. Z důvodů stability a vyvážení hry však GM tým bude nadále pečlivě vybírat, co smí do hry přijít. Pečlivě proto čtěte instrukce na těchto stránkách, kde se dozvíte všechny podmínky potřebné k tomu, aby byla vaše změna přijata a zahrnuta do hry.
Obsah
GIT Repozitář
Stažení skriptů
Skripty Ereboru jsou uloženy na volně dostupném GIT serveru www.gitlab.com. Práci s GITem zde nebudeme rozebírat, internet je plný desítek návodů a instrukcí, jak s GIT repozitáři pracovat. Nastudujte si proto základy sami, například zde. Pro snažší kontrolu a správu změn doporučuji nainstalovat a používat aplikaci SourceTree. Tato aplikace slouží jako GUI k práci s GITem. Součástí distribuce již je předinstalovaný interní GIT, takže nemusíte dodatečně instalovat vlastní.
Pro stažení a úpravu skriptů budete potřebovat účet na stránkách gitlabu.
Po přihlášení naleznete samotný repozitář Sphere skritpů: Sphere
Pravidla pro změny v repozitáři
Protože Sphere Ereboru pravidelně každé ráno v 5h načítá aktuální skripty z master větve výše uvedeného GIT repozitáře, je naprosto nezbytné, aby byla master větev zabezpečená proti nežádoucím změnám. Z tohoto důvodu není možné provádět změny přímo v master větvi, ale musíte nejdřív vytvořit boční větev se svými změnami a požádat o tzv. merge do hlavní větve. Tuto žádost o merge potom schvalují ověření uživatelé s dobrou znalostí kódu. Během vaší žádosti o merge budete s vysokou pravděpodobností vyzváni o dodatečné úpravy, pokud při revizi vašich změn kontrolující člověk nalezne nějaké nedostatky. Chcete-li, aby vaše změny byly použity, je vaší vlastní povinností všem požadavkům vyhovět a provést potřebné úpravy.
Jména větví
Jména větví je nutné rozlišovat podle účelu. V tuto chvíli jsou povolené 3 prefixy:
- bugfix/* - opravy chyb
- feature/* - nové vlastnosti - např. nové ability monster/hráčů, nová past do dungeonu apod.
- quest/* - nové questy nebo rozšíření stávajících
Základní sekvence kroků pro úpravy
- před zahájením změn se ujistěte, že váš lokální repozitář odpovídá aktuálnímu stavu master větve
- poprvé (ještě nemáte klon repozitáře u sebe): CLONE https://gitlab.com/erebor/sphere.git
- následné úpravy: CHECKOUT master && PULL
- vytvořte novou branch s odpovídajícím jménem: branch quest/q0234_novej_quest
- úpravujte kód, testujte
- COMMIT všech změněných souborů & PUSH
- Vytvořte Merge request:
- Jděte na stránku Sphere
- V navigačním panelu vyberte Repository > Branches.
- Nalezněte svou větev a klikněte na tlačítko 'Merge Request'
- Vyplňte formulář změn:
- Zadejte stručné jméno změny.
- V Description detailně popište, čeho se vaše změny týkají a pokud je nutný ruční zásah ve hře, uveďte postup, který je třeba vykonat (např. osazení nových quest NPC a podobně).
- Jako Assignee zvolte uživatele Pavel Mičan.
- Ujistěte se, že Source Branch je vaše větev a Target Branch je master.
- Zaškrtněte obě volby "Remove source branch when merge request is accepted." a "Squash commits when merge request is accepted.".
- klikněte na tlačítko "Submit merge request"
- Vyčkejte, než se někdo z GM týmu bude věnovat vaší žádosti o merge - doporučuji zrevidovat vaše e-mailové notifikace na vašem gitlab účtu a v nastavení Sphere repozitáře tak, abyste byli včas upozorněni na komentáře k vaším žádostem.
- V případě, že budete požádání o dodatečné úpravy, proveďte je a až budete hotovi, znovu proveďte COMMIT && PUSH (v té samé větvi, pro kterou jste vytvořili Merge request).
- GM odsouhlasí a mergne váš merge request - druhý den budou vaše změny ve hře.
Spuštění a login
Po stažení zdrojových souborů bude většina věcí připravena na spuštění. Sphere ovšem ještě potřebuje znát cestu k MUL souborům, které jsou příliš velké a jejich změna a distribuce jsou nezávislé. Tyto mul soubory obsahují grafiku předmětů a mapu a jsou součástí vaší instalace UO pro Erebor server. Pro správnou funkčnost Sphere můžete zvolit jeden ze 2 následujících kroků
Úprava sphere.ini
- v libovolném textovém editoru si otevřete soubor sphere.ini nacházející se v kořeni vašeho lokálního repozitáře Sphere
- najděte řádek obsahující "MULFILES=muls\"
- změňte uvedenou cestu tak, aby mířila na vaši lokální instalaci UO Ereboru, např: "MULFILES=C:\Program Files (x86)\Erebor"
- POZOR: pokud si změníte sphere.ini soubor, dávejte si pozor, abyste změny v něm nepushli na server.
Kopie MUL souborů
- otevřete si adresář s instalací Ereboru (typicky Program Files (x86)/Erebor)
- vyberte všechny soubory s příponou .mul
- zkopírujte soubory do vašeho lokálního GIT repozitáře Sphere: sphere/muls
Start Sphere
Pokud jste všechny výše uvedené kroky provedli správně, měli byste nyní být schopní spustit soubor SphereSvr.exe. Při startu na vás vyskočí velké množství WARNINGu. To je běžné z důvodů použití tzv. custom triggerů. Mějte se však na pozoru, jediným warningem, který byste měli vidět je "Unknown trigger ...". (pozn. v době, kdy je psána tato poznámka můžete vidět nekolik výskytů chyby "Redef resource", což je ovšem skutečná chyba v kódu, která by měla být opravena, kód je ovšem jinak funkční).
Účty a připojení
Pro účely rychlé práce a vývoje jsou pro vás připraveny 3 účty. Jejich popis naleznete v souboru accounts/sphereaccu.scp. Podle vzoru, který vidíte můžete libovolně přidávat další účty, pokud budete potřebovat. GM účty musí mít nastavený PLevel=6 a vyšší (zástupné jméno "Plevel=GM"). Běžný hráčský účet nemusí mít Plevel vůbec uvedený.
Pro nalogování na vaší lokální Sphere prvně jděte do vaší instalace Erebor UO a změňte IP adresu v souboru login.cfg na hodnotu: LoginServer=127.0.0.1,2593 (nezapomeňte si poznamenat původní hodnotu, abyste se mohli znovu připojit na ostrý server). Pokud používáte Injection, můžete pro jednodužší přepínání mezi servery (ostrý a lokální sphere server) využít Injection Launcher, kde si můžete uložit různé servery a pod jednotlivými servery i různé účty.
Nyní už stačí spustit herního clienta Ereboru. Prvně zkuste přihlášení z původními účty administratora: Account name: admin, password: admin
Podmínky přijetí změn
Skripty, které se rozhodnete do hry přidat musí splňovat následující kriteria:
- Vaše změny nesmí ve sphere produkovat žádné WARNING zprávy, natož ERRORY a to i v okrajových případech. Testujte proto váš kód dobře.
- Skripty musí splňovat Scripting standard, nehledě na to, zda v existujících skriptech najdete jiný zápis. Skripty Ereboru jsou staré a obsahují spoustu kódu, který je napsaný jinak a porušuje naše dnešní doporučení.
- Vaše změny nesmí obsahovat přehnané vulgarismy a primitivní humor. Soudcem v takových případech bude GM kontrolující váš kód a vaší povinností je přizpůsobit se jeho subjektivnímu doporučení.
- Skripty by neměly obsahovat gramatické chyby.
- Skripty musí být psány s ohledem na vyšší směřování shardu a nesmí porušovat herní mechanismy nebo výrazným způsobem zasahovat do skoučasné ekonomiky.
- Skripty musí být přehledné a nesmí vystavovat server riziku vysoké zátěže
- Skripty nesmí obsahovat změny v žádném ze souborů save (vaše lokální změny) ani sphere.ini souborech! Výjimkou mohou být ručně vložené globální proměnné do VARS sekce save.
- Skripty musí bezchybně projít přiloženým analyzerem.
Proti rozhodnutí GM o skriptu nesplňujícím výše uvedené, nebo další požadavky, nebude odvolání. Pakliže budete vyzváni k úpravě vašich změn, musíte změnu provést. V opačném případě nebude váš kód přijat, a to i v případě, že opticky funguje perfektně a bez chyby.
Doporučení
Větší změny, zásahy do vlastností NPC a povolání nebo návrhy questů konzultujte s někým z GM týmu dopředu. Vyvarujete se tak tomu, že investujete větší množství času do změn, které pak budou z principielních důvodů zamítnuty. Přestože si GM tým Ereboru váží každé snahy o posun vpřed, vyhrazuje si zároveň právo rozhodnout, zda bude daný skript schválen, či ne.
Skriptování
Zde naleznete seznam stránek se základními informacemi o skriptování