Opensource: Porovnání verzí

Z EreborWiki
Přejít na: navigace, hledání
(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.

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:

  1. bugfix/* - opravy chyb
  2. feature/* - nové vlastnosti - např. nové ability monster/hráčů, nová past do dungeonu apod.
  3. quest/* - nové questy nebo rozšíření stávajících

Základní sekvence kroků pro úpravy

  1. před zahájením změn se ujistěte, že váš lokální repozitář odpovídá aktuálnímu stavu master větve
    1. poprvé (ještě nemáte klon repozitáře u sebe): CLONE https://gitlab.com/erebor/sphere.git
    2. následné úpravy: CHECKOUT master && PULL
  2. vytvořte novou branch s odpovídajícím jménem: branch quest/q0234_novej_quest
  3. úpravujte kód, testujte
  4. COMMIT všech změněných souborů & PUSH
  5. Vytvořte Merge request:
    1. Jděte na stránku Sphere
    2. V navigačním panelu vyberte Repository > Branches.
    3. Nalezněte svou větev a klikněte na tlačítko 'Merge Request'
    4. Vyplňte formulář změn:
      1. Zadejte stručné jméno změny.
      2. 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ě).
      3. Jako Assignee zvolte uživatele Pavel Mičan.
      4. Ujistěte se, že Source Branch je vaše větev a Target Branch je master.
      5. Zaškrtněte obě volby "Remove source branch when merge request is accepted." a "Squash commits when merge request is accepted.".
      6. klikněte na tlačítko "Submit merge request"
  6. 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.
  7. 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).
  8. 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

  1. 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
  2. najděte řádek obsahující "MULFILES=muls\"
  3. změňte uvedenou cestu tak, aby mířila na vaši lokální instalaci UO Ereboru, např: "MULFILES=C:\Program Files (x86)\Erebor"
  4. 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ů

  1. otevřete si adresář s instalací Ereboru (typicky Program Files (x86)/Erebor)
  2. vyberte všechny soubory s příponou .mul
  3. 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í