<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.spherecommunity.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sco</id>
		<title>SphereWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.spherecommunity.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sco"/>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Special:Contributions/Sco"/>
		<updated>2026-04-10T05:38:27Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Tr:Main_Page&amp;diff=776</id>
		<title>Tr:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Tr:Main_Page&amp;diff=776"/>
				<updated>2010-12-28T10:24:20Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main_Page}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hoşgeldin Taran's ünlü geri almak için &amp;quot;[http://www.cs.rit.edu/ ~ djr7581 / Dummies öğreticiler için Sphere Scripting]&amp;quot; ve bilgiler. Onun öğretici, ama Sphere 55i için yapıldı hakkında onun öğreticiler yeniden yazmak ve son değişiklik ve eklemeler yansıtacak şekilde bilgilerinizi güncellemek karar çıkacak Sphere 56b şimdi ki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Nereden başlamalıyım?'''&lt;br /&gt;
&lt;br /&gt;
bölüm | sen Sphere 56b için script öğrenmek istiyorsanız [Sphere] Kurma Sphere Ayarlama [#] okuyarak ilk başlamalısınız. Bu nasıl yol başlatmak için bir temel boş dünya kurmak için size öğretecektir. Eğer [[# Rehberler | Rehberler]] okuma denemelisiniz Bundan sonra, yavaş gitmek, onu okumak ve tam her şeyi anlamak zaman alıyor gibi bir gün her şeyi geçmesi çalışmayın.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ben script nasıl öğrendim! Ve şimdi?'''&lt;br /&gt;
&lt;br /&gt;
Eğer 10 bölüm bitmiş olursa, tutortials ve diğer eşyaların altında okumanızı öneririz. Onlar, diğerleri kadar önemli olmayabilir ama yine de oldukça yararlıdır ve pek çok faydalı bilgiyi içerir. [http://www.sphereserver.net/index.php SphereServer Forum] de başkaları ile kendi betikleri ve paylaşım yaparak deneyin. kendiniz bir şey çözemez durumda da yardım isteyebilirsiniz. kullanmayı unutmayın [[# Referans Compendium | Referans Compendium]] aşağıya gerçekten yararlı olduğu gibi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ben katkıda bulunmak istiyorum!'''&lt;br /&gt;
&lt;br /&gt;
Bu sitedeki bilgiler bakımı yapmak zaman var çalışmak çok büyük bir miktar değil, çoğumuz içerir. Eğer yardım etmek istiyorsanız bunun için çekinmeyin! İhtiyacınız olan tek şey başlamak için yapmaktır [[Special: UserLogin | Hesap] yaratmak] Bunu zaten yapmadıysanız. Eğer ROP sağ köşedeki &amp;quot;Düzenle&amp;quot; bağlantısını kullanarak herhangi bir sayfasını düzenleyebilirsiniz. Bunu gitmeden önce, [[Katkı Kılavuzu]] okuyarak başlamak isteyebilirsiniz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Için teşekkür etmek istiyorum:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho | Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus ve WarAngel]], içerik eklemek yardımlarınız için.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho | Daleth]], Küre Referans Projesi, ve [[WhoIsWho | Mordaunt]] yazmak için. Için chm format dönüştürme için.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho | Tracker]], Sphereserver.net yılında Küre 56 İzleme Değişiklikleri yazmak için&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho | Taran]], Dummies öğreticiler için ve şimdi ünlü orijinal Sphere Scripting ve [[WhoIsWho | MrSugarCube]] yazmak için doğrudan kaynağından güncel o kadar getirdiğin için.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho | Furio, Parlak, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon ve MrSugarCube]] için bir çok özelleştirilebilir güçlü Ultima Online içine Sphere geliştirmeye devam emülatör.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho | CRIUS]], orijinal SphereWiki için barındırma sağlamak için, ve [[WhoIsWho | Torfo]] sağlamak için barındırma geçerli.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sphere kurma ==&lt;br /&gt;
&lt;br /&gt;
* [Nerede Sphere] almak için []&lt;br /&gt;
* [[Sphere] yükleme]&lt;br /&gt;
* [[Sphere.ini] yapılandırılması]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rehberler ==&lt;br /&gt;
&lt;br /&gt;
Burada Sphere56b güncelledi Taran orijinal özet olan bölümleri şunlardır:&lt;br /&gt;
&lt;br /&gt;
* [[Bölüm 1]]''(Sayılar, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[Bölüm 2]]''(Sphere açıkladı dosyaları)''&lt;br /&gt;
* [[Bölüm 3]]''(Scripting NPC'ler ve öğeleri, Cool komutları)''&lt;br /&gt;
* [[Bölüm 4]]''(Objects, operatörler, konuşma)''&lt;br /&gt;
* [[Bölüm 5]]''(Etiketler, Vars, Yerel, Fonksiyonlar)''&lt;br /&gt;
* [[Bölüm 6]]''(LINKs, zamanlayıcılar, Hedeflerin)''&lt;br /&gt;
* [[Bölüm 7]]''(Döngüler ve güçlü fonksiyonları)''&lt;br /&gt;
* [[Bölüm 8]]''(SKILLMENUs, menüler, Gumps)''&lt;br /&gt;
* [[Bölüm 9]]''(Events)''&lt;br /&gt;
* [[10. Bölüm]]''(String Handling)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bunlara ek olarak diğer üyeler tarafından katkısı vardır biraz daha gelişmiş örnekler bulunuyor. Bu daha fazla bilgi edinmek için bir kez sen okumak isteyebilirsiniz yukarıda 10 öğreticiler okudum:&lt;br /&gt;
&lt;br /&gt;
* [[Ortak Hatalar | Ortak Hatalar Açıklaması]]''(Maximus's öğretici forumlarında bir revizyon ve Taran's Yanılgıları yazının devamı)''&lt;br /&gt;
* [[Internet ve Küre]]''(Peki bunların doğru kullanımı için)''&lt;br /&gt;
(Kendi dil sistemi script) * [[Diller Eğitimi]]''''&lt;br /&gt;
* (Ne yapmak ve özelleştirmek beceri)''[kendi Becerileri] Yapımı []''&lt;br /&gt;
* [Eğitim Yama [Mul | Eğitim] Patching Nazghul's Mul] (mul yama ve özelleştirme sunucu ile ilgili bir belge) [http://sorea.profitux.cz/patching/ harici link]''''&lt;br /&gt;
* [[Geçersiz kılmak Hardcoded Commands]]''(Nasıl kodlanmış komutları ve işlevleri geçersiz kılmak için)''&lt;br /&gt;
* [[Tarifeli Reboot]]''(Nasıl Sistem açılış programı için)''&lt;br /&gt;
* [MySQL] Kullanımı []''(MySQL kullanmak için)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referans Compendium ==&lt;br /&gt;
&lt;br /&gt;
* [[: Kategori: Tanımlar | Tanımlar]]&lt;br /&gt;
** [[CHARDEF | Karakterleri]]&lt;br /&gt;
** [[DIALOG | Dialogs]]&lt;br /&gt;
** [[OLAYLAR | Etkinlikler]]&lt;br /&gt;
** [[ITEMDEF | Öğeler]]&lt;br /&gt;
** [[MENU | Menüler]]&lt;br /&gt;
** [[REGIONRESOURCE | Bölge Kaynaklar]]&lt;br /&gt;
** [[REGIONTYPE | Bölge Türleri]]&lt;br /&gt;
** [[AREADEF | Bölgeler]]&lt;br /&gt;
** [[ROOMDEF | Odalar]]&lt;br /&gt;
** [[SKILLCLASS | Beceri Sınıfları]]&lt;br /&gt;
** [[SKILLMENU | Beceri Menüler]]&lt;br /&gt;
** [[YETENEK | Becerileri]]&lt;br /&gt;
** [[SPAWN | Gruplar] Spawn]&lt;br /&gt;
** [[Büyü | Sihirler]]&lt;br /&gt;
** [[Typedef | Tipleri]]&lt;br /&gt;
* [[: Kategori: Nesneler | Nesneler]]&lt;br /&gt;
** [[] Hesaplar]&lt;br /&gt;
** [[Karakter]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[] Files]&lt;br /&gt;
** [[GM sayfalar]]&lt;br /&gt;
** [[Öğeler]]&lt;br /&gt;
*** [[Özel Ürünler]]&lt;br /&gt;
** [[Harita Puanlar]]&lt;br /&gt;
** [[Taraf]]&lt;br /&gt;
** [[Bölgeler]]&lt;br /&gt;
** [[Odalar]]&lt;br /&gt;
** [[Sektörler]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
* [[: Kategori: Scripts | Script]]&lt;br /&gt;
** [[: Kategori: Fonksiyonlar | Fonksiyonlar ve Tetikleyiciler]]&lt;br /&gt;
** [[: Kategori: Değişkenler | Genel Fonksiyonlar, Özellikleri ve Referanslar]]&lt;br /&gt;
** [[İçsel Fonksiyonları]]&lt;br /&gt;
** [[: Kategori: Tablolar | Tablolar]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Diğer Makaleler ==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Hesaplama]]&lt;br /&gt;
* [[Müşteri Değişiklikleri]]&lt;br /&gt;
* [[Genel Scripting Yanılgıları]]&lt;br /&gt;
* [[Özel Nesnesi Özellikleri]]&lt;br /&gt;
* [[Hata Kodları]]&lt;br /&gt;
* [[Deneyim Sistemi]]&lt;br /&gt;
* [[Savaş] Nasıl Çalışır]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimizasyonu | Optimizasyon Teorisi]]&lt;br /&gt;
* [[TAG] Override]&lt;br /&gt;
* [[Düzeltmeler] Changelog]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Beceri Kazanç Teorisi]]&lt;br /&gt;
* [] Scripting Süreci []&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dış Bağlantılar ==&lt;br /&gt;
&lt;br /&gt;
* [Http://www.sphereserver.net/ Resmi SphereServer Sitesi]&lt;br /&gt;
* [Http://prerelease.sphereserver.net/ Resmi Sphere 56b Dosyalar]&lt;br /&gt;
* [Http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [Http://www.cs.rit.edu/ ~ djr7581 / Dummies (Sphere 55i) için Taran's Scripting]&lt;br /&gt;
* [Http://uo.torfo.org/packetguide/ Jerrith's UO Paket Rehberi]&lt;br /&gt;
* [Http://uo.torfo.org/packetguideKR/ Wyatt &amp;amp; Kons's UOKR Paket Rehberi]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategori: Navigasyon]]&lt;br /&gt;
[[De: Ana Sayfa / de]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Template:Languages&amp;diff=775</id>
		<title>Template:Languages</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Template:Languages&amp;diff=775"/>
				<updated>2010-12-28T10:23:35Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{ {{{2|Languages/Interface}}}&lt;br /&gt;
&amp;lt;!--|{{LanguageExisting|am|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|am|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ar|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ar|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|bg|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|bg|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|br|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|br|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|bs|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|bs|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ca|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ca|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|cz|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|cz|{{{1|{{PAGENAME}}}}}|{{#language:cs}}}}&lt;br /&gt;
|{{LanguageExisting|da|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|da|{{{1|{{PAGENAME}}}}}}}--&amp;gt;&lt;br /&gt;
|{{LanguageExisting|de|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|de|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
&amp;lt;!--|{{LanguageExisting|el|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|el|{{{1|{{PAGENAME}}}}}}}--&amp;gt;&lt;br /&gt;
|{{LanguageExistingEn|{{{1|{{PAGENAME}}}}}}} = {{LanguageLinkEn|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
&amp;lt;!--|{{LanguageExisting|eo|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|eo|{{{1|{{PAGENAME}}}}}}}--&amp;gt;&lt;br /&gt;
|{{LanguageExisting|es|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|es|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
&amp;lt;!--|{{LanguageExisting|et|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|et|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|eu|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|eu|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|fi|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|fi|{{{1|{{PAGENAME}}}}}}}--&amp;gt;&lt;br /&gt;
|{{LanguageExisting|fr|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|fr|{{{1|{{PAGENAME}}}}}}}&amp;lt;!--|{{LanguageExisting|fy|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|fy|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|gcf|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|gcf|{{{1|{{PAGENAME}}}}}|Créole guadeloupéen}}&lt;br /&gt;
|{{LanguageExisting|he|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|he|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ht|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ht|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|HU|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|HU|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|hr|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|hr|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|hy|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|hy|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ia|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ia|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|is|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|is|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|it|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|it|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ja|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ja|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ko|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ko|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|lb|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|lb|{{{1|{{PAGENAME}}}}}|Lëtzebuergesch}}&lt;br /&gt;
|{{LanguageExisting|lt|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|lt|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|lv|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|lv|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|mk|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|mk|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|nl|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|nl|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|nn|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|nn|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|no|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|no|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|oc|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|oc|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|pl|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|pl|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|pt|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|pt|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|pt-br|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|pt-br|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ro|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ro|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ro-md|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ro-md|{{{1|{{PAGENAME}}}}}|{{#language:ro}} (Moldova)}}&lt;br /&gt;
|{{LanguageExisting|ru|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ru|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|sk|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|sk|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|sl|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|sl|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|sq|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|sq|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|sv|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|sv|{{{1|{{PAGENAME}}}}}}}--&amp;gt;&lt;br /&gt;
|{{LanguageExisting|tr|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|tr|{{{1|{{PAGENAME}}}}}}}&amp;lt;!--&lt;br /&gt;
|{{LanguageExisting|uk|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|uk|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|vi|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|vi|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|zh-hans|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|zh-hans|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|zh-hant|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|zh-hant|{{{1|{{PAGENAME}}}}}}}--&amp;gt;&lt;br /&gt;
}}&amp;lt;!--[[Category:Pages with language links|{{PAGENAME}}]]--&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
'''Note: This is a test for  a language toolbar. The template is taken from the openstreetmap-wiki.'''&lt;br /&gt;
&lt;br /&gt;
'''Do not edit this template too often. This template is linked from many pages, when you renew it, the wiki-server starts to rebuild database of link connections. It takes about 20 seconds for each page.'''&lt;br /&gt;
&lt;br /&gt;
Instructions were moved to [[Wiki Translation]]:&lt;br /&gt;
{{Languages|Wiki Translation}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Template:Internationalisation]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Database&amp;diff=774</id>
		<title>De:Database</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Database&amp;diff=774"/>
				<updated>2010-12-28T10:21:55Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Database}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
Mit dem [[DB]]-Objekt können Skripte auf eine externe MySQL Datenbank zugreifen. Folgende Tabelle beschreibt die verschiedenen Eigenschaften des DB-Objekts in Sphere.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Anm:''' Um das DB-Objekt zu nutzen, muss in der Sphere.ini zunächst MySQL aktiviert und konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Eigenschaften und Funktionen==&lt;br /&gt;
Hier eine Auflistung aller Datenbankeigenschaften und -funktioen. Falls eine Funktion als lesbar (mit einem R für readable) markiert ist, dann liefert sie einen Wert zurück, wenn sie in der Form von &amp;lt;KEY&amp;gt; benutzt wird. Um Beispiele und detaillierte Informationen zu erhalten, kann jeweils der Name angeklickt werden. Wenn auf eine Eigenschaft zugegriffen wird, die nicht existiert, dann wird Sphere versuchen auf ein [[ITEMDEF]] zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Lesbar(R)/Schreibbar(W)''' || '''Beschreibung'''&lt;br /&gt;
|-&lt;br /&gt;
| [[AEXECUTE]] ''function, command'' || R || Führt in einem Hintergrundthread einen SQL-Befehl aus und ruft ''function'' auf, wenn dieser Vorgang abgeschlossen ist. Liefert 1, wenn der Befehl erfolgreich in die Abarbeitungswarteschlange eingereiht wurde.&lt;br /&gt;
|-&lt;br /&gt;
| [[AQUERY]] ''function, command'' || R || Führt einen SQL-Befehl in einem Hintergrundthread aus, ruft dann ''function'' auf, wenn das geschehen ist. Liefert 1, wenn der Befehl erfolgreich in die Abarbeitungswarteschlange eingereiht wurde.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLOSE]] || W || Schliesst die Verbindung zum Datenbankserver.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONNECT]] || W || Öffnet eine Verbindung zum Datenbankserver mit den Einstellungen aus der Sphere.ini.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONNECTED]] || R || Liefert 1, wenn die Verbindung zur Datenbank besteht.&lt;br /&gt;
|-&lt;br /&gt;
| [[ESCAPEDATA]] ''text'' || R || Liefert ''text'' als escaped SQL-String (einige Sonderzeichen werden umgewandelt, um bspw SQL-Injection zu vermeiden).&lt;br /&gt;
|-&lt;br /&gt;
| [[EXECUTE]] ''command'' || W || Führt einen SQL-Befehl aus, der kein Ergebnis liefert.&lt;br /&gt;
|-&lt;br /&gt;
| [[QUERY]] ''command'' || W || Führt einen SQL-Befehl aus, der ein Ergebnis liefert.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROW]].NUMCOLS || R || Liefert die Anzahl der Spalten der letzten Abfrage.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROW]].NUMROWS || R || Liefert die Anzahl der Zeilen der letzten Abfrage.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROW]]''.n.col_index'' || R || Liefert den Wert in der Spalte ''col_index'' und der Zeile n (beginnend bei 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[ROW]]''.n.col_name'' || R || Liefert den Wert einer Spalte, die den Namen ''col_name'' trägt, in der Zeile n (beginnend bei 0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Database&amp;diff=773</id>
		<title>De:Database</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Database&amp;diff=773"/>
				<updated>2010-12-28T10:20:59Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: Created page with '{{Languages|Database}}  __FORCETOC__ Mit dem DB OBjekt können Skripte auf eine externe MySQL Datenbank zugreifen. Folgende Tabelle beschreibt die verschiedenen Eigenschaften...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Database}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
Mit dem [[DB]] OBjekt können Skripte auf eine externe MySQL Datenbank zugreifen. Folgende Tabelle beschreibt die verschiedenen Eigenschaften des DB-Objekts in Sphere.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Anm:''' Um das DB-Objekt zu nutzen, muss in der Sphere.ini zunächst MySQL aktiviert und konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Eigenschaften und Funktionen==&lt;br /&gt;
Hier eine Auflistung aller Datenbankeigenschaften und -funktioen. Falls eine Funktion als lesbar (mit einem R für readable) markiert ist, dann liefert sie einen Wert zurück, wenn sie in der Form von &amp;lt;KEY&amp;gt; benutzt wird. Um Beispiele und detaillierte Informationen zu erhalten, kann jeweils der Name angeklickt werden. Wenn auf eine Eigenschaft zugegriffen wird, die nicht existiert, dann wird Sphere versuchen auf ein [[ITEMDEF]] zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Lesbar(R)/Schreibbar(W)''' || '''Beschreibung'''&lt;br /&gt;
|-&lt;br /&gt;
| [[AEXECUTE]] ''function, command'' || R || Führt in einem Hintergrundthread einen SQL-Befehl aus und ruft ''function'' auf, wenn dieser Vorgang abgeschlossen ist. Liefert 1, wenn der Befehl erfolgreich in die Abarbeitungswarteschlange eingereiht wurde.&lt;br /&gt;
|-&lt;br /&gt;
| [[AQUERY]] ''function, command'' || R || Führt einen SQL-Befehl in einem Hintergrundthread aus, ruft dann ''function'' auf, wenn das geschehen ist. Liefert 1, wenn der Befehl erfolgreich in die Abarbeitungswarteschlange eingereiht wurde.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLOSE]] || W || Schliesst die Verbindung zum Datenbankserver.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONNECT]] || W || Öffnet eine Verbindung zum Datenbankserver mit den Einstellungen aus der Sphere.ini.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONNECTED]] || R || Liefert 1, wenn die Verbindung zur Datenbank besteht.&lt;br /&gt;
|-&lt;br /&gt;
| [[ESCAPEDATA]] ''text'' || R || Liefert ''text'' als escaped SQL-String (einige Sonderzeichen werden umgewandelt, um bspw SQL-Injection zu vermeiden).&lt;br /&gt;
|-&lt;br /&gt;
| [[EXECUTE]] ''command'' || W || Führt einen SQL-Befehl aus, der kein Ergebnis liefert.&lt;br /&gt;
|-&lt;br /&gt;
| [[QUERY]] ''command'' || W || Führt einen SQL-Befehl aus, der ein Ergebnis liefert.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROW]].NUMCOLS || R || Liefert die Anzahl der Spalten der letzten Abfrage.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROW]].NUMROWS || R || Liefert die Anzahl der Zeilen der letzten Abfrage.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROW]]''.n.col_index'' || R || Liefert den Wert in der Spalte ''col_index'' und der Zeile n (beginnend bei 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[ROW]]''.n.col_name'' || R || Liefert den Wert einer Spalte, die den Namen ''col_name'' trägt, in der Zeile n (beginnend bei 0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Chapter_1&amp;diff=771</id>
		<title>De:Chapter 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Chapter_1&amp;diff=771"/>
				<updated>2010-12-24T22:44:42Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: /* Zahlen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Chapter_1}}&lt;br /&gt;
&lt;br /&gt;
==Zahlen==&lt;br /&gt;
&lt;br /&gt;
Als erstes wird die verschiedenartige Art und Weise zur Verwendung von Zahlen innerhalb der Sphere Skripte behandelt. Da Zahlen naturgemäß sehr wichtig für einen Sphereskripter sind, ist dies der erste Abschnitt überhaupt. Am Ende dieser Einheit wird hoffentlich jeder über ein allgemeines Verständnis über hexadezimale, dezimale und binäre Zahlensysteme und die Verwendung in Sphere Skripten besitzen. Zudem wird noch vermittelt, wie einerseits Zufallszahlen innerhalb eines Zahlenbereichs oder aus einer Liste von Zahlen generiert werden können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es muss zunächst verstanden werden: wie wir zählen ist nicht die einzige Art zu zählen. Unser Zahlensystem enthält zehn Ziffern (0, 1, 2, 3, 4, 5, 6, 7, 8, und 9). Ab der zehnten Zahl wird eine weitere Ziffer angehängt und die letzte Stelle auf 0 gesetzt (1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Deshalb funktioniert unser Zahlensystem wie es funktioniert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Dezimalsystem, ohne dass wir davon Notiz nehmen, schreiben wir diese Zahlen immer als Zehnerpotenzen. Beispielsweise die beliebige Zahl 17282 aufgeteilt in Zehnerpotenzen:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Zehnerpotenz         || 4     || 3     || 2     || 1     || 0&lt;br /&gt;
|-&lt;br /&gt;
| 10 hoch Zehnerpotenz || 10000 || 1000  || 100   || 10    || 1&lt;br /&gt;
|-&lt;br /&gt;
| Ziffer               || 1     || 7     || 2     || 8     || 2 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zur Zahl 17282 zu gelangen, wird immer 10 hoch Zehnerpotenz mal der Ziffer in der untersten Zeile berechnet und am Ende alle Ergebnisse addiert. Das Ergebnis: 10000 + 7000 + 200 + 80 + 2. Offensichtlich ist das sehr einfach und jeder tut das ständig ohne davon Notiz zu nehmen. Du fragst dich sicherlich jetzt &amp;quot;Richtig, warum schrieb Taran das alles?&amp;quot; Die Sache ist die, dass unser Zahlensystem nicht das einzige ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Computer zählen beispielsweise komplett anders. Sie kennen nur zwei Ziffern (1 und 0) und das wird dann Binärsystem genannt. Binäre Zahlen sehen beispielsweise so aus: 101011101101. Oftmals tauchen sie in der Werbung für Computer auf. Ziffern im Binärsystem werden Bit genannt (kurz für BInary digiT). Binärzahlen im Kopf zu Dezimalzahlen zu berechnen ist meist nicht ohne weiteres möglich, hierfür braucht es ein wenig Mathematik.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Binärsysteme funktionieren wie Dezimalsysteme, es wird eine Potenz einer Zahl addiert. Da Binarzählen nur aus zwei Ziffern bestehen, handelt es sich hierbei um Zweierpotenzen. Manchen wird die folgende Tabelle sicher bekannt vorkommen:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Zweierpotenz || Binärzahl || Dezimalzahl&lt;br /&gt;
|-&lt;br /&gt;
| 0          || 1             || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1          || 10            || 2&lt;br /&gt;
|-&lt;br /&gt;
| 2          || 100           || 4&lt;br /&gt;
|-&lt;br /&gt;
| 3          || 1000          || 8&lt;br /&gt;
|-&lt;br /&gt;
| 4          || 10000         || 16&lt;br /&gt;
|-&lt;br /&gt;
| 5          || 100000        || 32&lt;br /&gt;
|-&lt;br /&gt;
| 6          || 1000000       || 64&lt;br /&gt;
|-&lt;br /&gt;
| 7          || 10000000      || 128&lt;br /&gt;
|-&lt;br /&gt;
| 8          || 100000000     || 256&lt;br /&gt;
|-&lt;br /&gt;
| 9          || 1000000000    || 512&lt;br /&gt;
|-&lt;br /&gt;
| 10         || 10000000000   || 1024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Spannend oder?  :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wir brauchen ein besseres System! Der Grund, dass seltsame Ergebnisse auftreten, liegt daran, dasss 10 keine Potenz von 2 ist. Wir brauchen deshalb ein System, das eine Zweierpotenz als Basis hat. Das am meisten genutzte System ist ein 16er System, auch hexadezimal genannt. Im Sphere-Forum sieht man das Wort hex sicherlich an der ein oder andren Stelle, das ist kein Fluch und auch kein böser Zauber. Es ist eine Kurzform für &amp;quot;hexadecimal&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Binär || Dezimal || Hexadezimal&lt;br /&gt;
|-&lt;br /&gt;
| 1      || 1       || 1&lt;br /&gt;
|-&lt;br /&gt;
| 10     || 2       || 2&lt;br /&gt;
|-&lt;br /&gt;
| 11     || 3       || 3&lt;br /&gt;
|-&lt;br /&gt;
| 100    || 4       || 4&lt;br /&gt;
|-&lt;br /&gt;
| 101    || 5       || 5&lt;br /&gt;
|-&lt;br /&gt;
| 110    || 6       || 6&lt;br /&gt;
|-&lt;br /&gt;
| 111    || 7       || 7&lt;br /&gt;
|-&lt;br /&gt;
| 1000   || 8       || 8&lt;br /&gt;
|-&lt;br /&gt;
| 1001   || 9       || 9&lt;br /&gt;
|-&lt;br /&gt;
| 1010   || 10      || A&lt;br /&gt;
|-&lt;br /&gt;
| 1011   || 11      || B&lt;br /&gt;
|-&lt;br /&gt;
| 1100   || 12      || C&lt;br /&gt;
|-&lt;br /&gt;
| 1101   || 13      || D&lt;br /&gt;
|-&lt;br /&gt;
| 1110   || 14      || E&lt;br /&gt;
|-&lt;br /&gt;
| 1111   || 15      || F&lt;br /&gt;
|-&lt;br /&gt;
| 10000  || 16      || 10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ersichtlich, wie das funktioniert? Es gibt sechs Ziffern, die zusätzlich am Ende des Systems herangezogen werden müssen, es werden üblicherweise hierfür die ersten 6 Buchstaben des Alphabets verwendet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Innerhalb von Sphere Skripten wird beinahe NIE mit Binärzahlen gearbeitet, die KEINE Potenz von zwei sind und wenn, dann kann jeder herkömmliche Taschenrechner benutzt werden, um sie umzurechnen. Mit Hexadezimalzahlen ist das um einiges einfacher.&lt;br /&gt;
&lt;br /&gt;
(This is the last table, I promise!!)&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Binär        || Hexadezimal  &lt;br /&gt;
|-&lt;br /&gt;
| 000000001 (1) || 01  &lt;br /&gt;
|-&lt;br /&gt;
| 000000010 (2) || 02  &lt;br /&gt;
|-&lt;br /&gt;
| 000000100 (3) || 04  &lt;br /&gt;
|-&lt;br /&gt;
| 000001000 (4) || 08  &lt;br /&gt;
|-&lt;br /&gt;
| 000010000 (5) || 010  &lt;br /&gt;
|-&lt;br /&gt;
| 000100000 (6) || 020  &lt;br /&gt;
|-&lt;br /&gt;
| 001000000 (7) || 040  &lt;br /&gt;
|-&lt;br /&gt;
| 010000000 (8) || 080  &lt;br /&gt;
|-&lt;br /&gt;
| 100000000 (9) || 0100  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie in der Tabelle ersichtlich gibt es ein Muster in der Hexadezimalspalte. Man könnte meinen, dass da ein Muster in den Zahlen 1, 2, 4 und 8 auftritt. Das stimmt auch. Ein weiteres Detail sind die führenden 0en für Hexadezimalzahlen (0100 statt nur 100). In Sphere bedeutet eine solche führende 0: &amp;quot;Diese Zahl ist eine Hexadezimalzahl!&amp;quot; und dementsprechend sind 100 und 0100 völlig verschiedene Zahlen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Angenommen in einem Sphere Skript wird das 13. bit in einer Zahl benötigt (FLAGS beispielsweise), dann würde so etwas verwendet werden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SRC.FLAGS |= 8192'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Allerdings: merkt man sich wirklich, dass 8192 das Ergebnis von 2 hoch 13 ist? Das tut man nicht, es ist viel einfacher diese Liste durch zu gehen, bis man zur 13. Zahl kommt (wichtig: Zählen beginnt immer bei 0!).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| 01  || 02  || 04  || 08  || 010 || 020 || 040 || 080 || 0100 || 0200 || 0400 || 0800 || 01000 || 02000  &lt;br /&gt;
|-&lt;br /&gt;
| 2^0 || 2^1 || 2^2 || 2^3 || 2^4 || 2^5 || 2^6 || 2^7 || 2^8  || 2^9  || 2^10 || 2^11 || 2^12  || 2^13  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Und hier sind sie: die ersten 14 Zweierpotenzen in Hexadezimal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SRC.FLAGS |= 02000'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Zeile ist identisch zur obigen, nur dass 8192 (dezimal) GLEICH 02000 (hexadezimal) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''8192 = 02000'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun könnte man sagen &amp;quot;Wie weiß ich, dass das nicht frei erfunden ist?&amp;quot;. Nunja, schon der windowseigene Microsofttaschenrechner beherrscht die Umrechnung zwischen Binär-, Hexadezimal-, Dezimal und Oktalzahlen (ein weiteres, aber in Sphere nutzloses Zahlensystem). Der Taschenrechner von Windows befindet sich im Startmenü unter Programme im Zubehör. Im Taschenrechner wird im Menü Ansicht auf Wissenschaftlich umgestellt. Die Oberfläche des Taschenrechners verändert sich dann ziemlich. Um damit eine Zahl zwischen den Systemen umzurechnen, muss nur die originale Zahl eingegeben werden und dann kann zwischen den verschiedenen Zahlensystemen (Hex, Dez, Okt, Bin) umgeschaltet werden. Eine 0 vorne an eine Hexadezimalzahl gehängt und Sphere interpretiert sie als auch als eine hexadezimale Zahl.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war vermutlich das schwierigste in allen Sphere Skripten. Glücklicherweise, wegen des nächsten Abschnitts, muss sich ab jetzt niemand mehr mit angsteinflössenden Zahlen beschäftigen. Wenn du nach dieser Einheit noch dabei bist, wird sicher alles gut!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weiter gehts mit: Skripten für Sphere!&lt;br /&gt;
&lt;br /&gt;
==Defnames==&lt;br /&gt;
&lt;br /&gt;
Hier eine Liste angsteinflössender Zahlen, die man innerhalb von Sphere Skripten antrifft:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| angsteinflössende Zahl || Was sie bedeutet&lt;br /&gt;
|-&lt;br /&gt;
| 0eed             || ID einer Goldmünze&lt;br /&gt;
|-&lt;br /&gt;
| 0dda             || ID eines roten Moongates&lt;br /&gt;
|-&lt;br /&gt;
| 1650,1440        || Koordinaten von Britain&lt;br /&gt;
|-&lt;br /&gt;
| 021              || Farbcode für die Farbe &amp;quot;rot&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 04000            ||  Farbcode für unsichtbar&lt;br /&gt;
|-&lt;br /&gt;
| 04000efad        || Eindeutige serielle Nummer eines Gegestands&lt;br /&gt;
|-&lt;br /&gt;
| 4                || Das PLEVEL eines GMs  &lt;br /&gt;
|-&lt;br /&gt;
| 2048 (or 0800)   || Flag für den Unsichtbarkeitszauber&lt;br /&gt;
|-&lt;br /&gt;
| 010 (or 16)    || Memory type für Aggressoren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Offensichtlich will solche Zahlen niemand auswendig kennen. Aber in frühesten Versionen, weit vor Sphere und TUS (vor .50 Sphere) und tief im Nebel von Grayworld (vor .41 TUS), musste jeder Skripter diese Zahlen kennen. I kenne diese Zahlen (ausser die serielle Nummer, die frei erfunden ist) und noch ein paar weitere, allesamt tief verinnerlicht. Glücklicherweise hat sich für jeden, der nicht gern Zahlen auswendig kennen will, Sphere dazu entwickelt, dass Namen statt Zahlen verwendet werden können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zwar wird alles mögliche immer noch mit Zahlen verknüpft, aber diese Zahlen sind mittlerweile mit Namen verknpft worden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gib im Spiel .add 0eed ein und drücke die Returntaste. Ein Zielcursor taucht auf und es kann eine Goldmünze erschaffen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun gib .add i_gold ein und drücke Return. Es passiert genau das selbe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich kann man sich i_gold leichter als 0eed merken. Aber wie funktioniert das? Dazu muss die Skriptdefinition von einer Goldmünze angesehen werden. Dieses Skript muss an dieser Stelle noch nicht verstanden werden, Itemskripte werden später genauer behandelt. Dieser Skriptausschnitt findet sich in der Datei sphere_item_resources.scp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[ITEMDEF 0eed]&amp;lt;br /&amp;gt;&lt;br /&gt;
//gold coin&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;ff0000&amp;quot;&amp;gt;DEFNAME=i_gold&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
TYPE=T_GOLD&amp;lt;br /&amp;gt;&lt;br /&gt;
VALUE=1&amp;lt;br /&amp;gt;&lt;br /&gt;
CATEGORY=Provisions - Miscellaneous&amp;lt;br /&amp;gt;&lt;br /&gt;
SUBSECTION=Coins&amp;lt;br /&amp;gt;&lt;br /&gt;
DESCRIPTION=Gold Coin&amp;lt;br /&amp;gt;&lt;br /&gt;
DUPELIST=0eee,0eef&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die rotmarkierte Zeile ist für diese Lektion von Belang. Ansonsten ist noch die erste Zeile, die 0eed enthält, inteessant, aber der Rest kann getrost ignoriert werden vorerst. Die 0eed ist die Nummer des Items, diese Nummern werden im nächsten Abschnitt behandelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wirklich interessant ist allerdings &amp;lt;font color=&amp;quot;ff0000&amp;quot;&amp;gt;DEFNAME=i_gold&amp;lt;/font&amp;gt;. Diese Zeile legt im Server fest: &amp;quot;Ab jetzt wird 0eed mit i_gold identifiziert&amp;quot;. Wird vor dieser Zeile irgendwo innerhalb eines Skripts i_gold verwendet, wird der Server einen Fehler melden (siehe [[Chapter 2|Kapitel 2]] über die Reihenfolge von Skripten), aber jetzt ist ihm bekannt, worauf i_gold verweist und es kann in Skripten oder im Spiel frei verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es sollte IMMER ein solcher Name mit DEFNAME erstellt werden, wenn ein Item geskriptet wird. Normalerweise wird dieser defname in [ITEMDEF] selbst festgelegt (mehr darüber später), aber wenn unbedingt Zahlen verwendet werden sollen, sollte zudem noch ein einfach zu zu merkender Name verwendet werden (bspw nicht goldenes_gulasch für ein Schwert). Es macht das Leben einfacher, als Zahlen zu benutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine zweite Möglichkeit, DEFNAME zu nutzen, ist die Nutzung eines [DEFNAME]-Abschnitts. Hier ein Beispiel dafür:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[DEFNAME colors]&amp;lt;br /&amp;gt;&lt;br /&gt;
color_blue 02&amp;lt;br /&amp;gt;&lt;br /&gt;
color_red 021&amp;lt;br /&amp;gt;&lt;br /&gt;
color_green 041&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein ähnliches Skript steht in spheredefs.scp, eine weitere Datei, die ganz am Anfang geladen werden sollte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier eine Aufschlüsselung dieses Skripts, Zeile für Zeile:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 1''': Hier wird der Typ des Skripts festgelegt und der Name dafür (Colors in diesem Fall). Hier wird dem Server vermittelt, dass von dieser Zeile bis zum nächsten Identifier (das sind die Zeilen die von eckigen Klammern eingerahmt sind) eine bestimmte Art von Skript enthalten ist. Alle Identifier haben dieses Format. Der erste Parameter legt dabei den Skripttyp fest und davon gibt es mehrere, die in den weiteren Kapiteln abgehandelt werden. Der zweite Parameter ist entweder eine Zahl als ID oder ein Defname. In den meisten Fällen wird in selbst geschriebenen Skripten wird hier ein Defname stehen. Die einzige Ausnahme besteht dann, wenn neue Items in die Clientdateien eingefügt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeilen 2-4''': Diese Zeilen enthalten individuelle Teile. Es wird festgelegt, dass color_blue gleich 02, color_red gleich 021 und color_green gleich 041 ist. Zwischen dem Namen und dem Wert können beliebig viele Leerzeichen enthalten sein. Die Definitionen in spheredefs.scp sind so ziemlich die nützlichsten auf die man treffen kann, da sie es unnötig machen, viele angsteinflössende Zahlen zu verwenden. In spheredefs.scp werden deshalb Namen für Flags, für Attribute von Items, für verschiedene Töne und Klänge, für Memory Types und viele andere Dinge festgelegt. Einen Blick in diese Datei zu werfen ist sicherlich zuweilen ganz ratsam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das wars mit DEFNAMES. Weiteres taucht später in allen möglichen Skripten auf.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt werden Items abgehandelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ITEMDEF==&lt;br /&gt;
Oder: wie macht man aus einem Maulwurfshügel einen Berg auf Sphere-Art.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die meisten machen sich Itemskripte schwieriger, als es nötig ist. Für die Zwecke dieses Tutorials, da es noch ein weit fortgeschritteneres später gibt, werden hier nur einfach die Grundlagen eines ITEM Skripts behandelt, Zeile für Zeile. Wir werden das Goldskript vom vorherigen Absatz verwenden, vorausgesetzt ich finde es ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ok, hier ist es, mit Farbe unterlegt, damit es schöner anzusehen ist!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[ITEMDEF 0eed]&lt;br /&gt;
//gold coin&lt;br /&gt;
DEFNAME=i_gold&lt;br /&gt;
TYPE=T_GOLD&lt;br /&gt;
VALUE=1&lt;br /&gt;
CATEGORY=Provisions - Miscellaneous&lt;br /&gt;
SUBSECTION=Coins&lt;br /&gt;
DESCRIPTION=Gold Coin&lt;br /&gt;
DUPELIST=0eee,0eef&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das ist das einfachste aller Itemskripts, da es weiteres Verhalten, als einfach nur zu existieren benötigt. Es wird nun jede Zeile erklärt und was es damit auf sich hat:&lt;br /&gt;
&lt;br /&gt;
'''Zeile 1''': [ITEMDEF 0eed]&lt;br /&gt;
&lt;br /&gt;
Die erste Zeile eines Itemskripts ist die wichtigste. Grundsätzlich bedeutet diese Zeile für den Server &amp;quot;Hey, das ist ein Item und es soll 0eed heißen!&amp;quot;. Der Server sieht sich dann die Clientdateien an (vor allem art.idx), und gleicht ab, ob das Item eins der eingebauten ist. Ich glaube, alle Items mit Nummern unter 04500 gelten als eingebaut, deshalb sollte nie ein neues Item mit einer Zahl definiert werden, die darunter liegt. Bei Eingabe dieser Zeile, wird der Server wissen, dass ein Itemskript folgt. Außerdem wird 0eed als gültiges Item festgelegt, was später nützlich ist, wenn die Spieler Gold brauchen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 2''': // gold coin&lt;br /&gt;
&lt;br /&gt;
Das ist die Sphereversion eines Kommentars. C-Programmierer kennen das Format (Anmerkung des Übersetzers: eigentlich kennt man das erst ab C++). Jede Zeile, die mit // beginnt ist eine Kommentarzeile und alles, was in einer Kommentarzeile enthalten ist, wird nicht vom Server interpretiert oder gelesen. Diese Kommentare können aber auch an beliebiger Stelle innerhalb einer Zeile beginnen um am Ende einer Zeile eine Erklärung einzufügen. Auf jeden Fall sind Kommentare nicht für die Funktion des Skriptes relevant, sondern können sie unter Umständen verständlicher machen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 3''': DEFNAME=i_gold&lt;br /&gt;
&lt;br /&gt;
Du solltest jetzt wissen, was diese Zeile bedeutet. Wenn nicht, dann sollte die vorherige Einheit nochmal wiederholt werden. Es legt im Server fest, dass i_gold und 0eed das selbe sind. In Itemskripten sind alle alle Parameter nach diesem Format spezifiziert:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
variable=wert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Später, wenn es um Skripte geht, wird ersichtlicher, dass dieses Format sehr hilfreich ist. Items haben einige Variablen, die belegt werden können, unter anderem:&lt;br /&gt;
&lt;br /&gt;
* DEFNAME&lt;br /&gt;
* ID&lt;br /&gt;
* TYPE&lt;br /&gt;
* VALUE&lt;br /&gt;
* RESOURCES&lt;br /&gt;
Andere Variablen sind wiederum vom Wert von TYPE abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 4''': TYPE=t_gold&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Was ist t_gold?&amp;quot; Auch das ist nur ein DEFNAME. Also eine Zahl, in diesem Fall 72. In spheredefs.scp steht diese Zahl, also hätte TYPE=72 den selben Effekt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Momentan gibt es 183 eingebaute Itemtypen. Sie sind hardcoded (=fest in Sphere implementiert) und enthalten vordefinierte Verwendungszwecke für einen Gegenstand. Hat ein Gegenstand keinen Typ, dann erhält man eine &amp;quot;You cannot think of a way to use that item&amp;quot;-Nachricht, wenn man im Spiel das Item anklickt. Es gibt eine vollständige Liste von Itemtypen und wie sie genutzt werden. Der Typ t_gold hat nur einen Effekt: der Gegenstand wird behandelt wie eine Goldmünze (d.h: es können damit Dinge gekauft werden!). Andere Gegenstände den Typ t_gold zu geben würde den Server dazu veranlassen auch diese Dinge als Währung heran zu ziehen. Ich habe das nie versucht, aber es könnte eine interessanter Weg sein einzigartige Währungen zu haben ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 5''': VALUE=1&lt;br /&gt;
&lt;br /&gt;
Diese Zeile legt fest, wie viel ein Item wert ist, wenn es gekauft wird - in Gold. Natürlich ist eine Goldmünze eine Goldmünze wert, deshalb wird der Wert hier auf 1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeilen 6-8''': CATEGORY, SUBSECTION, DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
Diese Zeilen werden nur von Spheres GM-Tool, Axis, benutzt, das es unnötig macht, im Spiel &amp;quot;.add i_gold&amp;quot; einzugeben. Wichtiger noch, es übernimmt solche Aufgaben auch für Items, die keinen DEFNAME haben, sondern nur eine Nummer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 9''': DUPEITEM&lt;br /&gt;
&lt;br /&gt;
Es wäre viel Arbeit für das Sphereteam alle 8000 Items im Spiel zu definieren, vor allem, wenn viele eigentlich ein und das selbe sind. (Beispielsweise kann eine Tür mit dem Befehl .xflip gedreht werden. Dieser Befehl läuft durch alle DUPEITEMS, die für ein Item angegeben sind.) Die Liste von Nummern sind Itemnummern, die vielleicht noch nicht definiert wurden. Hier wäre das Skript für 0eee:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[ITEMDEF 0eee]&lt;br /&gt;
//gold coins&lt;br /&gt;
DUPEITEM=0eed&lt;br /&gt;
CATEGORY=Provisions - Miscellaneous&lt;br /&gt;
SUBSECTION=Coins&lt;br /&gt;
DESCRIPTION=Gold Coins&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In diesem Skript gibt es nur einen Parameter für das Item. Es verweist den Server auf das DUPEITEM, das unter 0eed (oder i_gold) angelegt wurde, um die Informationen von dort, wie TYPE und VALUE zu verwenden. DUPEITEM spart Tipparbeit, wahrscheinlich wird es selten benutzt.&lt;br /&gt;
&lt;br /&gt;
==CHARDEF==&lt;br /&gt;
Oder was es braucht, einen nackten Mann zu machen, der rumstehen und &amp;quot;Huh?&amp;quot; sagen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NPCs machen die Welt lebendig. Sie sind das, was UO zu einem einzigartigen Multiplayer Spiel macht. Die Monster und NPCs die du skriptest machen den Server einzigartig im Vergleich zu jedem anderen. Dieser Abschnitt des ersten Kapitels wird beinhalten, wie ein einfacher nackter Mann geskriptet wird, der herumwandern und ein wenig mehr als &amp;quot;Huh?&amp;quot; (oder &amp;quot;Halt Dieb!&amp;quot;, wenn man so will) sagen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als erstens sehen wir uns das SKript eines einfachen nackten Mannes an. Es befindet sich in spherechar_human.scp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[CHARDEF 0190]&lt;br /&gt;
DEFNAME=c_man&lt;br /&gt;
Name=Man&lt;br /&gt;
ICON=i_pet_MAN&lt;br /&gt;
CAN=MT_EQUIP|MT_WALK|MT_RUN|MT_USEHANDS&lt;br /&gt;
RESOURCES=i_flesh_head, i_flesh_torso, i_flesh_right_arm, i_flesh_left_arm&lt;br /&gt;
FOODTYPE=15 t_food, t_fruit&lt;br /&gt;
DESIRES=i_gold,e_notoriety&lt;br /&gt;
AVERSIONS=t_TRAP,t_eerie_stuff&lt;br /&gt;
SHELTER=r_house&lt;br /&gt;
BLOODCOLOR=0&lt;br /&gt;
&lt;br /&gt;
TSPEECH=spk_human_prime&lt;br /&gt;
TSPEECH=spk_human_default&lt;br /&gt;
TEVENTS=e_Human_HearUnk&lt;br /&gt;
DESCRIPTION=Man&lt;br /&gt;
SUBSECTION=Miscellaneous&lt;br /&gt;
CATEGORY=Civilized&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie ersichtlich sieht es sehr viel anders aus als die Skripte der vorherigen Abschnitte. Es werden eine ganze Menge an Variablen gesetzt, die gleich sind wie der DEFNAME, DESCRIPTION und die anderen Axis Variablen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aber es gibt auch eine Menge neuer Dinge hier, die der Reihe nach und Zeile für Zeile betrachtet werden! Und es ist länger diesmal! Let the good times roll! (Entschuldigung an alle Nichtamerikaner, alle amerikanischen Cliches sind vermutlich irritierend!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 1''': [CHARDEF 0190]&lt;br /&gt;
&lt;br /&gt;
Überraschung! Ein Identifier, der dem Server mitteilt, dass hier ein Charakter bis zum zum nächsten Identifier definiert wird. Und zudem wird für diesen Charakter bzw. NPC die ID 0190 gesetzt. Der Server kennt diese ID, da es eine eingebaute ist. In der Tat gehört diese ID zum nackten Mann. Des weiteren steht 0190 als hexadezimale Zahl natürlich für 400, nicht wahr? :) Warum weißt du das nicht? OK, nur ein Witz, das muss man natürlich nicht wissen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 2''': DEFNAME=c_man&lt;br /&gt;
&lt;br /&gt;
Nichts neues. c_man entspricht hiermit 0190. Die meisten DEFNAMES für Charaktere beginnen mit c und dann folgt ein _ wie oben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 3''': Name=Man&lt;br /&gt;
&lt;br /&gt;
Hier ist etwas neues. Items haben einen vorgebenen Namen, der im Server bekannt ist. Charaktere nicht. Deshalb muss ein Name zugewiesen werden. Es kann im Grunde jeder Name zugewiesen werden, den man hier haben möchte, aber da das kein spezifischer Mann ist, heißt er einfach nur Man.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 4''': ICON=i_pet_man&lt;br /&gt;
&lt;br /&gt;
Ich brauchte eine Weile, um das herauszufinden. ICON legt ein kleines Bildchen fest, das man bei benutzung des Tracking Skills sieht und diese kleinen ICONs tauchen im Menü dort auf. Eigentlich sind diese Bildchen Items. Um herauszufinden, wie dieses Bildchen aussieht, kann der Mann einfach im Spiel mit .addnpc c_man erstellt werden und dann der .shrink Befehl auf ihn angewendet werden. Die ID dieses Items wird dann zum i_pet Item.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 5''': CAN=mt_*&lt;br /&gt;
&lt;br /&gt;
(Falls * nicht bekannt ist: * heisst &amp;quot;alles mögliche&amp;quot; für diejenigen, die Linux nutzen.)&lt;br /&gt;
&lt;br /&gt;
Das ist eine der wichtigsten Zeilen im Character Skript, neben der ID die in der ersten Zeile vergeben wird. Sie lässt uns festlegen, was ein NPC tun kann und was nicht. Es gibt nur ein paar wenige Möglichkeiten für mt_*, die alle in der spheredefs.scp definiert sind. Für unsere Zwecke sind sie hier hin kopiert worden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;MT_NONMOVER        0 // We can't move at all&lt;br /&gt;
MT_GHOST          01 // We can walk through doors and such, like a ghost&lt;br /&gt;
MT_SWIM           02 // I can swim! (Water elementals, dolphins, etc)&lt;br /&gt;
MT_WALK           04 // I can move. Set this if you want your creature to move.&lt;br /&gt;
MT_FLY           010 // Moves through (supposed to be over) trees&lt;br /&gt;
MT_FIRE_IMMUNE   020 // Immune to damage by fire. Setting this on a player is bad.  :)&lt;br /&gt;
MT_EQUIP       00100 // Can equip things&lt;br /&gt;
MT_USEHANDS    00200 // Can use his hands to carry things (or open doors)&lt;br /&gt;
MT_MALE            0 // Is a male&lt;br /&gt;
MT_FEMALE      00800 // Is a female&lt;br /&gt;
MT_NONHUM      01000 // Non-human. I'm not sure what this does.&lt;br /&gt;
MT_RUN         02000 // Can move really fast!&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dieser Tabelle wird klar, dass ein NPC ohne CAN Flags ein MT_Male und MT_NONMOVER (zweimal 0) ist. Die Flags können durch ein | (Alt Gr + &amp;lt;) getrennt in einer Liste angegeben werden, so dass ein NPC mehrere solcher Flags erhalten kann. In diesem Fall erlauben wir unserem Mann, dass er etwas ausrüsten (oder anziehen), gehen, rennen und seine Hände benutzen kann. (Interessant ist, dass sogar Kreaturen ohne Hände ihre Hände nutzen können und damit bspw. Lichtquellen tragen können. Feuerelementare tun das beispielsweise, deshalb leuchten sie.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 6''': RESOURCES&lt;br /&gt;
&lt;br /&gt;
Die Resources sind etwas morbide als Bezeichnung. Vor allem für Personen, denn sie enthalten die Items, die herauskommen, wenn man im Spiel eine Leiche aufschneidet. Gruslig, hm?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 7-10''': FOODTYPE, DESIRES, AVERSIONS&lt;br /&gt;
&lt;br /&gt;
'''FOODTYPE''': Legt fest, welche Art von Essen der NPC essen würde und wenn NPC_AI_FOOD aktiviert ist, sucht der NPC nach so einem Essen wenn er hungrig wird.&lt;br /&gt;
&lt;br /&gt;
'''DESIRES''': Legt fest, welche Art von Items ihn interessieren und wenn NPC_AI_EXTRA aktiviert ist, dann wird ein NPC aus Spielerleichen diese Gegenstände holen oder, falls diese Gegenstände am Boden liegen, zu ihnen hingehen.&lt;br /&gt;
&lt;br /&gt;
'''AVERSIONS''': Das ist nicht ganz klar. Ich nehme an, dass diese Option angibt, was der NPC am liebsten angreift. Beispielsweise: Ich habe ein Pferd mit dem Event e_horse und einen Imp mit AVERSIONS=e_horse, dann würde im Falle eines Kampfs der IMP wohl vorziehen gegen das Pferd zu kämpfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 11''': BLOODCOLOR&lt;br /&gt;
&lt;br /&gt;
Jemals vorgehabt den Spielern grünes Blut zu verpassen? Das geht hiermit. Eine Nummer für eine Farbe oder ein DEFNAME funktioniert hier. (Für Farben sollte man versuchen die Zahlen zu lernen, das macht es einfacher.)&lt;br /&gt;
&lt;br /&gt;
Der Rest: TSPEECH and TEVENTS &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese beiden Zeilen erhalten eigene Kapitel. Sie sind sehr komplex und mitunter die komplexesten Dinge beim Skripten! (Wie oft ich das wohl sagen werde, bis das wirklich wahr ist?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;Einige andere Dinge:&amp;lt;/font&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf 56B gibt es weitere Variablen wie MOVERATE, RESLEVEL, RESDISPDNID and RESDISPDNHUE. Sie klingen schwierig und seltsam, aber das sind sie nicht. Hier ist eine Erklärung:&lt;br /&gt;
&lt;br /&gt;
'''MOVERATE''': Diese Einstellung (die nur innerhalb eines CHARDEF Blocks sein kann) legt fest, wie schnell sich ein NPC bewegt. Je kleiner der Wert, desto schneller ist ein NPC. Beispielsweise für ein Pferd mit vorgegebener MOVERATE von 100, wäre ein anderer NPC mit MOVERATE von 60 schneller als das Pferd. Das ist ganz gut, um schwierige Monster zu skripten, die nur schwer zu erlegen sind.&lt;br /&gt;
&lt;br /&gt;
'''RESLEVEL''': Das sagt Sphere aus welcher Version von UO das Monster abstammt, Beispielsweise hat ein &amp;quot;Wanderer of the Void&amp;quot; RESLEVEL=3 (3 ist AOS) (siehe spheredefs.scp für eine Liste), so dass nur Accounts mit RESDISP 3 oder größer das Monster so sehen, wie es wirklich aussieht.&lt;br /&gt;
&lt;br /&gt;
''NOTE'': Setzt man einen zu niedrigen Wert für RESLEVEL und der Spieler hat die passende Animation nicht, führt das zum Absturz seines Clients.&lt;br /&gt;
&lt;br /&gt;
'''RESDISPDNID''': Wie wahrscheinlich bemerkt, sagte ich oft nun &amp;quot;wie er wirklich&amp;quot; ist, genau wegen dieser Einstellung. Das legt fest, wie ein Monster für einen Spieler aussieht, hat er die Animation nicht. Beispielsweise wird der Wanderer of the Void für jeden mit ACCOUNT.RESDISP=3 oder großer auch wie ein Wanderer of the Void aussehen, aber für alle anderen sieht er wie ein c_spectre aus (wenn es so eingestellt wurde).&lt;br /&gt;
&lt;br /&gt;
'''RESDISPDNHUE''': Das legt fest, welche Farbe für den Spieler das Monster hat, wenn die RESDISPDNID angezeigt wird (und sein account.resdisp kleiner als reslevel dieses Charakters ist).&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Beispiel für diese neuen Einstellungen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[CHARDEF 310]&lt;br /&gt;
DEFNAME=c_Wailing_Banshee&lt;br /&gt;
NAME=Wailing Banshee&lt;br /&gt;
SOUND=snd_monster_zombie1&lt;br /&gt;
ICON=i_pet_wailingbanshee&lt;br /&gt;
DAM=11,16&lt;br /&gt;
RESDISPDNID=c_spectre&lt;br /&gt;
RESLEVEL=3&lt;br /&gt;
RESDISPDNHUE=01&lt;br /&gt;
ARMOR=20&lt;br /&gt;
CAN=MT_WALK|MT_FLY&lt;br /&gt;
DESIRES=i_gold,e_notoriety,e_horses,c_man,c_woman,t_corpse&lt;br /&gt;
CATEGORY=New Monsters&lt;br /&gt;
SUBSECTION=AOS&lt;br /&gt;
DESCRIPTION=Wailing Banshee&lt;br /&gt;
&lt;br /&gt;
ON=@Create&lt;br /&gt;
	NPC = brain_monster&lt;br /&gt;
	FAME = {100 3000}&lt;br /&gt;
	KARMA = {-5000 -6999}&lt;br /&gt;
	STR = {126 166}&lt;br /&gt;
	INT = {86 115}&lt;br /&gt;
	DEX = {41 75}&lt;br /&gt;
	MAGICRESISTANCE = {75.0 95.0}&lt;br /&gt;
	TACTICS = {45.0 75.0}&lt;br /&gt;
	WRESTLING = {50.0 70.0}&lt;br /&gt;
&lt;br /&gt;
ON=@NpcRestock&lt;br /&gt;
	ITEM = i_gold, {50 100}&lt;br /&gt;
	ITEM = i_reag_daemon_bone, {2 6}&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und das wars. Einfache Charakterskripte und ein paar neue Dinge. Es gibt dazu noch ein spezielles Kapitel nur über das Skripten von NPCs später.&lt;br /&gt;
&lt;br /&gt;
==TEMPLATE==&lt;br /&gt;
Oder wie man eine große Menge serverbelastender Items in einen nichtserverbelastenden Container packt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeder hat sie schon gesehen. Die Shards, die keine TEMPLATEs benutzen. Wird beispielsweise ein Drache auf diesen Shards erlegt und lootet man ihn dann, dann findet man statt schön abgepackte Behälter ein paar 100 Tränke im Lootfenster verteilt. Nicht nur das, alle magischen Gegenstände sind auch noch darunter vergraben!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie wird das Problem gelöst? Sphere hat ein sehr handhabbares Werkzeug: die TEMPLATES. Sie erlauben, dass Container Items definiert werden und die Items in diesen Containern ebenfalls und zwar gleichzeitig. Das ist doch toll? I dachte es mir, als ich heraus fand, was sie sind. Deshalb wieder eine Zeile für Zeile Aufschlüsselung, diesmal mit einem TEMPLATE aus spheretemp_loot.scp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[TEMPLATE 101505]&amp;lt;br /&amp;gt;&lt;br /&gt;
DEFNAME=backpack_poor&amp;lt;br /&amp;gt;&lt;br /&gt;
CATEGORY=Item Templates&amp;lt;br /&amp;gt;&lt;br /&gt;
SUBSECTION=Loot Templates&amp;lt;br /&amp;gt;&lt;br /&gt;
DESCRIPTION=Poor Backpack&amp;lt;br /&amp;gt;&lt;br /&gt;
CONTAINER=i_backpack&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_food 1 0 3 },{ 1 3 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_bottle 1 0 8 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_light 1 0 8 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_male_tops 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
COLOR=colors_all&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_male_pants 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
COLOR=colors_all&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=POOR_GOLD_PILE&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sieht verwirrend aus. Aber kein Problem, das wird schon alles klar werden, was das bedeutet!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[TEMPLATE 101505]&amp;lt;/font&amp;gt;: Als erstes wird die Kopfzeile des templates betrachtet. Interessant an Templates ist, dass der Itemname kein DEFNAME sein kann, sondern eine sehr hohe Zahl sein muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;DEFNAME=backpack_poor&amp;lt;/font&amp;gt;: Natürlich sind die Sphere Entwickler nicht bösartig und haben deshalb hier noch die Möglichkeit eines DEFNAMEs eingeführt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;CATEGORY, SUBSECTION, DESCRIPTION&amp;lt;/font&amp;gt;: Der übliche Axiskram. Optional natürlich. In den vorherigen Abschnitten wird das genauer erklärt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;CONTAINER=i_backpack&amp;lt;/font&amp;gt;: Ok, nun gehts runter bis aufs Eingemachte. Das ist der Container, der benutzt wird und alle anderen Items landen in diesem. Wenn der Container im Spiel erstellt wird, dann sieht man ihn. In diesem Fall ist das ein Rucksack. Ganz einfach. Hier kann nur ein gültiger Container vom Typ t_container oder t_container_locked angegeben werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;ITEM={ random_food 1 0 3},{1 3}&amp;lt;/font&amp;gt; Das sieht ziemlich kryptisch aus. Deshalb wird diese Zeile ein wenig eingehender beleuchtet.&lt;br /&gt;
&lt;br /&gt;
Als erstes muss ZUFALLSAUSWAHL behandelt werden! Klingt nach Spaß, nicht? Nun ja, klingt auch für mich nicht danach, aber es ist unbedingt notwendig, um einen guten Shard zu bauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie sind einfache grundlegende Mechanismen, um mit einem Befehl eine zufällige Zahl zu erhalten. Was wäre das schon für ein Shard, auf dem jeder getötete Drache auch eine Platemail of Magic Stuff und ein Super Duper Sword of Power liefern würde? Jeder würde damit herumlaufen, deshalb braucht es etwas Variabilität.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt zwei Arten von Zufallsauswahlen: gewichtete und bereichsweise Auswahl. Gewichtete Auswahlen funktionieren so: &amp;quot;OK, 1 mal von 10 nimm Nummer A, 3 mal von 10 nimm Nummer B und 6 mal von 10 nimm Nummer C&amp;quot;. Bereichsweise Auswahlen funktionieren so: &amp;quot;Wähle eine zufällige Zahl zwischen zwei Zahlen, die ich festlege&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unser Beispiel nutzt beides - sowohl bereichsweisen als auch gewichteten Zufall. Der Reihe nach:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{ random_food 1 0 3} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das ist eine gewichtete Auswahl. Um das richtig zu verstehen, wird der Ausdruck zwischen den Klammern in zwei Teile zerlegt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
random_food 1&lt;br /&gt;
0 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Addiert man die letzte Zahl in den beiden Zeilen, erhält man 4. Das sagt Sphere &amp;quot;OK, 1 von 4 Mal, will ich random_food und 3 von 4 Mal wähle ich 0.&amp;quot; Man kann auch Zufallsauswahlen verschachteln, aber das wird dann verwirrend.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{ { random_food 1 0 3} 1 random_clothing 1} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klar, was das heisst?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
random_clothing 1&lt;br /&gt;
{ random_food 1 0 3} 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 ist hier die magische Zahl. Einmal von 2 nimmt Sphere random_clothing und einmal von 2 nimmt Sphere den vorherigen Auswähler, der dann aus seinen eigenen Optionen eins auswählt. Wenn du jetzt schon verwirrt bist, keine Sorge. Das ist sehr selten, aber es wird sich zeigen, wie TEMPLATES diese Probleme lösen können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ich habe erwähnt, dass es noch einen weiteren Zufallswähler gibt. Und dieser ist hier:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{1 3} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Leerzeichen sind hier wichtig. Hier dürfen keine Leerzeichen zwischen { und der ersten Zahl oder } und der letzten Zahl sein. Ansonsten kommt seltsames Verhalten dabei heraus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das weist Sphere an &amp;quot;Nimm eine beliebige Zahl zwischen 1 und 3, inklusive&amp;quot;. Inklusive heißt, dass Sphere auch 1 und 3 wählen kann oder eben jede Zahl dazwischen. In diesem Fall ist der Bereich sehr beschränkt. Sphere wird eine 1, 2 oder eine 3 liefern. Bereichsweise Auswähler werden oftmals in gewichteten Auswählern benutzt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{ {1 3} 3 {4 9} 1} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Einmal aus 4, nimm eine Zahl zwischen 4 und 9. Dreimal von 4, nimm eine Zahl zwischen 1 und 3.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nachdem wir das nun hinter uns haben, sehen wir uns die Zeile des Skripts von oben an. Der Teil mit ITEM=&amp;lt;br /&amp;gt;&lt;br /&gt;
Das legt im Skript fest &amp;quot;Ok, wir werden jetzt ein Item zum Container hinzufügen&amp;quot;. Alles nach dem = legt fest, was genau das ist und in welcher Menge. Es kann natürlich geskriptete werden ITEM=i_platemail_chest oder sonst was ohne die mysteriösen { } Auswähler, aber der Grund, warum TEMPLATES so interessant sind, ist die große Variabilität, die sie bringen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;{ random_food 1 0 3}&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das ist das Item, das erstellt wird. Aus der Einheit über gewichtete Zufallsauswahlen, 1 von 4 Mal, wird das random_food sein und 3 von 4 Mal, wird das 0 sein. Wenn ein Item 0 ist, dann wird nichts erstellt. Das bedeutet: &amp;quot;Hier gibt es eine 1 zu 4 Chance, dass random_food im Container auftaucht.&amp;quot; Was random_food ist? Das ist ein weiteres TEMPLATE, das in spheretemplate.scp definiert wurde ... glaube ich.&lt;br /&gt;
&lt;br /&gt;
{1 3} Ist die Menge des Items, die erstellt wird. Das ist eine zufällige Bereichsauswhl. Sphere nimmt eine Zahl zwischen 1 und 3 und setzt dann die Menge im Container. Natürlich: ist das Item zuvor 0 geworden, dann wird auch die Menge daran nichts ändern, denn 3 mal 0 ist weiterhin 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war grundlegend das Template Skript. Hier können noch so viele Items eingefügt werden, wie man Lust hat. Ausserdem ist noch folgendes Konstrukt dann interessant:&lt;br /&gt;
&lt;br /&gt;
ITEM=i_sword_long,R11 &lt;br /&gt;
&lt;br /&gt;
Das ist eine Kurzform von: &lt;br /&gt;
&lt;br /&gt;
ITEM={ i_sword_long 1 0 10 } &lt;br /&gt;
&lt;br /&gt;
R11 bedeutet: &amp;quot;1 zu 11 Chance, dass das Item gefunden wird&amp;quot;. Und zusätzlich kann noch eine Mengenauswahl hinten angehängt werden, was es ziemlich seltsam aussehen lässt:&lt;br /&gt;
&lt;br /&gt;
ITEM=i_sword_long,R11,{4 5} &lt;br /&gt;
&lt;br /&gt;
Aber warum würde man 4 oder 5 Langschwerter haben wollen? Das wäre noch seltsamer. :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das wars von Templates. Gratulation, das erste Kapitel ist hiermit durch. Jetzt sollten die Beispiele im nächsten Abschnitt nicht schwierig zu verstehen sein. Du könntest auch einige fragen haben, die hier allerdings ohnehin nicht beantwortet werden. Einfach weiterlesen, es wird noch vieles in den folgenden Kapiteln abgehandelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''(Ein Template Beispiel von Belgar)''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[TEMPLATE tm_necromancer]&amp;lt;br /&amp;gt;&lt;br /&gt;
CONTAINER=i_bag&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_necro_scroll&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_necro_scroll&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_necro_reagent, {5 12}&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_reagent, {5 12}&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_necro_reagent, {5 12}&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
Oder ... naja, glaub es gibt kein anderes Wort für &amp;quot;Beispiele&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das soll mein Versuch sein, einfachste simpelste Items zu erstellen. Du wirst hier einige DInge in diesen Beispielen sehen, die in den Tutorials nicht behandelt wurden. Hauptsächlich gibts hier ein ON=@create das im 2. Kapitel abgehandelt wird. Für die Beispiele ist nur wichtig, dass die Farbe der Dinge im Spiel geändert werden kann und dass das unter on=@create passieren muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Beispiel 1''': Ein rotes Schwert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[ITEMDEF i_sword_red]&amp;lt;br /&amp;gt;&lt;br /&gt;
ID=i_sword_viking&amp;lt;br /&amp;gt;&lt;br /&gt;
TYPE=t_weapon_sword&amp;lt;br /&amp;gt;&lt;br /&gt;
NAME=Das rote Schwert&amp;lt;br /&amp;gt;&lt;br /&gt;
CATEGORY=Weapons&amp;lt;br /&amp;gt;&lt;br /&gt;
SUBSECTION=New Swords&amp;lt;br /&amp;gt;&lt;br /&gt;
DESCRIPTION=Red Sword&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ON=@Create&lt;br /&gt;
:COLOR=colors_red // Das ist ein Kommentar. Kommentare werden von Sphere ignoriert.&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Moment ... was heisst das // an dieser Stelle? Das ist ein Kommentar, er wird gänzlich von Sphere ignoriert, deshalb kann hier alles stehen, solange es hinter den // steht. Es gibt in Sphere keine mehrzeiligen Kommentare, solange man nicht jede Zeile mit // beginnen lässt. Deshalb sollte man das gar nicht versuchen, sonst wird Sphere viele Fehler ausgeben und man darf sie suchen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Beispiel 2''': Ein blauer Ettin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[CHARDEF c_ettin_blue]&amp;lt;br /&amp;gt;&lt;br /&gt;
ID=02 // Hier kann auch c_ettin benutzt werden natürlich.&amp;lt;br /&amp;gt;&lt;br /&gt;
NAME=Mein blauer Ettin&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
ON=@Create&amp;lt;br /&amp;gt;&lt;br /&gt;
:COLOR=02 // Das ist dunkelblau. Wird oft für Counselorroben benutzt. Merken.&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Beispiel 3''': Ein Template aus einer der Dateien, weil ich zu faul bin eins selbst zu schreiben&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[TEMPLATE 101521]&amp;lt;br /&amp;gt;&lt;br /&gt;
DEFNAME=goodie_meager_1&amp;lt;br /&amp;gt;&lt;br /&gt;
CATEGORY=Item Templates&amp;lt;br /&amp;gt;&lt;br /&gt;
SUBSECTION=Loot Templates&amp;lt;br /&amp;gt;&lt;br /&gt;
DESCRIPTION=Meager Goodie 1&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ meager_gold_pile 1 backpack_meager 1 pouch_meager 1 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_boots 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_gorget 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_staff 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_necklace 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ i_cape 1 0 9 }&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;COLOR=colors_all&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bemerkenswert ist hier etwas neues (das speziell in rot hervorgehoben ist) und ja, das kann man so schreiben. Alle Zeilen zwischen ITEM= Zeilen betreffen das zuvor erstelle Item. COLOR= bezieht sich also auf die Zeile&lt;br /&gt;
&lt;br /&gt;
ITEM={ i_cape 1 0 9 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der beste Weg diese Art von Skripten zu lernen, liegt darin, dass man die Skripte in den Dateien wie beispielsweise sphereitem_colorarm.scp und sphereitem_beers.scp liest.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Intrinsic_Functions&amp;diff=767</id>
		<title>De:Intrinsic Functions</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Intrinsic_Functions&amp;diff=767"/>
				<updated>2010-12-08T08:58:50Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Intrinsic_Functions}}&lt;br /&gt;
&lt;br /&gt;
Intrinsic Funktionen sind spezielle Funktionen, die nur innerhalb von &amp;quot;evals&amp;quot;, wie bspw. [[EVAL]], [[FEVAL]], [[FVAL]] und [[HVAL]] benutzt werden können. Manche der eingebauten Funktionen sind sehr speziell und können automatisch übergebene Paramater automatisch evaluieren, wie bspw [[IF]] und [[WHILE]], wodurch in solchen Fällen Intrinsics nicht innerhalb eines &amp;quot;evals&amp;quot; benutzt werden müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anders als die normale Syntax für Funktionen (&amp;amp;lt;FUNCTION args&amp;amp;gt;), ist die Syntax bei der Verwendung eines Intrinsics:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;FUNCTION(''args'')&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgende Tabelle listet alle in Sphereserver verfügbaren Instricfunktionen auf:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[COS]](''value'') || Berechnet den Kosinus von ''value''.&lt;br /&gt;
|-&lt;br /&gt;
| [[ID]](''defname'') || Berechnet die ID eines ''defname''s.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISOBSCENE]](''text'') || Liefert 1, wenn der ''text'' Wörter aus der OBSCENE-Liste enthält (siehe [[De:Chapter 2|Kapitel 2]]).&lt;br /&gt;
|-&lt;br /&gt;
| [[ISNUMERIC]](''value'') || Liefert 1, wenn ''value'' eine Zahl ist.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOGARITHM]](''value'') || Liefert den Logarithmus von ''value'' zur Basis 10.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOGARITHM]](''value'', ''base'') || Liefert den Logarithmus von ''value'' zur Basis ''base''. Für die Basis kann &amp;quot;e&amp;quot;, &amp;quot;pi&amp;quot; oder ein beliebiger Zahlenwert angegeben werden.&lt;br /&gt;
|-&lt;br /&gt;
| [[NAPIERPOW]](''value'') || Liefert e (2.7182818) hoch ''value''.&lt;br /&gt;
|-&lt;br /&gt;
| [[QVAL]](''a, b, kleiner_als, gleich, größer_als'') || Liefert ''kleiner_als'', wenn ''a'' kleiner als ''b'', ''gleich'' wenn ''a'' gleich ''b'' und ''größer_als'' wenn ''a'' größer als ''b'' ist.&lt;br /&gt;
|-&lt;br /&gt;
| [[RAND]](''value'') || Liefert eine Zufallszahl zwischen 0 und ''value'' - 1.&lt;br /&gt;
|-&lt;br /&gt;
| [[RAND]](''min, max'') || Liefert eine Zufallszahl zwischen ''min'' und ''max''.&lt;br /&gt;
|-&lt;br /&gt;
| [[RANDBELL]](''value, variance'') || Berechnet eine Zufallszahl basierend auf einer Glockenkurve (siehe: [http://de.wikipedia.org/wiki/Normalverteilung Normalverteilung]).&lt;br /&gt;
|-&lt;br /&gt;
| [[SIN]](''value'') || Liefert den Sinus von ''value''.&lt;br /&gt;
|-&lt;br /&gt;
| [[STRCMP]](''string1, string2'') || Vergleicht ''string1'' mit ''string2'' und liefert das Ergebnis. Unterscheidet zwischen Groß- und Kleinschreibung. (&amp;lt;= 1 = ''string1'' kleiner als ''string2'', 0 = ''string1'' gleich ''string2'', &amp;gt;= 1 = ''string1'' größer als ''string2'')&lt;br /&gt;
|-&lt;br /&gt;
| [[STRCMPI]](''string1, string2'') || Vergleicht ''string1'' mit ''string2'' und liefert das Ergebnis. Unterscheidet nicht zwischen Groß- und Kleinschreibung. (&amp;lt;= 1 = ''string1'' kleiner als ''string2'', 0 = ''string1'' gleich ''string2'', &amp;gt;= 1 = ''string1'' größer als ''string2'')&lt;br /&gt;
|-&lt;br /&gt;
| [[STRINDEXOF]](''text, search, n'') || Liefert den Index  von eines ersten Auftreten von ''search'' innerhalb von ''text'', beginnend beim ''n''ten Buchstaben. (0 ist der erste Buchstabe)&lt;br /&gt;
|-&lt;br /&gt;
| [[STRLEN]](''text'') || Liefert die Länge von ''text''.&lt;br /&gt;
|-&lt;br /&gt;
| [[STRMATCH]](''pattern, text'') || Liefert 1, wenn ''text'' zum angegebenen Wildcard ''pattern'' passt.&lt;br /&gt;
|-&lt;br /&gt;
| [[STRREGEX]](''pattern, text'') || Liefert 1, wenn 1 if ''text'' zum angegebenen regulären Ausdruck ''pattern'' passt.&lt;br /&gt;
|-&lt;br /&gt;
| [[SQRT]](''value'') || Liefert die Quadratwurzel von ''value''.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAN]](''value'') || Liefert den Tangens von ''value''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Scripts]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Intrinsic_Functions&amp;diff=766</id>
		<title>De:Intrinsic Functions</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Intrinsic_Functions&amp;diff=766"/>
				<updated>2010-12-08T08:57:24Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Intrinsic_Functions}}&lt;br /&gt;
&lt;br /&gt;
Intrinsic Funktionen sind spezielle Funktionen, die nur innerhalb von &amp;quot;evals&amp;quot;, wie bspw. [[EVAL]], [[FEVAL]], [[FVAL]] und [[HVAL]] benutzt werden können. Manche der eingebauten Funktionen sind sehr speziell und können automatisch übergebene Paramater automatisch evaluieren, wie bspw [[IF]] und [[WHILE]], wodurch in solchen Fällen Intrinsics nicht innerhalb eines &amp;quot;evals&amp;quot; benutzt werden müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anders als die normale Syntax für Funktionen (&amp;amp;lt;FUNCTION args&amp;amp;gt;), ist die Syntax bei der Verwendung eines Intrinsics:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;FUNCTION(''args'')&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgende Tabelle listet alle in Sphereserver verfügbaren Instricfunktionen auf:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[COS]](''value'') || Berechnet den Kosinus von ''value''.&lt;br /&gt;
|-&lt;br /&gt;
| [[ID]](''defname'') || Berechnet die ID eines ''defname''s.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISOBSCENE]](''text'') || Liefert 1, wenn der ''text'' Wörter aus der OBSCENE-Liste enthält (siehe [[De:Chapter 2|Kapitel 2]]).&lt;br /&gt;
|-&lt;br /&gt;
| [[ISNUMERIC]](''value'') || Liefert 1, wenn ''value'' eine Zahl ist.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOGARITHM]](''value'') || Liefert den Logarithmus von ''value'' zur Basis 10.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOGARITHM]](''value'', ''base'') || Liefert den Logarithmus von ''value'' zur Basis ''base''. Für die Basis kann &amp;quot;e&amp;quot;, &amp;quot;pi&amp;quot; oder ein beliebiger Zahlenwert angegeben werden.&lt;br /&gt;
|-&lt;br /&gt;
| [[NAPIERPOW]](''value'') || Liefert e (2.7182818) hoch ''value''.&lt;br /&gt;
|-&lt;br /&gt;
| [[QVAL]](''a, b, kleiner_als, gleich, größer_als'') || Liefert ''kleiner_als'', wenn ''a'' kleiner als ''b'', ''gleich'' wenn ''a'' gleich ''b'' und ''größer_als'' wenn ''a'' größer als ''b'' ist.&lt;br /&gt;
|-&lt;br /&gt;
| [[RAND]](''value'') || Liefert eine Zufallszahl zwischen 0 und ''value'' - 1.&lt;br /&gt;
|-&lt;br /&gt;
| [[RAND]](''min, max'') || Liefert eine Zufallszahl zwischen ''min'' und ''max''.&lt;br /&gt;
|-&lt;br /&gt;
| [[RANDBELL]](''value, variance'') || Berechnet einen Wert basierend auf einer Glockenkurve (siehe: [http://de.wikipedia.org/wiki/Normalverteilung Normalverteilung]).&lt;br /&gt;
|-&lt;br /&gt;
| [[SIN]](''value'') || Liefert den Sinus von ''value''.&lt;br /&gt;
|-&lt;br /&gt;
| [[STRCMP]](''string1, string2'') || Vergleicht ''string1'' mit ''string2'' und liefert das Ergebnis. Unterscheidet zwischen Groß- und Kleinschreibung. (&amp;lt;= 1 = ''string1'' kleiner als ''string2'', 0 = ''string1'' gleich ''string2'', &amp;gt;= 1 = ''string1'' größer als ''string2'')&lt;br /&gt;
|-&lt;br /&gt;
| [[STRCMPI]](''string1, string2'') || Vergleicht ''string1'' mit ''string2'' und liefert das Ergebnis. Unterscheidet nicht zwischen Groß- und Kleinschreibung. (&amp;lt;= 1 = ''string1'' kleiner als ''string2'', 0 = ''string1'' gleich ''string2'', &amp;gt;= 1 = ''string1'' größer als ''string2'')&lt;br /&gt;
|-&lt;br /&gt;
| [[STRINDEXOF]](''text, search, n'') || Liefert den Index  von eines ersten Auftreten von ''search'' innerhalb von ''text'', beginnend beim ''n''ten Buchstaben. (0 ist der erste Buchstabe)&lt;br /&gt;
|-&lt;br /&gt;
| [[STRLEN]](''text'') || Liefert die Länge von ''text''.&lt;br /&gt;
|-&lt;br /&gt;
| [[STRMATCH]](''pattern, text'') || Liefert 1, wenn ''text'' zum angegebenen Wildcard ''pattern'' passt.&lt;br /&gt;
|-&lt;br /&gt;
| [[STRREGEX]](''pattern, text'') || Liefert 1, wenn 1 if ''text'' zum angegebenen regulären Ausdruck ''pattern'' passt.&lt;br /&gt;
|-&lt;br /&gt;
| [[SQRT]](''value'') || Liefert die Quadratwurzel von ''value''.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAN]](''value'') || Liefert den Tangens von ''value''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Scripts]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Intrinsic_Functions&amp;diff=765</id>
		<title>De:Intrinsic Functions</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Intrinsic_Functions&amp;diff=765"/>
				<updated>2010-12-08T08:55:08Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: Created page with '{{Languages|Intrinsic_Functions}}  Intrinsic Funktionen sind spezielle Funktionen, die nur innerhalb von &amp;quot;evals&amp;quot;, wie bspw. EVAL, FEVAL, [[FVAL und HVAL benutzt werde...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Intrinsic_Functions}}&lt;br /&gt;
&lt;br /&gt;
Intrinsic Funktionen sind spezielle Funktionen, die nur innerhalb von &amp;quot;evals&amp;quot;, wie bspw. [[EVAL]], [[FEVAL, [[FVAL]] und [[HVAL]] benutzt werden können. Manche eingebauten Funktionen sind sehr speziell und können automatisch übergebene Paramater aufotmatisch evaluieren, wie bspw [[IF]] und [[WHILE]], wodurch Intrinsics nicht innerhalb eines &amp;quot;evals&amp;quot; benutzt werden müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anders als die normale Syntax für Funktionen (&amp;amp;lt;FUNCTION args&amp;amp;gt;), ist die Syntax bei der Verwendung eines Intrinsics:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;FUNCTION(''args'')&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgende Tabelle listet alle in Sphereserver verfügbaren Instricfunktionen auf:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[COS]](''value'') || Berechnet den Kosinus von ''value''.&lt;br /&gt;
|-&lt;br /&gt;
| [[ID]](''defname'') || Berechnet die ID eines ''defname''s.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISOBSCENE]](''text'') || Liefert 1, wenn der ''text'' Wörter aus der OBSCENE-Liste enthält (siehe [[De:Chapter 2|Kapitel 2]]).&lt;br /&gt;
|-&lt;br /&gt;
| [[ISNUMERIC]](''value'') || Liefert 1, wenn ''value'' eine Zahl ist.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOGARITHM]](''value'') || Liefert den Logarithmus von ''value'' zur Basis 10.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOGARITHM]](''value'', ''base'') || Liefert den Logarithmus von ''value'' zur Basis ''base''. Für die Basis kann &amp;quot;e&amp;quot;, &amp;quot;pi&amp;quot; oder ein beliebiger Zahlenwert angegeben werden.&lt;br /&gt;
|-&lt;br /&gt;
| [[NAPIERPOW]](''value'') || Liefert e (2.7182818) hoch ''value''.&lt;br /&gt;
|-&lt;br /&gt;
| [[QVAL]](''a, b, kleiner_als, gleich, größer_als'') || Liefert ''kleiner_als'', wenn ''a'' kleiner als ''b'', ''gleich'' wenn ''a'' gleich ''b'' und ''größer_als'' wenn ''a'' größer als ''b'' ist.&lt;br /&gt;
|-&lt;br /&gt;
| [[RAND]](''value'') || Liefert eine Zufallszahl zwischen 0 und ''value'' - 1.&lt;br /&gt;
|-&lt;br /&gt;
| [[RAND]](''min, max'') || Liefert eine Zufallszahl zwischen ''min'' und ''max''.&lt;br /&gt;
|-&lt;br /&gt;
| [[RANDBELL]](''value, variance'') || Berechnet einen Wert basierend auf einer Glockenkurve (siehe: [http://de.wikipedia.org/wiki/Normalverteilung Normalverteilung]).&lt;br /&gt;
|-&lt;br /&gt;
| [[SIN]](''value'') || Liefert den Sinus von ''value''.&lt;br /&gt;
|-&lt;br /&gt;
| [[STRCMP]](''string1, string2'') || Vergleicht ''string1'' mit ''string2'' und liefert das Ergebnis. Unterscheidet zwischen Groß- und Kleinschreibung. (&amp;lt;= 1 = ''string1'' kleiner als ''string2'', 0 = ''string1'' gleich ''string2'', &amp;gt;= 1 = ''string1'' größer als ''string2'')&lt;br /&gt;
|-&lt;br /&gt;
| [[STRCMPI]](''string1, string2'') || Vergleicht ''string1'' mit ''string2'' und liefert das Ergebnis. Unterscheidet nicht zwischen Groß- und Kleinschreibung. (&amp;lt;= 1 = ''string1'' kleiner als ''string2'', 0 = ''string1'' gleich ''string2'', &amp;gt;= 1 = ''string1'' größer als ''string2'')&lt;br /&gt;
|-&lt;br /&gt;
| [[STRINDEXOF]](''text, search, n'') || Liefert den Index  von eines ersten Auftreten von ''search'' innerhalb von ''text'', beginnend beim ''n''ten Buchstaben. (0 ist der erste Buchstabe)&lt;br /&gt;
|-&lt;br /&gt;
| [[STRLEN]](''text'') || Liefert die Länge von ''text''.&lt;br /&gt;
|-&lt;br /&gt;
| [[STRMATCH]](''pattern, text'') || Liefert 1, wenn ''text'' zum angegebenen Wildcard ''pattern'' passt.&lt;br /&gt;
|-&lt;br /&gt;
| [[STRREGEX]](''pattern, text'') || Liefert 1, wenn 1 if ''text'' zum angegebenen regulären Ausdruck ''pattern'' passt.&lt;br /&gt;
|-&lt;br /&gt;
| [[SQRT]](''value'') || Liefert die Quadratwurzel von ''value''.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAN]](''value'') || Liefert den Tangens von ''value''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Scripts]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Chapter_2&amp;diff=764</id>
		<title>De:Chapter 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Chapter_2&amp;diff=764"/>
				<updated>2010-12-05T11:01:52Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: /* Sphere.ini */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Chapter_2}}&lt;br /&gt;
&lt;br /&gt;
==spheretables.scp==&lt;br /&gt;
&lt;br /&gt;
Spheretables.scp  ist die allererste Datei, die beim Start von Sphere genau nach der Sphere.ini eingelesen wird. Deshalb ist sie äusserst wichtig. Viele weitere Einstellungen werden innerhalb dieser Datei vorgenommen und das macht sie so wichtig. Deshalb wird diese Datei hier nun erklärt und aufgeschlüsselt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt; &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;[RESOURCES]&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Öffnet man diese Datei, fällt einem als erstes eine Liste von Dateien ins Auge. Diese Liste ist durch das [RESOURCE]-Tag markiert und sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[RESOURCES]&amp;lt;br /&amp;gt;&lt;br /&gt;
scripts/sphere_defs.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
scripts/sphere_book.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
scripts/sphere_backward_compatibility.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
scripts/sphere_events_human.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
scripts/sphere_events_npcs.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
scripts/npcs/&amp;lt;br /&amp;gt;&lt;br /&gt;
...&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier wird eingestellt, welche und in welcher Reihenfolge Skriptdateien von Sphere geladen werden. Manchmal sollten hier Änderungen mit äusserster Vorsicht vorgenommen werden. Dateien mit DEFNAMES, REGIONS und anderen global benutzten Einstellungen sollten als erstes geladen werden, um Fehler beim Start von Sphere zu vermeiden (obgleich diese Fehler oftmals den Server nicht beeinträchtigen). Beispielsweise wurde in [[De:Chapter 1|Kapitel 1]] das Goldskript behandelt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;TYPE=t_gold&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weiss Sphere aus der nicht, was t_gold bedeutet, dann wird eine Fehlermeldung ausgegeben. Deshalb sollte vor dem Goldskript auf alle Fälle zuerst sphere_defs.scp geladen werden, in der t_gold definiert wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Skripte mit Itemdefinitionen sollten von Skripten mit Templatedefinitionen geladen werden und danach dann Characterdefinitionen. Andere Dateien folgen danach, aber diese Dateien sollten auf jeden Fall in dieser Reihenfolge sein. Der Loot von Monstern benötigt Templates und die wiederum Items und solange Sphere keine Dateien mit Templates oder Items geladen hat, werden hunderte Fehler ausgegeben, die dann korrigiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Anmerkung''': ''Es können ganze Ordner angegeben werden, es muss nicht jede einzelne Datei in der Liste aufgeführt werden. Deshalb enthält die Liste beispielsweise &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;scripts/&amp;lt;/font&amp;gt; am ende von [RESOURCE], damit alle Skripte dieses Ordner geladen werden, die noch nicht aufgeführt wurden.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt; &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;[OBSCENE]&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Die nächste Sektion ist selbsterklären: [OBSCENE]. Hier werden unerlaubte Namen aufgeführt. Versucht ein Spieler seinem Charakter einen Namen aus der Liste zu geben, dann wird ihm mitgeteilt, dass er einen anderen wählen soll. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt; &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;[NOTOTITLES]&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Hier werden Titel definiert, die basierend auf dem Karmawert eines Spielers angezeigt werden. Diese Sektion sollte nicht angerührt werden, denn fehlt hier eine Zeile wird Sphere nicht mehr starten - diese Zeilen sollten höchstens geändert werden.&lt;br /&gt;
This defines the title that will be shown related to the player's karma. Do not touch this section. If you remove a line inadvertently, your server WILL NOT RUN. Only change them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt; &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;[PLEVEL X]&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt legt fest, welche Befehle mit welchen Accountrechten (PLEVEL) ausgeführt werden können. Jeder nichtgelistete Befehl wird automatisch mit PLEVEL 4 eingeordnet. Das gilt auch für selbstgeschriebene Funktionen (siehe [[De:Chapter 6|Kapitel 6]]). Wie man sieht, gibt es eine große Liste an Befehlen und Funktionen.&lt;br /&gt;
&lt;br /&gt;
'''Anmerkung''': Es muss nicht jede selbstgeschriebene Funktion in diese Liste, da jederzeit weitere [PLEVEL]-Sektionen in anderen Skripten angelegt werden können, obgleich es natürlich organisatorisch besser wäre, diese würden zentral gehalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt; &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;[RUNES]&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Das ist die Liste der Worte, die gesagt werden, wenn ein Spruch gezaubert wird (An, Lor, In, usw.). Sie können geändert werden, aber das kann durchaus sehr verwirren. =P&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sphere.ini==&lt;br /&gt;
&lt;br /&gt;
Sphere.ini enthält alle internen Einstellungen des Sphere Emulators. Um einen Shard zu konfigurieren sollte hier begonnen werden. Um die Datei besser zu erklären, wurden Kommentare in '''fetter Schrift''' eingefügt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;//****************************************************************************&amp;lt;br /&amp;gt;&lt;br /&gt;
// SPHERE by : Menasoft 1997-2003&amp;lt;br /&amp;gt;&lt;br /&gt;
// www.sphereserver.com&amp;lt;br /&amp;gt;&lt;br /&gt;
// All SPHERE script files and formats are copyright Menasoft &amp;amp; Partners.&amp;lt;br /&amp;gt;&lt;br /&gt;
// This file may be freely edited for personal use, but may not be distributed&amp;lt;br /&amp;gt;&lt;br /&gt;
// in whole or in part, in any format without express written permission from&amp;lt;br /&amp;gt;&lt;br /&gt;
// Menasoft &amp;amp; Partners. All donations and contributions&amp;lt;br /&amp;gt;&lt;br /&gt;
// become the property of Menasoft &amp;amp; Partners.&amp;lt;br /&amp;gt;&lt;br /&gt;
//****************************************************************************&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// General Information&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[SPHERE]&amp;lt;br /&amp;gt;&lt;br /&gt;
// Name of your Sphere shard&amp;lt;br /&amp;gt;&lt;br /&gt;
ServName='''WarAngel's Test Centre'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// The IP of your server, this will be 127.0.0.1 almost always&amp;lt;br /&amp;gt;&lt;br /&gt;
ServIP=127.0.0.1&amp;lt;br /&amp;gt;&lt;br /&gt;
// The port of your server, this is 2593 by default&amp;lt;br /&amp;gt;&lt;br /&gt;
ServPort=2593&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Admin's contact email&amp;lt;br /&amp;gt;&lt;br /&gt;
AdminEmail='''warangel999@msn.com'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// Web page for this server&amp;lt;br /&amp;gt;&lt;br /&gt;
URL=www.myshard.com Replace www.myshard.com with your shard's URL'&amp;lt;br /&amp;gt;&lt;br /&gt;
// GMT offset, from -12 to +12 [London=0, EST=5, etc]&amp;lt;br /&amp;gt;&lt;br /&gt;
TimeZone='''-5 Östliche Zeitzone (US &amp;amp; Canada). Sollte passend eingestellt werden.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Official staff language&amp;lt;br /&amp;gt;&lt;br /&gt;
Lang=English&amp;lt;br /&amp;gt;&lt;br /&gt;
// Start this as a system service on Win2000, XP, NT&amp;lt;br /&amp;gt;&lt;br /&gt;
NTService=0 '''Wird diese Einstellung aktiviert, ist kein Zugriff auf die Konsole mehr möglich.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// MySql configuration.&amp;lt;br /&amp;gt;&lt;br /&gt;
//MYSQL=0 '''Auf =1 wird MySQL aktiviert.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
//MySqlHost='''localhost Wird fast immer localhost sein, ausser MySQL läuft auf einen anderen Rechner als der Shard.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
//MySqlUser=&amp;lt;br /&amp;gt;&lt;br /&gt;
//MySqlPassword=&amp;lt;br /&amp;gt;&lt;br /&gt;
//MySqlDatabase=&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// File Locations&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// Directory where spheretables.scp is located, from there we will&amp;lt;br /&amp;gt;&lt;br /&gt;
// load any additional scripts&amp;lt;br /&amp;gt;&lt;br /&gt;
ScpFiles=scripts/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Where your sphereworld.scp and spherechars.scp are located&amp;lt;br /&amp;gt;&lt;br /&gt;
WorldSave=save/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Where your sphereaccu.scp and sphereacct.scp is located&amp;lt;br /&amp;gt;&lt;br /&gt;
AcctFiles=accounts/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Where your UO installation is located. This need: map0.mul, statics0.mul,&amp;lt;br /&amp;gt;&lt;br /&gt;
// staidx0.mul, multi.mul, multi.idx, hues.mul, tiledata.mul.&amp;lt;br /&amp;gt;&lt;br /&gt;
// Optional files: verdata.mul, mapX.mul/staticsX.mul/staidxX.mul for higher&amp;lt;br /&amp;gt;&lt;br /&gt;
// maps support (Malas, etc).&amp;lt;br /&amp;gt;&lt;br /&gt;
//&amp;lt;br /&amp;gt;&lt;br /&gt;
// Note that if not set, sphere will scan windows registry to auto-detect it&amp;lt;br /&amp;gt;&lt;br /&gt;
//MulFiles=mul/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Where your log files will be saved by sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
Log=logs/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// World Save Information&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// How often for Sphere to save your world (minutes)&amp;lt;br /&amp;gt;&lt;br /&gt;
SavePeriod=20&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// How many backup levels to keep. Each level means 7 backups done for it.&amp;lt;br /&amp;gt;&lt;br /&gt;
// So, 10*7 = 70 backup saves will be storied.&amp;lt;br /&amp;gt;&lt;br /&gt;
BackupLevels=10&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// On would save in the background quietly over a longer period of time, and not interrupt the game&amp;lt;br /&amp;gt;&lt;br /&gt;
// Off would notify &amp;quot;World save has been initiated&amp;quot; and save faster, but pause the game momentarily&amp;lt;br /&amp;gt;&lt;br /&gt;
SaveBackground=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Account Management&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
//Code for servers account application process&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0=Closed, // Closed. Not accepting more.&amp;lt;br /&amp;gt;&lt;br /&gt;
// 2=Free, // Anyone can just log in and create a full account.&amp;lt;br /&amp;gt;&lt;br /&gt;
// 3=GuestAuto, // You get to be a guest and are automatically sent email with u're new password.&amp;lt;br /&amp;gt;&lt;br /&gt;
// 4=GuestTrial, // You get to be a guest til u're accepted for full by an Admin.&amp;lt;br /&amp;gt;&lt;br /&gt;
// 6=Unspecified, // Not specified.&amp;lt;br /&amp;gt;&lt;br /&gt;
// To enable auto account you must set this to 2&amp;lt;br /&amp;gt;&lt;br /&gt;
AccApp=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Store password hashed with MD5 '''MD5 ist eine Verschlüsselungsmethode zur Speicherung von Passwörtern. Mehr Information: [http://de.wikipedia.org/wiki/MD5 hier]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Md5Passwords=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// local ip is assumed to be the admin&amp;lt;br /&amp;gt;&lt;br /&gt;
LocalIPAdmin=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Number of chars allowed per account&amp;lt;br /&amp;gt;&lt;br /&gt;
MaxCharsPerAccount=5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Min time for a char to exist before delete allowed (in seconds)&amp;lt;br /&amp;gt;&lt;br /&gt;
MinCharDeleteTime=3*24*60&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Max number of Guest accounts allowed&amp;lt;br /&amp;gt;&lt;br /&gt;
GuestsMax=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Client Management&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// What client protocol version used&amp;lt;br /&amp;gt;&lt;br /&gt;
// Comment out the ClientVersion line to allow any client that is supported.&amp;lt;br /&amp;gt;&lt;br /&gt;
//ClientVersion=2.0.3&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Set this to 0 to block login to encrypted clients '''Normalerweise benutzen Clients Verschlüsselung.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
UseCrypt=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Set this to 1 to allow login to unencrypted clients '''Klappt mit Tools wie bspw.: [http://stud4.tuwien.ac.at/~e9425109/UO_RICE.htm UO Rice] und [http://www.uogateway.com/ UOGateway] die Verschlüsselung eines Clients zu entfernen'''&amp;lt;br /&amp;gt;&lt;br /&gt;
UseNoCrypt=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum total open connections to server&amp;lt;br /&amp;gt;&lt;br /&gt;
ClientMax=256&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum open connections to server per IP&amp;lt;br /&amp;gt;&lt;br /&gt;
ClientMaxIP=16&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum total (not-in-game) connections to server &amp;lt;br /&amp;gt;&lt;br /&gt;
ConnectingMax=32&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum total simultaneous (not-in-game) connections to server per IP&amp;lt;br /&amp;gt;&lt;br /&gt;
ConnectingMax=8&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// How long logged out clients linger in seconds&amp;lt;br /&amp;gt;&lt;br /&gt;
ClientLinger=15&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Walk limiting code: buffer size (in tenths of second)&amp;lt;br /&amp;gt;&lt;br /&gt;
WalkBuffer=75&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Walk limiting code: regen speed (%)&amp;lt;br /&amp;gt;&lt;br /&gt;
WalkRegen=25&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Only commands issued by this plevel and higher will be logged&amp;lt;br /&amp;gt;&lt;br /&gt;
CommandLog=0 '''0 bedeutet, dass alle Befehle geloggt werden.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Prefix for ingame commands&amp;lt;br /&amp;gt;&lt;br /&gt;
CommandPrefix=.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Use the built in http server&amp;lt;br /&amp;gt;&lt;br /&gt;
UseHttp=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Use the built in god port&amp;lt;br /&amp;gt;&lt;br /&gt;
UseGodPort=0 '''This is for use with the God client'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Default setting for all accounts specifying default resdisp. Recommended&amp;lt;br /&amp;gt;&lt;br /&gt;
// specifying at least 1 (T2A) here.&amp;lt;br /&amp;gt;&lt;br /&gt;
//AutoResDisp=0 '''0=autmatisch herausfinden, 1=T2A, 2=LBR, 3=AoS, 4=SE, 5=ML'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Default setting for new accounts specifying default priv level&amp;lt;br /&amp;gt;&lt;br /&gt;
//AutoPrivFlags=010&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Game Mechanics&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// Do not allow entering under roof being on horse?&amp;lt;br /&amp;gt;&lt;br /&gt;
MountHeight=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Archery does not work if too close (0 = not checked)&amp;lt;br /&amp;gt;&lt;br /&gt;
ArcheryMinDist=2&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum Distance for Archery&amp;lt;br /&amp;gt;&lt;br /&gt;
ArcheryMaxDist=15&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Speed scale factor for weapons '''Formel ist: VERZÖGERUNG = SPEEDSCALEFACTOR /((DEX + 100) * SPEED)'''&amp;lt;br /&amp;gt;&lt;br /&gt;
SpeedScaleFactor=15000&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// This is the percent of max weight at which stamina is lost half the time&amp;lt;br /&amp;gt;&lt;br /&gt;
// (200 = no effect)&amp;lt;br /&amp;gt;&lt;br /&gt;
StaminaLossAtWeight=150&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Weight penalty for running +N% of max carry weight (0 = no effect)&amp;lt;br /&amp;gt;&lt;br /&gt;
RunningPenalty=50&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Show people joining/leaving the server&amp;lt;br /&amp;gt;&lt;br /&gt;
ArriveDepartMsg=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Are house and boat keys newbied automatically&amp;lt;br /&amp;gt;&lt;br /&gt;
AutoNewbieKeys=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum number of items allowed in bank&amp;lt;br /&amp;gt;&lt;br /&gt;
BankMaxItems=1000&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum weight in stones allowed in bank&amp;lt;br /&amp;gt;&lt;br /&gt;
BankMaxWeight=1000&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// If 1 vendors will take gold only from backpack&amp;lt;br /&amp;gt;&lt;br /&gt;
PayFromPackOnly=0 '''Wenn 0, dann nehmen Händler auch Geld vom Bankfach.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Disable weather effects?&amp;lt;br /&amp;gt;&lt;br /&gt;
NoWeather=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Default light level in dungeons&amp;lt;br /&amp;gt;&lt;br /&gt;
DungeonLight=27 '''0 ist am helssten, 30 ist am dunkelsten'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Day light level 0-30 '''0 ist am helssten, 30 ist am dunkelsten'''&amp;lt;br /&amp;gt;&lt;br /&gt;
LightDay=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Night light level 0-30&amp;lt;br /&amp;gt;&lt;br /&gt;
LightNight=25&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Wool Regen Time (in minutes)&amp;lt;br /&amp;gt;&lt;br /&gt;
WoolGrowthTime=30&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Suppress player speech with 75% of capital letters&amp;lt;br /&amp;gt;&lt;br /&gt;
SuppressCapitals=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Extra combat flags to control the fight (default:0, 0.55i compatible)&amp;lt;br /&amp;gt;&lt;br /&gt;
// COMBAT_NODIRCHANGE 00001 // not rotate player when fighting (like was in 0.51a)&amp;lt;br /&amp;gt;&lt;br /&gt;
// COMBAT_FACECOMBAT 00002 // allow faced combat only (recommended)&amp;lt;br /&amp;gt;&lt;br /&gt;
//CombatFlags=0 '''Sind beide aktiviert, dann bedeutet das, dass der Spieler den Gegner ansehen muss, um ihn zu treffen.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// NPC/Item/Player Management&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// Distance in tiles before an NPC that's wandered too far from it's home will teleport back&amp;lt;br /&amp;gt;&lt;br /&gt;
LostNPCTeleport=50&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Wether PCs get a resurrection robe when they get resurrected.&amp;lt;br /&amp;gt;&lt;br /&gt;
NoResRobe=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time for a NPC corpse to decay mins&amp;lt;br /&amp;gt;&lt;br /&gt;
CorpseNPCDecay=10&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time for a playercorpse to decay mins&amp;lt;br /&amp;gt;&lt;br /&gt;
CorpsePlayerDecay=15&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Base decay time in minutes for items&amp;lt;br /&amp;gt;&lt;br /&gt;
DecayTimer=30&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Put [NPC] tags over chars '''oder [TAME], wenn der NPC gezähmt wurde'''&amp;lt;br /&amp;gt;&lt;br /&gt;
CharTags=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Flip dropped items&amp;lt;br /&amp;gt;&lt;br /&gt;
FlipDroppedItems=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Monsters run when scared of death&amp;lt;br /&amp;gt;&lt;br /&gt;
MonsterFear=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Monsters may fight each other&amp;lt;br /&amp;gt;&lt;br /&gt;
MonsterFight=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Percent setting of the all NPC move rate, default 100&amp;lt;br /&amp;gt;&lt;br /&gt;
MoveRate=100&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Do players receive sounds&amp;lt;br /&amp;gt;&lt;br /&gt;
GenericSounds=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Max number of items to sell to one person at once&amp;lt;br /&amp;gt;&lt;br /&gt;
VendorMaxSell=255&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Max level npc trainers can go&amp;lt;br /&amp;gt;&lt;br /&gt;
NPCTrainMax=300 '''300 ist 30.0 skill'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Percent of own ability npcs can train to&amp;lt;br /&amp;gt;&lt;br /&gt;
NPCTrainPercent=30&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Max level of skill trainable on dummies, archery butte ect..&amp;lt;br /&amp;gt;&lt;br /&gt;
SkillPracticeMax=300 '''300 ist 30.0 skill'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Max skill player's will start with on skills they haven't chosen during char create&amp;lt;br /&amp;gt;&lt;br /&gt;
MaxBaseSkill=200 '''Hier eine 0, damit Spieler mit keinen Skills ausser den gewählten beginnen.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time in seconds for hitpoint regeneration&amp;lt;br /&amp;gt;&lt;br /&gt;
Regen0=40&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time in seconds for mana regeneration&amp;lt;br /&amp;gt;&lt;br /&gt;
Regen1=20&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time in seconds for stamina regeneration&amp;lt;br /&amp;gt;&lt;br /&gt;
Regen2=10&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time in minutes for food regeneration&amp;lt;br /&amp;gt;&lt;br /&gt;
// 1*60*24 = 1 day of real life time&amp;lt;br /&amp;gt;&lt;br /&gt;
Regen3=1*60*24&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Speech block associated to players&amp;lt;br /&amp;gt;&lt;br /&gt;
SpeechSelf=spk_player&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Speech block associated to pets&amp;lt;br /&amp;gt;&lt;br /&gt;
SpeechPet=spk_pet&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// When player skills/stats goes this times more than skillclass allowed, drop&amp;lt;br /&amp;gt;&lt;br /&gt;
// them to skillclass level. Setting this to 0 disables the action.&amp;lt;br /&amp;gt;&lt;br /&gt;
OverSkillMultiply=2&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// NPC AI settings&amp;lt;br /&amp;gt;&lt;br /&gt;
// NPC_AI_PATH 0001 NPC pathfinding&amp;lt;br /&amp;gt;&lt;br /&gt;
// NPC_AI_FOOD 0002 NPC food search (objects + grass) '''Sorgt dafür, dass NPCs nach Essen bzw Gras suchen (siehe FOODTYPE)'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// NPC_AI_EXTRA 0004 NPC magics, combat, etc&amp;lt;br /&amp;gt;&lt;br /&gt;
//NPCAI=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Crime/Murder/Karma/Fame/Guard Settings&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// Karma when player goes from good to neutral (from -10000 to 10000)&amp;lt;br /&amp;gt;&lt;br /&gt;
PlayerNeutral=-2000&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// How many minutes are criminals flagged for&amp;lt;br /&amp;gt;&lt;br /&gt;
CriminalTimer=3&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Times a player can snoop before becoming a criminal&amp;lt;br /&amp;gt;&lt;br /&gt;
SnoopCriminal=20&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Seconds time to decay a murder count (default 8*60*60 is 8 hours)&amp;lt;br /&amp;gt;&lt;br /&gt;
MurderDecayTime=8*60*60&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Amount of murders before we get title&amp;lt;br /&amp;gt;&lt;br /&gt;
MurderMinCount=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Looting or carving a blue player is a crime&amp;lt;br /&amp;gt;&lt;br /&gt;
LootingIsaCrime=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Flag players criminal for helping criminals?&amp;lt;br /&amp;gt;&lt;br /&gt;
HelpingCriminalsIsaCrime=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// How long do guards linger about in minutes&amp;lt;br /&amp;gt;&lt;br /&gt;
GuardLinger=3&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Will guards kill instantly or follow normal combat rules&amp;lt;br /&amp;gt;&lt;br /&gt;
GuardsInstantKill=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Limits the MAXHITS/MAXMANA/MAXSTAM changes&amp;lt;br /&amp;gt;&lt;br /&gt;
// STAT_FLAG_NORMAL 0x00 // MAX* status allowed (default)&amp;lt;br /&amp;gt;&lt;br /&gt;
// STAT_FLAG_DENYMAX 0x01 // MAX* denied&amp;lt;br /&amp;gt;&lt;br /&gt;
// STAT_FLAG_DENYMAXP 0x02 // .. for players&amp;lt;br /&amp;gt;&lt;br /&gt;
// STAT_FLAG_DENYMAXN 0x04 // .. for npcs&amp;lt;br /&amp;gt;&lt;br /&gt;
StatsFlags=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Server Mechanics&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// Experimental flags&amp;lt;br /&amp;gt;&lt;br /&gt;
// Flags for options that affect server behaviour and which might affect compatibility&amp;lt;br /&amp;gt;&lt;br /&gt;
// See the revisions.txt file for more details on this&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_DiagonalWalkCheck = 00000001&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_UNICODE = 00000002 // No on Linux '''Bringt UNICODE Korrekturen'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Scripts_Ret_Strings = 00000004&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_New_Triggers = 00000008&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Scripts_Parse_Verbs = 00000010&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Intrinsic_Locals = 00000020 //'''Erlaubt locals anders zu nutzen. Beispielsweise kann statt &amp;lt;local.x&amp;gt; auch nur &amp;lt;x&amp;gt; benutzt werden.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Item_Strict_Comparison = 00000040 //'''Sorgt dafür, dass gleiche Items nicht mehr verglichen werden, wie Stoff, Leder, Fell, Holz, Bretter, Pfeile und Bolzen.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_WalkCheck = 00000100 '''//Behebt viele Hauseinbruchsbugs und ähnliche Probleme.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Script_Profiler = 00000400&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Size_Optimise = 00000800&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Minimize_Triggers = 00001000 //Minimize trigger calls (use only 0.51 triggers)&amp;lt;br /&amp;gt;&lt;br /&gt;
Experimental=00000&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Option flags &amp;lt;br /&amp;gt;&lt;br /&gt;
// Flags for options that affect server behaviour but not compatibility&amp;lt;br /&amp;gt;&lt;br /&gt;
// See the revisions.txt file for more details on this&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Magic_IgnoreAR = 00000001 //'''Magieschaden ignoriert Rüstung (AR)?'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Magic_CanHarmSelf = 00000002 //'''Kann sich ein Spieler mit Magie selbst verletzen? (einen Magic Arrow auf sich abfeuern, um Lähmung (Paralyze) zu beenden?)'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Magic_StackStats = 00000004&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Archery_CanMove = 00000010 //'''Kann ein Spieler laufen und schiessen gleichzeitig?'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Magic_PreCast = 00000020 //'''Funktionieren Zauber mit pre-cast oder ist der Spieler solange er zaubert unfähig herumzulaufen?'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Items_AutoName = 00000040&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_FileCommands = 00000080 //'''Aktiviert Befehle zur Dateiverarbeitung, wie writefile usw'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_NoItemNaming = 00000100 //'''Verhindert die Benennung von Gegenständen mit &amp;quot;crafted by&amp;quot;'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_NoHouseMuteSpeech = 00000200 //'''Können sich spieler in und ausserhalb von Häusern gegenseitig hören?'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Multithreaded = 00000400 //'''Nicht setzen, solange der Server läuft!!! (Macht *Nix Server instabil) Lässt die Verarbeitung von Accounts auf einem anderen Thread laufen'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Advanced_LOS = 00000800&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Flood_Protection = 00001000&amp;lt;br /&amp;gt;&lt;br /&gt;
OptionFlags=0200&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// FeatureT2A, used to control T2A expansion features ( default 03 )&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_T2A_UPDATE 01 // Monster and Lost lands&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_T2A_CHAT 02 // In game chat&amp;lt;br /&amp;gt;&lt;br /&gt;
FeatureT2A = 03&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// FeatureLBR, used to control LBR expansion features ( default 0 )&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_LBR_UPDATE 01 // Lbr Monsters&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_LBR_SOUND 02 // MP3 instead of MIDI&amp;lt;br /&amp;gt;&lt;br /&gt;
FeatureLBR = 0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// FeatureAOS, used to control AOS expansion features ( default 0 )&amp;lt;br /&amp;gt;&lt;br /&gt;
// Enabling one of them automagically enables AoS basic features&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_AOS_UPDATE 01 // Basic AoS feature&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_AOS_POPUP 02 // Popup infos&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_AOS_DAMAGE 04 // Damage shown on hit&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_AOS_PALNECRO 08 // Fightbook and Paladin/Necro on char creation&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_AOS_TOOLTIP 010 // Tooltips&amp;lt;br /&amp;gt;&lt;br /&gt;
FeatureAOS = 0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// FeatureSE, used to control SE expansion features ( default 0 )&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_SE_UPDATE 01 // Basic SE features&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_SE_NINJASAM 02 // Ninja and Samurai&amp;lt;br /&amp;gt;&lt;br /&gt;
FeatureSE = 0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// FeatureML, used to control ML expansion features ( default 0 )&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_ML_UPDATE 01 // Basic ML features&amp;lt;br /&amp;gt;&lt;br /&gt;
FeatureML = 0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// In game effects to turn on and off&amp;lt;br /&amp;gt;&lt;br /&gt;
// Messages echoed to the server console while in debug mode&amp;lt;br /&amp;gt;&lt;br /&gt;
// DEBUGF_NPC_EMOTE = 0x0001&amp;lt;br /&amp;gt;&lt;br /&gt;
// DEBUGF_ADVANCE_STATS = 0x0002&amp;lt;br /&amp;gt;&lt;br /&gt;
// DEBUGF_WALKCODES = 0x0080 // try the new walk code checking stuff&amp;lt;br /&amp;gt;&lt;br /&gt;
// DEBUGF_NPCAI = 0x0100 // some NPC AI debugging&amp;lt;br /&amp;gt;&lt;br /&gt;
// DEBUGF_EXP = 0x0200 // experience gain/loss&amp;lt;br /&amp;gt;&lt;br /&gt;
// DEBUGF_LEVEL = 0x0400 // experience level changes&amp;lt;br /&amp;gt;&lt;br /&gt;
DebugFlags=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Console Hears all that is said on the server&amp;lt;br /&amp;gt;&lt;br /&gt;
HearAll=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Secure mode attempts to ignore errors, protect from accidently shutdowns&amp;lt;br /&amp;gt;&lt;br /&gt;
Secure=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Value from 1 to 32, set sectors inactive when unused to conserve resources&amp;lt;br /&amp;gt;&lt;br /&gt;
SectorSleep=10&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Disconnect inactive socket in x min&amp;lt;br /&amp;gt;&lt;br /&gt;
DeadSocketTime=5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Always force a full garbage collection on save&amp;lt;br /&amp;gt;&lt;br /&gt;
ForceGarbageCollect=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time before restarting when server appears hung (in seconds)&amp;lt;br /&amp;gt;&lt;br /&gt;
FreezeRestartTime=60&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Length of the game world minute in real world in seconds&amp;lt;br /&amp;gt;&lt;br /&gt;
GameMinuteLength=60&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Bit Mask of the subjects you want to log when logging is on&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_ACCOUNTS 0x00080&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_SAVE 0x00200 // world save status.&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_CLIENTS_LOG 0x00400 // all clients as they log in and out.&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_GM_PAGE 0x00800 // player gm pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_PLAYER_SPEAK 0x01000 // All that the players say.&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_GM_CMDS 0x02000 // Log all GM commands.&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_CHEAT 0x04000 // Probably an exploit !&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_KILLS 0x08000 // Log player combat results.&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_HTTP 0x10000&amp;lt;br /&amp;gt;&lt;br /&gt;
// 01ffff log everything&amp;lt;br /&amp;gt;&lt;br /&gt;
LogMask=01ec80&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Amount of time to keep map data cached in sec&amp;lt;br /&amp;gt;&lt;br /&gt;
MapCacheTime=120&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Max NPC chars for a sector to prevent lag&amp;lt;br /&amp;gt;&lt;br /&gt;
MaxComplexity=32&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Amount of items in one tile so start showing &amp;quot;too many items here&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
MaxItemComplexity=25&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Amount of items in one sector to start showing &amp;quot;x items too complex&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
MaxSectorComplexity=1024&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Limit the number of cycles the while/for loop can proceed. Setting this to&amp;lt;br /&amp;gt;&lt;br /&gt;
// zero disables the limitation&amp;lt;br /&amp;gt;&lt;br /&gt;
MaxLoopTimes=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Magic/Effects Settings&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Allow casting while equipped&amp;lt;br /&amp;gt;&lt;br /&gt;
EquippedCast=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Words of power for player using magic&amp;lt;br /&amp;gt;&lt;br /&gt;
WOPPlayer=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Words of power for staff using magic&amp;lt;br /&amp;gt;&lt;br /&gt;
WOPStaff=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Reagents lost if magic fails&amp;lt;br /&amp;gt;&lt;br /&gt;
ReagentLossFail=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Magic requires reagents&amp;lt;br /&amp;gt;&lt;br /&gt;
ReagentsRequired=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// What % of hitpoints players will resurrect with. Note, that if you set this&amp;lt;br /&amp;gt;&lt;br /&gt;
// too low, people with little STR will have problems resurrecting.&amp;lt;br /&amp;gt;&lt;br /&gt;
HitPointPercentOnRez=33&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// How many % of hits will the character loose when starving. 0 disables&amp;lt;br /&amp;gt;&lt;br /&gt;
//HitsHungerLoss=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Amount of skill of lock picking needed to unlock a magically locked door&amp;lt;br /&amp;gt;&lt;br /&gt;
MagicUnlockDoor=900&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Teleport effect for GMs and players. Setting 0 disables the effect&amp;lt;br /&amp;gt;&lt;br /&gt;
TeleportEffectStaff=03709&amp;lt;br /&amp;gt;&lt;br /&gt;
TeleportEffectPlayers=0372a&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Experience and Level system&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Enable experience system&amp;lt;br /&amp;gt;&lt;br /&gt;
//ExperienceSystem=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Experience system settings:&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0001 gain experience in combat&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0002 gain experience in crafts&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0004 allow experience to go down&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0008 limit experience decrease by a range witheen a current level&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0010 auto-init EXP/LEVEL for NPCs if not set in @Create&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0020 allow trigger @ExpChange&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0040 allow trigger @ExpLevelChange&amp;lt;br /&amp;gt;&lt;br /&gt;
//ExperienceMode=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// If combat experience gain is allowed, use these percents for gaining exp in&amp;lt;br /&amp;gt;&lt;br /&gt;
// Player versus Monster and Player versus Player combats. Value 0 disables gain.&amp;lt;br /&amp;gt;&lt;br /&gt;
//ExperienceKoefPVM=100&amp;lt;br /&amp;gt;&lt;br /&gt;
//ExperienceKoefPVP=100&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Enable levels system (as a part of experience system)&amp;lt;br /&amp;gt;&lt;br /&gt;
//LevelSystem=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Level system settings:&amp;lt;br /&amp;gt;&lt;br /&gt;
// linear = 0 (each NextLevelAt exp will give a level up)&amp;lt;br /&amp;gt;&lt;br /&gt;
// double = 1 (you need (NextLevelAt * (level+1)) to get a level up)&amp;lt;br /&amp;gt;&lt;br /&gt;
//LevelMode=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Amount of experience to raise to the next level&amp;lt;br /&amp;gt;&lt;br /&gt;
//LevelNextAt=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Webpage Settings&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Note, that you can catch error codes by creating sphere404.htm and so on&amp;lt;br /&amp;gt;&lt;br /&gt;
// for all HTTP error codes sphere support.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[WEBPAGE 1]&amp;lt;br /&amp;gt;&lt;br /&gt;
// Determines what html file is used as base for the status page&amp;lt;br /&amp;gt;&lt;br /&gt;
WebPageSrc=scripts\web\spherestatusbase.html&amp;lt;br /&amp;gt;&lt;br /&gt;
// Determines where the status page is saved&amp;lt;br /&amp;gt;&lt;br /&gt;
WebPageFile=scripts\web\status.html&amp;lt;br /&amp;gt;&lt;br /&gt;
// In seconds, how often the status file is updated&amp;lt;br /&amp;gt;&lt;br /&gt;
WebPageUpdate=60&amp;lt;br /&amp;gt;&lt;br /&gt;
// Required PLevel to view this page (0 = anyone, 6 = admins only)&amp;lt;br /&amp;gt;&lt;br /&gt;
PLevel=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Abuse Control&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Block these ips from the server&amp;lt;br /&amp;gt;&lt;br /&gt;
// 255 is a wildcard, so 255.255.255.255 disables anyone connecting.&amp;lt;br /&amp;gt;&lt;br /&gt;
[BlockIP]&amp;lt;br /&amp;gt;&lt;br /&gt;
//123.34.45.56&amp;lt;br /&amp;gt;&lt;br /&gt;
//123.45.56.78&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Connection Information&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
//First line should be the name of your shard (this is what people see when they connect)&amp;lt;br /&amp;gt;&lt;br /&gt;
//Second line should be the IP of your shard (this is almost always 127.0.0.1)&amp;lt;br /&amp;gt;&lt;br /&gt;
//Third line should be the port of your shard (this should be whatever ServPort is set to)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
//Uncomment next 3 lines below this if you have a router&amp;lt;br /&amp;gt;&lt;br /&gt;
//First line should be a name different than your shard name above this&amp;lt;br /&amp;gt;&lt;br /&gt;
//Second line should be your real/external IP (www.whatismyip.com)&amp;lt;br /&amp;gt;&lt;br /&gt;
//Third line should be the shard port (this should be whatever ServPort is set to)&amp;lt;br /&amp;gt;&lt;br /&gt;
[SERVERS]&amp;lt;br /&amp;gt;&lt;br /&gt;
'''WarAngel's Test Centre'''&amp;lt;br /&amp;gt;&lt;br /&gt;
127.0.0.1&amp;lt;br /&amp;gt;&lt;br /&gt;
2593&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
//External&amp;lt;br /&amp;gt;&lt;br /&gt;
//my.ip.goes.here&amp;lt;br /&amp;gt;&lt;br /&gt;
//2593&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[EOF]&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''MAPx''' Ist zwar nicht in sphere.ini, kann aber genutzt weden (siehe REVISIONS.txt). Und zwar so:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MAPx=max_x,max_y,sector_size,real_map_number. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel: MAP1=7168,4096,512,-1 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setzt die Größe von map1 auf 7168,4096, die Sektorgröße von map1 auf 512 und die -1 bedeutet, dass die Standarddatei für diese map benutzt wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anderes Beispiel: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MAP50=7168,4096,64,3 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktiviert die Map mit nummer 50, die eine Größe von 7168,4096, eine Sektorgröße von 64 hat und map3.mul, statics3.mul und staidx3.mul als Dateien benutzt.&lt;br /&gt;
&lt;br /&gt;
==sphere_region.scp==&lt;br /&gt;
&lt;br /&gt;
Dieses Skript stellt Orte auf der Karte ein und defniert, was bspw. dort an Metallen oder Holz abgebaut werden kann, was passiert, wenn diese Orte betreten werden und weiteres. Es enthält zudem Resource-Sektionen, die so aufgebaut sind:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;[REGIONRESOURCE x]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Sektion enthält den Skill, der benötigt wird, um diese Resource abzubauen, welche Resource der Spieler erhält und wie lange es dauert, damit sie &amp;quot;nachwächst&amp;quot;. Ein Beispiel hierfür (es gibt einen Kommentar mit &amp;quot;//t_tree&amp;quot;, der aber klar sein sollte, wenn das vorherige Kapitel über defnames gelesen wurde).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[REGIONRESOURCE mr_tree]&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
// lumberjacking default&amp;lt;br /&amp;gt;&lt;br /&gt;
// t_tree&amp;lt;br /&amp;gt;&lt;br /&gt;
SKILL=1.0,80.0&amp;lt;br /&amp;gt;&lt;br /&gt;
AMOUNT=9,30&amp;lt;br /&amp;gt;&lt;br /&gt;
REAP=i_log&amp;lt;br /&amp;gt;&lt;br /&gt;
REGEN=60*60*10&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Sektion definiert eine Resource, etwas das gesammelt werden kann. Es vergleicht Skill und Menge. Das bedeutet, dass mit Skill 1.0 maximal 9 i_log und mit Skill 80.ß maximal 30 i_log gesammelt werden können. Alles danach ist nur eine Erhöhung der Chance auf 30 i_log. In der SKILL-Zeile wird also eine Unter- und eine Obergrenze festgelegt, die AMOUNT-Zeile macht selbiges für die Mengen.&lt;br /&gt;
Was bringt uns das? Die Zeile: &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;REAP=i_log&amp;lt;/font&amp;gt;. Das sagt dem Server, er soll i_log Items erstellen, wenn diese Resource gebraucht wird. Es kann hier alles stehen, was man auf seinem Shard sammelbar machen möchte.&lt;br /&gt;
Die nächste Zeile, REGEN, legt in Sekunden fest, wie lange es dauert, damit diese Resource wieder neu abgebaut werden kann. In diesem Beispiel sind das 60*60*10 Sekunden, also 10 Stunden. Als GM können die Punkte wahrgenommen werden, an denen Spieler geschürft oder abgeholz haben, denn dort liegen kleine Kristalle am Boden. Sie sehen wie Spawnpunkte aus, aber sind in Wahrheit Resourcenmarkierungen. Sie markieren, wo eine spezielle Resource geholt werden kann, wie viel geholt werden kann und welchen Typ die Resource hat. Sie haben zudem einen TIMER, der runterzählt (von bspw 36000) und der dann dafür sorgt, dass der Kristall bei 0 gelöscht wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[REGIONTYPE r_default_rock t_rock]&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
//Random rocks&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=100.0 mr_nothing&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=500.0 mr_iron&amp;lt;br /&amp;gt;&lt;br /&gt;
//RESOURCES=6.0 mr_rusty&amp;lt;br /&amp;gt;&lt;br /&gt;
//RESOURCES=6.0 mr_old_copper&amp;lt;br /&amp;gt;&lt;br /&gt;
//RESOURCES=6.0 mr_dull_copper&amp;lt;br /&amp;gt;&lt;br /&gt;
//RESOURCES=4.5 mr_bronze&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=5.0 mr_copper&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=2.0 mr_gold&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=1.0 mr_rose&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=2.0 mr_agapite&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=1.0 mr_bloodrock&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=1.0 mr_silver&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=0.5 mr_verite&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=0.2 mr_Valorite&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=0.1 mr_mytheril&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=0.1 mr_blackrock&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=0.1 mr_diamond&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wow? Was sind das für Dinge? mr_iron, mr_agapite? Das ist nirgendwo in der Datei. Auch in sphere_defs.scp findet man diese Definitionen nicht, man muss in sphereitem_ore.scp nachsehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;RESOURCES=50.0 mr_iron&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das sieht irgendwie bekannt aus. Würde es noch mehr, wenns so aussehen würde?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;RESOURCES={ mr_iron 50 mr_copper 5 mr_gold 2 mr_rose 2 ...etc... }&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Möchte wetten, dass es das würde, wenn die vorherigen Lektionen in Kapitel 1 gelesen wurden. Das ist eine gewichtete Liste von Resourcen. In einem etwas anderen Format, als die für Template genutzte Version, aber sie funktioniert genau so. Das ist der einzige Ort in allen Skripten, in denen Kommazahlen genutzt werden können, wie bspw 0.1 und 0.2. Eigentlich stimmt das nur halb, aber Sphere verdeckt erfolgreich, solange in jeder RESOURECE-Zeile eine Kommazahl steht. (Im übrigen sollte nicht ein &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;RESOURCES&amp;lt;/font&amp;gt; mit einer Zufallsauswahl geskriptet werden. Sphere wird das nicht richtig auswerten, es sollte dieses Format genutzt werden.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[REGIONTYPE r_default_rock t_rock]&amp;lt;/font&amp;gt; ''Bedeutet:'' r_default t_rock legt einen Defname für einen &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;REGIONTYPE&amp;lt;/font&amp;gt; fest, der in anderen Skripten benutzt werden kann (im nächsten Abschnitt bspw. =P). t_rock ist ein Defname (siehe &amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;sphere_defs.scp&amp;lt;/font&amp;gt;) für Stein, was für Sphere festlegt wo Spieler welche Resource sammeln können (sollte es auf t_water geändert werden, kann im Wasser Erz geschürft werden, was sicher nicht ganz so beabsichtigt ist.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hoffentlich erklärt das sphere-resion.scp für jeden. Im nächsten Abschnitt wird gezeigt, wie REGIONTYPE-Einstellungen benutzt werden, damit die Resourcen auch wirklich im Spiel vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
==sphere_mapX.scp==&lt;br /&gt;
&lt;br /&gt;
Willkommen zur einfachsten Datei in Sphere: spheremap.scp. Diese Datei ist vollständig fertiggestellt für die Standardmap. Es ist sehr selten, dass diese Datei verändert werden muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine Anmerkung, die gleich zu Anfang gesagt werden muss: wird diese Datei verändert, muss der Server neu gestartet werden, damit die Änderung auch übernommen wird. Sollte das innerhalb eine Resyncs passieren, wirds viele Fehler geben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Sektion zeigt, wie neue Regionen erstellt werden können, zu denen man mit dem .go Befehl reisen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt momentan 5 Dateien in den Standardskripten, eine für jede Map (Felucca, Trammel, Ilshenar, Malas und Tokuno) die von 0 bis 4 durchnummeriert sind (sphere_map0.scp, sphere_map1.scp usw).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ich benutze die Region Felucca als ein Beispiel für dieses Tutorial und hier das Skript dafür:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[AREADEF a_world]&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
NAME=Felucca&amp;lt;br /&amp;gt;&lt;br /&gt;
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass&amp;lt;br /&amp;gt;&lt;br /&gt;
GROUP=ALLMAP&amp;lt;br /&amp;gt;&lt;br /&gt;
P=1323,1624,55,0&amp;lt;br /&amp;gt;&lt;br /&gt;
RECT=0,0,6144,4096,0&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Zeilen bedeuten:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[AREADEF somedef]''': Wie in allen anderen Skripten ist das ein Defname - nur hier für eine Region auf dem Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Name''': Diese Zeile enthält einen Namen für die Region, der angezeigt wird, wenn der .where Befehl im Spiel benutzt wird. Zudem kann .go &amp;quot;Region Name&amp;quot; dafür benutzt werden, um dort hin zu reisen (keine zwei Regionen sollten den selben Namen haben, ansonsten wird hier einiges an Fehlern produziert).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Events''': Hier wird festgelegt, was alles in der Regeion passiert und welche Resourcen hier abbaubar sind (siehe den Abschnitt über REGEIONTYPE - diese können hier als EVENT benutzt werden). Neben den Resourcen können hier auch Trigger benutzt werden, die von den EVENTS aufgerufen werden können (wahrscheinlich bemerkt man hier, dass die REGIONTYPE-Sektionen nur Ereignisse für Regionen sind :P), wie beispielsweise @Enter und andere (siehe [[Triggers]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Group''': Das ist eine Axiseinstellung, die im Travelmenü Regionen gruppiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''P''': Das ist der Ort, an den man mit .go &amp;quot;Region Name&amp;quot; gelangt. Jede Region hat eine solche Angabe und sie liegt normalerweise mitten in der Region oder an einem passenden ort. Wenn eine eigene Region erstellt wird, sollte ein solcher Punkt angegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''RainChance''': Legt die Chance auf Regeion in der Region fest (Rainchance=50 gibt eine 50% Wahrescheinlichkeit) der Rest bedeutet, dass es zu 50% schneit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rect''': Gibt die Grenzen der Region als Koordinaten an. Die ersten zwei Zahlen sind die Koordinaten des oberen linken Punktes und die zweiten der untere linke Punkt eines Rechtecks. Im Fall von Felucca ist das 0,0 bis 6144,4096 (RECT=0,0,6144,4096). Mit 56b kann auch ein fünfter Wert angegeben werden, nämlich die Karte, auf der die Region liegt, also RECT=0,0,6144,4096,0 (kann auch weggelassen werden, dann wird standardmäßig 0 verwendet - soll das nicht Map 0 sein, dann muss ein Wert angegeben werden, sonst gibts Fehler).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Flags''': Regionenflags bestimmen, was in einer Region los ist. Sie beschreiben, ob eine Region bewacht ist, welche Magie genutzt werden kann, wer hier wen verletzen kann und ob es hier regnen kann. Soll das verwendet werden, dann so:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Zeile hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FLAGS=#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich sollte statt # eine Zahl verwendet werden! Wo diese nummern stehen? Es gibt vordefinierte, aber es gibt eine Liste.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispielsweise für eine bewachte und gesicherte Region, sehen sie so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
::region_flag_safe    (02000)&amp;lt;br /&amp;gt;&lt;br /&gt;
:+&amp;lt;br /&amp;gt;&lt;br /&gt;
::region_flag_guarded (04000)&amp;lt;br/ &amp;gt;&lt;br /&gt;
:=&amp;lt;br /&amp;gt;&lt;br /&gt;
::06000&amp;lt;br/ &amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das wars. Die &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;FLAGS&amp;lt;/font&amp;gt; werden auf 06000 gesetzt. &amp;quot;Aber, aber ... hiess es nicht, dass &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;DEFNAMEs&amp;lt;/font&amp;gt; die Eingabe von Zahlen unnötig machen?&amp;quot; (siehe [[De:Chapter 1|Kapitel 1]].) Natürlich, deshalb geht das auch ohne Zahlen und zwar so:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;FLAGS=region_flag_safe|region_flag_guarded&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das wars. Die Region ist bewacht und sicher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aus Sicht eines Admins ist das aber keine gute Idee. Eine derartige Region verhindert, dass Wachen wirklich jemanden töten können, sie rufen sich gegenseitig und werden zu keiner Handlung fähig sein und letztendlich Lag verursachen. Einfach glauben und keine Region mit diesen beiden Flags erstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier ist die Liste der möglichen Flags (stehen auch in sphere_defs.scp und können sich von Zeit zu Zeit ändern):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[DEFNAME region_flags]&amp;lt;br /&amp;gt;&lt;br /&gt;
region_antimagic_all 00001        // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;keine Magie möglich hier.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_antimagic_recall_in 00002  // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;kein Teleport,Recall hier her, keine Markierung von Runen.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_antimagic_recall_out 00004 // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;kein Recall nach draussen von hier aus.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_antimagic_gate 00008       // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;keine Gatezauber hier hin oder hier raus.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_antimagic_teleport 00010   // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;kein Teleport hier her.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_antimagic_damage 00020     // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Keine &amp;quot;böse&amp;quot; Magie hier.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_ship 00040            // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Das hier ist ein Schiff - Schiffsbefehle klappen hier.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_nobuilding 00080      // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;kein Gebäude in diesem Areal&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_globalname 00100      // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Sicherstellen, dass der Name global gilt.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_announce 00200        // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Ankündigung an alle, dass diese Region betreten wird.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_insta_logout 00400    // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Instant Logout erlaubt. (Hotel?)&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_underground 00800     // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Dungeon Areal. (kein Wetter)&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_nodecay 01000         // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Items am Boden werden nie gelöscht.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_safe 02000            // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Diese Region sichert vor jedem Schaden.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_guarded 04000         // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;siehe tag.guardowner&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_no_pvp 08000          // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Spieler können sich nicht direkt Schaden.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und das wars mit der &amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;sphere_mapX.scp&amp;lt;/font&amp;gt; Datei.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==sphere_book.scp==&lt;br /&gt;
Spherebook.scp ist eine der sinnlosesten Dateien, die zu finden ist. Wie oft liest man schon die Tips auf einem Shard, wenn man einloggt? Ich weiss, dass die meisten Spieler diese Rollen einfach wegklicken. Aber der Inhalt ist in dieser Datei festgelegt. Und Bücher - hab ich die erwähnt? Diese fast-unmöglich-zu-schreiben, selten benutzten Speicherverschwender?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[SCROLL SCROLL_MOTD]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''[SCROLL SCROLL_NEWBIE]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''[SCROLL SCROLL_GUEST]'''&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das sind die Sektionen, die Nachrichten definiert, wenn man einloggt. Alles, das hier nach diesen Tags steht, wird in einer Nachricht auftauchen. Welche Leerzeichen wo gebraucht werden, muss mit vielen Tests herausgefunden werden. Braucht etwas Zeit und es gibt keine echte Möglichkeit das gut zu erklären. Einfach versuchen. Achtung: es gibt hier keine Zeilenumbrüche - oder zumindest gabs in der Vergangenheit keine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[TIP X]'''&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Richtig. Das sind Tips, die es beim Start gibt. &amp;quot;Krieg ist für Kinder und alles Leben ungesund.&amp;quot; ist einer davon. Sehr passend.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[BOOK title]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''[BOOK title x]'''&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt ein Buch mit DEFNAME Titel. Es legt eine Seitenzahl x nach dem DEFNAME fest und fügt Text auf einer bestimmten Seite hinzu. Sieht man die Beispielbücher an, kann man erahnen, wie das klappt. Die größte Schwierigkeit dieser Bücher ist die benutzte Schriftart im Spiel, so dass man nicht wirklich weiss, wieviele Zeichen es für eine Zeile oder Seite braucht. Beispielsweise passen mehr 'i's als 'w's oder 'm's in eine Zeile, weil diese Buchstaben größer sind. Ein Absatz kann mit der TAB Taste eingefügt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==sphere_name.scp==&lt;br /&gt;
&lt;br /&gt;
Eine einfache Datei. Es enthält eine Liste von Namen unter Sektionen mit verschiedenen &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;DEFNAMEs&amp;lt;/font&amp;gt;. Die Namen sind wichtig, nicht der Inhalt, da man wahrscheinlich nie eine eigene Liste von Namen anlegen wird. Ich benutze diesen Emulator seit Jahren und habe nie diese Datei verändert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um auf die Liste der Namen zugreifen zu können, benutzt man das hier:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NAME=#NAMES_HUMANMALE'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das ersetzt automatisch auf einen Zufallsnamen aus der Liste &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''NAMES_HUMANMALE'''&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um eine Liste von Namen zu erstellen, sieht das so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[NAMES EIN_DEFNAME]&amp;lt;br /&amp;gt;&lt;br /&gt;
ANZAHL_DER_NAMEN&amp;lt;br /&amp;gt;&lt;br /&gt;
NAMEN&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispielsweise: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[NAMES NAMES_SPECIAL]&amp;lt;br /&amp;gt;&lt;br /&gt;
2&amp;lt;br /&amp;gt;&lt;br /&gt;
Hil&amp;lt;br /&amp;gt;&lt;br /&gt;
Hol&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schwierig, hm? Eigentlich wollte ich dafür keinen Abschnitt schreiben ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==sphere_newb.scp==&lt;br /&gt;
Ich habs getan - kein eitler Humor unter diesem Titel! :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf jeden Fall ist diese Datei oft Gegenstand vieler Fragen. &amp;quot;Wie sorge ich dafür, dass meine Spieler mit 10000 Gold anfangen?&amp;quot; oder &amp;quot;Wie gebe ich allen Schmieden 800 Barren?&amp;quot; Ich sag nicht, dass das sinnvoll wäre, aber in dieser Datei können solche Dinge geregelt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[NEWBIE MALE_DEFAULT]&amp;lt;br /&amp;gt;&lt;br /&gt;
// Male Generic Starting Clothes&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=i_shirt_plain&amp;lt;br /&amp;gt;&lt;br /&gt;
COLOR=colors_all&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=random_pants&amp;lt;br /&amp;gt;&lt;br /&gt;
COLOR=colors_neutral&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=random_shoes&amp;lt;br /&amp;gt;&lt;br /&gt;
COLOR=colors_neutral&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=i_dagger&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=i_candle&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=i_book_sm&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=i_gold,100&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So sieht ein typisches Skript aus. Wie eine große Template, nicht wahr? Dafür gibts einen Grund. Es ist ein Template, es steht nur &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''ITEMNEWBIE'''&amp;lt;/font&amp;gt; statt &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''ITEM'''&amp;lt;/font&amp;gt; drin. In Kapitel 1 steht über Templates alles, was man wissen muss und genau so funktioniert das auch hier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das einzige wichtige in diesen Sektionen ist: alles MUSS einen eindeutigen Namen haben, den der Server finden kann. Es kann keine weitere Newbie-Sektion hinzugüfgt werden, so sehr das auch gewollt werden würde - sorry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==sphere_skill.scp (SKILLCLASSES)==&lt;br /&gt;
Skill Klassen legen fest, wie weit Skills/Stats gesteigert werden können und es können zudem Trigger angelegt werden. Ein Skillclass Skript sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[SKILLCLASS 0]&amp;lt;br /&amp;gt;&lt;br /&gt;
// undeclared class.&amp;lt;br /&amp;gt;&lt;br /&gt;
// max skills for players of this skill class. &amp;lt;br /&amp;gt;&lt;br /&gt;
// might want this to be all 50.0 to make people declare a class?&amp;lt;br /&amp;gt;&lt;br /&gt;
DEFNAME=Class_undeclared&amp;lt;br /&amp;gt;&lt;br /&gt;
NAME=undeclared&amp;lt;br /&amp;gt;&lt;br /&gt;
// EVENTS=e_ClassUndeclared&amp;lt;br /&amp;gt;&lt;br /&gt;
STATSUM=300&amp;lt;br /&amp;gt;&lt;br /&gt;
SKILLSUM=10000.0&amp;lt;br /&amp;gt;&lt;br /&gt;
STR=100&amp;lt;br /&amp;gt;&lt;br /&gt;
INT=100&amp;lt;br /&amp;gt;&lt;br /&gt;
DEX=100&amp;lt;br /&amp;gt;&lt;br /&gt;
ALCHEMY=100.0&amp;lt;br /&amp;gt;&lt;br /&gt;
ANATOMY=100.0&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMID=100.0&amp;lt;br /&amp;gt;&lt;br /&gt;
ARMSLORE=100.0&amp;lt;br /&amp;gt;&lt;br /&gt;
and so on...&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um es zu verstehen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''EVENTS'''&amp;lt;/font&amp;gt;: Bedeutet, dass jeder mit dieser Skillclass auch die hier angegebenen Ereignisse auslöst. (mehrere EVENTS werden mit Komma getrennt, bspw: EVENTS=e_1,e_2 usw).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''STATSUM'''&amp;lt;/font&amp;gt;: Gibt eine Obergrenze für die Summe der Stats an. Bspw: ich hab 100 Str, 100 Dex und 100 Int, dann hab ich 300 und damit STATSUM erreicht, ich kann nicht mehr erreichen (außer mit magischen Gegenständen und sowas).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''SKILLSUM'''&amp;lt;/font&amp;gt;: Wie STATSUM, nur für Skills.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''STR/DEX/INT'''&amp;lt;/font&amp;gt;: Obergrenze für einen spezifischen Stat (außer mit magischen Gegenständen und sowas).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''ALCHEMY'''&amp;lt;/font&amp;gt;: Wie STR/DEX/INT, nur für Skills (in diesem Fall Alchemy, aber kann auch jeder andere sein).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==sphere_serv_triggers.scp==&lt;br /&gt;
Diese Datei enthält spezielle Trigger &amp;quot;Functions&amp;quot;, die vom Server bei bestimmten Ereignissen aufgerufen werden. Darunter gibt es eine Liste von Funktionen, die in dieser Datei gefunden werden und manche haben auch eine Erklärung dabei:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onaccount_login'''&lt;br /&gt;
&lt;br /&gt;
Wird aufgerufen, wenn ein Client das Passwort eingegeben hat.&lt;br /&gt;
&lt;br /&gt;
:ARGS --&amp;gt; Benutzername des Clients, der einloggen möchte&lt;br /&gt;
:ARGO --&amp;gt; Referenz zum Client selbst&lt;br /&gt;
:RETURN 0 --&amp;gt; nichts tun (also Login weiterlaufen lassen)&lt;br /&gt;
:RETURN 1 --&amp;gt; die Verbindung zum Client trennen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onaccount_delete'''&lt;br /&gt;
&lt;br /&gt;
Diese Funktion wird aufgerufen, bevor ein Account gelöscht wird.&lt;br /&gt;
&lt;br /&gt;
:ARGS --&amp;gt; Benutername des Accounts&lt;br /&gt;
:RETURN 0 --&amp;gt; Löschen zulassen&lt;br /&gt;
:RETURN 1 --&amp;gt; Löschen verhindern&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onchar_create'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onchar_delete'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_start'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_save'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_save_ok'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_save_fail'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_save_finished'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_exit'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_blockip'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Chapter_2&amp;diff=763</id>
		<title>De:Chapter 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Chapter_2&amp;diff=763"/>
				<updated>2010-12-05T10:27:58Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: Created page with '{{Languages|Chapter_2}}  ==spheretables.scp==  Spheretables.scp  ist die allererste Datei, die beim Start von Sphere genau nach der Sphere.ini eingelesen wird. Deshalb ist sie ä...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Chapter_2}}&lt;br /&gt;
&lt;br /&gt;
==spheretables.scp==&lt;br /&gt;
&lt;br /&gt;
Spheretables.scp  ist die allererste Datei, die beim Start von Sphere genau nach der Sphere.ini eingelesen wird. Deshalb ist sie äusserst wichtig. Viele weitere Einstellungen werden innerhalb dieser Datei vorgenommen und das macht sie so wichtig. Deshalb wird diese Datei hier nun erklärt und aufgeschlüsselt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt; &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;[RESOURCES]&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Öffnet man diese Datei, fällt einem als erstes eine Liste von Dateien ins Auge. Diese Liste ist durch das [RESOURCE]-Tag markiert und sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[RESOURCES]&amp;lt;br /&amp;gt;&lt;br /&gt;
scripts/sphere_defs.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
scripts/sphere_book.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
scripts/sphere_backward_compatibility.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
scripts/sphere_events_human.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
scripts/sphere_events_npcs.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
scripts/npcs/&amp;lt;br /&amp;gt;&lt;br /&gt;
...&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier wird eingestellt, welche und in welcher Reihenfolge Skriptdateien von Sphere geladen werden. Manchmal sollten hier Änderungen mit äusserster Vorsicht vorgenommen werden. Dateien mit DEFNAMES, REGIONS und anderen global benutzten Einstellungen sollten als erstes geladen werden, um Fehler beim Start von Sphere zu vermeiden (obgleich diese Fehler oftmals den Server nicht beeinträchtigen). Beispielsweise wurde in [[De:Chapter 1|Kapitel 1]] das Goldskript behandelt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;TYPE=t_gold&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weiss Sphere aus der nicht, was t_gold bedeutet, dann wird eine Fehlermeldung ausgegeben. Deshalb sollte vor dem Goldskript auf alle Fälle zuerst sphere_defs.scp geladen werden, in der t_gold definiert wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Skripte mit Itemdefinitionen sollten von Skripten mit Templatedefinitionen geladen werden und danach dann Characterdefinitionen. Andere Dateien folgen danach, aber diese Dateien sollten auf jeden Fall in dieser Reihenfolge sein. Der Loot von Monstern benötigt Templates und die wiederum Items und solange Sphere keine Dateien mit Templates oder Items geladen hat, werden hunderte Fehler ausgegeben, die dann korrigiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Anmerkung''': ''Es können ganze Ordner angegeben werden, es muss nicht jede einzelne Datei in der Liste aufgeführt werden. Deshalb enthält die Liste beispielsweise &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;scripts/&amp;lt;/font&amp;gt; am ende von [RESOURCE], damit alle Skripte dieses Ordner geladen werden, die noch nicht aufgeführt wurden.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt; &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;[OBSCENE]&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Die nächste Sektion ist selbsterklären: [OBSCENE]. Hier werden unerlaubte Namen aufgeführt. Versucht ein Spieler seinem Charakter einen Namen aus der Liste zu geben, dann wird ihm mitgeteilt, dass er einen anderen wählen soll. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt; &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;[NOTOTITLES]&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Hier werden Titel definiert, die basierend auf dem Karmawert eines Spielers angezeigt werden. Diese Sektion sollte nicht angerührt werden, denn fehlt hier eine Zeile wird Sphere nicht mehr starten - diese Zeilen sollten höchstens geändert werden.&lt;br /&gt;
This defines the title that will be shown related to the player's karma. Do not touch this section. If you remove a line inadvertently, your server WILL NOT RUN. Only change them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt; &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;[PLEVEL X]&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt legt fest, welche Befehle mit welchen Accountrechten (PLEVEL) ausgeführt werden können. Jeder nichtgelistete Befehl wird automatisch mit PLEVEL 4 eingeordnet. Das gilt auch für selbstgeschriebene Funktionen (siehe [[De:Chapter 6|Kapitel 6]]). Wie man sieht, gibt es eine große Liste an Befehlen und Funktionen.&lt;br /&gt;
&lt;br /&gt;
'''Anmerkung''': Es muss nicht jede selbstgeschriebene Funktion in diese Liste, da jederzeit weitere [PLEVEL]-Sektionen in anderen Skripten angelegt werden können, obgleich es natürlich organisatorisch besser wäre, diese würden zentral gehalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt; &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;[RUNES]&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Das ist die Liste der Worte, die gesagt werden, wenn ein Spruch gezaubert wird (An, Lor, In, usw.). Sie können geändert werden, aber das kann durchaus sehr verwirren. =P&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sphere.ini==&lt;br /&gt;
&lt;br /&gt;
Sphere.ini enthält alle internen Einstellungen des Sphere Emulators. Um einen Shard zu konfigurieren sollte hier begonnen werden. Um die Datei besser zu erklären, wurden Kommentare in '''fetter Schrift''' eingefügt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;//****************************************************************************&amp;lt;br /&amp;gt;&lt;br /&gt;
// SPHERE by : Menasoft 1997-2003&amp;lt;br /&amp;gt;&lt;br /&gt;
// www.sphereserver.com&amp;lt;br /&amp;gt;&lt;br /&gt;
// All SPHERE script files and formats are copyright Menasoft &amp;amp; Partners.&amp;lt;br /&amp;gt;&lt;br /&gt;
// This file may be freely edited for personal use, but may not be distributed&amp;lt;br /&amp;gt;&lt;br /&gt;
// in whole or in part, in any format without express written permission from&amp;lt;br /&amp;gt;&lt;br /&gt;
// Menasoft &amp;amp; Partners. All donations and contributions&amp;lt;br /&amp;gt;&lt;br /&gt;
// become the property of Menasoft &amp;amp; Partners.&amp;lt;br /&amp;gt;&lt;br /&gt;
//****************************************************************************&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// General Information&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[SPHERE]&amp;lt;br /&amp;gt;&lt;br /&gt;
// Name of your Sphere shard&amp;lt;br /&amp;gt;&lt;br /&gt;
ServName='''WarAngel's Test Centre'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// The IP of your server, this will be 127.0.0.1 almost always&amp;lt;br /&amp;gt;&lt;br /&gt;
ServIP=127.0.0.1&amp;lt;br /&amp;gt;&lt;br /&gt;
// The port of your server, this is 2593 by default&amp;lt;br /&amp;gt;&lt;br /&gt;
ServPort=2593&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Admin's contact email&amp;lt;br /&amp;gt;&lt;br /&gt;
AdminEmail='''warangel999@msn.com'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// Web page for this server&amp;lt;br /&amp;gt;&lt;br /&gt;
URL=www.myshard.com Replace www.myshard.com with your shard's URL'&amp;lt;br /&amp;gt;&lt;br /&gt;
// GMT offset, from -12 to +12 [London=0, EST=5, etc]&amp;lt;br /&amp;gt;&lt;br /&gt;
TimeZone='''-5 Östliche Zeitzone (US &amp;amp; Canada). Sollte passend eingestellt werden.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Official staff language&amp;lt;br /&amp;gt;&lt;br /&gt;
Lang=English&amp;lt;br /&amp;gt;&lt;br /&gt;
// Start this as a system service on Win2000, XP, NT&amp;lt;br /&amp;gt;&lt;br /&gt;
NTService=0 '''Wird diese Einstellung aktiviert, ist kein Zugriff auf die Konsole mehr möglich.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// MySql configuration.&amp;lt;br /&amp;gt;&lt;br /&gt;
//MYSQL=0 '''Auf =1 wird MySQL aktiviert.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
//MySqlHost='''localhost Wird fast immer localhost sein, ausser MySQL läuft auf einen anderen Rechner als der Shard.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
//MySqlUser=&amp;lt;br /&amp;gt;&lt;br /&gt;
//MySqlPassword=&amp;lt;br /&amp;gt;&lt;br /&gt;
//MySqlDatabase=&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// File Locations&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// Directory where spheretables.scp is located, from there we will&amp;lt;br /&amp;gt;&lt;br /&gt;
// load any additional scripts&amp;lt;br /&amp;gt;&lt;br /&gt;
ScpFiles=scripts/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Where your sphereworld.scp and spherechars.scp are located&amp;lt;br /&amp;gt;&lt;br /&gt;
WorldSave=save/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Where your sphereaccu.scp and sphereacct.scp is located&amp;lt;br /&amp;gt;&lt;br /&gt;
AcctFiles=accounts/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Where your UO installation is located. This need: map0.mul, statics0.mul,&amp;lt;br /&amp;gt;&lt;br /&gt;
// staidx0.mul, multi.mul, multi.idx, hues.mul, tiledata.mul.&amp;lt;br /&amp;gt;&lt;br /&gt;
// Optional files: verdata.mul, mapX.mul/staticsX.mul/staidxX.mul for higher&amp;lt;br /&amp;gt;&lt;br /&gt;
// maps support (Malas, etc).&amp;lt;br /&amp;gt;&lt;br /&gt;
//&amp;lt;br /&amp;gt;&lt;br /&gt;
// Note that if not set, sphere will scan windows registry to auto-detect it&amp;lt;br /&amp;gt;&lt;br /&gt;
//MulFiles=mul/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Where your log files will be saved by sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
Log=logs/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// World Save Information&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// How often for Sphere to save your world (minutes)&amp;lt;br /&amp;gt;&lt;br /&gt;
SavePeriod=20&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// How many backup levels to keep. Each level means 7 backups done for it.&amp;lt;br /&amp;gt;&lt;br /&gt;
// So, 10*7 = 70 backup saves will be storied.&amp;lt;br /&amp;gt;&lt;br /&gt;
BackupLevels=10&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// On would save in the background quietly over a longer period of time, and not interrupt the game&amp;lt;br /&amp;gt;&lt;br /&gt;
// Off would notify &amp;quot;World save has been initiated&amp;quot; and save faster, but pause the game momentarily&amp;lt;br /&amp;gt;&lt;br /&gt;
SaveBackground=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Account Management&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
//Code for servers account application process&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0=Closed, // Closed. Not accepting more.&amp;lt;br /&amp;gt;&lt;br /&gt;
// 2=Free, // Anyone can just log in and create a full account.&amp;lt;br /&amp;gt;&lt;br /&gt;
// 3=GuestAuto, // You get to be a guest and are automatically sent email with u're new password.&amp;lt;br /&amp;gt;&lt;br /&gt;
// 4=GuestTrial, // You get to be a guest til u're accepted for full by an Admin.&amp;lt;br /&amp;gt;&lt;br /&gt;
// 6=Unspecified, // Not specified.&amp;lt;br /&amp;gt;&lt;br /&gt;
// To enable auto account you must set this to 2&amp;lt;br /&amp;gt;&lt;br /&gt;
AccApp=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Store password hashed with MD5 '''MD5 ist eine Verschlüsselungsmethode zur Speicherung von Passwörtern. Mehr Information: [http://de.wikipedia.org/wiki/MD5 here]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Md5Passwords=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// local ip is assumed to be the admin&amp;lt;br /&amp;gt;&lt;br /&gt;
LocalIPAdmin=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Number of chars allowed per account&amp;lt;br /&amp;gt;&lt;br /&gt;
MaxCharsPerAccount=5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Min time for a char to exist before delete allowed (in seconds)&amp;lt;br /&amp;gt;&lt;br /&gt;
MinCharDeleteTime=3*24*60&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Max number of Guest accounts allowed&amp;lt;br /&amp;gt;&lt;br /&gt;
GuestsMax=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Client Management&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// What client protocol version used&amp;lt;br /&amp;gt;&lt;br /&gt;
// Comment out the ClientVersion line to allow any client that is supported.&amp;lt;br /&amp;gt;&lt;br /&gt;
//ClientVersion=2.0.3&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Set this to 0 to block login to encrypted clients '''Normalerweise benutzen Clients Verschlüsselung.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
UseCrypt=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Set this to 1 to allow login to unencrypted clients '''Klappt mit Tools wie bspw.: [http://stud4.tuwien.ac.at/~e9425109/UO_RICE.htm UO Rice] und [http://www.uogateway.com/ UOGateway] to remove encryption on a client'''&amp;lt;br /&amp;gt;&lt;br /&gt;
UseNoCrypt=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum total open connections to server&amp;lt;br /&amp;gt;&lt;br /&gt;
ClientMax=256&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum open connections to server per IP&amp;lt;br /&amp;gt;&lt;br /&gt;
ClientMaxIP=16&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum total (not-in-game) connections to server &amp;lt;br /&amp;gt;&lt;br /&gt;
ConnectingMax=32&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum total simultaneous (not-in-game) connections to server per IP&amp;lt;br /&amp;gt;&lt;br /&gt;
ConnectingMax=8&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// How long logged out clients linger in seconds&amp;lt;br /&amp;gt;&lt;br /&gt;
ClientLinger=15&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Walk limiting code: buffer size (in tenths of second)&amp;lt;br /&amp;gt;&lt;br /&gt;
WalkBuffer=75&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Walk limiting code: regen speed (%)&amp;lt;br /&amp;gt;&lt;br /&gt;
WalkRegen=25&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Only commands issued by this plevel and higher will be logged&amp;lt;br /&amp;gt;&lt;br /&gt;
CommandLog=0 '''0 bedeutet, dass alle Befehle geloggt werden.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Prefix for ingame commands&amp;lt;br /&amp;gt;&lt;br /&gt;
CommandPrefix=.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Use the built in http server&amp;lt;br /&amp;gt;&lt;br /&gt;
UseHttp=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Use the built in god port&amp;lt;br /&amp;gt;&lt;br /&gt;
UseGodPort=0 '''This is for use with the God client'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Default setting for all accounts specifying default resdisp. Recommended&amp;lt;br /&amp;gt;&lt;br /&gt;
// specifying at least 1 (T2A) here.&amp;lt;br /&amp;gt;&lt;br /&gt;
//AutoResDisp=0 '''0=autmatisch herausfinden, 1=T2A, 2=LBR, 3=AoS, 4=SE, 5=ML'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Default setting for new accounts specifying default priv level&amp;lt;br /&amp;gt;&lt;br /&gt;
//AutoPrivFlags=010&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Game Mechanics&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// Do not allow entering under roof being on horse?&amp;lt;br /&amp;gt;&lt;br /&gt;
MountHeight=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Archery does not work if too close (0 = not checked)&amp;lt;br /&amp;gt;&lt;br /&gt;
ArcheryMinDist=2&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum Distance for Archery&amp;lt;br /&amp;gt;&lt;br /&gt;
ArcheryMaxDist=15&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Speed scale factor for weapons '''Formel ist: VERZÖGERUNG = SPEEDSCALEFACTOR /((DEX + 100) * SPEED)'''&amp;lt;br /&amp;gt;&lt;br /&gt;
SpeedScaleFactor=15000&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// This is the percent of max weight at which stamina is lost half the time&amp;lt;br /&amp;gt;&lt;br /&gt;
// (200 = no effect)&amp;lt;br /&amp;gt;&lt;br /&gt;
StaminaLossAtWeight=150&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Weight penalty for running +N% of max carry weight (0 = no effect)&amp;lt;br /&amp;gt;&lt;br /&gt;
RunningPenalty=50&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Show people joining/leaving the server&amp;lt;br /&amp;gt;&lt;br /&gt;
ArriveDepartMsg=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Are house and boat keys newbied automatically&amp;lt;br /&amp;gt;&lt;br /&gt;
AutoNewbieKeys=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum number of items allowed in bank&amp;lt;br /&amp;gt;&lt;br /&gt;
BankMaxItems=1000&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Maximum weight in stones allowed in bank&amp;lt;br /&amp;gt;&lt;br /&gt;
BankMaxWeight=1000&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// If 1 vendors will take gold only from backpack&amp;lt;br /&amp;gt;&lt;br /&gt;
PayFromPackOnly=0 '''Wenn 0, dann nehmen Händler auch Geld vom Bankfach.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Disable weather effects?&amp;lt;br /&amp;gt;&lt;br /&gt;
NoWeather=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Default light level in dungeons&amp;lt;br /&amp;gt;&lt;br /&gt;
DungeonLight=27 '''0 ist am helssten, 30 ist am dunkelsten'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Day light level 0-30 '''0 ist am helssten, 30 ist am dunkelsten'''&amp;lt;br /&amp;gt;&lt;br /&gt;
LightDay=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Night light level 0-30&amp;lt;br /&amp;gt;&lt;br /&gt;
LightNight=25&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Wool Regen Time (in minutes)&amp;lt;br /&amp;gt;&lt;br /&gt;
WoolGrowthTime=30&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Suppress player speech with 75% of capital letters&amp;lt;br /&amp;gt;&lt;br /&gt;
SuppressCapitals=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Extra combat flags to control the fight (default:0, 0.55i compatible)&amp;lt;br /&amp;gt;&lt;br /&gt;
// COMBAT_NODIRCHANGE 00001 // not rotate player when fighting (like was in 0.51a)&amp;lt;br /&amp;gt;&lt;br /&gt;
// COMBAT_FACECOMBAT 00002 // allow faced combat only (recommended)&amp;lt;br /&amp;gt;&lt;br /&gt;
//CombatFlags=0 '''Sind beide aktiviert, dann bedeutet das, dass der Spieler den Gegner ansehen muss, um ihn zu treffen.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// NPC/Item/Player Management&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// Distance in tiles before an NPC that's wandered too far from it's home will teleport back&amp;lt;br /&amp;gt;&lt;br /&gt;
LostNPCTeleport=50&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Wether PCs get a resurrection robe when they get resurrected.&amp;lt;br /&amp;gt;&lt;br /&gt;
NoResRobe=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time for a NPC corpse to decay mins&amp;lt;br /&amp;gt;&lt;br /&gt;
CorpseNPCDecay=10&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time for a playercorpse to decay mins&amp;lt;br /&amp;gt;&lt;br /&gt;
CorpsePlayerDecay=15&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Base decay time in minutes for items&amp;lt;br /&amp;gt;&lt;br /&gt;
DecayTimer=30&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Put [NPC] tags over chars '''oder [TAME], wenn der NPC gezähmt wurde'''&amp;lt;br /&amp;gt;&lt;br /&gt;
CharTags=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Flip dropped items&amp;lt;br /&amp;gt;&lt;br /&gt;
FlipDroppedItems=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Monsters run when scared of death&amp;lt;br /&amp;gt;&lt;br /&gt;
MonsterFear=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Monsters may fight each other&amp;lt;br /&amp;gt;&lt;br /&gt;
MonsterFight=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Percent setting of the all NPC move rate, default 100&amp;lt;br /&amp;gt;&lt;br /&gt;
MoveRate=100&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Do players receive sounds&amp;lt;br /&amp;gt;&lt;br /&gt;
GenericSounds=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Max number of items to sell to one person at once&amp;lt;br /&amp;gt;&lt;br /&gt;
VendorMaxSell=255&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Max level npc trainers can go&amp;lt;br /&amp;gt;&lt;br /&gt;
NPCTrainMax=300 '''300 ist 30.0 skill'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Percent of own ability npcs can train to&amp;lt;br /&amp;gt;&lt;br /&gt;
NPCTrainPercent=30&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Max level of skill trainable on dummies, archery butte ect..&amp;lt;br /&amp;gt;&lt;br /&gt;
SkillPracticeMax=300 '''300 ist 30.0 skill'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Max skill player's will start with on skills they haven't chosen during char create&amp;lt;br /&amp;gt;&lt;br /&gt;
MaxBaseSkill=200 '''Hier eine 0, damit Spieler mit keinen Skills ausser den gewählten beginnen.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time in seconds for hitpoint regeneration&amp;lt;br /&amp;gt;&lt;br /&gt;
Regen0=40&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time in seconds for mana regeneration&amp;lt;br /&amp;gt;&lt;br /&gt;
Regen1=20&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time in seconds for stamina regeneration&amp;lt;br /&amp;gt;&lt;br /&gt;
Regen2=10&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time in minutes for food regeneration&amp;lt;br /&amp;gt;&lt;br /&gt;
// 1*60*24 = 1 day of real life time&amp;lt;br /&amp;gt;&lt;br /&gt;
Regen3=1*60*24&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Speech block associated to players&amp;lt;br /&amp;gt;&lt;br /&gt;
SpeechSelf=spk_player&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Speech block associated to pets&amp;lt;br /&amp;gt;&lt;br /&gt;
SpeechPet=spk_pet&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// When player skills/stats goes this times more than skillclass allowed, drop&amp;lt;br /&amp;gt;&lt;br /&gt;
// them to skillclass level. Setting this to 0 disables the action.&amp;lt;br /&amp;gt;&lt;br /&gt;
OverSkillMultiply=2&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// NPC AI settings&amp;lt;br /&amp;gt;&lt;br /&gt;
// NPC_AI_PATH 0001 NPC pathfinding&amp;lt;br /&amp;gt;&lt;br /&gt;
// NPC_AI_FOOD 0002 NPC food search (objects + grass) '''Sorgt dafür, dass NPCs nach Essen bzw Gras suchen (siehe FOODTYPE)'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// NPC_AI_EXTRA 0004 NPC magics, combat, etc&amp;lt;br /&amp;gt;&lt;br /&gt;
//NPCAI=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Crime/Murder/Karma/Fame/Guard Settings&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// Karma when player goes from good to neutral (from -10000 to 10000)&amp;lt;br /&amp;gt;&lt;br /&gt;
PlayerNeutral=-2000&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// How many minutes are criminals flagged for&amp;lt;br /&amp;gt;&lt;br /&gt;
CriminalTimer=3&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Times a player can snoop before becoming a criminal&amp;lt;br /&amp;gt;&lt;br /&gt;
SnoopCriminal=20&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Seconds time to decay a murder count (default 8*60*60 is 8 hours)&amp;lt;br /&amp;gt;&lt;br /&gt;
MurderDecayTime=8*60*60&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Amount of murders before we get title&amp;lt;br /&amp;gt;&lt;br /&gt;
MurderMinCount=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Looting or carving a blue player is a crime&amp;lt;br /&amp;gt;&lt;br /&gt;
LootingIsaCrime=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Flag players criminal for helping criminals?&amp;lt;br /&amp;gt;&lt;br /&gt;
HelpingCriminalsIsaCrime=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// How long do guards linger about in minutes&amp;lt;br /&amp;gt;&lt;br /&gt;
GuardLinger=3&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Will guards kill instantly or follow normal combat rules&amp;lt;br /&amp;gt;&lt;br /&gt;
GuardsInstantKill=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Limits the MAXHITS/MAXMANA/MAXSTAM changes&amp;lt;br /&amp;gt;&lt;br /&gt;
// STAT_FLAG_NORMAL 0x00 // MAX* status allowed (default)&amp;lt;br /&amp;gt;&lt;br /&gt;
// STAT_FLAG_DENYMAX 0x01 // MAX* denied&amp;lt;br /&amp;gt;&lt;br /&gt;
// STAT_FLAG_DENYMAXP 0x02 // .. for players&amp;lt;br /&amp;gt;&lt;br /&gt;
// STAT_FLAG_DENYMAXN 0x04 // .. for npcs&amp;lt;br /&amp;gt;&lt;br /&gt;
StatsFlags=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Server Mechanics&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// Experimental flags&amp;lt;br /&amp;gt;&lt;br /&gt;
// Flags for options that affect server behaviour and which might affect compatibility&amp;lt;br /&amp;gt;&lt;br /&gt;
// See the revisions.txt file for more details on this&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_DiagonalWalkCheck = 00000001&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_UNICODE = 00000002 // No on Linux '''Bringt UNICODE Korrekturen'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Scripts_Ret_Strings = 00000004&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_New_Triggers = 00000008&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Scripts_Parse_Verbs = 00000010&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Intrinsic_Locals = 00000020 //'''Erlaubt locals anders zu nutzen. Beispielsweise kann statt &amp;lt;local.x&amp;gt; auch nur &amp;lt;x&amp;gt; benutzt werden.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Item_Strict_Comparison = 00000040 //'''Sorgt dafür, dass gleiche Items nicht mehr verglichen werden, wie Stoff, Leder, Fell, Holz, Bretter, Pfeile und Bolzen.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_WalkCheck = 00000100 '''//Behebt viele Hauseinbruchsbugs und ähnliche Probleme.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Script_Profiler = 00000400&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Size_Optimise = 00000800&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Minimize_Triggers = 00001000 //Minimize trigger calls (use only 0.51 triggers)&amp;lt;br /&amp;gt;&lt;br /&gt;
Experimental=00000&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Option flags &amp;lt;br /&amp;gt;&lt;br /&gt;
// Flags for options that affect server behaviour but not compatibility&amp;lt;br /&amp;gt;&lt;br /&gt;
// See the revisions.txt file for more details on this&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Magic_IgnoreAR = 00000001 //'''Magieschaden ignoriert Rüstung (AR)?'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Magic_CanHarmSelf = 00000002 //'''Kann sich ein Spieler mit Magie selbst verletzen? (einen Magic Arrow auf sich abfeuern, um Lähmung (Paralyze) zu beenden?)'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Magic_StackStats = 00000004&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Archery_CanMove = 00000010 //'''Kann ein Spieler laufen und schiessen gleichzeitig?'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Magic_PreCast = 00000020 //'''Funktionieren Zauber mit pre-cast oder ist der Spieler solange er zaubert unfähig herumzulaufen?'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Items_AutoName = 00000040&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_FileCommands = 00000080 //'''Aktiviert Befehle zur Dateiverarbeitung, wie writefile usw'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_NoItemNaming = 00000100 //'''Verhindert die Benennung von Gegenständen mit &amp;quot;crafted by&amp;quot;'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_NoHouseMuteSpeech = 00000200 //'''Können sich spieler in und ausserhalb von Häusern gegenseitig hören?'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Multithreaded = 00000400 //'''Nicht setzen, solange der Server läuft!!! (Macht *Nix Server instabil) Lässt die Verarbeitung von Accounts auf einem anderen Thread laufen'''&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Advanced_LOS = 00000800&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Flood_Protection = 00001000&amp;lt;br /&amp;gt;&lt;br /&gt;
OptionFlags=0200&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// FeatureT2A, used to control T2A expansion features ( default 03 )&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_T2A_UPDATE 01 // Monster and Lost lands&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_T2A_CHAT 02 // In game chat&amp;lt;br /&amp;gt;&lt;br /&gt;
FeatureT2A = 03&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// FeatureLBR, used to control LBR expansion features ( default 0 )&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_LBR_UPDATE 01 // Lbr Monsters&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_LBR_SOUND 02 // MP3 instead of MIDI&amp;lt;br /&amp;gt;&lt;br /&gt;
FeatureLBR = 0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// FeatureAOS, used to control AOS expansion features ( default 0 )&amp;lt;br /&amp;gt;&lt;br /&gt;
// Enabling one of them automagically enables AoS basic features&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_AOS_UPDATE 01 // Basic AoS feature&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_AOS_POPUP 02 // Popup infos&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_AOS_DAMAGE 04 // Damage shown on hit&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_AOS_PALNECRO 08 // Fightbook and Paladin/Necro on char creation&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_AOS_TOOLTIP 010 // Tooltips&amp;lt;br /&amp;gt;&lt;br /&gt;
FeatureAOS = 0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// FeatureSE, used to control SE expansion features ( default 0 )&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_SE_UPDATE 01 // Basic SE features&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_SE_NINJASAM 02 // Ninja and Samurai&amp;lt;br /&amp;gt;&lt;br /&gt;
FeatureSE = 0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// FeatureML, used to control ML expansion features ( default 0 )&amp;lt;br /&amp;gt;&lt;br /&gt;
// FEATURE_ML_UPDATE 01 // Basic ML features&amp;lt;br /&amp;gt;&lt;br /&gt;
FeatureML = 0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// In game effects to turn on and off&amp;lt;br /&amp;gt;&lt;br /&gt;
// Messages echoed to the server console while in debug mode&amp;lt;br /&amp;gt;&lt;br /&gt;
// DEBUGF_NPC_EMOTE = 0x0001&amp;lt;br /&amp;gt;&lt;br /&gt;
// DEBUGF_ADVANCE_STATS = 0x0002&amp;lt;br /&amp;gt;&lt;br /&gt;
// DEBUGF_WALKCODES = 0x0080 // try the new walk code checking stuff&amp;lt;br /&amp;gt;&lt;br /&gt;
// DEBUGF_NPCAI = 0x0100 // some NPC AI debugging&amp;lt;br /&amp;gt;&lt;br /&gt;
// DEBUGF_EXP = 0x0200 // experience gain/loss&amp;lt;br /&amp;gt;&lt;br /&gt;
// DEBUGF_LEVEL = 0x0400 // experience level changes&amp;lt;br /&amp;gt;&lt;br /&gt;
DebugFlags=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Console Hears all that is said on the server&amp;lt;br /&amp;gt;&lt;br /&gt;
HearAll=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Secure mode attempts to ignore errors, protect from accidently shutdowns&amp;lt;br /&amp;gt;&lt;br /&gt;
Secure=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Value from 1 to 32, set sectors inactive when unused to conserve resources&amp;lt;br /&amp;gt;&lt;br /&gt;
SectorSleep=10&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Disconnect inactive socket in x min&amp;lt;br /&amp;gt;&lt;br /&gt;
DeadSocketTime=5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Always force a full garbage collection on save&amp;lt;br /&amp;gt;&lt;br /&gt;
ForceGarbageCollect=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Time before restarting when server appears hung (in seconds)&amp;lt;br /&amp;gt;&lt;br /&gt;
FreezeRestartTime=60&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Length of the game world minute in real world in seconds&amp;lt;br /&amp;gt;&lt;br /&gt;
GameMinuteLength=60&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Bit Mask of the subjects you want to log when logging is on&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_ACCOUNTS 0x00080&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_SAVE 0x00200 // world save status.&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_CLIENTS_LOG 0x00400 // all clients as they log in and out.&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_GM_PAGE 0x00800 // player gm pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_PLAYER_SPEAK 0x01000 // All that the players say.&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_GM_CMDS 0x02000 // Log all GM commands.&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_CHEAT 0x04000 // Probably an exploit !&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_KILLS 0x08000 // Log player combat results.&amp;lt;br /&amp;gt;&lt;br /&gt;
// LOGM_HTTP 0x10000&amp;lt;br /&amp;gt;&lt;br /&gt;
// 01ffff log everything&amp;lt;br /&amp;gt;&lt;br /&gt;
LogMask=01ec80&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Amount of time to keep map data cached in sec&amp;lt;br /&amp;gt;&lt;br /&gt;
MapCacheTime=120&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Max NPC chars for a sector to prevent lag&amp;lt;br /&amp;gt;&lt;br /&gt;
MaxComplexity=32&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Amount of items in one tile so start showing &amp;quot;too many items here&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
MaxItemComplexity=25&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Amount of items in one sector to start showing &amp;quot;x items too complex&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
MaxSectorComplexity=1024&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Limit the number of cycles the while/for loop can proceed. Setting this to&amp;lt;br /&amp;gt;&lt;br /&gt;
// zero disables the limitation&amp;lt;br /&amp;gt;&lt;br /&gt;
MaxLoopTimes=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Magic/Effects Settings&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Allow casting while equipped&amp;lt;br /&amp;gt;&lt;br /&gt;
EquippedCast=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Words of power for player using magic&amp;lt;br /&amp;gt;&lt;br /&gt;
WOPPlayer=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Words of power for staff using magic&amp;lt;br /&amp;gt;&lt;br /&gt;
WOPStaff=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Reagents lost if magic fails&amp;lt;br /&amp;gt;&lt;br /&gt;
ReagentLossFail=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Magic requires reagents&amp;lt;br /&amp;gt;&lt;br /&gt;
ReagentsRequired=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// What % of hitpoints players will resurrect with. Note, that if you set this&amp;lt;br /&amp;gt;&lt;br /&gt;
// too low, people with little STR will have problems resurrecting.&amp;lt;br /&amp;gt;&lt;br /&gt;
HitPointPercentOnRez=33&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// How many % of hits will the character loose when starving. 0 disables&amp;lt;br /&amp;gt;&lt;br /&gt;
//HitsHungerLoss=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Amount of skill of lock picking needed to unlock a magically locked door&amp;lt;br /&amp;gt;&lt;br /&gt;
MagicUnlockDoor=900&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Teleport effect for GMs and players. Setting 0 disables the effect&amp;lt;br /&amp;gt;&lt;br /&gt;
TeleportEffectStaff=03709&amp;lt;br /&amp;gt;&lt;br /&gt;
TeleportEffectPlayers=0372a&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Experience and Level system&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Enable experience system&amp;lt;br /&amp;gt;&lt;br /&gt;
//ExperienceSystem=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Experience system settings:&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0001 gain experience in combat&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0002 gain experience in crafts&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0004 allow experience to go down&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0008 limit experience decrease by a range witheen a current level&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0010 auto-init EXP/LEVEL for NPCs if not set in @Create&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0020 allow trigger @ExpChange&amp;lt;br /&amp;gt;&lt;br /&gt;
// 0040 allow trigger @ExpLevelChange&amp;lt;br /&amp;gt;&lt;br /&gt;
//ExperienceMode=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// If combat experience gain is allowed, use these percents for gaining exp in&amp;lt;br /&amp;gt;&lt;br /&gt;
// Player versus Monster and Player versus Player combats. Value 0 disables gain.&amp;lt;br /&amp;gt;&lt;br /&gt;
//ExperienceKoefPVM=100&amp;lt;br /&amp;gt;&lt;br /&gt;
//ExperienceKoefPVP=100&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Enable levels system (as a part of experience system)&amp;lt;br /&amp;gt;&lt;br /&gt;
//LevelSystem=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Level system settings:&amp;lt;br /&amp;gt;&lt;br /&gt;
// linear = 0 (each NextLevelAt exp will give a level up)&amp;lt;br /&amp;gt;&lt;br /&gt;
// double = 1 (you need (NextLevelAt * (level+1)) to get a level up)&amp;lt;br /&amp;gt;&lt;br /&gt;
//LevelMode=1&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Amount of experience to raise to the next level&amp;lt;br /&amp;gt;&lt;br /&gt;
//LevelNextAt=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Webpage Settings&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Note, that you can catch error codes by creating sphere404.htm and so on&amp;lt;br /&amp;gt;&lt;br /&gt;
// for all HTTP error codes sphere support.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[WEBPAGE 1]&amp;lt;br /&amp;gt;&lt;br /&gt;
// Determines what html file is used as base for the status page&amp;lt;br /&amp;gt;&lt;br /&gt;
WebPageSrc=scripts\web\spherestatusbase.html&amp;lt;br /&amp;gt;&lt;br /&gt;
// Determines where the status page is saved&amp;lt;br /&amp;gt;&lt;br /&gt;
WebPageFile=scripts\web\status.html&amp;lt;br /&amp;gt;&lt;br /&gt;
// In seconds, how often the status file is updated&amp;lt;br /&amp;gt;&lt;br /&gt;
WebPageUpdate=60&amp;lt;br /&amp;gt;&lt;br /&gt;
// Required PLevel to view this page (0 = anyone, 6 = admins only)&amp;lt;br /&amp;gt;&lt;br /&gt;
PLevel=0&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Abuse Control&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
// Block these ips from the server&amp;lt;br /&amp;gt;&lt;br /&gt;
// 255 is a wildcard, so 255.255.255.255 disables anyone connecting.&amp;lt;br /&amp;gt;&lt;br /&gt;
[BlockIP]&amp;lt;br /&amp;gt;&lt;br /&gt;
//123.34.45.56&amp;lt;br /&amp;gt;&lt;br /&gt;
//123.45.56.78&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&lt;br /&gt;
//////// Connection Information&amp;lt;br /&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
//First line should be the name of your shard (this is what people see when they connect)&amp;lt;br /&amp;gt;&lt;br /&gt;
//Second line should be the IP of your shard (this is almost always 127.0.0.1)&amp;lt;br /&amp;gt;&lt;br /&gt;
//Third line should be the port of your shard (this should be whatever ServPort is set to)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
//Uncomment next 3 lines below this if you have a router&amp;lt;br /&amp;gt;&lt;br /&gt;
//First line should be a name different than your shard name above this&amp;lt;br /&amp;gt;&lt;br /&gt;
//Second line should be your real/external IP (www.whatismyip.com)&amp;lt;br /&amp;gt;&lt;br /&gt;
//Third line should be the shard port (this should be whatever ServPort is set to)&amp;lt;br /&amp;gt;&lt;br /&gt;
[SERVERS]&amp;lt;br /&amp;gt;&lt;br /&gt;
'''WarAngel's Test Centre'''&amp;lt;br /&amp;gt;&lt;br /&gt;
127.0.0.1&amp;lt;br /&amp;gt;&lt;br /&gt;
2593&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
//External&amp;lt;br /&amp;gt;&lt;br /&gt;
//my.ip.goes.here&amp;lt;br /&amp;gt;&lt;br /&gt;
//2593&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[EOF]&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''MAPx''' Ist zwar nicht in sphere.ini, kann aber genutzt weden (siehe REVISIONS.txt). Und zwar so:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MAPx=max_x,max_y,sector_size,real_map_number. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel: MAP1=7168,4096,512,-1 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setzt die Größe von map1 auf 7168,4096, die Sektorgröße von map1 auf 512 und die -1 bedeutet, dass die Standarddatei für diese map benutzt wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anderes Beispiel: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MAP50=7168,4096,64,3 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktiviert die Map mit nummer 50, die eine Größe von 7168,4096, eine Sektorgröße von 64 hat und map3.mul, statics3.mul und staidx3.mul als Dateien benutzt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==sphere_region.scp==&lt;br /&gt;
&lt;br /&gt;
Dieses Skript stellt Orte auf der Karte ein und defniert, was bspw. dort an Metallen oder Holz abgebaut werden kann, was passiert, wenn diese Orte betreten werden und weiteres. Es enthält zudem Resource-Sektionen, die so aufgebaut sind:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;[REGIONRESOURCE x]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Sektion enthält den Skill, der benötigt wird, um diese Resource abzubauen, welche Resource der Spieler erhält und wie lange es dauert, damit sie &amp;quot;nachwächst&amp;quot;. Ein Beispiel hierfür (es gibt einen Kommentar mit &amp;quot;//t_tree&amp;quot;, der aber klar sein sollte, wenn das vorherige Kapitel über defnames gelesen wurde).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[REGIONRESOURCE mr_tree]&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
// lumberjacking default&amp;lt;br /&amp;gt;&lt;br /&gt;
// t_tree&amp;lt;br /&amp;gt;&lt;br /&gt;
SKILL=1.0,80.0&amp;lt;br /&amp;gt;&lt;br /&gt;
AMOUNT=9,30&amp;lt;br /&amp;gt;&lt;br /&gt;
REAP=i_log&amp;lt;br /&amp;gt;&lt;br /&gt;
REGEN=60*60*10&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Sektion definiert eine Resource, etwas das gesammelt werden kann. Es vergleicht Skill und Menge. Das bedeutet, dass mit Skill 1.0 maximal 9 i_log und mit Skill 80.ß maximal 30 i_log gesammelt werden können. Alles danach ist nur eine Erhöhung der Chance auf 30 i_log. In der SKILL-Zeile wird also eine Unter- und eine Obergrenze festgelegt, die AMOUNT-Zeile macht selbiges für die Mengen.&lt;br /&gt;
Was bringt uns das? Die Zeile: &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;REAP=i_log&amp;lt;/font&amp;gt;. Das sagt dem Server, er soll i_log Items erstellen, wenn diese Resource gebraucht wird. Es kann hier alles stehen, was man auf seinem Shard sammelbar machen möchte.&lt;br /&gt;
Die nächste Zeile, REGEN, legt in Sekunden fest, wie lange es dauert, damit diese Resource wieder neu abgebaut werden kann. In diesem Beispiel sind das 60*60*10 Sekunden, also 10 Stunden. Als GM können die Punkte wahrgenommen werden, an denen Spieler geschürft oder abgeholz haben, denn dort liegen kleine Kristalle am Boden. Sie sehen wie Spawnpunkte aus, aber sind in Wahrheit Resourcenmarkierungen. Sie markieren, wo eine spezielle Resource geholt werden kann, wie viel geholt werden kann und welchen Typ die Resource hat. Sie haben zudem einen TIMER, der runterzählt (von bspw 36000) und der dann dafür sorgt, dass der Kristall bei 0 gelöscht wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[REGIONTYPE r_default_rock t_rock]&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
//Random rocks&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=100.0 mr_nothing&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=500.0 mr_iron&amp;lt;br /&amp;gt;&lt;br /&gt;
//RESOURCES=6.0 mr_rusty&amp;lt;br /&amp;gt;&lt;br /&gt;
//RESOURCES=6.0 mr_old_copper&amp;lt;br /&amp;gt;&lt;br /&gt;
//RESOURCES=6.0 mr_dull_copper&amp;lt;br /&amp;gt;&lt;br /&gt;
//RESOURCES=4.5 mr_bronze&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=5.0 mr_copper&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=2.0 mr_gold&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=1.0 mr_rose&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=2.0 mr_agapite&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=1.0 mr_bloodrock&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=1.0 mr_silver&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=0.5 mr_verite&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=0.2 mr_Valorite&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=0.1 mr_mytheril&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=0.1 mr_blackrock&amp;lt;br /&amp;gt;&lt;br /&gt;
RESOURCES=0.1 mr_diamond&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wow? Was sind das für Dinge? mr_iron, mr_agapite? Das ist nirgendwo in der Datei. Auch in sphere_defs.scp findet man diese Definitionen nicht, man muss in sphereitem_ore.scp nachsehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;RESOURCES=50.0 mr_iron&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das sieht irgendwie bekannt aus. Würde es noch mehr, wenns so aussehen würde?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;RESOURCES={ mr_iron 50 mr_copper 5 mr_gold 2 mr_rose 2 ...etc... }&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Möchte wetten, dass es das würde, wenn die vorherigen Lektionen in Kapitel 1 gelesen wurden. Das ist eine gewichtete Liste von Resourcen. In einem etwas anderen Format, als die für Template genutzte Version, aber sie funktioniert genau so. Das ist der einzige Ort in allen Skripten, in denen Kommazahlen genutzt werden können, wie bspw 0.1 und 0.2. Eigentlich stimmt das nur halb, aber Sphere verdeckt erfolgreich, solange in jeder RESOURECE-Zeile eine Kommazahl steht. (Im übrigen sollte nicht ein &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;RESOURCES&amp;lt;/font&amp;gt; mit einer Zufallsauswahl geskriptet werden. Sphere wird das nicht richtig auswerten, es sollte dieses Format genutzt werden.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[REGIONTYPE r_default_rock t_rock]&amp;lt;/font&amp;gt; ''Bedeutet:'' r_default t_rock legt einen Defname für einen &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;REGIONTYPE&amp;lt;/font&amp;gt; fest, der in anderen Skripten benutzt werden kann (im nächsten Abschnitt bspw. =P). t_rock ist ein Defname (siehe &amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;sphere_defs.scp&amp;lt;/font&amp;gt;) für Stein, was für Sphere festlegt wo Spieler welche Resource sammeln können (sollte es auf t_water geändert werden, kann im Wasser Erz geschürft werden, was sicher nicht ganz so beabsichtigt ist.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hoffentlich erklärt das sphere-resion.scp für jeden. Im nächsten Abschnitt wird gezeigt, wie REGIONTYPE-Einstellungen benutzt werden, damit die Resourcen auch wirklich im Spiel vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
==sphere_mapX.scp==&lt;br /&gt;
&lt;br /&gt;
Willkommen zur einfachsten Datei in Sphere: spheremap.scp. Diese Datei ist vollständig fertiggestellt für die Standardmap. Es ist sehr selten, dass diese Datei verändert werden muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine Anmerkung, die gleich zu Anfang gesagt werden muss: wird diese Datei verändert, muss der Server neu gestartet werden, damit die Änderung auch übernommen wird. Sollte das innerhalb eine Resyncs passieren, wirds viele Fehler geben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Sektion zeigt, wie neue Regionen erstellt werden können, zu denen man mit dem .go Befehl reisen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt momentan 5 Dateien in den Standardskripten, eine für jede Map (Felucca, Trammel, Ilshenar, Malas und Tokuno) die von 0 bis 4 durchnummeriert sind (sphere_map0.scp, sphere_map1.scp usw).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ich benutze die Region Felucca als ein Beispiel für dieses Tutorial und hier das Skript dafür:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[AREADEF a_world]&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
NAME=Felucca&amp;lt;br /&amp;gt;&lt;br /&gt;
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass&amp;lt;br /&amp;gt;&lt;br /&gt;
GROUP=ALLMAP&amp;lt;br /&amp;gt;&lt;br /&gt;
P=1323,1624,55,0&amp;lt;br /&amp;gt;&lt;br /&gt;
RECT=0,0,6144,4096,0&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Zeilen bedeuten:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[AREADEF somedef]''': Wie in allen anderen Skripten ist das ein Defname - nur hier für eine Region auf dem Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Name''': Diese Zeile enthält einen Namen für die Region, der angezeigt wird, wenn der .where Befehl im Spiel benutzt wird. Zudem kann .go &amp;quot;Region Name&amp;quot; dafür benutzt werden, um dort hin zu reisen (keine zwei Regionen sollten den selben Namen haben, ansonsten wird hier einiges an Fehlern produziert).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Events''': Hier wird festgelegt, was alles in der Regeion passiert und welche Resourcen hier abbaubar sind (siehe den Abschnitt über REGEIONTYPE - diese können hier als EVENT benutzt werden). Neben den Resourcen können hier auch Trigger benutzt werden, die von den EVENTS aufgerufen werden können (wahrscheinlich bemerkt man hier, dass die REGIONTYPE-Sektionen nur Ereignisse für Regionen sind :P), wie beispielsweise @Enter und andere (siehe [[Triggers]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Group''': Das ist eine Axiseinstellung, die im Travelmenü Regionen gruppiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''P''': Das ist der Ort, an den man mit .go &amp;quot;Region Name&amp;quot; gelangt. Jede Region hat eine solche Angabe und sie liegt normalerweise mitten in der Region oder an einem passenden ort. Wenn eine eigene Region erstellt wird, sollte ein solcher Punkt angegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''RainChance''': Legt die Chance auf Regeion in der Region fest (Rainchance=50 gibt eine 50% Wahrescheinlichkeit) der Rest bedeutet, dass es zu 50% schneit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rect''': Gibt die Grenzen der Region als Koordinaten an. Die ersten zwei Zahlen sind die Koordinaten des oberen linken Punktes und die zweiten der untere linke Punkt eines Rechtecks. Im Fall von Felucca ist das 0,0 bis 6144,4096 (RECT=0,0,6144,4096). Mit 56b kann auch ein fünfter Wert angegeben werden, nämlich die Karte, auf der die Region liegt, also RECT=0,0,6144,4096,0 (kann auch weggelassen werden, dann wird standardmäßig 0 verwendet - soll das nicht Map 0 sein, dann muss ein Wert angegeben werden, sonst gibts Fehler).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Flags''': Regionenflags bestimmen, was in einer Region los ist. Sie beschreiben, ob eine Region bewacht ist, welche Magie genutzt werden kann, wer hier wen verletzen kann und ob es hier regnen kann. Soll das verwendet werden, dann so:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Zeile hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FLAGS=#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich sollte statt # eine Zahl verwendet werden! Wo diese nummern stehen? Es gibt vordefinierte, aber es gibt eine Liste.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispielsweise für eine bewachte und gesicherte Region, sehen sie so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
::region_flag_safe    (02000)&amp;lt;br /&amp;gt;&lt;br /&gt;
:+&amp;lt;br /&amp;gt;&lt;br /&gt;
::region_flag_guarded (04000)&amp;lt;br/ &amp;gt;&lt;br /&gt;
:=&amp;lt;br /&amp;gt;&lt;br /&gt;
::06000&amp;lt;br/ &amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das wars. Die &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;FLAGS&amp;lt;/font&amp;gt; werden auf 06000 gesetzt. &amp;quot;Aber, aber ... hiess es nicht, dass &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;DEFNAMEs&amp;lt;/font&amp;gt; die Eingabe von Zahlen unnötig machen?&amp;quot; (siehe [[De:Chapter 1|Kapitel 1]].) Natürlich, deshalb geht das auch ohne Zahlen und zwar so:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;FLAGS=region_flag_safe|region_flag_guarded&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das wars. Die Region ist bewacht und sicher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aus Sicht eines Admins ist das aber keine gute Idee. Eine derartige Region verhindert, dass Wachen wirklich jemanden töten können, sie rufen sich gegenseitig und werden zu keiner Handlung fähig sein und letztendlich Lag verursachen. Einfach glauben und keine Region mit diesen beiden Flags erstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier ist die Liste der möglichen Flags (stehen auch in sphere_defs.scp und können sich von Zeit zu Zeit ändern):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[DEFNAME region_flags]&amp;lt;br /&amp;gt;&lt;br /&gt;
region_antimagic_all 00001        // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;keine Magie möglich hier.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_antimagic_recall_in 00002  // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;kein Teleport,Recall hier her, keine Markierung von Runen.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_antimagic_recall_out 00004 // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;kein Recall nach draussen von hier aus.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_antimagic_gate 00008       // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;keine Gatezauber hier hin oder hier raus.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_antimagic_teleport 00010   // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;kein Teleport hier her.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_antimagic_damage 00020     // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Keine &amp;quot;böse&amp;quot; Magie hier.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_ship 00040            // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Das hier ist ein Schiff - Schiffsbefehle klappen hier.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_nobuilding 00080      // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;kein Gebäude in diesem Areal&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_globalname 00100      // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Sicherstellen, dass der Name global gilt.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_announce 00200        // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Ankündigung an alle, dass diese Region betreten wird.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_insta_logout 00400    // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Instant Logout erlaubt. (Hotel?)&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_underground 00800     // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Dungeon Areal. (kein Wetter)&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_nodecay 01000         // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Items am Boden werden nie gelöscht.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_safe 02000            // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Diese Region sichert vor jedem Schaden.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_guarded 04000         // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;siehe tag.guardowner&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
region_flag_no_pvp 08000          // &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;Spieler können sich nicht direkt Schaden.&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und das wars mit der &amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;sphere_mapX.scp&amp;lt;/font&amp;gt; Datei.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==sphere_book.scp==&lt;br /&gt;
Spherebook.scp ist eine der sinnlosesten Dateien, die zu finden ist. Wie oft liest man schon die Tips auf einem Shard, wenn man einloggt? Ich weiss, dass die meisten Spieler diese Rollen einfach wegklicken. Aber der Inhalt ist in dieser Datei festgelegt. Und Bücher - hab ich die erwähnt? Diese fast-unmöglich-zu-schreiben, selten benutzten Speicherverschwender?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[SCROLL SCROLL_MOTD]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''[SCROLL SCROLL_NEWBIE]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''[SCROLL SCROLL_GUEST]'''&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das sind die Sektionen, die Nachrichten definiert, wenn man einloggt. Alles, das hier nach diesen Tags steht, wird in einer Nachricht auftauchen. Welche Leerzeichen wo gebraucht werden, muss mit vielen Tests herausgefunden werden. Braucht etwas Zeit und es gibt keine echte Möglichkeit das gut zu erklären. Einfach versuchen. Achtung: es gibt hier keine Zeilenumbrüche - oder zumindest gabs in der Vergangenheit keine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[TIP X]'''&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Richtig. Das sind Tips, die es beim Start gibt. &amp;quot;Krieg ist für Kinder und alles Leben ungesund.&amp;quot; ist einer davon. Sehr passend.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[BOOK title]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''[BOOK title x]'''&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt ein Buch mit DEFNAME Titel. Es legt eine Seitenzahl x nach dem DEFNAME fest und fügt Text auf einer bestimmten Seite hinzu. Sieht man die Beispielbücher an, kann man erahnen, wie das klappt. Die größte Schwierigkeit dieser Bücher ist die benutzte Schriftart im Spiel, so dass man nicht wirklich weiss, wieviele Zeichen es für eine Zeile oder Seite braucht. Beispielsweise passen mehr 'i's als 'w's oder 'm's in eine Zeile, weil diese Buchstaben größer sind. Ein Absatz kann mit der TAB Taste eingefügt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==sphere_name.scp==&lt;br /&gt;
&lt;br /&gt;
Eine einfache Datei. Es enthält eine Liste von Namen unter Sektionen mit verschiedenen &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;DEFNAMEs&amp;lt;/font&amp;gt;. Die Namen sind wichtig, nicht der Inhalt, da man wahrscheinlich nie eine eigene Liste von Namen anlegen wird. Ich benutze diesen Emulator seit Jahren und habe nie diese Datei verändert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um auf die Liste der Namen zugreifen zu können, benutzt man das hier:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NAME=#NAMES_HUMANMALE'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das ersetzt automatisch auf einen Zufallsnamen aus der Liste &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''NAMES_HUMANMALE'''&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um eine Liste von Namen zu erstellen, sieht das so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[NAMES EIN_DEFNAME]&amp;lt;br /&amp;gt;&lt;br /&gt;
ANZAHL_DER_NAMEN&amp;lt;br /&amp;gt;&lt;br /&gt;
NAMEN&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispielsweise: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[NAMES NAMES_SPECIAL]&amp;lt;br /&amp;gt;&lt;br /&gt;
2&amp;lt;br /&amp;gt;&lt;br /&gt;
Hil&amp;lt;br /&amp;gt;&lt;br /&gt;
Hol&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schwierig, hm? Eigentlich wollte ich dafür keinen Abschnitt schreiben ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==sphere_newb.scp==&lt;br /&gt;
Ich habs getan - kein eitler Humor unter diesem Titel! :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf jeden Fall ist diese Datei oft Gegenstand vieler Fragen. &amp;quot;Wie sorge ich dafür, dass meine Spieler mit 10000 Gold anfangen?&amp;quot; oder &amp;quot;Wie gebe ich allen Schmieden 800 Barren?&amp;quot; Ich sag nicht, dass das sinnvoll wäre, aber in dieser Datei können solche Dinge geregelt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[NEWBIE MALE_DEFAULT]&amp;lt;br /&amp;gt;&lt;br /&gt;
// Male Generic Starting Clothes&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=i_shirt_plain&amp;lt;br /&amp;gt;&lt;br /&gt;
COLOR=colors_all&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=random_pants&amp;lt;br /&amp;gt;&lt;br /&gt;
COLOR=colors_neutral&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=random_shoes&amp;lt;br /&amp;gt;&lt;br /&gt;
COLOR=colors_neutral&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=i_dagger&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=i_candle&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=i_book_sm&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMNEWBIE=i_gold,100&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So sieht ein typisches Skript aus. Wie eine große Template, nicht wahr? Dafür gibts einen Grund. Es ist ein Template, es steht nur &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''ITEMNEWBIE'''&amp;lt;/font&amp;gt; statt &amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''ITEM'''&amp;lt;/font&amp;gt; drin. In Kapitel 1 steht über Templates alles, was man wissen muss und genau so funktioniert das auch hier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das einzige wichtige in diesen Sektionen ist: alles MUSS einen eindeutigen Namen haben, den der Server finden kann. Es kann keine weitere Newbie-Sektion hinzugüfgt werden, so sehr das auch gewollt werden würde - sorry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==sphere_skill.scp (SKILLCLASSES)==&lt;br /&gt;
Skill Klassen legen fest, wie weit Skills/Stats gesteigert werden können und es können zudem Trigger angelegt werden. Ein Skillclass Skript sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[SKILLCLASS 0]&amp;lt;br /&amp;gt;&lt;br /&gt;
// undeclared class.&amp;lt;br /&amp;gt;&lt;br /&gt;
// max skills for players of this skill class. &amp;lt;br /&amp;gt;&lt;br /&gt;
// might want this to be all 50.0 to make people declare a class?&amp;lt;br /&amp;gt;&lt;br /&gt;
DEFNAME=Class_undeclared&amp;lt;br /&amp;gt;&lt;br /&gt;
NAME=undeclared&amp;lt;br /&amp;gt;&lt;br /&gt;
// EVENTS=e_ClassUndeclared&amp;lt;br /&amp;gt;&lt;br /&gt;
STATSUM=300&amp;lt;br /&amp;gt;&lt;br /&gt;
SKILLSUM=10000.0&amp;lt;br /&amp;gt;&lt;br /&gt;
STR=100&amp;lt;br /&amp;gt;&lt;br /&gt;
INT=100&amp;lt;br /&amp;gt;&lt;br /&gt;
DEX=100&amp;lt;br /&amp;gt;&lt;br /&gt;
ALCHEMY=100.0&amp;lt;br /&amp;gt;&lt;br /&gt;
ANATOMY=100.0&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEMID=100.0&amp;lt;br /&amp;gt;&lt;br /&gt;
ARMSLORE=100.0&amp;lt;br /&amp;gt;&lt;br /&gt;
and so on...&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um es zu verstehen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''EVENTS'''&amp;lt;/font&amp;gt;: Bedeutet, dass jeder mit dieser Skillclass auch die hier angegebenen Ereignisse auslöst. (mehrere EVENTS werden mit Komma getrennt, bspw: EVENTS=e_1,e_2 usw).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''STATSUM'''&amp;lt;/font&amp;gt;: Gibt eine Obergrenze für die Summe der Stats an. Bspw: ich hab 100 Str, 100 Dex und 100 Int, dann hab ich 300 und damit STATSUM erreicht, ich kann nicht mehr erreichen (außer mit magischen Gegenständen und sowas).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''SKILLSUM'''&amp;lt;/font&amp;gt;: Wie STATSUM, nur für Skills.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''STR/DEX/INT'''&amp;lt;/font&amp;gt;: Obergrenze für einen spezifischen Stat (außer mit magischen Gegenständen und sowas).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;'''ALCHEMY'''&amp;lt;/font&amp;gt;: Wie STR/DEX/INT, nur für Skills (in diesem Fall Alchemy, aber kann auch jeder andere sein).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==sphere_serv_triggers.scp==&lt;br /&gt;
Diese Datei enthält spezielle Trigger &amp;quot;Functions&amp;quot;, die vom Server bei bestimmten Ereignissen aufgerufen werden. Darunter gibt es eine Liste von Funktionen, die in dieser Datei gefunden werden und manche haben auch eine Erklärung dabei:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onaccount_login'''&lt;br /&gt;
&lt;br /&gt;
Wird aufgerufen, wenn ein Client das Passwort eingegeben hat.&lt;br /&gt;
&lt;br /&gt;
:ARGS --&amp;gt; Benutzername des Clients, der einloggen möchte&lt;br /&gt;
:ARGO --&amp;gt; Referenz zum Client selbst&lt;br /&gt;
:RETURN 0 --&amp;gt; nichts tun (also Login weiterlaufen lassen)&lt;br /&gt;
:RETURN 1 --&amp;gt; die Verbindung zum Client trennen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onaccount_delete'''&lt;br /&gt;
&lt;br /&gt;
Diese Funktion wird aufgerufen, bevor ein Account gelöscht wird.&lt;br /&gt;
&lt;br /&gt;
:ARGS --&amp;gt; Benutername des Accounts&lt;br /&gt;
:RETURN 0 --&amp;gt; Löschen zulassen&lt;br /&gt;
:RETURN 1 --&amp;gt; Löschen verhindern&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onchar_create'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onchar_delete'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_start'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_save'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_save_ok'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_save_fail'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_save_finished'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_exit'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''f_onserver_blockip'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Chapter_1&amp;diff=732</id>
		<title>De:Chapter 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Chapter_1&amp;diff=732"/>
				<updated>2010-11-28T11:10:06Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: Created page with '{{Languages|Chapter_1}}  ==Zahlen==  Als erstes wird die verschiedenartige Art und Weise zur Verwendung von Zahlen innerhalb der Sphere Skripte behandelt. Da Zahlen naturgemäß ...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Chapter_1}}&lt;br /&gt;
&lt;br /&gt;
==Zahlen==&lt;br /&gt;
&lt;br /&gt;
Als erstes wird die verschiedenartige Art und Weise zur Verwendung von Zahlen innerhalb der Sphere Skripte behandelt. Da Zahlen naturgemäß sehr wichtig für einen Sphere Skripte sind, ist dies der erste Abschnitt überhaupt. Am Ende dieser Einheit wird hoffentlich jeder über ein allgemeines Verständnis über hexadezimale, dezimale und binäre Zahlensysteme und die Verwendung in Sphere Skripten besitzen. Zudem wird noch vermittelt, wie einerseits Zufallszahlen innerhalb eines Zahlenbereichs oder aus einer Liste von Zahlen generiert werden können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es muss zunächst verstanden werden: wie wir zählen ist nicht die einzige Art zu zählen. Unser Zahlensystem enthält zehn Ziffern (0, 1, 2, 3, 4, 5, 6, 7, 8, und 9). Ab der zehnten Zahl wird eine weitere Ziffer angehängt und die letzte Stelle auf 0 gesetzt (1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Deshalb funktioniert unser Zahlensystem wie es funktioniert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Dezimalsystem, ohne dass wir davon Notiz nehmen, schreiben wir diese Zahlen immer als Zehnerpotenzen. Beispielsweise die beliebige Zahl 17282 aufgeteilt in Zehnerpotenzen:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Zehnerpotenz         || 4     || 3     || 2     || 1     || 0&lt;br /&gt;
|-&lt;br /&gt;
| 10 hoch Zehnerpotenz || 10000 || 1000  || 100   || 10    || 1&lt;br /&gt;
|-&lt;br /&gt;
| Ziffer               || 1     || 7     || 2     || 8     || 2 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zur Zahl 17282 zu gelangen, wird immer 10 hoch Zehnerpotenz mal der Ziffer in der untersten Zeile berechnet und am Ende alle Ergebnisse addiert. Das Ergebnis: 10000 + 7000 + 200 + 80 + 2. Offensichtlich ist das sehr einfach und jeder tut das ständig ohne davon Notiz zu nehmen. Du fragst dich sicherlich jetzt &amp;quot;Richtig, warum schrieb Taran das alles?&amp;quot; Die Sache ist die, dass unser Zahlensystem nicht das einzige ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Computer zählen beispielsweise komplett anders. Sie kennen nur zwei Ziffern (1 und 0) und das wird dann Binärsystem genannt. Binäre Zahlen sehen beispielsweise so aus: 101011101101. Oftmals tauchen sie in der Werbung für Computer auf. Ziffern im Binärsystem werden Bit genannt (kurz für BInary digiT). Binärzahlen im Kopf zu Dezimalzahlen zu berechnen ist meist nicht ohne weiteres möglich, hierfür braucht es ein wenig Mathematik.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Binärsysteme funktionieren wie Dezimalsysteme, es wird eine Potenz einer Zahl addiert. Da Binarzählen nur aus zwei Ziffern bestehen, handelt es sich hierbei um Zweierpotenzen. Manchen wird die folgende Tabelle sicher bekannt vorkommen:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Zweierpotenz || Binärzahl || Dezimalzahl&lt;br /&gt;
|-&lt;br /&gt;
| 0          || 1             || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1          || 10            || 2&lt;br /&gt;
|-&lt;br /&gt;
| 2          || 100           || 4&lt;br /&gt;
|-&lt;br /&gt;
| 3          || 1000          || 8&lt;br /&gt;
|-&lt;br /&gt;
| 4          || 10000         || 16&lt;br /&gt;
|-&lt;br /&gt;
| 5          || 100000        || 32&lt;br /&gt;
|-&lt;br /&gt;
| 6          || 1000000       || 64&lt;br /&gt;
|-&lt;br /&gt;
| 7          || 10000000      || 128&lt;br /&gt;
|-&lt;br /&gt;
| 8          || 100000000     || 256&lt;br /&gt;
|-&lt;br /&gt;
| 9          || 1000000000    || 512&lt;br /&gt;
|-&lt;br /&gt;
| 10         || 10000000000   || 1024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Spannend oder?  :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wir brauchen ein besseres System! Der Grund, dass seltsame Ergebnisse auftreten, liegt daran, dasss 10 keine Potenz von 2 ist. Wir brauchen deshalb ein System, das eine Zweierpotenz als Basis hat. Das am meisten genutzte System ist ein 16er System, auch hexadezimal genannt. Im Sphere-Forum sieht man das Wort hex sicherlich an der ein oder andren Stelle, das ist kein Fluch und auch kein böser Zauber. Es ist eine Kurzform für &amp;quot;hexadecimal&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Binär || Dezimal || Hexadezimal&lt;br /&gt;
|-&lt;br /&gt;
| 1      || 1       || 1&lt;br /&gt;
|-&lt;br /&gt;
| 10     || 2       || 2&lt;br /&gt;
|-&lt;br /&gt;
| 11     || 3       || 3&lt;br /&gt;
|-&lt;br /&gt;
| 100    || 4       || 4&lt;br /&gt;
|-&lt;br /&gt;
| 101    || 5       || 5&lt;br /&gt;
|-&lt;br /&gt;
| 110    || 6       || 6&lt;br /&gt;
|-&lt;br /&gt;
| 111    || 7       || 7&lt;br /&gt;
|-&lt;br /&gt;
| 1000   || 8       || 8&lt;br /&gt;
|-&lt;br /&gt;
| 1001   || 9       || 9&lt;br /&gt;
|-&lt;br /&gt;
| 1010   || 10      || A&lt;br /&gt;
|-&lt;br /&gt;
| 1011   || 11      || B&lt;br /&gt;
|-&lt;br /&gt;
| 1100   || 12      || C&lt;br /&gt;
|-&lt;br /&gt;
| 1101   || 13      || D&lt;br /&gt;
|-&lt;br /&gt;
| 1110   || 14      || E&lt;br /&gt;
|-&lt;br /&gt;
| 1111   || 15      || F&lt;br /&gt;
|-&lt;br /&gt;
| 10000  || 16      || 10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ersichtlich, wie das funktioniert? Es gibt sechs Ziffern, die zusätzlich am Ende des Systems herangezogen werden müssen, es werden üblicherweise hierfür die ersten 6 Buchstaben des Alphabets verwendet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Innerhalb von Sphere Skripten wird beinahe NIE mit Binärzahlen gearbeitet, die KEINE Potenz von zwei sind und wenn, dann kann jeder herkömmliche Taschenrechner benutzt werden, um sie umzurechnen. Mit Hexadezimalzahlen ist das um einiges einfacher.&lt;br /&gt;
&lt;br /&gt;
(This is the last table, I promise!!)&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Binär        || Hexadezimal  &lt;br /&gt;
|-&lt;br /&gt;
| 000000001 (1) || 01  &lt;br /&gt;
|-&lt;br /&gt;
| 000000010 (2) || 02  &lt;br /&gt;
|-&lt;br /&gt;
| 000000100 (3) || 04  &lt;br /&gt;
|-&lt;br /&gt;
| 000001000 (4) || 08  &lt;br /&gt;
|-&lt;br /&gt;
| 000010000 (5) || 010  &lt;br /&gt;
|-&lt;br /&gt;
| 000100000 (6) || 020  &lt;br /&gt;
|-&lt;br /&gt;
| 001000000 (7) || 040  &lt;br /&gt;
|-&lt;br /&gt;
| 010000000 (8) || 080  &lt;br /&gt;
|-&lt;br /&gt;
| 100000000 (9) || 0100  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie in der Tabelle ersichtlich gibt es ein Muster in der Hexadezimalspalte. Man könnte meinen, dass da ein Muster in den Zahlen 1, 2, 4 und 8 auftritt. Das stimmt auch. Ein weiteres Detail sind die führenden 0en für Hexadezimalzahlen (0100 statt nur 100). In Sphere bedeutet eine solche führende 0: &amp;quot;Diese Zahl ist eine Hexadezimalzahl!&amp;quot; und dementsprechend sind 100 und 0100 völlig verschiedene Zahlen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Angenommen in einem Sphere Skript wird das 13. bit in einer Zahl benötigt (FLAGS beispielsweise), dann würde so etwas verwendet werden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SRC.FLAGS |= 8192'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Allerdings: merkt man sich wirklich, dass 8192 das Ergebnis von 2 hoch 13 ist? Das tut man nicht, es ist viel einfacher diese Liste durch zu gehen, bis man zur 13. Zahl kommt (wichtig: Zählen beginnt immer bei 0!).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| 01  || 02  || 04  || 08  || 010 || 020 || 040 || 080 || 0100 || 0200 || 0400 || 0800 || 01000 || 02000  &lt;br /&gt;
|-&lt;br /&gt;
| 2^0 || 2^1 || 2^2 || 2^3 || 2^4 || 2^5 || 2^6 || 2^7 || 2^8  || 2^9  || 2^10 || 2^11 || 2^12  || 2^13  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Und hier sind sie: die ersten 14 Zweierpotenzen in Hexadezimal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SRC.FLAGS |= 02000'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Zeile ist identisch zur obigen, nur dass 8192 (dezimal) GLEICH 02000 (hexadezimal) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''8192 = 02000'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun könnte man sagen &amp;quot;Wie weiß ich, dass das nicht frei erfunden ist?&amp;quot;. Nunja, schon der windowseigene Microsofttaschenrechner beherrscht die Umrechnung zwischen Binär-, Hexadezimal-, Dezimal und Oktalzahlen (ein weiteres, aber in Sphere nutzloses Zahlensystem). Der Taschenrechner von Windows befindet sich im Startmenü unter Programme im Zubehör. Im Taschenrechner wird im Menü Ansicht auf Wissenschaftlich umgestellt. Die Oberfläche des Taschenrechners verändert sich dann ziemlich. Um damit eine Zahl zwischen den Systemen umzurechnen, muss nur die originale Zahl eingegeben werden und dann kann zwischen den verschiedenen Zahlensystemen (Hex, Dez, Okt, Bin) umgeschaltet werden. Eine 0 vorne an eine Hexadezimalzahl gehängt und Sphere interpretiert sie als auch als eine hexadezimale Zahl.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war vermutlich das schwierigste in allen Sphere Skripten. Glücklicherweise, wegen des nächsten Abschnitts, muss sich ab jetzt niemand mehr mit angsteinflössenden Zahlen beschäftigen. Wenn du nach dieser Einheit noch dabei bist, wird sicher alles gut!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weiter gehts mit: Skripten für Sphere!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Defnames==&lt;br /&gt;
&lt;br /&gt;
Hier eine Liste angsteinflössender Zahlen, die man innerhalb von Sphere Skripten antrifft:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| angsteinflössende Zahl || Was sie bedeutet&lt;br /&gt;
|-&lt;br /&gt;
| 0eed             || ID einer Goldmünze&lt;br /&gt;
|-&lt;br /&gt;
| 0dda             || ID eines roten Moongates&lt;br /&gt;
|-&lt;br /&gt;
| 1650,1440        || Koordinaten von Britain&lt;br /&gt;
|-&lt;br /&gt;
| 021              || Farbcode für die Farbe &amp;quot;rot&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 04000            ||  Farbcode für unsichtbar&lt;br /&gt;
|-&lt;br /&gt;
| 04000efad        || Eindeutige serielle Nummer eines Gegestands&lt;br /&gt;
|-&lt;br /&gt;
| 4                || Das PLEVEL eines GMs  &lt;br /&gt;
|-&lt;br /&gt;
| 2048 (or 0800)   || Flag für den Unsichtbarkeitszauber&lt;br /&gt;
|-&lt;br /&gt;
| 010 (or 16)    || Memory type für Aggressoren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Offensichtlich will solche Zahlen niemand auswendig kennen. Aber in frühesten Versionen, weit vor Sphere und TUS (vor .50 Sphere) und tief im Nebel von Grayworld (vor .41 TUS), musste jeder Skripter diese Zahlen kennen. I kenne diese Zahlen (ausser die serielle Nummer, die frei erfunden ist) und noch ein paar weitere, allesamt tief verinnerlicht. Glücklicherweise hat sich für jeden, der nicht gern Zahlen auswendig kennen will, Sphere dazu entwickelt, dass Namen statt Zahlen verwendet werden können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zwar wird alles mögliche immer noch mit Zahlen verknüpft, aber diese Zahlen sind mittlerweile mit Namen verknpft worden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gib im Spiel .add 0eed ein und drücke die Returntaste. Ein Zielcursor taucht auf und es kann eine Goldmünze erschaffen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun gib .add i_gold ein und drücke Return. Es passiert genau das selbe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich kann man sich i_gold leichter als 0eed merken. Aber wie funktioniert das? Dazu muss die Skriptdefinition von einer Goldmünze angesehen werden. Dieses Skript muss an dieser Stelle noch nicht verstanden werden, Itemskripte werden später genauer behandelt. Dieser Skriptausschnitt findet sich in der Datei sphere_item_resources.scp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[ITEMDEF 0eed]&amp;lt;br /&amp;gt;&lt;br /&gt;
//gold coin&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;ff0000&amp;quot;&amp;gt;DEFNAME=i_gold&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
TYPE=T_GOLD&amp;lt;br /&amp;gt;&lt;br /&gt;
VALUE=1&amp;lt;br /&amp;gt;&lt;br /&gt;
CATEGORY=Provisions - Miscellaneous&amp;lt;br /&amp;gt;&lt;br /&gt;
SUBSECTION=Coins&amp;lt;br /&amp;gt;&lt;br /&gt;
DESCRIPTION=Gold Coin&amp;lt;br /&amp;gt;&lt;br /&gt;
DUPELIST=0eee,0eef&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die rotmarkierte Zeile ist für diese Lektion von Belang. Ansonsten ist noch die erste Zeile, die 0eed enthält, inteessant, aber der Rest kann getrost ignoriert werden vorerst. Die 0eed ist die Nummer des Items, diese Nummern werden im nächsten Abschnitt behandelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wirklich interessant ist allerdings &amp;lt;font color=&amp;quot;ff0000&amp;quot;&amp;gt;DEFNAME=i_gold&amp;lt;/font&amp;gt;. Diese Zeile legt im Server fest: &amp;quot;Ab jetzt wird 0eed mit i_gold identifiziert&amp;quot;. Wird vor dieser Zeile irgendwo innerhalb eines Skripts i_gold verwendet, wird der Server einen Fehler melden (siehe [[Chapter 2|Kapitel 2]] über die Reihenfolge von Skripten), aber jetzt ist ihm bekannt, worauf i_gold verweist und es kann in Skripten oder im Spiel frei verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es sollte IMMER ein solcher Name mit DEFNAME erstellt werden, wenn ein Item geskriptet wird. Normalerweise wird dieser defname in [ITEMDEF] selbst festgelegt (mehr darüber später), aber wenn unbedingt Zahlen verwendet werden sollen, sollte zudem noch ein einfach zu zu merkender Name verwendet werden (bspw nicht goldenes_gulasch für ein Schwert). Es macht das Leben einfacher, als Zahlen zu benutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine zweite Möglichkeit, DEFNAME zu nutzen, ist die Nutzung eines [DEFNAME]-Abschnitts. Hier ein Beispiel dafür:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[DEFNAME colors]&amp;lt;br /&amp;gt;&lt;br /&gt;
color_blue 02&amp;lt;br /&amp;gt;&lt;br /&gt;
color_red 021&amp;lt;br /&amp;gt;&lt;br /&gt;
color_green 041&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein ähnliches Skript steht in spheredefs.scp, eine weitere Datei, die ganz am Anfang geladen werden sollte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier eine Aufschlüsselung dieses Skripts, Zeile für Zeile:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 1''': Hier wird der Typ des Skripts festgelegt und der Name dafür (Colors in diesem Fall). Hier wird dem Server vermittelt, dass von dieser Zeile bis zum nächsten Identifier (das sind die Zeilen die von eckigen Klammern eingerahmt sind) eine bestimmte Art von Skript enthalten ist. Alle Identifier haben dieses Format. Der erste Parameter legt dabei den Skripttyp fest und davon gibt es mehrere, die in den weiteren Kapiteln abgehandelt werden. Der zweite Parameter ist entweder eine Zahl als ID oder ein Defname. In den meisten Fällen wird in selbst geschriebenen Skripten wird hier ein Defname stehen. Die einzige Ausnahme besteht dann, wenn neue Items in die Clientdateien eingefügt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeilen 2-4''': Diese Zeilen enthalten individuelle Teile. Es wird festgelegt, dass color_blue gleich 02, color_red gleich 021 und color_green gleich 041 ist. Zwischen dem Namen und dem Wert können beliebig viele Leerzeichen enthalten sein. Die Definitionen in spheredefs.scp sind so ziemlich die nützlichsten auf die man treffen kann, da sie es unnötig machen, viele angsteinflössende Zahlen zu verwenden. In spheredefs.scp werden deshalb Namen für Flags, für Attribute von Items, für verschiedene Töne und Klänge, für Memory Types und viele andere Dinge festgelegt. Einen Blick in diese Datei zu werfen ist sicherlich zuweilen ganz ratsam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das wars mit DEFNAMES. Weiteres taucht später in allen möglichen Skripten auf.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt werden Items abgehandelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ITEMDEF==&lt;br /&gt;
Oder: wie macht man aus einem Maulwurfshügel einen Berg auf Sphere-Art.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die meisten machen sich Itemskripte schwieriger, als es nötig ist. Für die Zwecke dieses Tutorials, da es noch ein weit fortgeschritteneres später gibt, werden hier nur einfach die Grundlagen eines ITEM Skripts behandelt, Zeile für Zeile. Wir werden das Goldskript vom vorherigen Absatz verwenden, vorausgesetzt ich finde es ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ok, hier ist es, mit Farbe unterlegt, damit es schöner anzusehen ist!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[ITEMDEF 0eed]&lt;br /&gt;
//gold coin&lt;br /&gt;
DEFNAME=i_gold&lt;br /&gt;
TYPE=T_GOLD&lt;br /&gt;
VALUE=1&lt;br /&gt;
CATEGORY=Provisions - Miscellaneous&lt;br /&gt;
SUBSECTION=Coins&lt;br /&gt;
DESCRIPTION=Gold Coin&lt;br /&gt;
DUPELIST=0eee,0eef&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das ist das einfachste aller Itemskripts, da es weiteres Verhalten, als einfach nur zu existieren benötigt. Es wird nun jede Zeile erklärt und was es damit auf sich hat:&lt;br /&gt;
&lt;br /&gt;
'''Zeile 1''': [ITEMDEF 0eed]&lt;br /&gt;
&lt;br /&gt;
Die erste Zeile eines Itemskripts ist die wichtigste. Grundsätzlich bedeutet diese Zeile für den Server &amp;quot;Hey, das ist ein Item und es soll 0eed heißen!&amp;quot;. Der Server sieht sich dann die Clientdateien an (vor allem art.idx), und gleicht ab, ob das Item eins der eingebauten ist. Ich glaube, alle Items mit Nummern unter 04500 gelten als eingebaut, deshalb sollte nie ein neues Item mit einer Zahl definiert werden, die darunter liegt. Bei Eingabe dieser Zeile, wird der Server wissen, dass ein Itemskript folgt. Außerdem wird 0eed als gültiges Item festgelegt, was später nützlich ist, wenn die Spieler Gold brauchen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 2''': // gold coin&lt;br /&gt;
&lt;br /&gt;
Das ist die Sphereversion eines Kommentars. C-Programmierer kennen das Format (Anmerkung des Übersetzers: eigentlich kennt man das erst ab C++). Jede Zeile, die mit // beginnt ist eine Kommentarzeile und alles, was in einer Kommentarzeile enthalten ist, wird nicht vom Server interpretiert oder gelesen. Diese Kommentare können aber auch an beliebiger Stelle innerhalb einer Zeile beginnen um am Ende einer Zeile eine Erklärung einzufügen. Auf jeden Fall sind Kommentare nicht für die Funktion des Skriptes relevant, sondern können sie unter Umständen verständlicher machen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 3''': DEFNAME=i_gold&lt;br /&gt;
&lt;br /&gt;
Du solltest jetzt wissen, was diese Zeile bedeutet. Wenn nicht, dann sollte die vorherige Einheit nochmal wiederholt werden. Es legt im Server fest, dass i_gold und 0eed das selbe sind. In Itemskripten sind alle alle Parameter nach diesem Format spezifiziert:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
variable=wert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Später, wenn es um Skripte geht, wird ersichtlicher, dass dieses Format sehr hilfreich ist. Items haben einige Variablen, die belegt werden können, unter anderem:&lt;br /&gt;
&lt;br /&gt;
* DEFNAME&lt;br /&gt;
* ID&lt;br /&gt;
* TYPE&lt;br /&gt;
* VALUE&lt;br /&gt;
* RESOURCES&lt;br /&gt;
Andere Variablen sind wiederum vom Wert von TYPE abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 4''': TYPE=t_gold&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Was ist t_gold?&amp;quot; Auch das ist nur ein DEFNAME. Also eine Zahl, in diesem Fall 72. In spheredefs.scp steht diese Zahl, also hätte TYPE=72 den selben Effekt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Momentan gibt es 183 eingebaute Itemtypen. Sie sind hardcoded (=fest in Sphere implementiert) und enthalten vordefinierte Verwendungszwecke für einen Gegenstand. Hat ein Gegenstand keinen Typ, dann erhält man eine &amp;quot;You cannot think of a way to use that item&amp;quot;-Nachricht, wenn man im Spiel das Item anklickt. Es gibt eine vollständige Liste von Itemtypen und wie sie genutzt werden. Der Typ t_gold hat nur einen Effekt: der Gegenstand wird behandelt wie eine Goldmünze (d.h: es können damit Dinge gekauft werden!). Andere Gegenstände den Typ t_gold zu geben würde den Server dazu veranlassen auch diese Dinge als Währung heran zu ziehen. Ich habe das nie versucht, aber es könnte eine interessanter Weg sein einzigartige Währungen zu haben ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 5''': VALUE=1&lt;br /&gt;
&lt;br /&gt;
Diese Zeile legt fest, wie viel ein Item wert ist, wenn es gekauft wird - in Gold. Natürlich ist eine Goldmünze eine Goldmünze wert, deshalb wird der Wert hier auf 1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeilen 6-8''': CATEGORY, SUBSECTION, DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
Diese Zeilen werden nur von Spheres GM-Tool, Axis, benutzt, das es unnötig macht, im Spiel &amp;quot;.add i_gold&amp;quot; einzugeben. Wichtiger noch, es übernimmt solche Aufgaben auch für Items, die keinen DEFNAME haben, sondern nur eine Nummer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 9''': DUPEITEM&lt;br /&gt;
&lt;br /&gt;
Es wäre viel Arbeit für das Sphereteam alle 8000 Items im Spiel zu definieren, vor allem, wenn viele eigentlich ein und das selbe sind. (Beispielsweise kann eine Tür mit dem Befehl .xflip gedreht werden. Dieser Befehl läuft durch alle DUPEITEMS, die für ein Item angegeben sind.) Die Liste von Nummern sind Itemnummern, die vielleicht noch nicht definiert wurden. Hier wäre das Skript für 0eee:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[ITEMDEF 0eee]&lt;br /&gt;
//gold coins&lt;br /&gt;
DUPEITEM=0eed&lt;br /&gt;
CATEGORY=Provisions - Miscellaneous&lt;br /&gt;
SUBSECTION=Coins&lt;br /&gt;
DESCRIPTION=Gold Coins&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In diesem Skript gibt es nur einen Parameter für das Item. Es verweist den Server auf das DUPEITEM, das unter 0eed (oder i_gold) angelegt wurde, um die Informationen von dort, wie TYPE und VALUE zu verwenden. DUPEITEM spart Tipparbeit, wahrscheinlich wird es selten benutzt.&lt;br /&gt;
&lt;br /&gt;
==CHARDEF==&lt;br /&gt;
Oder was es braucht, einen nackten Mann zu machen, der rumstehen und &amp;quot;Huh?&amp;quot; sagen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NPCs machen die Welt lebendig. Sie sind das, was UO zu einem einzigartigen Multiplayer Spiel macht. Die Monster und NPCs die du skriptest machen den Server einzigartig im Vergleich zu jedem anderen. Dieser Abschnitt des ersten Kapitels wird beinhalten, wie ein einfacher nackter Mann geskriptet wird, der herumwandern und ein wenig mehr als &amp;quot;Huh?&amp;quot; (oder &amp;quot;Halt Dieb!&amp;quot;, wenn man so will) sagen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als erstens sehen wir uns das SKript eines einfachen nackten Mannes an. Es befindet sich in spherechar_human.scp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[CHARDEF 0190]&lt;br /&gt;
DEFNAME=c_man&lt;br /&gt;
Name=Man&lt;br /&gt;
ICON=i_pet_MAN&lt;br /&gt;
CAN=MT_EQUIP|MT_WALK|MT_RUN|MT_USEHANDS&lt;br /&gt;
RESOURCES=i_flesh_head, i_flesh_torso, i_flesh_right_arm, i_flesh_left_arm&lt;br /&gt;
FOODTYPE=15 t_food, t_fruit&lt;br /&gt;
DESIRES=i_gold,e_notoriety&lt;br /&gt;
AVERSIONS=t_TRAP,t_eerie_stuff&lt;br /&gt;
SHELTER=r_house&lt;br /&gt;
BLOODCOLOR=0&lt;br /&gt;
&lt;br /&gt;
TSPEECH=spk_human_prime&lt;br /&gt;
TSPEECH=spk_human_default&lt;br /&gt;
TEVENTS=e_Human_HearUnk&lt;br /&gt;
DESCRIPTION=Man&lt;br /&gt;
SUBSECTION=Miscellaneous&lt;br /&gt;
CATEGORY=Civilized&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie ersichtlich sieht es sehr viel anders aus als die Skripte der vorherigen Abschnitte. Es werden eine ganze Menge an Variablen gesetzt, die gleich sind wie der DEFNAME, DESCRIPTION und die anderen Axis Variablen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aber es gibt auch eine Menge neuer Dinge hier, die der Reihe nach und Zeile für Zeile betrachtet werden! Und es ist länger diesmal! Let the good times roll! (Entschuldigung an alle Nichtamerikaner, alle amerikanischen Cliches sind vermutlich irritierend!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 1''': [CHARDEF 0190]&lt;br /&gt;
&lt;br /&gt;
Überraschung! Ein Identifier, der dem Server mitteilt, dass hier ein Charakter bis zum zum nächsten Identifier definiert wird. Und zudem wird für diesen Charakter bzw. NPC die ID 0190 gesetzt. Der Server kennt diese ID, da es eine eingebaute ist. In der Tat gehört diese ID zum nackten Mann. Des weiteren steht 0190 als hexadezimale Zahl natürlich für 400, nicht wahr? :) Warum weißt du das nicht? OK, nur ein Witz, das muss man natürlich nicht wissen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 2''': DEFNAME=c_man&lt;br /&gt;
&lt;br /&gt;
Nichts neues. c_man entspricht hiermit 0190. Die meisten DEFNAMES für Charaktere beginnen mit c und dann folgt ein _ wie oben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 3''': Name=Man&lt;br /&gt;
&lt;br /&gt;
Hier ist etwas neues. Items haben einen vorgebenen Namen, der im Server bekannt ist. Charaktere nicht. Deshalb muss ein Name zugewiesen werden. Es kann im Grunde jeder Name zugewiesen werden, den man hier haben möchte, aber da das kein spezifischer Mann ist, heißt er einfach nur Man.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 4''': ICON=i_pet_man&lt;br /&gt;
&lt;br /&gt;
Ich brauchte eine Weile, um das herauszufinden. ICON legt ein kleines Bildchen fest, das man bei benutzung des Tracking Skills sieht und diese kleinen ICONs tauchen im Menü dort auf. Eigentlich sind diese Bildchen Items. Um herauszufinden, wie dieses Bildchen aussieht, kann der Mann einfach im Spiel mit .addnpc c_man erstellt werden und dann der .shrink Befehl auf ihn angewendet werden. Die ID dieses Items wird dann zum i_pet Item.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 5''': CAN=mt_*&lt;br /&gt;
&lt;br /&gt;
(Falls * nicht bekannt ist: * heisst &amp;quot;alles mögliche&amp;quot; für diejenigen, die Linux nutzen.)&lt;br /&gt;
&lt;br /&gt;
Das ist eine der wichtigsten Zeilen im Character Skript, neben der ID die in der ersten Zeile vergeben wird. Sie lässt uns festlegen, was ein NPC tun kann und was nicht. Es gibt nur ein paar wenige Möglichkeiten für mt_*, die alle in der spheredefs.scp definiert sind. Für unsere Zwecke sind sie hier hin kopiert worden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;MT_NONMOVER        0 // We can't move at all&lt;br /&gt;
MT_GHOST          01 // We can walk through doors and such, like a ghost&lt;br /&gt;
MT_SWIM           02 // I can swim! (Water elementals, dolphins, etc)&lt;br /&gt;
MT_WALK           04 // I can move. Set this if you want your creature to move.&lt;br /&gt;
MT_FLY           010 // Moves through (supposed to be over) trees&lt;br /&gt;
MT_FIRE_IMMUNE   020 // Immune to damage by fire. Setting this on a player is bad.  :)&lt;br /&gt;
MT_EQUIP       00100 // Can equip things&lt;br /&gt;
MT_USEHANDS    00200 // Can use his hands to carry things (or open doors)&lt;br /&gt;
MT_MALE            0 // Is a male&lt;br /&gt;
MT_FEMALE      00800 // Is a female&lt;br /&gt;
MT_NONHUM      01000 // Non-human. I'm not sure what this does.&lt;br /&gt;
MT_RUN         02000 // Can move really fast!&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dieser Tabelle wird klar, dass ein NPC ohne CAN Flags ein MT_Male und MT_NONMOVER (zweimal 0) ist. Die Flags können durch ein | (Alt Gr + &amp;lt;) getrennt in einer Liste angegeben werden, so dass ein NPC mehrere solcher Flags erhalten kann. In diesem Fall erlauben wir unserem Mann, dass er etwas ausrüsten (oder anziehen), gehen, rennen und seine Hände benutzen kann. (Interessant ist, dass sogar Kreaturen ohne Hände ihre Hände nutzen können und damit bspw. Lichtquellen tragen können. Feuerelementare tun das beispielsweise, deshalb leuchten sie.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 6''': RESOURCES&lt;br /&gt;
&lt;br /&gt;
Die Resources sind etwas morbide als Bezeichnung. Vor allem für Personen, denn sie enthalten die Items, die herauskommen, wenn man im Spiel eine Leiche aufschneidet. Gruslig, hm?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 7-10''': FOODTYPE, DESIRES, AVERSIONS&lt;br /&gt;
&lt;br /&gt;
'''FOODTYPE''': Legt fest, welche Art von Essen der NPC essen würde und wenn NPC_AI_FOOD aktiviert ist, sucht der NPC nach so einem Essen wenn er hungrig wird.&lt;br /&gt;
&lt;br /&gt;
'''DESIRES''': Legt fest, welche Art von Items ihn interessieren und wenn NPC_AI_EXTRA aktiviert ist, dann wird ein NPC aus Spielerleichen diese Gegenstände holen oder, falls diese Gegenstände am Boden liegen, zu ihnen hingehen.&lt;br /&gt;
&lt;br /&gt;
'''AVERSIONS''': Das ist nicht ganz klar. Ich nehme an, dass diese Option angibt, was der NPC am liebsten angreift. Beispielsweise: Ich habe ein Pferd mit dem Event e_horse und einen Imp mit AVERSIONS=e_horse, dann würde im Falle eines Kampfs der IMP wohl vorziehen gegen das Pferd zu kämpfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zeile 11''': BLOODCOLOR&lt;br /&gt;
&lt;br /&gt;
Jemals vorgehabt den Spielern grünes Blut zu verpassen? Das geht hiermit. Eine Nummer für eine Farbe oder ein DEFNAME funktioniert hier. (Für Farben sollte man versuchen die Zahlen zu lernen, das macht es einfacher.)&lt;br /&gt;
&lt;br /&gt;
Der Rest: TSPEECH and TEVENTS &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese beiden Zeilen erhalten eigene Kapitel. Sie sind sehr komplex und mitunter die komplexesten Dinge beim Skripten! (Wie oft ich das wohl sagen werde, bis das wirklich wahr ist?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;Einige andere Dinge:&amp;lt;/font&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf 56B gibt es weitere Variablen wie MOVERATE, RESLEVEL, RESDISPDNID and RESDISPDNHUE. Sie klingen schwierig und seltsam, aber das sind sie nicht. Hier ist eine Erklärung:&lt;br /&gt;
&lt;br /&gt;
'''MOVERATE''': Diese Einstellung (die nur innerhalb eines CHARDEF Blocks sein kann) legt fest, wie schnell sich ein NPC bewegt. Je kleiner der Wert, desto schneller ist ein NPC. Beispielsweise für ein Pferd mit vorgegebener MOVERATE von 100, wäre ein anderer NPC mit MOVERATE von 60 schneller als das Pferd. Das ist ganz gut, um schwierige Monster zu skripten, die nur schwer zu erlegen sind.&lt;br /&gt;
&lt;br /&gt;
'''RESLEVEL''': Das sagt Sphere aus welcher Version von UO das Monster abstammt, Beispielsweise hat ein &amp;quot;Wanderer of the Void&amp;quot; RESLEVEL=3 (3 ist AOS) (siehe spheredefs.scp für eine Liste), so dass nur Accounts mit RESDISP 3 oder größer das Monster so sehen, wie es wirklich aussieht.&lt;br /&gt;
&lt;br /&gt;
''NOTE'': Setzt man einen zu niedrigen Wert für RESLEVEL und der Spieler hat die passende Animation nicht, führt das zum Absturz seines Clients.&lt;br /&gt;
&lt;br /&gt;
'''RESDISPDNID''': Wie wahrscheinlich bemerkt, sagte ich oft nun &amp;quot;wie er wirklich&amp;quot; ist, genau wegen dieser Einstellung. Das legt fest, wie ein Monster für einen Spieler aussieht, hat er die Animation nicht. Beispielsweise wird der Wanderer of the Void für jeden mit ACCOUNT.RESDISP=3 oder großer auch wie ein Wanderer of the Void aussehen, aber für alle anderen sieht er wie ein c_spectre aus (wenn es so eingestellt wurde).&lt;br /&gt;
&lt;br /&gt;
'''RESDISPDNHUE''': Das legt fest, welche Farbe für den Spieler das Monster hat, wenn die RESDISPDNID angezeigt wird (und sein account.resdisp kleiner als reslevel dieses Charakters ist).&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Beispiel für diese neuen Einstellungen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[CHARDEF 310]&lt;br /&gt;
DEFNAME=c_Wailing_Banshee&lt;br /&gt;
NAME=Wailing Banshee&lt;br /&gt;
SOUND=snd_monster_zombie1&lt;br /&gt;
ICON=i_pet_wailingbanshee&lt;br /&gt;
DAM=11,16&lt;br /&gt;
RESDISPDNID=c_spectre&lt;br /&gt;
RESLEVEL=3&lt;br /&gt;
RESDISPDNHUE=01&lt;br /&gt;
ARMOR=20&lt;br /&gt;
CAN=MT_WALK|MT_FLY&lt;br /&gt;
DESIRES=i_gold,e_notoriety,e_horses,c_man,c_woman,t_corpse&lt;br /&gt;
CATEGORY=New Monsters&lt;br /&gt;
SUBSECTION=AOS&lt;br /&gt;
DESCRIPTION=Wailing Banshee&lt;br /&gt;
&lt;br /&gt;
ON=@Create&lt;br /&gt;
	NPC = brain_monster&lt;br /&gt;
	FAME = {100 3000}&lt;br /&gt;
	KARMA = {-5000 -6999}&lt;br /&gt;
	STR = {126 166}&lt;br /&gt;
	INT = {86 115}&lt;br /&gt;
	DEX = {41 75}&lt;br /&gt;
	MAGICRESISTANCE = {75.0 95.0}&lt;br /&gt;
	TACTICS = {45.0 75.0}&lt;br /&gt;
	WRESTLING = {50.0 70.0}&lt;br /&gt;
&lt;br /&gt;
ON=@NpcRestock&lt;br /&gt;
	ITEM = i_gold, {50 100}&lt;br /&gt;
	ITEM = i_reag_daemon_bone, {2 6}&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und das wars. Einfache Charakterskripte und ein paar neue Dinge. Es gibt dazu noch ein spezielles Kapitel nur über das Skripten von NPCs später.&lt;br /&gt;
&lt;br /&gt;
==TEMPLATE==&lt;br /&gt;
Oder wie man eine große Menge serverbelastender Items in einen nichtserverbelastenden Container packt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeder hat sie schon gesehen. Die Shards, die keine TEMPLATEs benutzen. Wird beispielsweise ein Drache auf diesen Shards erlegt und lootet man ihn dann, dann findet man statt schön abgepackte Behälter ein paar 100 Tränke im Lootfenster verteilt. Nicht nur das, alle magischen Gegenstände sind auch noch darunter vergraben!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie wird das Problem gelöst? Sphere hat ein sehr handhabbares Werkzeug: die TEMPLATES. Sie erlauben, dass Container Items definiert werden und die Items in diesen Containern ebenfalls und zwar gleichzeitig. Das ist doch toll? I dachte es mir, als ich heraus fand, was sie sind. Deshalb wieder eine Zeile für Zeile Aufschlüsselung, diesmal mit einem TEMPLATE aus spheretemp_loot.scp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[TEMPLATE 101505]&amp;lt;br /&amp;gt;&lt;br /&gt;
DEFNAME=backpack_poor&amp;lt;br /&amp;gt;&lt;br /&gt;
CATEGORY=Item Templates&amp;lt;br /&amp;gt;&lt;br /&gt;
SUBSECTION=Loot Templates&amp;lt;br /&amp;gt;&lt;br /&gt;
DESCRIPTION=Poor Backpack&amp;lt;br /&amp;gt;&lt;br /&gt;
CONTAINER=i_backpack&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_food 1 0 3 },{ 1 3 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_bottle 1 0 8 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_light 1 0 8 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_male_tops 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
COLOR=colors_all&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_male_pants 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
COLOR=colors_all&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=POOR_GOLD_PILE&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sieht verwirrend aus. Aber kein Problem, das wird schon alles klar werden, was das bedeutet!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[TEMPLATE 101505]&amp;lt;/font&amp;gt;: Als erstes wird die Kopfzeile des templates betrachtet. Interessant an Templates ist, dass der Itemname kein DEFNAME sein kann, sondern eine sehr hohe Zahl sein muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;DEFNAME=backpack_poor&amp;lt;/font&amp;gt;: Natürlich sind die Sphere Entwickler nicht bösartig und haben deshalb hier noch die Möglichkeit eines DEFNAMEs eingeführt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;CATEGORY, SUBSECTION, DESCRIPTION&amp;lt;/font&amp;gt;: Der übliche Axiskram. Optional natürlich. In den vorherigen Abschnitten wird das genauer erklärt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;CONTAINER=i_backpack&amp;lt;/font&amp;gt;: Ok, nun gehts runter bis aufs Eingemachte. Das ist der Container, der benutzt wird und alle anderen Items landen in diesem. Wenn der Container im Spiel erstellt wird, dann sieht man ihn. In diesem Fall ist das ein Rucksack. Ganz einfach. Hier kann nur ein gültiger Container vom Typ t_container oder t_container_locked angegeben werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;ITEM={ random_food 1 0 3},{1 3}&amp;lt;/font&amp;gt; Das sieht ziemlich kryptisch aus. Deshalb wird diese Zeile ein wenig eingehender beleuchtet.&lt;br /&gt;
&lt;br /&gt;
Als erstes muss ZUFALLSAUSWAHL behandelt werden! Klingt nach Spaß, nicht? Nun ja, klingt auch für mich nicht danach, aber es ist unbedingt notwendig, um einen guten Shard zu bauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sie sind einfache grundlegende Mechanismen, um mit einem Befehl eine zufällige Zahl zu erhalten. Was wäre das schon für ein Shard, auf dem jeder getötete Drache auch eine Platemail of Magic Stuff und ein Super Duper Sword of Power liefern würde? Jeder würde damit herumlaufen, deshalb braucht es etwas Variabilität.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt zwei Arten von Zufallsauswahlen: gewichtete und bereichsweise Auswahl. Gewichtete Auswahlen funktionieren so: &amp;quot;OK, 1 mal von 10 nimm Nummer A, 3 mal von 10 nimm Nummer B und 6 mal von 10 nimm Nummer C&amp;quot;. Bereichsweise Auswahlen funktionieren so: &amp;quot;Wähle eine zufällige Zahl zwischen zwei Zahlen, die ich festlege&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unser Beispiel nutzt beides - sowohl bereichsweisen als auch gewichteten Zufall. Der Reihe nach:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{ random_food 1 0 3} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das ist eine gewichtete Auswahl. Um das richtig zu verstehen, wird der Ausdruck zwischen den Klammern in zwei Teile zerlegt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
random_food 1&lt;br /&gt;
0 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Addiert man die letzte Zahl in den beiden Zeilen, erhält man 4. Das sagt Sphere &amp;quot;OK, 1 von 4 Mal, will ich random_food und 3 von 4 Mal wähle ich 0.&amp;quot; Man kann auch Zufallsauswahlen verschachteln, aber das wird dann verwirrend.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{ { random_food 1 0 3} 1 random_clothing 1} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klar, was das heisst?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
random_clothing 1&lt;br /&gt;
{ random_food 1 0 3} 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 ist hier die magische Zahl. Einmal von 2 nimmt Sphere random_clothing und einmal von 2 nimmt Sphere den vorherigen Auswähler, der dann aus seinen eigenen Optionen eins auswählt. Wenn du jetzt schon verwirrt bist, keine Sorge. Das ist sehr selten, aber es wird sich zeigen, wie TEMPLATES diese Probleme lösen können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ich habe erwähnt, dass es noch einen weiteren Zufallswähler gibt. Und dieser ist hier:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{1 3} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Leerzeichen sind hier wichtig. Hier dürfen keine Leerzeichen zwischen { und der ersten Zahl oder } und der letzten Zahl sein. Ansonsten kommt seltsames Verhalten dabei heraus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das weist Sphere an &amp;quot;Nimm eine beliebige Zahl zwischen 1 und 3, inklusive&amp;quot;. Inklusive heißt, dass Sphere auch 1 und 3 wählen kann oder eben jede Zahl dazwischen. In diesem Fall ist der Bereich sehr beschränkt. Sphere wird eine 1, 2 oder eine 3 liefern. Bereichsweise Auswähler werden oftmals in gewichteten Auswählern benutzt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{ {1 3} 3 {4 9} 1} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Einmal aus 4, nimm eine Zahl zwischen 4 und 9. Dreimal von 4, nimm eine Zahl zwischen 1 und 3.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nachdem wir das nun hinter uns haben, sehen wir uns die Zeile des Skripts von oben an. Der Teil mit ITEM=&amp;lt;br /&amp;gt;&lt;br /&gt;
Das legt im Skript fest &amp;quot;Ok, wir werden jetzt ein Item zum Container hinzufügen&amp;quot;. Alles nach dem = legt fest, was genau das ist und in welcher Menge. Es kann natürlich geskriptete werden ITEM=i_platemail_chest oder sonst was ohne die mysteriösen { } Auswähler, aber der Grund, warum TEMPLATES so interessant sind, ist die große Variabilität, die sie bringen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;{ random_food 1 0 3}&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das ist das Item, das erstellt wird. Aus der Einheit über gewichtete Zufallsauswahlen, 1 von 4 Mal, wird das random_food sein und 3 von 4 Mal, wird das 0 sein. Wenn ein Item 0 ist, dann wird nichts erstellt. Das bedeutet: &amp;quot;Hier gibt es eine 1 zu 4 Chance, dass random_food im Container auftaucht.&amp;quot; Was random_food ist? Das ist ein weiteres TEMPLATE, das in spheretemplate.scp definiert wurde ... glaube ich.&lt;br /&gt;
&lt;br /&gt;
{1 3} Ist die Menge des Items, die erstellt wird. Das ist eine zufällige Bereichsauswhl. Sphere nimmt eine Zahl zwischen 1 und 3 und setzt dann die Menge im Container. Natürlich: ist das Item zuvor 0 geworden, dann wird auch die Menge daran nichts ändern, denn 3 mal 0 ist weiterhin 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war grundlegend das Template Skript. Hier können noch so viele Items eingefügt werden, wie man Lust hat. Ausserdem ist noch folgendes Konstrukt dann interessant:&lt;br /&gt;
&lt;br /&gt;
ITEM=i_sword_long,R11 &lt;br /&gt;
&lt;br /&gt;
Das ist eine Kurzform von: &lt;br /&gt;
&lt;br /&gt;
ITEM={ i_sword_long 1 0 10 } &lt;br /&gt;
&lt;br /&gt;
R11 bedeutet: &amp;quot;1 zu 11 Chance, dass das Item gefunden wird&amp;quot;. Und zusätzlich kann noch eine Mengenauswahl hinten angehängt werden, was es ziemlich seltsam aussehen lässt:&lt;br /&gt;
&lt;br /&gt;
ITEM=i_sword_long,R11,{4 5} &lt;br /&gt;
&lt;br /&gt;
Aber warum würde man 4 oder 5 Langschwerter haben wollen? Das wäre noch seltsamer. :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das wars von Templates. Gratulation, das erste Kapitel ist hiermit durch. Jetzt sollten die Beispiele im nächsten Abschnitt nicht schwierig zu verstehen sein. Du könntest auch einige fragen haben, die hier allerdings ohnehin nicht beantwortet werden. Einfach weiterlesen, es wird noch vieles in den folgenden Kapiteln abgehandelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''(Ein Template Beispiel von Belgar)''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[TEMPLATE tm_necromancer]&amp;lt;br /&amp;gt;&lt;br /&gt;
CONTAINER=i_bag&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_necro_scroll&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_necro_scroll&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_necro_reagent, {5 12}&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_reagent, {5 12}&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_necro_reagent, {5 12}&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
Oder ... naja, glaub es gibt kein anderes Wort für &amp;quot;Beispiele&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das soll mein Versuch sein, einfachste simpelste Items zu erstellen. Du wirst hier einige DInge in diesen Beispielen sehen, die in den Tutorials nicht behandelt wurden. Hauptsächlich gibts hier ein ON=@create das im 2. Kapitel abgehandelt wird. Für die Beispiele ist nur wichtig, dass die Farbe der Dinge im Spiel geändert werden kann und dass das unter on=@create passieren muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Beispiel 1''': Ein rotes Schwert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[ITEMDEF i_sword_red]&amp;lt;br /&amp;gt;&lt;br /&gt;
ID=i_sword_viking&amp;lt;br /&amp;gt;&lt;br /&gt;
TYPE=t_weapon_sword&amp;lt;br /&amp;gt;&lt;br /&gt;
NAME=Das rote Schwert&amp;lt;br /&amp;gt;&lt;br /&gt;
CATEGORY=Weapons&amp;lt;br /&amp;gt;&lt;br /&gt;
SUBSECTION=New Swords&amp;lt;br /&amp;gt;&lt;br /&gt;
DESCRIPTION=Red Sword&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ON=@Create&lt;br /&gt;
:COLOR=colors_red // Das ist ein Kommentar. Kommentare werden von Sphere ignoriert.&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Moment ... was heisst das // an dieser Stelle? Das ist ein Kommentar, er wird gänzlich von Sphere ignoriert, deshalb kann hier alles stehen, solange es hinter den // steht. Es gibt in Sphere keine mehrzeiligen Kommentare, solange man nicht jede Zeile mit // beginnen lässt. Deshalb sollte man das gar nicht versuchen, sonst wird Sphere viele Fehler ausgeben und man darf sie suchen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Beispiel 2''': Ein blauer Ettin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[CHARDEF c_ettin_blue]&amp;lt;br /&amp;gt;&lt;br /&gt;
ID=02 // Hier kann auch c_ettin benutzt werden natürlich.&amp;lt;br /&amp;gt;&lt;br /&gt;
NAME=Mein blauer Ettin&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
ON=@Create&amp;lt;br /&amp;gt;&lt;br /&gt;
:COLOR=02 // Das ist dunkelblau. Wird oft für Counselorroben benutzt. Merken.&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Beispiel 3''': Ein Template aus einer der Dateien, weil ich zu faul bin eins selbst zu schreiben&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[TEMPLATE 101521]&amp;lt;br /&amp;gt;&lt;br /&gt;
DEFNAME=goodie_meager_1&amp;lt;br /&amp;gt;&lt;br /&gt;
CATEGORY=Item Templates&amp;lt;br /&amp;gt;&lt;br /&gt;
SUBSECTION=Loot Templates&amp;lt;br /&amp;gt;&lt;br /&gt;
DESCRIPTION=Meager Goodie 1&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ meager_gold_pile 1 backpack_meager 1 pouch_meager 1 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_boots 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_gorget 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_staff 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_necklace 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ i_cape 1 0 9 }&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;COLOR=colors_all&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bemerkenswert ist hier etwas neues (das speziell in rot hervorgehoben ist) und ja, das kann man so schreiben. Alle Zeilen zwischen ITEM= Zeilen betreffen das zuvor erstelle Item. COLOR= bezieht sich also auf die Zeile&lt;br /&gt;
&lt;br /&gt;
ITEM={ i_cape 1 0 9 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der beste Weg diese Art von Skripten zu lernen, liegt darin, dass man die Skripte in den Dateien wie beispielsweise sphereitem_colorarm.scp und sphereitem_beers.scp liest.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Chapter_10&amp;diff=731</id>
		<title>De:Chapter 10</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Chapter_10&amp;diff=731"/>
				<updated>2010-11-27T15:23:45Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: Created page with '{{Languages|Chapter_10}}  ==Grundlagen über Strings und Zeichenketten== Dieser Abschnitt behandelt die Verarbeitung von Zeichenketten (Trennung, Vergleich, Umformung, Umkehrung,...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Chapter_10}}&lt;br /&gt;
&lt;br /&gt;
==Grundlagen über Strings und Zeichenketten==&lt;br /&gt;
Dieser Abschnitt behandelt die Verarbeitung von Zeichenketten (Trennung, Vergleich, Umformung, Umkehrung, Speicherung). Viel Spass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als erstes wird die Trennung von Zeichenketten behandelt. Die häufigste und einfachste Art nutzt Kommata (,). Die meisten Funktionen in Sphere nutzen sie als Trennzeichen und es ist einfacher als Leerzeichen zu benutzen. Auch Leerzeichen sind gültige Trennzeichen, aber werden kaum verwendet. Diese Funktion stellt dar, warum das so ist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[FUNCTION f_test]&lt;br /&gt;
SERV.LOG Arguments :: &amp;lt;ARGV&amp;gt;&lt;br /&gt;
SERV.LOG Arg. 1 :: &amp;lt;ARGV[0]&amp;gt;&lt;br /&gt;
SERV.LOG Arg. 2 :: &amp;lt;ARGV[1]&amp;gt; &lt;br /&gt;
SERV.LOG Arg. 3 :: &amp;lt;ARGV[2]&amp;gt;&lt;br /&gt;
SERV.LOG Arg. 4 :: &amp;lt;ARGV[3]&amp;gt;&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn wir nun IG &amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;.f_test Hello to all World&amp;lt;/font&amp;gt;&amp;quot; eingeben, dann sehen wir sowas in der Sphere Konsole:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;23:01:(Test.scp,2)Arguments :: 1&lt;br /&gt;
23:01:(Test.scp,3)Arg. 1 :: Hello To all World&lt;br /&gt;
23:01:(Test.scp,4)Arg. 2 :: &lt;br /&gt;
23:01:(Test.scp,5)Arg. 3 :: &lt;br /&gt;
23:01:(Test.scp,6)Arg. 4 :: &amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass nur ein Argument der Funktion erkannt wurde und es die komplette Zeichenkette war. Das ist nicht nützlich, denn später muss diese Zeichenkette mit [[#STRARG|STRARG]] oder [[#STREAT|STREAT]] zerschnitten werden. Aber wenn nun die Leerzeichen mit Kommata ersetzt werden, indem &amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;.f_test Hello,to,all,World&amp;lt;/font&amp;gt;&amp;quot; eingebenen wird:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;23:02:(Test.scp,2)Arguments :: 4&lt;br /&gt;
23:02:(Test.scp,3)Arg. 1 :: Hello&lt;br /&gt;
23:02:(Test.scp,4)Arg. 2 :: To&lt;br /&gt;
23:02:(Test.scp,5)Arg. 3 :: All&lt;br /&gt;
23:02:(Test.scp,6)Arg. 4 :: World&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Somit wurde der komplette String zertrennt. Einfach? Ja, aber das ist auch nur der Anfang.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man kann fast alles mit Zeichenketten anstellen, was man will: Vergleichen, Zerschneiden, Löschen, Verschieben, usw ... Um alle gültigen Operationen zu sehen, gibt es [[#String Functions|eine Auflistung unten]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Operationen auf Zeichenketten==&lt;br /&gt;
&lt;br /&gt;
===EXPLODE===&lt;br /&gt;
Die EXPLODE Opteration wandelt automatisch beliebige Trennzeichen in Kommata um. Das Ergebnis kann an eine Funktion übergeben werden, die dann mittels ARGV auf die Einzelteile zugreifen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Syntax von EXPLODE: &amp;lt;tt&amp;gt;EXPLODE Trennzeichen, Zeichenkette&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel verwandelt &amp;quot;-&amp;quot;- und &amp;quot;+&amp;quot;-Zeichen in Kommata und schreibt die Ausgabe in das Log der Sphere Konsole:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[FUNCTION f_explode]&lt;br /&gt;
F_EXPLODE_LOG &amp;lt;EXPLODE -+,&amp;lt;ARGS&amp;gt;&amp;gt; // Trennt den String bei - und + und übergibt das Ergebnis an F_EXPLODE_LOG&lt;br /&gt;
&lt;br /&gt;
[FUNCTION f_explode_log]&lt;br /&gt;
SERV.LOG ARGV Length = &amp;lt;ARGV&amp;gt;           // Gibt die Anzahl der Einzelteile aus&lt;br /&gt;
FOR 0 &amp;lt;EVAL (&amp;lt;ARGV&amp;gt; - 1)&amp;gt;               // Schleife über alle Einzelteile&lt;br /&gt;
	SERV.LOG ARGV[&amp;lt;LOCAL._FOR&amp;gt;] = &amp;lt;ARGV[&amp;lt;LOCAL._FOR&amp;gt;]&amp;gt;	// Ausgabe eines Einzelteils&lt;br /&gt;
ENDFOR&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===STRARG===&lt;br /&gt;
STRARG liefert das erste Wort in einer Zeichenkette. Demonstrationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[FUNCTION f_strarg]&lt;br /&gt;
SERV.LOG &amp;lt;STRARG Eins Zwei Drei&amp;gt;&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der Konsole erscheint das Wort &amp;quot;Eins&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===STREAT===&lt;br /&gt;
STREAT macht genau das Gegenteil von STRARG. Während STRARG das erste Wort in einem String liefert, löscht STREAT das erste Wort und liefert den Rest. Demonstrationbeispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[FUNCTION f_streat]&lt;br /&gt;
SERV.LOG &amp;lt;STREAT Eins Zwei Drei&amp;gt;&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der Konsole erscheint der Text &amp;quot;Zwei Drei&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===STRCMP===&lt;br /&gt;
Früher oder später müssen Zeichenketten miteinander verglichen werden. Als erstes sollte man folgendes versuchen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;IF (&amp;quot;String1&amp;quot; == &amp;quot;String2&amp;quot;)&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls du das versuchst, wird ein ziemlich hässlicher Fehler auf der Sphere Konsole auftauchen und das IF-Statement wird nicht richtig arbeiten. Der Grund dafür ist, dass IF-Statements dafür ausgelegt sind Zahlen zu vergleichen. Deshalb kann es den Vergleich zwischen zwei Zeichenketten nicht auswerten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es wird also eine Möglichkeit benötigt &amp;quot;string1&amp;quot; und &amp;quot;string2&amp;quot; auf Gleichheit zu prüfen, richtig? Deshalb gibt es STRCMP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;STRCMP(string1, string2)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bevor STRCMP benutzt wird, sollte allerdings darauf eingangen werden, dass diese Funktion nicht wirklich zwei Zeichenketten auf Gleichheit überprüft. In Wahrheit liefert STRCMP einen lexikalischen Vergleich und gibt zurück, ob eine Zeichenkette größer oder kleiner als die andere ist (nach alphabetischer Ordnung). Deshalb liefert diese Funktion drei Ergebniswerte:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| '''Rückgabewert''' || '''Bedeutung'''&lt;br /&gt;
|-&lt;br /&gt;
| -1 || string1 ist kleiner als string2&lt;br /&gt;
|-&lt;br /&gt;
|  0 || beide sind gleich&lt;br /&gt;
|-&lt;br /&gt;
|  1 || string1 ist größer als string2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man sollte die Semantik dieser Funktion im Kopf haben, denn die Funktion liefert naturgemäß &amp;quot;false&amp;quot; (= 0) innerhalb eines IF-Statements, wenn beide Zeichenketten gleich sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier ein Beispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;IF !(STRCMP(&amp;lt;SRC.NAME&amp;gt;, Klein))&lt;br /&gt;
    SRC.SAY Mein Name ist Klein!&lt;br /&gt;
ENDIF&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun könnte man noch fragen: &amp;quot;Warum muss STRCMP nicht von &amp;amp;lt; &amp;amp;gt; eingeschlossen werden?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Grund ist, dass STRCMP keine 'normale' Funktion ist. Es ist eine ''[[intrinsic function]]'', eine spezielle Funktion, die nur innerhalb von &amp;amp;lt;EVAL ...&amp;amp;gt;-Statements benutzt werden kann und anstelle von &amp;amp;lt; &amp;amp;gt; die Argumente mit ( und ) einschließt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Moment, aber STRCMP ''wird nicht'' innerhalb eines EVAL benutzt?!&amp;quot;, könnte man jetzt sagen. Aber die Eigenheit von konditionalen Statements (wie [[IF]] und [[WHILE]]) ist, dass Sphere automatisch die angebene Bedingung so behandelt, als wäre ein EVAL-Statement vorhanden. Deshalb funktioniert obiges Skript und vergleicht zwei Zeichenketten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des Weiteren ist wichtig zu wissen, dass STRCMP auch Groß- und Kleinschreibung prüft. Deshalb ist &amp;quot;STRING1&amp;quot; nicht gleich &amp;quot;string1&amp;quot;. Ein Vergleich, der Groß- und Kleinschreibung ignoriert, kann mit [[#STRCMPI|STRCMPI]] durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===STRCMPI===&lt;br /&gt;
STRCMPI vergleicht zwei Zeichenketten und ignoriert dabei Groß- und Kleinschreibung. Bis auf diesen Unterschied ist die Funktionsweise mit [[#STRCMP|STRCMP]] identisch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===STRLEN===&lt;br /&gt;
Diese Funktion liefert die Anzahl von Zeichen in einer Zeichenketten. Beispielsweise:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;LOCAL.LENGTH = &amp;lt;EVAL STRLEN(&amp;lt;ARGS&amp;gt;)&amp;gt;&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Angenommen der Inhalt von ARGS wäre &amp;quot;Hier stehen 22 Zeichen&amp;quot;. Dann ist LOCAL.LENGTH = 22.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===STRPOS===&lt;br /&gt;
STRPOS liefert die Position eines spezifischen Zeichens innerhalb einer Zeichenkette. Die Syntax dieser Funktion ist:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;STRPOS pos ch string&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| '''Parameter''' || '''Bedeutung'''&lt;br /&gt;
|-&lt;br /&gt;
| pos    || Die Startposition ab der nach ch gesucht werden soll. Das erste Zeichen steht auf Position 0.&lt;br /&gt;
|-&lt;br /&gt;
| ch     || Das zu suchende Zeichen oder der ASCII-Code des zu suchenden Zeichens.&lt;br /&gt;
|-&lt;br /&gt;
| string || Der Text, der durchsucht werden soll.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier ein paar Beispiele:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;LOCAL.POS = &amp;lt;STRPOS 0 32 Wo ist das erste Leerzeichen&amp;gt;  // Rückgabewert: 5&lt;br /&gt;
LOCAL.POS = &amp;lt;STRPOS 3 e Wo ist das erste 'e''&amp;gt;     // Rückgabewert 11&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===STRREVERSE===&lt;br /&gt;
Diese Funktion kehrt einfach die die Zeichenkette um. Beispielsweise:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;SERV.LOG &amp;lt;STRREVERSE Hallo&amp;gt;&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Zeile gibt auf der Konsole &amp;quot;alloH&amp;quot; aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===STRSUB===&lt;br /&gt;
STRSUB kann aus einer Zeichenkette eine Folge von Zeichen extrahieren. Warum das nützlich ist? Es gibt einige Gelegenheiten und sicherlich will man darauf vorbereitet sein:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[FUNCTION TestStrSub]&lt;br /&gt;
SERV.LOG &amp;lt;STRSUB 0 1 Hallo&amp;gt;&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie ersichtlich werden für STRSUB drei Parameter benötigt. Der erste ist die Startposition (beginnend bei 0). Der zweite Parameter ist die Länge und schlussendlich ist der dritte Parameter die Zeichenkette.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wird diese Funktion IG aufgerufen, dann erscheint in der Konsole das erste Zeichen ab der dritten Position. Wichtig ist, dass die erste Position bei 0 beginnt. Wird ein Teilstring ab der allerersten Position benötigt, dann sollte man 0 als ersten Parameter setzen. Der zweite Parameter gibt an, wieviele Zeichen ab der angegebenen Position zurückgegeben werden sollen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein negativer Wert als erstes Parameter weist Sphere an, am Ende der Zeichenkette zu beginnen und von dort aus rückwärts zu zählen. Hier ist ein Beispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[FUNCTION TestStrSub]&lt;br /&gt;
SERV.LOG &amp;lt;STRSUB -1 1 Hallo&amp;gt;&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei Benutzung dieser Funktion IG wird das letzte Zeichen auf der Konsole ausgegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das ist nicht zu schwierig, oder?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===STRTOLOWER===&lt;br /&gt;
Diese Funktion verwandelt alle Großbuchstaben einer Zeichenkette in Kleinbuchstaben. Ein einfaches Beispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;LOCAL.LOWER = &amp;lt;STRTOLOWER MIt ZeicHENkEtTen herUmSpIelEN ist LusTIG&amp;gt;&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Funktion liefert &amp;quot;mit zeichenketten herumspielen ist lustig&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===STRTOUPPER===&lt;br /&gt;
Diese Funktion macht das genaue Gegenteil von [[#STRTOLOWER|STRTOLOWER]]. Sie wandelt alle Kleinbuchstaben in Großbuchstaben. Das vorherige Beispiel mit STRTOUPPER:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;LOCAL.UPPER = &amp;lt;STRTOUPPER MIt ZeicHENkEtTen herUmSpIelEN ist LusTIG&amp;gt;&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Funktion liefert &amp;quot;MIT ZEICHENKETTEN HERUMSPIELEN IST LUSTIG&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===STRTRIM===&lt;br /&gt;
Diese Funktion entfernt alle Leerzeichen (echte Leerzeichen, Tabulatoren und Zeilenumbrüche) am Anfang und am Ende einer Zeichenkette.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das folgende Skript demonstriert dies:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[FUNCTION f_strtrim]&lt;br /&gt;
LOCAL.TEXT = &amp;quot;     TEST     &amp;quot;&lt;br /&gt;
SERV.LOG 1. &amp;lt;LOCAL.TEXT&amp;gt;&lt;br /&gt;
SERV.LOG 2. &amp;lt;STRTRIM &amp;lt;LOCAL.TEXT&amp;gt;&amp;gt;&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis wird auf der Konsole ausgegeben:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;1.&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;TEST&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;br /&amp;gt;&lt;br /&gt;
2.&amp;amp;nbsp;TEST&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===STRMATCH===&lt;br /&gt;
Die STRMATCH Funktion ermöglicht die Benutzung von sogenannten Wildcards (*).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Syntax dieser Funktion ist &amp;lt;tt&amp;gt;STRMATCH(pattern, string)&amp;lt;/tt&amp;gt;. Sie liefert 1, wenn der String zu pattern passt und 0 wenn nicht. Ein Beispiel hierfür:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[FUNCTION f_strmatch]&lt;br /&gt;
IF (STRMATCH(*ex*, &amp;lt;ARGS&amp;gt;))&lt;br /&gt;
	SERV.LOG ARGS enthält 'ex'!&lt;br /&gt;
ELSE&lt;br /&gt;
	SERV.LOG ARGS passt nicht.&lt;br /&gt;
ENDIF&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der Konsole kann nun &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;F_STRMATCH Mexico&amp;lt;/font&amp;gt; aufgerufen werden. Als Ergebnis wird &amp;quot;ARGS enthält 'ex'!&amp;quot; ausgegeben. Mit einigen verschiedenen Experimenten kann leicht die Funktionsweise erschlossen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
War interessant? STRMATCH ist in Wahrheit noch um einiges mächtiger als das. * ist nur ein spezielles Zeichen, das innerhalb von pattern benutzt werden kann:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Pattern''' || '''Bedeutung'''&lt;br /&gt;
|-&lt;br /&gt;
| *  || Stimmt mit einer beliebigen Anzahl von Zeichen überein - inklusive keinem.&lt;br /&gt;
|-&lt;br /&gt;
| ?  || Stimmt mit exakt einem beliebigen Zeichen überein.&lt;br /&gt;
|-&lt;br /&gt;
| [\*] || Stimmt exakt mit '*' überein.&lt;br /&gt;
|-&lt;br /&gt;
| [abcdef] || Stimmt mit irgendeinem der Zeichen der Liste überein.&lt;br /&gt;
|-&lt;br /&gt;
| [!abc]&amp;lt;br /&amp;gt;[^abc] || Stimmt mit irgendeinem Zeichen überein, der sich nicht in der Liste befindet.&lt;br /&gt;
|- &lt;br /&gt;
| [a-z] || Stimmt mit jedem Zeichen zwischen a und z überein.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das ist alles, was man über STRMATCH wissen muss. Eine letzte Anmerkung noch: pattern ignoriert Groß- und Kleinschreibung immer (beispielsweise wird das &amp;lt;tt&amp;gt;*ex*&amp;lt;/tt&amp;gt;-Beispiel auf &amp;quot;TEXT&amp;quot; auch liefern, dass ex enthalten ist).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Anmerkung:''' Manche Nutzer benutzen STRMATCH auch dafür, um die Gleichheit zweier Zeichenketten zu bestimmen. Das ist nicht der Bestimmungszweck dieser Funktion und hat einige Nachteile:&lt;br /&gt;
&lt;br /&gt;
* Sphere wird versuchen, eine Übereinstimmung nach pattern zu berechnen und dabei weniger performant sein.&lt;br /&gt;
* Wenn eines der speziellen Zeichen (bspw '*') in der ersten Zeichenkette enthalten ist, dann kann es unter umständen dazu führen, dass das Ergebnis nicht das ist, was erwartet wird (beispielsweise etwas ähnliches zu &amp;lt;tt&amp;gt;STRMATCH(&amp;lt;ARGS&amp;gt;, IRGENDEINTEXT))&amp;lt;/tt&amp;gt;, und ARGS enthält zufällig ''*INT*'').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sollen zwei Zeichenketten auf Gleichheit geprüft werden, sollten die [[#STRCMP|STRCMP]] or [[#STRCMPI|STRCMPI]] Funktionen verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===STRREGEX===&lt;br /&gt;
STRREGEX bietet weitaus mächtigere Patterns als STRMATCH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Angenommen eine Zeichenkette soll darauf geprüft werden, ob sie eine Gleitpunktzahl ist (eine Zahl mit einem Komma). Mit STRMATCH könnte folgendes versucht werden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[FUNCTION f_fpmatch]&lt;br /&gt;
IF (STRMATCH([0-9].[0-9], &amp;lt;ARGS&amp;gt;))&lt;br /&gt;
	SERV.LOG &amp;lt;ARGS&amp;gt; ist eine Gleitpunktzahl.&lt;br /&gt;
ELSE&lt;br /&gt;
	SERV.LOG &amp;lt;ARGS&amp;gt; ist keine Gleitpunktzahl.&lt;br /&gt;
ENDIF&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wird der Befehl &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;F_FPMATCH 1.0&amp;lt;/font&amp;gt; in der Konsole abgesetzt, dann wird das pattern erfolgreich erkannt, aber wird eine größere Zahl als 9.9 übergeben oder eine Zahl die mehr als nur eine Nachkommastelle hat, dann wird diese nicht erkannt. Man könnte nun mehrere &amp;quot;[0-9]&amp;quot; angeben, allerdings würde das keine Lösung für das Problem bedeuten, denn es wird immer genau auf eine feste Anzahl geprüft. Beispielsweise könnte &amp;lt;tt&amp;gt;STRMATCH([0-9][0-9][0-9].[0-9][0-9][0-9], &amp;amp;lt;ARGS&amp;amp;gt;)&amp;lt;/tt&amp;gt; benutzt werden. Dann würde 001.500 passen, aber 1.5 nicht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
STRREGEX bietet hierfür eine Lösung indem reguläre Ausdrücke benutzt werden um eine weitaus mächtigere Art der Mustererkennung zu unterstützen. In der Tat sind reguläre Ausdrücke so mächtig, dass sie für sich genommen eine eigene Sprache sind und deshalb kann innerhalb dieser Hilfe nur eine kleine Einführung geboten werden, wie reguläre Ausdrücke arbeiten. Um mehr darüber zu lernen, bietet sich eine Recherche im Web an, beispielsweise [http://www.regular-expressions.info/tutorial.html regular-expressions.info] (auf Englisch) oder [http://www.danielfett.de/internet-und-opensource,artikel,regulaere-ausdruecke Tutorial für reguläre Ausdrücke] (auf Deutsch).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um nun eine Gleitpunktzahl mit regulären Ausdrücken zu erkennen, kann folgendes Pattern verwendet werden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;^[-+]?[0-9]*\.?[0-9]+$&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls die Sprache für reguläre Ausdrücke für dich zu schwierig erscheint, dann sieht das sicherlich wie eine zufällige Ansammlung von Symbolen und Zeichen aus. Aber eigentlich ist das ein einfaches Beispiel für einen regulären Ausdrück. Glücklicherweise ist der Ausdruck sicherlich korrekt (laut Autor) und es kann in STRREGEX benutzt werden. Die obige funktion kann folgendermaßen modifiziert werden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[FUNCTION f_fpmatch]&lt;br /&gt;
IF (STRREGEX(^[-+]?[0-9]*\.?[0-9]+$, &amp;lt;ARGS&amp;gt;))&lt;br /&gt;
	SERV.LOG &amp;lt;ARGS&amp;gt; ist eine Gleitpunktzahl.&lt;br /&gt;
ELSE&lt;br /&gt;
	SERV.LOG &amp;lt;ARGS&amp;gt; ist KEINE Gleitpunkzahl.&lt;br /&gt;
ENDIF&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So kompliziert es aussieht, es funktioniert sehr gut. Beispielsweise mit folgenden Werten: &amp;quot;1.5&amp;quot;, &amp;quot;-250.002&amp;quot;, &amp;quot;50&amp;quot;, and even &amp;quot;.007&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Configuring_Sphere.ini&amp;diff=667</id>
		<title>De:Configuring Sphere.ini</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Configuring_Sphere.ini&amp;diff=667"/>
				<updated>2010-11-26T00:21:01Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: Created page with '{{Languages|Configuring Sphere.ini}} Die Sphere.ini enthält alle intern Optionen und Einstellungen des Sphere Emulators. Um den eigenen Shard zu konfigurieren, muss diese Datei ...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Configuring Sphere.ini}}&lt;br /&gt;
Die Sphere.ini enthält alle intern Optionen und Einstellungen des Sphere Emulators. Um den eigenen Shard zu konfigurieren, muss diese Datei bearbeitet werden. Es sind viele Kommentare enthalten und ist die Datei eigentlich selbsterklären, aber um häufige Fehler zu vermeiden, wird an dieser Stelle auf einige wichtige Punkte eingegangen. Hinzugefügte Erklärungen und Kommentare sind deshalb in &amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''dickem blauen Text'''&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt; verfasst worden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Manche Optionen werden benutzt, indem man die Kommentare am Zeilenanfang entfernt, wie bspw.:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls eine zusätzliche map2 benutzt werden soll, dann:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;// MAP2=2304,1600,32,2&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sollte geändert werden in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;MAP2=2304,1600,32,2&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das gilt für jede Einstellung, die genutzt werden soll (MySQL, AutoResdisp, usw.).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier nun die sphere.ini im Einzelnen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;//****************************************************************************&lt;br /&gt;
// SPHERE by : Menasoft 1997-2003&lt;br /&gt;
// www.sphereserver.com&lt;br /&gt;
// All SPHERE script files and formats are copyright Menasoft &amp;amp; Partners.&lt;br /&gt;
// This file may be freely edited for personal use, but may not be distributed&lt;br /&gt;
// in whole or in part, in any format without express written permission from&lt;br /&gt;
// Menasoft &amp;amp; Partners.  All donations and contributions&lt;br /&gt;
// become the property of Menasoft &amp;amp; Partners.&lt;br /&gt;
//****************************************************************************&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// General Information&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
[SPHERE]&lt;br /&gt;
// Name of your Sphere shard&lt;br /&gt;
ServName=MyShard&lt;br /&gt;
// The IP of your server, this will be 127.0.0.1 almost always&lt;br /&gt;
ServIP=127.0.0.1&lt;br /&gt;
// The port of your server, this is 2593 by default&lt;br /&gt;
ServPort=2593&lt;br /&gt;
&lt;br /&gt;
// Admin's contact email&lt;br /&gt;
AdminEmail=me@my.email.com&lt;br /&gt;
// Web page for this server&lt;br /&gt;
URL=www.myshard.com&lt;br /&gt;
// GMT offset, from -12 to +12 [London=0, EST=5, etc]&lt;br /&gt;
TimeZone=0&lt;br /&gt;
&lt;br /&gt;
// Official staff language&lt;br /&gt;
Lang=English&lt;br /&gt;
// Start this as a system service on Win2000, XP, NT&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Setzt man NTService hier auf 1, kann man auch nicht mehr auf die Konsole zugreifen'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;NTService=0&lt;br /&gt;
&lt;br /&gt;
// MySql configuration.&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Soll eine MySQL-Datenbank benutzt werden, dann hier auf 1 setzen'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;//MYSQL=0&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Den Server angeben, auf dem sich die Datenbank befindet, oder localhost, falls die Datenbank auf dem selben Rechner läuft'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;//MySqlHost=&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Benutzername zur gewünschten Datenbank'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;//MySqlUser=&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Passwort für den angegebenen Benutzer'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;//MySqlPassword=&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Der Name der Datenbank. _NICHT_ der Hostname, sondern den Namen der Datenbank, die man angelegt hat.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;//MySqlDatabase=&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// File Locations&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
// Directory where spheretables.scp is located, from there we will&lt;br /&gt;
// load any additional scripts&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Der Ordner, in dem die Skripte liegen, kann auch dafür genutzt werden.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''// verschiedene .exe mit den selben Skripten zu starten.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;ScpFiles=scripts/&lt;br /&gt;
&lt;br /&gt;
// Where your sphereworld.scp and spherechars.scp are located&lt;br /&gt;
WorldSave=save/&lt;br /&gt;
&lt;br /&gt;
// Where your sphereaccu.scp and sphereacct.scp is located&lt;br /&gt;
AcctFiles=accounts/&lt;br /&gt;
&lt;br /&gt;
// Where your UO installation is located. This need: map0.mul, statics0.mul,&lt;br /&gt;
//  staidx0.mul, multi.mul, multi.idx, hues.mul, tiledata.mul.&lt;br /&gt;
// Optional files: verdata.mul, mapX.mul/staticsX.mul/staidxX.mul for higher&lt;br /&gt;
//  maps support (Malas, etc).&lt;br /&gt;
//&lt;br /&gt;
// Note that if not set, sphere will scan windows registry to auto-detect it&lt;br /&gt;
//MulFiles=mul/&lt;br /&gt;
&lt;br /&gt;
// Where your log files will be saved by sphere&lt;br /&gt;
Log=logs/&lt;br /&gt;
&lt;br /&gt;
// To activate ML-sized map #0 uncomment the next line (don't forget to uncomment&lt;br /&gt;
// sphere_map0_ml.scp and sphere_map_points0_ml.scp in spheretables.scp if you want&lt;br /&gt;
// to use the default areas)&lt;br /&gt;
//Map0=7168,4096,-1,-1&lt;br /&gt;
&lt;br /&gt;
// To activate ML-sized map #1 uncomment the next line&lt;br /&gt;
//Map1=7168,4096,-1,-1&lt;br /&gt;
&lt;br /&gt;
// To enable the use of MapDif*.mul and StaDif*.mul files, set this to 1.&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Einige Patches für die Maps, die für Map0 und Map1 genutzt werden.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''// Die Insel Occlo auf Map0 ist auf Map1 Haven. Diese Option nutzt die Patches, die dafür notwendig sind.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''// Aktuelle Clientversionen benutzen diese Patches nicht mehr, da sie über eine separate Map1.mul verfügen.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;UseMapDiffs=0&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// World Save Information&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
// How often for Sphere to save your world (minutes)&lt;br /&gt;
SavePeriod=20&lt;br /&gt;
&lt;br /&gt;
// How many backup levels to keep. Each level means 7 backups done for it.&lt;br /&gt;
// So, 10*7 = 70 backup saves will be storied.&lt;br /&gt;
BackupLevels=10&lt;br /&gt;
&lt;br /&gt;
// On would save in the background quietly over a longer period of time, and not interrupt the game&lt;br /&gt;
// Off would notify &amp;quot;World save has been initiated&amp;quot; and save faster, but pause the game momentarily&lt;br /&gt;
SaveBackground=0&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// Account Management&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//Code for servers account application process&lt;br /&gt;
//  0=Closed,       // Closed. Not accepting more.&lt;br /&gt;
//  2=Free,         // Anyone can just log in and create a full account.&lt;br /&gt;
//  3=GuestAuto,    // You get to be a guest and are automatically sent email with u're new password.&lt;br /&gt;
//  4=GuestTrial,   // You get to be a guest til u're accepted for full by an Admin.&lt;br /&gt;
//  6=Unspecified,  // Not specified.&lt;br /&gt;
// To enable auto account you must set this to 2&lt;br /&gt;
AccApp=0&lt;br /&gt;
&lt;br /&gt;
// Store password hashed with MD5&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// MD5 ist eine sicherere Möglichkeit, Passwörter zu speichern. [http://de.wikipedia.org/wiki/MD5 weitere Infos]'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;Md5Passwords=0&lt;br /&gt;
&lt;br /&gt;
// local ip is assumed to be the admin&lt;br /&gt;
LocalIPAdmin=1&lt;br /&gt;
&lt;br /&gt;
// Default number of chars allowed per account (maximum value is 7)&lt;br /&gt;
MaxCharsPerAccount=5&lt;br /&gt;
&lt;br /&gt;
// Min time for a char to exist before delete allowed (in seconds)&lt;br /&gt;
MinCharDeleteTime=3*24*60&lt;br /&gt;
&lt;br /&gt;
// Max number of Guest accounts allowed&lt;br /&gt;
GuestsMax=0&lt;br /&gt;
&lt;br /&gt;
// Max login tries for account before a temporary ban (0 is disabled)&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Wie auch bei manchen Foren ist diese Funktion nützlich.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;MaxAccountLoginTries=0&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// Client Management&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
// What client protocol version used&lt;br /&gt;
// Comment out the ClientVersion line to allow any client that is supported.&lt;br /&gt;
//ClientVersion=2.0.3&lt;br /&gt;
&lt;br /&gt;
// Set this to 0 to allow login to encrypted clients&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Die offiziellen OSI-Clients nutzen Verschlüsselung.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;UseCrypt=1&lt;br /&gt;
&lt;br /&gt;
// Set this to 1 to allow login to unencrypted clients&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Mit Tools, wie [http://stud4.tuwien.ac.at/~e9425109/UO_RICE.htm UO Rice] und [http://www.uogateway.com/ UOGateway] kann die Verschlüsselung eines Clients deaktiviert werden.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;UseNoCrypt=0&lt;br /&gt;
&lt;br /&gt;
// Maximum total open connections to server&lt;br /&gt;
ClientMax=256&lt;br /&gt;
&lt;br /&gt;
// Maximum open connections to server per IP&lt;br /&gt;
ClientMaxIP=16&lt;br /&gt;
&lt;br /&gt;
// Maximum total (not-in-game) connections to server &lt;br /&gt;
ConnectingMax=32&lt;br /&gt;
&lt;br /&gt;
// Maximum total simultaneous (not-in-game) connections to server per IP&lt;br /&gt;
ConnectingMaxIp=8&lt;br /&gt;
&lt;br /&gt;
// How long logged out clients linger in seconds&lt;br /&gt;
ClientLinger=15&lt;br /&gt;
&lt;br /&gt;
// Walk limiting code: buffer size (in tenths of second)&lt;br /&gt;
WalkBuffer=75&lt;br /&gt;
&lt;br /&gt;
// Walk limiting code: regen speed (%)&lt;br /&gt;
WalkRegen=25&lt;br /&gt;
&lt;br /&gt;
// Only commands issued by this plevel and higher will be logged&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Mit 0 wird JEDER Befehl im Spiel geloggt.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;CommandLog=0&lt;br /&gt;
&lt;br /&gt;
// Prefix for ingame commands&lt;br /&gt;
CommandPrefix=.&lt;br /&gt;
&lt;br /&gt;
// Function to call if client is executing a command to override the default.&lt;br /&gt;
//CommandTrigger=f_oncommand&lt;br /&gt;
&lt;br /&gt;
// Use the built in http server&lt;br /&gt;
// 0 - disable http server and webpage generation&lt;br /&gt;
// 1 - disable http server and enable webpage generation&lt;br /&gt;
// 2 - enable http server and webpage generation (default)&lt;br /&gt;
UseHttp=2&lt;br /&gt;
&lt;br /&gt;
// Use the OSI AuthID to avoid possible hijack to game server.&lt;br /&gt;
UseAuthID=0&lt;br /&gt;
&lt;br /&gt;
// Default setting for all accounts specifying default resdisp.&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// 0=Vor-T2A, 1=T2A, 2=LBR, 3=AoS, 4=SE, 5=ML'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;//AutoResDisp=1&lt;br /&gt;
&lt;br /&gt;
// Default setting for new accounts specifying default priv level&lt;br /&gt;
//AutoPrivFlags=010&lt;br /&gt;
&lt;br /&gt;
// Max tooltip (if enabled) to send on each tick (to avoid client flooding)&lt;br /&gt;
//MaxTooltipForTick=7&lt;br /&gt;
&lt;br /&gt;
// How often send my hits updates to visible clients (in seconds)&lt;br /&gt;
//HitsUpdateRate=1&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// Game Mechanics&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
// Maximum distance to hear char whispering&lt;br /&gt;
//DistanceWhisper=3&lt;br /&gt;
&lt;br /&gt;
// Maximum distance to hear char talking&lt;br /&gt;
//DistanceTalk=18&lt;br /&gt;
&lt;br /&gt;
// Maximum distance to hear char yelling&lt;br /&gt;
//DistanceYell=31&lt;br /&gt;
&lt;br /&gt;
// Do not allow entering under roof being on horse?&lt;br /&gt;
MountHeight=0&lt;br /&gt;
&lt;br /&gt;
// Archery does not work if too close (0 = not checked)&lt;br /&gt;
ArcheryMinDist=2&lt;br /&gt;
&lt;br /&gt;
// Maximum Distance for Archery&lt;br /&gt;
ArcheryMaxDist=15&lt;br /&gt;
&lt;br /&gt;
// Speed scale factor for weapons&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Die Formel lautet: DELAY = SPEEDSCALEFACTOR / ((DEX + 100) * SPEED)'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;SpeedScaleFactor=15000&lt;br /&gt;
&lt;br /&gt;
// This is the percent of max weight at which stamina is lost half the time&lt;br /&gt;
// (200 = no effect)&lt;br /&gt;
StaminaLossAtWeight=150&lt;br /&gt;
&lt;br /&gt;
// Weight penalty for running +N% of max carry weight (0 = no effect)&lt;br /&gt;
RunningPenalty=50&lt;br /&gt;
&lt;br /&gt;
// Show people joining/leaving the server. 0 disables, 2 enables staff only.&lt;br /&gt;
ArriveDepartMsg=1&lt;br /&gt;
&lt;br /&gt;
// Are house and boat keys newbied automatically&lt;br /&gt;
AutoNewbieKeys=1&lt;br /&gt;
&lt;br /&gt;
// Maximum number of items allowed in bank&lt;br /&gt;
BankMaxItems=1000&lt;br /&gt;
&lt;br /&gt;
// Maximum weight in stones allowed in bank&lt;br /&gt;
BankMaxWeight=1000&lt;br /&gt;
&lt;br /&gt;
// If 1 vendors will take gold only from backpack&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Wenn hier 0 eingetragen ist, nehmen NPC-Vendoren Geld von Spielern aus dem Rucksack und der Bank.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;PayFromPackOnly=0&lt;br /&gt;
&lt;br /&gt;
// Disable weather effects?&lt;br /&gt;
NoWeather=1&lt;br /&gt;
&lt;br /&gt;
// Default light level in dungeons&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// 0 = Hell; 30 = Dunkel.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;DungeonLight=27&lt;br /&gt;
&lt;br /&gt;
// Day light level 0-30&lt;br /&gt;
LightDay=0&lt;br /&gt;
&lt;br /&gt;
// Night light level 0-30&lt;br /&gt;
LightNight=25&lt;br /&gt;
&lt;br /&gt;
// Allow manual sector light override?&lt;br /&gt;
//AllowLightOverride=1&lt;br /&gt;
&lt;br /&gt;
// Wool Regen Time (in minutes)&lt;br /&gt;
WoolGrowthTime=30&lt;br /&gt;
&lt;br /&gt;
// Suppress player speech with 75% of capital letters&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// &amp;quot;LETZ AVOID L337 SP33CH DEWD.&amp;quot; Wird nicht angezeigt.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;SuppressCapitals=0&lt;br /&gt;
&lt;br /&gt;
// Extra combat flags to control the fight (default:0, 0.55i compatible)&lt;br /&gt;
// COMBAT_NODIRCHANGE              00001 // Not rotate player when fighting (like was in 0.51a)&lt;br /&gt;
// COMBAT_FACECOMBAT               00002 // Allow faced combat only (recommended)&lt;br /&gt;
// COMBAT_PREHIT                   00004 // allow prehit for close combat. first hit is instant (delay 0.1sec)&lt;br /&gt;
// COMBAT_USE_RESISTANCE           00008 // use character props RES* against oldfashioned damage types&lt;br /&gt;
// COMBAT_SPECIALDAMAGE            00010 // use character tags TAG.*DAMAGE to apply additional damage&lt;br /&gt;
// COMBAT_DCLICKSELF_UNMOUNTS      00020 // unmount horse when dclicking self while in warmode&lt;br /&gt;
// COMBAT_ALLOWHITFROMSHIP         00040 // Allow attacking opponents from ships&lt;br /&gt;
// COMBAT_OSIDAMAGEMOD             00080 // modify weapon damage OSI-style (taking anatomy, tactics, lumberjacking into account)&lt;br /&gt;
// COMBAT_ARCHERYCANMOVE           00100 // firing bow while moving&lt;br /&gt;
// COMBAT_STAYINRANGE              00200 // abort attack swing when out of range instead of waiting to come back in range&lt;br /&gt;
//&lt;br /&gt;
// COMBAT_STACKARMOR               01000 // If a region is covered by more than one armor part, all AR will count&lt;br /&gt;
// COMBAT_TARGETTEDHIT             02000 // Allows setting of preferred hit area by TAG.HITPREFERENCE&lt;br /&gt;
//CombatFlags=0&lt;br /&gt;
&lt;br /&gt;
// Extra magic flags to control magic/magery behaviour (default:0, 0.55i compatible)&lt;br /&gt;
// MAGICF_NODIRCHANGE        = 0x0000001 // Not rotate player when casting/targeting&lt;br /&gt;
// MAGICF_PRECAST            = 0x0000002 // Precasting (cast spell before target prompt)&lt;br /&gt;
// MAGICF_IGNOREAR           = 0x0000004 // Magic damage ignore ar&lt;br /&gt;
// MAGICF_CANHARMSELF        = 0x0000008 // Magic can do damage on self&lt;br /&gt;
// MAGICF_STACKSTATS         = 0x0000010 // Different stat spells don't cancel each other out&lt;br /&gt;
// MAGICF_FREEZEONCAST       = 0x0000020 // No movement whilst casting&lt;br /&gt;
// MAGICF_SUMMONWALKCHECK    = 0x0000040 // Summoned creatures should be able to walk on the target location (e.g. water creatures to be summoned on water)&lt;br /&gt;
// MAGICF_NOFIELDSOVERWALLS  = 0x0000080 // Field spells cannot cross over blocking objects&lt;br /&gt;
//MagicFlags=0&lt;br /&gt;
&lt;br /&gt;
// Length of time (in seconds) for a player to choose a target when casting (0 = no timeout)&lt;br /&gt;
SpellTimeout=0&lt;br /&gt;
&lt;br /&gt;
// Zero point for sextant coordinates counting&lt;br /&gt;
//ZeroPoint=1323,1624,0&lt;br /&gt;
&lt;br /&gt;
// How far from land i can be to take off a ship&lt;br /&gt;
//MaxShipPlankTeleport=18&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// NPC/Item/Player Management&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
// Distance in tiles before an NPC that's wandered too far from it's home will teleport back&lt;br /&gt;
LostNPCTeleport=50&lt;br /&gt;
&lt;br /&gt;
// Whether PCs get a resurrection robe when they get resurrected.&lt;br /&gt;
NoResRobe=0&lt;br /&gt;
&lt;br /&gt;
// Time for a NPC corpse to decay mins&lt;br /&gt;
CorpseNPCDecay=10&lt;br /&gt;
&lt;br /&gt;
// Time for a player corpse to decay mins&lt;br /&gt;
CorpsePlayerDecay=15&lt;br /&gt;
&lt;br /&gt;
// Base decay time in minutes for items&lt;br /&gt;
DecayTimer=30&lt;br /&gt;
&lt;br /&gt;
// Put [NPC] tags over chars&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Und [TAME] falls die Spielfigur gezähmt wurde.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;CharTags=0&lt;br /&gt;
&lt;br /&gt;
// Flip dropped items&lt;br /&gt;
FlipDroppedItems=0&lt;br /&gt;
&lt;br /&gt;
// Set to 1 to allow players to take equipment from their pets' paperdoll&lt;br /&gt;
CanUndressPets=1&lt;br /&gt;
&lt;br /&gt;
// Monsters run when scared of death&lt;br /&gt;
MonsterFear=0&lt;br /&gt;
&lt;br /&gt;
// Monsters may fight each other&lt;br /&gt;
MonsterFight=0&lt;br /&gt;
&lt;br /&gt;
// Percent setting of the all NPC move rate, default 100&lt;br /&gt;
MoveRate=100&lt;br /&gt;
&lt;br /&gt;
// Do players receive sounds&lt;br /&gt;
GenericSounds=1&lt;br /&gt;
&lt;br /&gt;
// Max number of items to sell to one person at once&lt;br /&gt;
VendorMaxSell=255&lt;br /&gt;
&lt;br /&gt;
// Max level npc trainers can go&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Für alle Skills gilt: 300 = 30.0'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;NPCTrainMax=300&lt;br /&gt;
&lt;br /&gt;
// Percent of own ability npcs can train to&lt;br /&gt;
NPCTrainPercent=30&lt;br /&gt;
&lt;br /&gt;
// NPC will not be addressed as &amp;quot;Lord&amp;quot; or such if this is set&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Verhindert Doppeltitel wie: Lord Lord Knight'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;// NPCNoFameTitle=0&lt;br /&gt;
&lt;br /&gt;
// Max level of skill trainable on dummies, archery butte ecc..&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Für alle Skills gilt: 300 = 30.0'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;SkillPracticeMax=300&lt;br /&gt;
&lt;br /&gt;
// Max skill player's will start with on skills they haven't chosen during&lt;br /&gt;
// character creation&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Wenn auf 0 gesetezt, dann starten Spieler ausschließlich mit den Skills, die sie am Anfang wählten.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;MaxBaseSkill=200&lt;br /&gt;
&lt;br /&gt;
// If set to 0, the MaxBaseSkill will only apply to skills that the client&lt;br /&gt;
// can see in their menu (based on Feature* settings, ResDisp and Client&lt;br /&gt;
// Version). If this is set to 1 then players to start with all the skills&lt;br /&gt;
// that have been defined.&lt;br /&gt;
InitHiddenSkills=0&lt;br /&gt;
&lt;br /&gt;
// Time in seconds for hitpoint regeneration&lt;br /&gt;
Regen0=40&lt;br /&gt;
&lt;br /&gt;
// Time in seconds for mana regeneration&lt;br /&gt;
Regen1=20&lt;br /&gt;
&lt;br /&gt;
// Time in seconds for stamina regeneration&lt;br /&gt;
Regen2=10&lt;br /&gt;
&lt;br /&gt;
// Time in minutes for food regeneration&lt;br /&gt;
// 1*60*24 = 1 day of real life time&lt;br /&gt;
Regen3=1*60*24&lt;br /&gt;
&lt;br /&gt;
// Speech block associated to players&lt;br /&gt;
SpeechSelf=spk_player&lt;br /&gt;
&lt;br /&gt;
// Speech block associated to pets&lt;br /&gt;
SpeechPet=spk_pet&lt;br /&gt;
&lt;br /&gt;
//Events related to all NPCs&lt;br /&gt;
//EventsPet=your_event&lt;br /&gt;
&lt;br /&gt;
//Events related to all players&lt;br /&gt;
//EventsPlayer=your_event&lt;br /&gt;
&lt;br /&gt;
//Events related to all regions&lt;br /&gt;
//EventsRegion=your_event&lt;br /&gt;
&lt;br /&gt;
// When player skills/stats goes this times more than skillclass allowed, drop&lt;br /&gt;
// them to skillclass level. Setting this to 0 disables the action.&lt;br /&gt;
OverSkillMultiply=2&lt;br /&gt;
&lt;br /&gt;
// NPC AI settings&lt;br /&gt;
// NPC_AI_PATH                  0001    NPC pathfinding&lt;br /&gt;
// NPC_AI_FOOD                  0002    NPC food search (objects + grass)&lt;br /&gt;
// NPC_AI_EXTRA                 0004    NPC magics, etc&lt;br /&gt;
// NPC_AI_ALWAYSINT             0008    Always be as smart as possible with pathfinding&lt;br /&gt;
// NPC_AI_INTFOOD               0010    NPC food search (more intelligent and trusworthy)&lt;br /&gt;
// NPC_AI_COMBAT                0040    Look for friends in combat&lt;br /&gt;
// NPC_AI_VEND_TIME             0080    vendors closing their shops at nighttime&lt;br /&gt;
// NPC_AI_LOOTING               0100    loot corpses an the way&lt;br /&gt;
// NPC_AI_MOVEOBSTACLES         0200    if moveable items block my way, try to move them&lt;br /&gt;
//NPCAI=0&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// Crime/Murder/Karma/Fame/Guard Settings&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
// Karma when player goes from good to neutral (from -10000 to 10000)&lt;br /&gt;
PlayerNeutral=-2000&lt;br /&gt;
&lt;br /&gt;
// How many minutes are criminals flagged for&lt;br /&gt;
CriminalTimer=3&lt;br /&gt;
&lt;br /&gt;
// Times a player can snoop before becoming a criminal&lt;br /&gt;
SnoopCriminal=20&lt;br /&gt;
&lt;br /&gt;
// Seconds time to decay a murder count (default 8*60*60 is 8 hours)&lt;br /&gt;
MurderDecayTime=8*60*60&lt;br /&gt;
&lt;br /&gt;
// Amount of murders before we get title&lt;br /&gt;
MurderMinCount=1&lt;br /&gt;
&lt;br /&gt;
// Looting or carving a blue player is a crime&lt;br /&gt;
LootingIsaCrime=1&lt;br /&gt;
&lt;br /&gt;
// Flag players criminal for helping criminals?&lt;br /&gt;
HelpingCriminalsIsaCrime=1&lt;br /&gt;
&lt;br /&gt;
// How long do guards linger about in minutes&lt;br /&gt;
GuardLinger=3&lt;br /&gt;
&lt;br /&gt;
// Will guards kill instantly or follow normal combat rules&lt;br /&gt;
GuardsInstantKill=1&lt;br /&gt;
&lt;br /&gt;
// Limits the MAXHITS/MAXMANA/MAXSTAM changes&lt;br /&gt;
// STAT_FLAG_NORMAL     0x00 // MAX* status allowed (default)&lt;br /&gt;
// STAT_FLAG_DENYMAX    0x01 // MAX* denied&lt;br /&gt;
// STAT_FLAG_DENYMAXP   0x02 //             .. for players&lt;br /&gt;
// STAT_FLAG_DENYMAXN   0x04 //             .. for npcs&lt;br /&gt;
StatsFlags=0&lt;br /&gt;
&lt;br /&gt;
// Uses the new LoS algorithm&lt;br /&gt;
// ADVANCEDLOS_DISABLED   0x00 // Disabled, use the old method&lt;br /&gt;
// ADVANCEDLOS_PLAYER     0x01 // Enabled only for players&lt;br /&gt;
// ADVANCEDLOS_NPC        0x02 // Enabled only for NPCs&lt;br /&gt;
AdvancedLos=0&lt;br /&gt;
&lt;br /&gt;
// Default color settings for characters (name, speech)&lt;br /&gt;
//ColorNotoGood=063       // blue&lt;br /&gt;
//ColorNotoGuildSame=044  // green (ally)&lt;br /&gt;
//ColorNotoCriminal=03b2  // grey (criminal)&lt;br /&gt;
//ColorNotoNeutral=03b2   // grey (can be attacked)&lt;br /&gt;
//ColorNotoEvil=026       // red&lt;br /&gt;
//ColorNotoGuildWar=02b   // orange (enemy guild)&lt;br /&gt;
//ColorNotoDefault=03b2   // grey (if not any other)&lt;br /&gt;
&lt;br /&gt;
// Which notoriety flags do pets inherit from their masters? (default 0)&lt;br /&gt;
// Set flags to indicate which notoriety statuses a pet can inherit from its owner.&lt;br /&gt;
//  NotoGood      = 0x01  // blue&lt;br /&gt;
//  NotoGuildSame = 0x02  // green (ally)&lt;br /&gt;
//  NotoNeutral   = 0x04  // grey (can be attacked)&lt;br /&gt;
//  NotoCriminal  = 0x08  // grey (criminal)&lt;br /&gt;
//  NotoGuildWar  = 0x10  // orange (enemy guild)&lt;br /&gt;
//  NotoEvil      = 0x20  // red&lt;br /&gt;
// e.g. &amp;quot;03a&amp;quot; will show pets as criminal/warring/evil/allied when their master has&lt;br /&gt;
//      one of these statuses, regardless of the pet's true notoriety.&lt;br /&gt;
PetsInheritNotoriety=0&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// Server Mechanics&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
// Experimental flags&lt;br /&gt;
// Flags for options that affect server behaviour and which might affect compatibility&lt;br /&gt;
// See the revisions.txt file for more details on this&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;// EF_DiagonalWalkCheck         = 00000001&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_UNICODE                   = 00000002 // No on Linux. &amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''Aktiviert UNIODE Korrekturen.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// EF_New_Triggers              = 00000008 &amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Aktiviert neue Trigger'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// EF_Intrinsic_Locals          = 00000020 &amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Lokale Variablen können direkt referenziert werden, bspw. statt lt;LOCAL.X&amp;amp;gt; kann &amp;amp;lt;X&amp;amp;gt; genutzt werden.&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// EF_Item_Strict_Comparison    = 00000040&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_NewPositionChecks         = 00000080 // Do not set while server is running !!!&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_WalkCheck                 = 00000100 &amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Korrektur für Walkchecks und gegen Hauseinbrecher.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// EF_AllowTelnetPacketFilter   = 00000200 // Enables packet filtering for telnet connections as well&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Script_Profiler           = 00000400&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Size_Optimise             = 00000800&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Minimize_Triggers         = 00001000 // Minimize trigger calls (use only 0.51 triggers)&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_DamageTools               = 00002000 // damage tools (and fire @damage on them) while mining or lumberjacking&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_PetSlots			= 00004000 // INCOMPLETE YET! DO NOT USE until this warning is removed!&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_UsePingServer             = 00008000 // Enable the experimental Ping Server (for showing pings on the server list, uses UDP port 12000)&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_NPCAct_Triggers           = 00010000 // Enable @NPCSpecialAction and @NPCAction triggers (mutual exclusive with EF_Minimize_Triggers)&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_UseNetworkMultiVersion    = 00400000 // Modify EF_UseNetworkMulti so clients prior to 4.0.0 are unaffected (try this if you find EF_UseNetworkMulti negatively affects older clients). - Do not set while server is running !!!&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_UseNetworkMulti           = 00800000 // Enable optimized network routines (better) - Do not set while server is running !!!&amp;lt;br /&amp;gt;&lt;br /&gt;
// EF_Specific                  = 01000000 // Specific behaviour, not completly tested&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;Experimental=00000&lt;br /&gt;
&lt;br /&gt;
// Option flags &lt;br /&gt;
// Flags for options that affect server behaviour but not compatibility&lt;br /&gt;
// See the revisions.txt file for more details on this&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;// OF_Command_Sysmsgs           = 00000008 //Shows status of hearall, allshow, allmove... commands after toggling them&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_OSIMultiSight             = 00000020&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Items_AutoName            = 00000040&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_FileCommands              = 00000080 &amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Aktiviert die FILE Befehle, [[File| hier]] gibt es dazu weitere Informationen.'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// OF_NoItemNaming              = 00000100 &amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Wenn aktiviert, dann gibt es keine Benennung für Gegenstände ala &amp;quot;Crafted by...&amp;quot;'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
// OF_NoHouseMuteSpeech         = 00000200&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Flood_Protection          = 00001000&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Buffs                     = 00002000&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_NoPrefix                  = 00004000 // Add prefix &amp;quot;A&amp;quot; and &amp;quot;An&amp;quot; to itemnames or not&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_DyeType                   = 00008000 // if set allows using i_dye on all t_dye_vat instead of only i_dye_tub&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_DrinkIsFood               = 00010000 // type T_DRINK will increase FOOD lvl like T_FOOD&amp;lt;br /&amp;gt;&lt;br /&gt;
// OF_Specific                  = 01000000 // Specific behaviour, not completly tested&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;OptionFlags=08|0200&lt;br /&gt;
&lt;br /&gt;
// FeatureT2A, used to control T2A expansion features ( default 03 )&lt;br /&gt;
// FEATURE_T2A_UPDATE           01 // Monster and Lost lands&lt;br /&gt;
// FEATURE_T2A_CHAT             02 // In game chat&lt;br /&gt;
FeatureT2A = 03&lt;br /&gt;
&lt;br /&gt;
// FeatureLBR, used to control LBR expansion features ( default 0 )&lt;br /&gt;
// FEATURE_LBR_UPDATE           01 // Lbr Monsters&lt;br /&gt;
// FEATURE_LBR_SOUND            02 // MP3 instead of MIDI&lt;br /&gt;
FeatureLBR = 0&lt;br /&gt;
&lt;br /&gt;
// FeatureAOS, used to control AOS expansion features ( default 0 )&lt;br /&gt;
// FEATURE_AOS_UPDATE_A         01 // AOS Monsters, Map&lt;br /&gt;
// FEATURE_AOS_UPDATE_B         02 // Tooltip, Fightbook, Necro/paladin on creation, Single/Six char selection screen, Skills, Newer spellbook support&lt;br /&gt;
// FEATURE_AOS_POPUP            04 // PopUp Menus&lt;br /&gt;
// FEATURE_AOS_DAMAGE           08&lt;br /&gt;
FeatureAOS = 0&lt;br /&gt;
&lt;br /&gt;
// FeatureSE, used to control SE expansion features ( default 0 )&lt;br /&gt;
// FEATURE_SE_UPDATE            01 // Basic SE features&lt;br /&gt;
// FEATURE_SE_NINJASAM          02 // Ninja and Samurai&lt;br /&gt;
FeatureSE = 0&lt;br /&gt;
&lt;br /&gt;
// FeatureML, used to control ML expansion features ( default 0 )&lt;br /&gt;
// FEATURE_ML_UPDATE            01 // Basic ML features&lt;br /&gt;
// FEATURE_ML_NINTHAGE          02 // Unlocks ninth age house designer items&lt;br /&gt;
FeatureML = 0&lt;br /&gt;
&lt;br /&gt;
// FeatureKR, used to control KR expansion features ( default 0 ) (still not complete but usable)&lt;br /&gt;
// FEATURE_KR_UPDATE            01 // Basic KR features&lt;br /&gt;
FeatureKR = 0&lt;br /&gt;
&lt;br /&gt;
// In game effects to turn on and off&lt;br /&gt;
// Messages echoed to the server console while in debug mode&lt;br /&gt;
// DEBUGF_NPC_EMOTE     = 00001&lt;br /&gt;
// DEBUGF_ADVANCE_STATS = 00002&lt;br /&gt;
// DEBUGF_WALKCODES     = 00080 // try the new walk code checking stuff&lt;br /&gt;
// DEBUGF_EXP           = 00200 // experience gain/loss&lt;br /&gt;
// DEBUGF_LEVEL         = 00400 // experience level changes&lt;br /&gt;
// DEBUGF_SCRIPTS       = 00800 // debug flag for scripts&lt;br /&gt;
// DEBUGF_LOS           = 01000 // debug flag for AdvancedLOS&lt;br /&gt;
// DEBUGF_WALK          = 02000 // debug flag for new walking check stuff&lt;br /&gt;
//DebugFlags=00&lt;br /&gt;
&lt;br /&gt;
// Allow rapid Buy/Sell through Buy/Sell agent&lt;br /&gt;
AllowBuySellAgent=0&lt;br /&gt;
&lt;br /&gt;
// Console Hears all that is said on the server&lt;br /&gt;
HearAll=1&lt;br /&gt;
&lt;br /&gt;
// Secure mode attempts to ignore errors, protect from accidently shutdowns&lt;br /&gt;
Secure=1&lt;br /&gt;
&lt;br /&gt;
// Value from 1 to 32, set sectors inactive when unused to conserve resources&lt;br /&gt;
SectorSleep=10&lt;br /&gt;
&lt;br /&gt;
// Disconnect inactive socket in x min&lt;br /&gt;
DeadSocketTime=5&lt;br /&gt;
&lt;br /&gt;
// Always force a full garbage collection on save&lt;br /&gt;
ForceGarbageCollect=1&lt;br /&gt;
&lt;br /&gt;
// Time before restarting when server appears hung (in seconds)&lt;br /&gt;
FreezeRestartTime=60&lt;br /&gt;
&lt;br /&gt;
// Length of the game world minute in real world in seconds&lt;br /&gt;
GameMinuteLength=60&lt;br /&gt;
&lt;br /&gt;
// Bit Mask of the subjects you want to log when logging is on&lt;br /&gt;
// LOGM_ACCOUNTS        0x00080&lt;br /&gt;
// LOGM_SAVE            0x00200 // world save status.&lt;br /&gt;
// LOGM_CLIENTS_LOG     0x00400 // all clients as they log in and out.&lt;br /&gt;
// LOGM_GM_PAGE         0x00800 // player gm pages.&lt;br /&gt;
// LOGM_PLAYER_SPEAK    0x01000 // All that the players say.&lt;br /&gt;
// LOGM_GM_CMDS         0x02000 // Log all GM commands.&lt;br /&gt;
// LOGM_CHEAT           0x04000 // Probably an exploit !&lt;br /&gt;
// LOGM_KILLS           0x08000 // Log player combat results.&lt;br /&gt;
// LOGM_HTTP            0x10000&lt;br /&gt;
//                      0x1ffff // log everything&lt;br /&gt;
LogMask=01ec80&lt;br /&gt;
&lt;br /&gt;
// Amount of time to keep map data cached in sec&lt;br /&gt;
MapCacheTime=120&lt;br /&gt;
&lt;br /&gt;
// Max NPC chars for a sector to prevent lag&lt;br /&gt;
MaxComplexity=32&lt;br /&gt;
&lt;br /&gt;
// Amount of items in one tile so start showing &amp;quot;too many items here&amp;quot;&lt;br /&gt;
MaxItemComplexity=25&lt;br /&gt;
&lt;br /&gt;
// Amount of items in one sector to start showing &amp;quot;x items too complex&amp;quot;&lt;br /&gt;
MaxSectorComplexity=1024&lt;br /&gt;
&lt;br /&gt;
// Limit the number of cycles the while/for loop can proceed. Setting this to&lt;br /&gt;
// zero disables the limitation&lt;br /&gt;
MaxLoopTimes=0&lt;br /&gt;
&lt;br /&gt;
// Amount of minutes to call f_onserver_timer (0 disables this, default)&lt;br /&gt;
TimerCall=0&lt;br /&gt;
&lt;br /&gt;
// Should sphere record the time it takes to do actions like treating npcs, scripts, clients and such?&lt;br /&gt;
// Can be viewed by right clicking the mouse on sphere screen.&lt;br /&gt;
Profile=0&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// Magic/Effects Settings&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
// Allow casting while equipped&lt;br /&gt;
EquippedCast=1&lt;br /&gt;
&lt;br /&gt;
// Words of power for player using magic&lt;br /&gt;
WOPPlayer=1&lt;br /&gt;
&lt;br /&gt;
// Words of power for staff using magic&lt;br /&gt;
WOPStaff=0&lt;br /&gt;
&lt;br /&gt;
// Words of power font&lt;br /&gt;
//WOPFont=3&lt;br /&gt;
&lt;br /&gt;
// Words of power color&lt;br /&gt;
//WOPColor=03B2&lt;br /&gt;
&lt;br /&gt;
// Reagents lost if magic fails&lt;br /&gt;
ReagentLossFail=0&lt;br /&gt;
&lt;br /&gt;
// Magic requires reagents&lt;br /&gt;
ReagentsRequired=0&lt;br /&gt;
&lt;br /&gt;
// What % of hitpoints players will resurrect with. Note, that if you set this&lt;br /&gt;
// too low, people with little STR will have problems resurrecting.&lt;br /&gt;
HitPointPercentOnRez=33&lt;br /&gt;
&lt;br /&gt;
// How many % of hits will the character loose when starving. 0 disables&lt;br /&gt;
//HitsHungerLoss=0&lt;br /&gt;
&lt;br /&gt;
// Amount of skill of lock picking needed to unlock a magically locked door&lt;br /&gt;
MagicUnlockDoor=900&lt;br /&gt;
&lt;br /&gt;
// Teleport effect for GMs and players. Setting 0 disables the effect&lt;br /&gt;
TeleportEffectNPC=0372a&lt;br /&gt;
TeleportEffectPlayers=0372a&lt;br /&gt;
TeleportEffectStaff=03709&lt;br /&gt;
TeleportSoundNPC=01fe&lt;br /&gt;
TeleportSoundPlayers=01fe&lt;br /&gt;
TeleportSoundStaff=01f3&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// Experience and Level system&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
// Enable experience system&lt;br /&gt;
//ExperienceSystem=0&lt;br /&gt;
&lt;br /&gt;
// Experience system settings:&lt;br /&gt;
//  0001    gain experience in combat&lt;br /&gt;
//  0002    gain experience in crafts&lt;br /&gt;
//  0004    allow experience to go down&lt;br /&gt;
//  0008    limit experience decrease by a range witheen a current level&lt;br /&gt;
//  0010    auto-init EXP/LEVEL for NPCs if not set in @Create&lt;br /&gt;
//  0020    allow trigger @ExpChange&lt;br /&gt;
//  0040    allow trigger @ExpLevelChange&lt;br /&gt;
//ExperienceMode=0&lt;br /&gt;
&lt;br /&gt;
// If combat experience gain is allowed, use these percents for gaining exp in&lt;br /&gt;
// Player versus Monster and Player versus Player combats. Value 0 disables gain.&lt;br /&gt;
//ExperienceKoefPVM=100&lt;br /&gt;
//ExperienceKoefPVP=100&lt;br /&gt;
&lt;br /&gt;
// Enable levels system (as a part of experience system)&lt;br /&gt;
//LevelSystem=0&lt;br /&gt;
&lt;br /&gt;
// Level system settings:&lt;br /&gt;
//  linear = 0  (each NextLevelAt exp will give a level up)&lt;br /&gt;
//  double = 1  (you need (NextLevelAt * (level+1)) to get a level up)&lt;br /&gt;
//LevelMode=1&lt;br /&gt;
&lt;br /&gt;
// Amount of experience to raise to the next level&lt;br /&gt;
//LevelNextAt=0&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// external program support&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
// TNG&lt;br /&gt;
// on Linux do sth like &amp;quot;/srv/www/&amp;quot;&lt;br /&gt;
// on Windows do sth. like &amp;quot;C:\foo\bar\&amp;quot;&lt;br /&gt;
StripPath=scripts\web\&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// Webpage Settings&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
// Note, that you can catch error codes by creating sphere404.htm and so on&lt;br /&gt;
// for all HTTP error codes sphere support.&lt;br /&gt;
&lt;br /&gt;
[WEBPAGE 1]&lt;br /&gt;
// Determines what html file is used as base for the status page&lt;br /&gt;
WebPageSrc=scripts/web/spherestatusbase.html&lt;br /&gt;
// Determines where the status page is saved&lt;br /&gt;
WebPageFile=scripts/web/status.html&lt;br /&gt;
// In seconds, how often the status file is updated&lt;br /&gt;
WebPageUpdate=60&lt;br /&gt;
// Required PLevel to view this page (0 = anyone, 6 = admins only)&lt;br /&gt;
PLevel=0&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// Abuse Control&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
// Block these ips from the server&lt;br /&gt;
// 255 is a wildcard, so 255.255.255.255 disables anyone connecting.&lt;br /&gt;
[BlockIP]&lt;br /&gt;
//123.34.45.56&lt;br /&gt;
//123.45.56.78&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
//////// Connection Information&lt;br /&gt;
///////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
//First line should be the name of your shard (this is what people see when they connect)&lt;br /&gt;
//Second line should be the IP of your shard (this is almost always 127.0.0.1)&lt;br /&gt;
//Third line should be the port of your shard (this should be whatever ServPort is set to)&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;'''// Eine exakte Hilfe für diesen Abschnitt findet man hier: [http://www.sphereserver.net/forums/index.php?showtopic=36161 Rattlehead's Single Shard Listing For Routers tutorial]'''&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;darkgreen&amp;quot;&amp;gt;&lt;br /&gt;
//Uncomment next 3 lines below this if you have a router&lt;br /&gt;
//First line should be a name different than your shard name above this&lt;br /&gt;
//Second line should be your real/external IP (www.whatismyip.com)&lt;br /&gt;
//Third line should be the shard port (this should be whatever ServPort is set to)&lt;br /&gt;
[SERVERS]&lt;br /&gt;
MyShard&lt;br /&gt;
127.0.0.1&lt;br /&gt;
2593&lt;br /&gt;
&lt;br /&gt;
//External&lt;br /&gt;
//my.ip.goes.here&lt;br /&gt;
//2593&lt;br /&gt;
&lt;br /&gt;
[EOF]&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Setting Up Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=666</id>
		<title>De:Installing Sphere</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=666"/>
				<updated>2010-11-25T22:17:08Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Installing Sphere}}&lt;br /&gt;
==Linux==&lt;br /&gt;
===Vorwort===&lt;br /&gt;
Sphere auf einem Linuxsystem zu installieren, ist nicht viel schwieriger als auf einem Windowsrechner. Allerdings ist Basiswissen über Linux vorausgesetzt und ein wenig Erfahrung mit der Kommandozeile von Nöten, da hier nicht einfach auf ein Symbol geklickt wird und Sphere läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung ist deshalb darauf ausgelegt, dass eine Shell oder ein Terminal zum Linuxsystem verfügbar ist und root-Rechte vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich wird diese Anleitung nicht beinhalten, welche Dateien auf dem Linux Server verfügbar sein müssen. Diese Anleitung umfasst keine Einführung in Linuxsysteme und hat auch keinen Anspruch darauf, dies zu sein. Für weiterführende Informationen über Linux gibt es viele E-Books und Howtos, die frei im Web verfügbar sind. Beispielsweise ist hier ein guter Startpunkt: [http://www.linux.org http://www.linux.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wichtig ist aber vor allem folgendes: Anders als ein Windowssystem, ist Linux bezüglich Datei- und Ordnernamen die Groß- und Kleinschreibung zu beachten. Wenn eine Datei von Sphere nicht gefunden wird, liegt das möglicherweise daran, dass gewisse Dateien falsch geschrieben sind, wie bspw: &amp;quot;sphere.INI&amp;quot; anstelle von &amp;quot;sphere.ini&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen, die in dieser Anleitung kursiv sind, sollten direkt in das Terminal eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Vorbereitungens===&lt;br /&gt;
Auf dem Linuxsystem wird eine Installation des MySQL Clients benötigt. Fehlen die Bibliotheken des MySQL Clients, wird Sphere nicht ausführbar sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des Weiteren wird ein Sphere Version FÜR LINUX benötigt, sowie das passende Skriptpaket und eventuelle zusätzliche Bibliotheken, die in der Downloadsektion angegeben sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Schritt für Schritt Installation===&lt;br /&gt;
'''1)''' Mit Rootrechten einen neuen Nutzer namens &amp;quot;sphere&amp;quot; anlegen. Dieser Nutzer benötigt ein eigenen Heimverzeichnis (meistens: /home/sphere) mit den entsprechenden Rechten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;useradd -d /home/sphere sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
mkdir /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown sphere /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 700 /home/sphere&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2)''' Kopiere alle Dateien des Sphere LINUX downloads, das Skriptpaket und eventuell nötige Bibliotheken in das neu angelegte Verzeichnis. Zudem müssen Unterordner angelegt werden: &amp;quot;save&amp;quot;, &amp;quot;logs&amp;quot; und &amp;quot;accounts&amp;quot;, wie angegeben in der sphere.ini und in spheretables.scp. Am Ende sollte eine ähnliche Ordnerstruktur vorliegen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/home/sphere --- spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphere.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphereCrypt.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- accounts/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- logs/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- muls/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- save/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- scripts/&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3)''' Nachdem alle Dateien an die richtige Stelle kopiert wurden, benötigen sie die richtigen Dateirechte. Deshalb weiterhin unter Rootrechten folgende Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown -R sphere *&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type d | xargs chmod 0700&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type f | xargs chmod 0600&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 4700 spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4)''' Immer noch unter Rootrechten:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ldd spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe sollte nun ungefähr so lauten: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ldd spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
libpthread.so.0 =&amp;gt; /lib/libpthread.so.0 (0x4001f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/lib/libmysqlclient.so.15 (0x40071000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libboost_regex-gcc-1_33_1.so =&amp;gt; /usr/lib/libboost_regex-gcc-1_33_1.so (0x40243000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x402ea000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.6 =&amp;gt; /lib/libm.so.6 (0x403c9000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x403ef000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.6 =&amp;gt; /lib/libc.so.6 (0x403fa000)&amp;lt;br /&amp;gt;&lt;br /&gt;
/lib/ld-linux.so.2 (0x40000000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.1 =&amp;gt; /lib/libcrypt.so.1 (0x4051c000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libnsl.so.1 =&amp;gt; /lib/libnsl.so.1 (0x4054a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.1 =&amp;gt; /usr/lib/libz.so.1 (0x40561000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NACH FEHLENDEN BIBLIOTHEKEN AUSSCHAU HALTEN! Notfalls müssen diese nachinstalliert werden.&lt;br /&gt;
&lt;br /&gt;
===Die Installation testen===&lt;br /&gt;
Es ist jetzt nicht mehr von Belang, ob der erste Test mit Rootrechten oder unter dem Benutzer sphere ausgeführt wird. Werden die Rechte der Datei auf 4700 gesetzt, wird Sphere automatisch immer unter dem benutzer sphere ausgeführt. Deshalb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
./spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es sollte nun eine Liste des Startups folgen ... mit vielleicht enthaltenen Warnings: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ./spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
WARNING:(sphere.ini,587)'scripts/spherestatusbase.html' not found...&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(sphere.ini,587)Can't open web page input 'spherestatusbase1.htm'&amp;lt;br /&amp;gt;&lt;br /&gt;
Sphere Version 0.56b [Linux] by www.sphereserver.com, compiled at Sep 15 2006 (23:23:07)&amp;lt;br /&amp;gt;&lt;br /&gt;
Signal handlers installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
Expansion maps supported: T2A, LBR, AOS, SE, ML&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)Unable to open directory scripts/custom/&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)DirList=-1 for 'scripts/custom/'&amp;lt;br /&amp;gt;&lt;br /&gt;
Allocating map sectors: 0=7168 1=7168 2=900 3=1280 4=32761&amp;lt;br /&amp;gt;&lt;br /&gt;
Indexing 211 scripts...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading scripts/sphere_defs.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
[...]&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warnings und Fehler über fehlende Webseiten können ignoriert werden. Falls allerdings andere Fehler auftreten oder Sphere terminiert (=sich beendet), dann sollte in den vorhergehenden Zeilen nach dem Grund gesucht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich sollten folgende Meldungen auftauchen, falls alles gut lief: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;[...]&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spheredata...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherestatics...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/sphereworld...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherechars...&amp;lt;br /&amp;gt;&lt;br /&gt;
166 Objects accounted for&amp;lt;br /&amp;gt;&lt;br /&gt;
Option flags: CommandSysmsgs + NoHouseMuteSpeech&amp;lt;br /&amp;gt;&lt;br /&gt;
Experimental flags: DiagonalWalkCheck + ScriptsReturnStrings + NewTriggersEnable + NewPositionChecks + WalkCheck + ScriptProfiler + SizeOptimize&amp;lt;br /&amp;gt;&lt;br /&gt;
Admin=me@my.email.com, URL=www.myshard.com, Lang=English, TZ=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Startup complete. items=0, chars=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Creating thread.&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach befindet man sich in der Sphere Konsole und kann allgemeine Befehle absetzen ('?' gibt eine Liste aus). Lege einen Account an, aktiviert ihn, editier die login.cfg des Ultima Online Clients damit er die IP-Adresse des Servers enthält und log ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit Sphere wieder heruntergefahren wird, ist zunächst der Befehl &amp;quot;S&amp;quot;, gefolgt vom Befehl &amp;quot;X&amp;quot; notwendig. Linux wird dann versuchen, Sphere zu beenden - sollte das aus irgendeinem Grund nicht funktionieren, hilft die Tastenkombination STRG-c weiter.&lt;br /&gt;
&lt;br /&gt;
===Einen Liveshard aufsetzen===&lt;br /&gt;
Sphere in einem Terminal laufen zu lassen hat einen Nachteil: schließt man dieses Terminal, beendet Linux auch Sphere. Das ist unter Linuxsystemen beabsichtigt, weil es ein Multiusersystem ist. Das bedeutet vor allem, dass bei jedem Logout eines Nutzers auch unbedingt all seine laufenden Prozesse beendet werden sollten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich ist es aber dennoch möglich, Prozesse im Hintergrund laufen zu lassen, selbst wenn Terminal oder Shell geschlossen werden. Hierfür bietet sich ein Skript an, das ein Tool namens 'screen' nutzt (notfalls nachinstallieren):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;#!/bin/sh&amp;lt;br /&amp;gt;&lt;br /&gt;
cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
while true; do&amp;lt;br /&amp;gt;&lt;br /&gt;
screen -D -m /home/sphere/spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
sleep 30&amp;lt;br /&amp;gt;&lt;br /&gt;
done&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Skript kann in jedem beliebigen Editor abgespeichert werden und sollte möglichst die Dateiendung .sh erhalten. Wird das Skript ausgeführt, startet sich Sphere in einem virtuellen Terminal, das jederzeit mit &amp;quot;screen -r &amp;quot;abgerufen werden kann. Mit der Tastenkombination STRG-a gefolgt von STRG-d kann man dieses Terminal jederzeit wieder verlassen und es läuft im Hintergrund weiter. In der Dokumentation von &amp;quot;screen&amp;quot; finden sich weitere Informationen.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
Als erstes sollte Sphere hier heruntergeladen werden: [[Where to get Sphere/de|Sphere Download]]. Man sollte danach mindestestens zwei verschiedene zip Dateien erhalten haben, eins für den SphereServer und eins mit dem Script Paket.&lt;br /&gt;
&lt;br /&gt;
# Entpacke SphereServer-0.56b....zip in einen Ordner bspw. nach &amp;quot;c:\sphere&amp;quot;&lt;br /&gt;
# Entpacke SphereServer-0.56b-xxxxxxxxxxxx-Scripts.zip Ordner aus Schritt 1. Es sollte nun &amp;quot;c:\sphere&amp;quot; ein Ordner namens &amp;quot;scripts&amp;quot; vorhanden sein.&lt;br /&gt;
# Erstelle in diesem Ordner drei weitere Unterordner: &amp;quot;accounts&amp;quot;, &amp;quot;logs&amp;quot; und &amp;quot;save&amp;quot;.&lt;br /&gt;
# Im &amp;quot;save&amp;quot; Ordner, erstelle eine leere Textdatei (bspw. mit dem Windows Notepad) und schreibe in diese Datei eine einzelne Zeile, in der [EOF] steht. Benenne diese Datei dann &amp;quot;spheredata.SCP&amp;quot; (NICHT .txt).&lt;br /&gt;
# Erstelle drei Kopien dieser Datei und benenne sie: spherestatics, spherechars.scp und sphereworld.scp&lt;br /&gt;
# Wiederhole das dann im &amp;quot;accounts&amp;quot; Ordner und erstelle die Dateien: &amp;quot;sphereacct.scp&amp;quot; und &amp;quot;sphereaccu.scp&amp;quot;&lt;br /&gt;
# Lade dir dann [http://prerelease.sphere.torfo.org/files/libMySQL.dll MySQL Library] und kopiere sie in den Sphere Ordner (bspw.: &amp;quot;c:\sphere&amp;quot;).&lt;br /&gt;
# Nun sollte die [[Configuring_Sphere.ini/de|Sphere.ini]] bearbeitet werden, der SphereServer wird sonst nicht starten.&lt;br /&gt;
# Doppelklicke dann SphereSvr.exe und dann wird die Konsole starten. In diesem Fenster können administrative Befehle abgesetzt werden (eine Liste dieser Befehle gibts mit Eingabe von &amp;quot;?&amp;quot;).&lt;br /&gt;
# Erstelle einen ersten Account auf dem Server. Führe deshalb folgende Befehle der Reihe nach aus und setze dabei einen passenden Nutzernamen und ein passenden Passwort ein: &lt;br /&gt;
#*&amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account add USERNAME PASSWORD&amp;lt;/font&amp;gt;&amp;quot;&lt;br /&gt;
#*&amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account USERNAME plevel 7&amp;lt;/font&amp;gt;&amp;quot; (dieser Befehl gibt dem Account GM-Rechte).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Server ist nun bereit und man kann sich mit einem UO Client einloggen. Es empfiehlt sich die Tutorials innerhalb dieses Wikis zu lesen, um ein wenig mehr über Sphere zu erfahren.&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
We currently have no guide for this OS. Anyway, the developers have posted a list of required stuff. Here is the list:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compiled on: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;FreeBSD freebsdvbox.fastwebnet.it 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008     root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Using built-in specs.&amp;lt;br /&amp;gt;&lt;br /&gt;
Target: i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Configured with: ./..//gcc-4.1-20071105/configure --disable-nls --with-system-zlib --with-libiconv-prefix=/usr/local --program-suffix=41 --libdir=/usr/local/lib/gcc-4.1.3 --with-gxx-include-dir=/usr/local/lib/gcc-4.1.3/include/c++/ --disable-rpath --prefix=/usr/local --mandir=/usr/local/man --infodir=/usr/local/info/gcc41 i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Thread model: posix&amp;lt;br /&amp;gt;&lt;br /&gt;
gcc version 4.1.3 20071105 (prerelease)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linked Against:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;libthr.so.3 =&amp;gt; /lib/libthr.so.3 (0x281f3000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/local/lib/mysql/libmysqlclient.so.15 (0x28206000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x28265000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.5 =&amp;gt; /lib/libm.so.5 (0x2835a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x2836f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.7 =&amp;gt; /lib/libc.so.7 (0x2837a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.4 =&amp;gt; /lib/libcrypt.so.4 (0x28476000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.4 =&amp;gt; /lib/libz.so.4 (0x2848f000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you use this release, please check [http://www.sphereserver.net/index.php?showtopic=44153 this topic].&lt;br /&gt;
&lt;br /&gt;
[[Category: Setting Up Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Where_to_get_Sphere&amp;diff=665</id>
		<title>De:Where to get Sphere</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Where_to_get_Sphere&amp;diff=665"/>
				<updated>2010-11-25T22:16:25Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Where to get Sphere}}&lt;br /&gt;
Für Sphere 56b gibt es hauptsächlich 2 Möglichkeiten: Pre-Releases und automatische Builds. Unten ist eine Gegenüberstellung, die Unterschiede beinhaltet.&lt;br /&gt;
&lt;br /&gt;
==Prerelease Builds==&lt;br /&gt;
Prerelease Builds werden regelmäßig veröffentlicht, wenn die Entwickler der Meinung sind, dass eine neue Version fällig ist und sie mit der Stabilität zufrieden sind (d.h. u.a. dass ein Prerelease Build auch läuft). Weil es noch keinen finalen Build gibt, sind die Prerelease Builds am nächsten an einer stabilen Version dran.&lt;br /&gt;
&lt;br /&gt;
Prerelease Builds können hier heruntergeladen werden: [http://prerelease.sphereserver.net SphereServer Pre-releases].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls du nicht sicher bist, was genau hinter einem Prerelease Build steckt, dann gibt es hier noch weitere Informationen: [[#Was will ich eigentlich?|Was will ich eigentlich?]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatisierte Builds==&lt;br /&gt;
Jede Nacht wird automatisiert aus dem bestehenden Code eine neue Version von Sphere erstellt. Das passiert direkt und dieser Build enthält die letzten Änderungen, die von den Entwicklern vorgenommen wurden. Wenn es also die das topaktuellste sein soll, dann nutzt man einen automatisierten Build.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Automatisierte Builds sind hier zum Download verfügbar: [http://nightly.prerelease.sphere.torfo.org/ SphereServer Nightly Automated Builds]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Einige Warnungen, ehe ein solcher automatisierter Build genutzt wird:&lt;br /&gt;
* Da diese Builds direkt mit den neuesten und aktuellsten Änderungen am Quellcode erstellt wurden, ist es nicht ratsam, diese Version für einen laufenden Server zu nutzen, ausser man hat zuvor gut und gründlich getestet.&lt;br /&gt;
* Das Entwicklerteam kann keine oder wenige Hilfestellungen leisten, falls Probleme auftreten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Was will ich eigentlich?==&lt;br /&gt;
Falls noch Unsicherheiten bestehen, welche Version gewählt werden soll, dann sollte man auf einen Prerelease Build zurückgreifen. Automatisierte Builds sind vor allem für fortgeschrittenere Nutzer und Tester gedacht, die neue Features austesten wollen, bevor sie offiziell veröffentlicht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier eine knappe Gegenüberstellung, was die Builds hauptsächlich unterscheidet:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''[[#Prerelease Builds|Prerelease Builds]]''' || '''[[#Automatisierte Builds|Automatisierte Builds]]'''&lt;br /&gt;
|-&lt;br /&gt;
| Forensupport || Kein Support in den Foren&lt;br /&gt;
|-&lt;br /&gt;
| Höhere Stabilität || Keine Garantien für Stabilität&lt;br /&gt;
|-&lt;br /&gt;
| Von Hand kompiliert aus einem stabilen Zweig des Quellcodes || Automatisch kompiliert aus dem Quellcode der Entwickler&lt;br /&gt;
|-&lt;br /&gt;
| Enthält nicht die neuesten Features und Fehlerkorrekturen || Enthält das neueste an Features und Fehlerkorrekturen&lt;br /&gt;
|-&lt;br /&gt;
| Wird alle paar Monate veröffentlicht || Wird täglich veröffentlicht&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zusammengefasst: die Prerelease Builds erhalten Forensupport durch die Entwickler und werden nur veröffentlicht, wenn das Team der Meinung ist, dass genug an Arbeit hineingeflossen ist.  Solange nicht dringend neueste Features und Fehlerkorrekturen benötigt werden, sollte man deshalb als Endnutzer auf diese Builds zurückgreifen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Anmerkung:''''' ''Sollte man nur aus dem Grund einen automatisierten Build wählen, da man nicht auf die offiziellen Prerelease Builds warten will, dann sollte man sich das genau überlegen. Zwar sind neue Features oder Fehlerkorrekturen enthalten, aber die Gefahr, dass manche Dinge nicht abgeschlossen wurden oder bisher unbekannte Bugs und Fehler in Sphere auftauchen, ist viel höher und das kann die Stabilität des Servers stark verringern.''&lt;br /&gt;
&lt;br /&gt;
[[Category: Setting Up Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Contribution_Guide&amp;diff=664</id>
		<title>De:Contribution Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Contribution_Guide&amp;diff=664"/>
				<updated>2010-11-25T22:15:59Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Contribution Guide}}&lt;br /&gt;
Da dieses Wiki durch die Community und nicht durch die Entwickler gepflegt wird, ist jede Hilfe willkommen.&lt;br /&gt;
&lt;br /&gt;
Es wird lediglich ein [[Special:UserLogin|Account]] benötigt und schon kann man loslegen. Oberhalb jedes Artikels ist ein &amp;quot;Edit&amp;quot;-Link, mit dem sich jeder Artikel sofort bearbeiten lässt, sofern man eingeloggt ist.&lt;br /&gt;
&lt;br /&gt;
Zentrale Punkte in der Pflege der Artikel:&lt;br /&gt;
* Fehlerkorrektur in existierenden Seiten&lt;br /&gt;
* Artikel über UO oder Sphere verfassen&lt;br /&gt;
* Updates für das [[de:Main Page#Referenzkompendium|Referenzkompendium]], denn mit jeder neuen Version von Sphere können neue Features auftauchen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Egal welche Art von Pflege hier betrieben wird, es sollten dabei folgende Gebote beachtet werden:&lt;br /&gt;
* Sicherstellen, dass die Information fehlerfrei, präzise und aktuell ist.&lt;br /&gt;
* So klar wie möglich Sachverhalte darlegen und dabei auf den übliche Internetslang verzichten.&lt;br /&gt;
* Andere werden es nicht gern sehen, wenn man ihre Artikel grundlegend verändert. Wenn grundlegende Änderungen durchgeführt werden sollen, sollte man in Betracht ziehen, die ursprünglichen Autoren zu kontaktieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn du etwas beitragen möchtest, aber nicht weisst, was zu tun wäre:&lt;br /&gt;
* Überprüfe [[Special:WantedPages|wanted pages]]. Diese Liste enthält Seiten, die von anderen Artikeln zwar verlinkt wurden, aber die noch keinerlei Inhalt haben.&lt;br /&gt;
* Überprüfe [[Special:WantedCategories|wanted categories]]. Hier sind Kategorisierungen, die von anderen verlinkt wurden, aber noch keinen Inhalt enthalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls du beim Bearbeiten von Artikeln keinerlei Erfahrung hast und die Syntax des Wikis nicht kennst: [[Help:Editing|Editing help]] (deutsche Version wird noch folgen). Diese Hilfe enthält auch eine spezielle Syntax für Sphere Skripte.&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Main_Page&amp;diff=663</id>
		<title>De:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Main_Page&amp;diff=663"/>
				<updated>2010-11-25T22:15:18Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main Page}}&lt;br /&gt;
Willkommen zum Remake von Taran's bekannter Seite: &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot;. Seine Tutorials waren damals für Sphere 55i erstellt worden, mittlerweile ist die aktuelle Version Sphere 56b und deshalb wurde entschieden, hier auf diesen Seiten eine Sammlung aktueller Tutorials und ein Kompendium neuer Funktionen zu bieten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Wo fang ich nun an?'''&lt;br /&gt;
&lt;br /&gt;
Jeder, der sich für die Skriptsprache von Sphere 56b interessiert, sollte hier anfangen: [[#Installation von Sphere|Installation von Sphere]]. Dort findet man die ersten Schritte mit Sphere. Danach empfiehlt es sich alle [[#Tutorials|Tutorials]] durch zu arbeiten, möglichst alles dabei zu verstehen und viel zu lernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ich hab jetzt Skripten gelernt! Was nun?'''&lt;br /&gt;
&lt;br /&gt;
Sind die ersten 10 Kapitels durchgearbeitet, dann gibt es hier natürlich noch weitere Artikel und Seiten. Sie erscheinen vielleicht nicht so wichtig, wie die anderen, aber sind dennöch mit weiterführenden und nützlichen Informationen gespickt. Versuche eigene Skripte zu entwickeln, sie vielleicht auch im [http://www.sphereserver.net/index.php SphereServer Forums] zu veröffentlichen. In den Forum erhält man auch weitere Hilfestellungen und Antworten auf Fragen. Des Weiteren ist auch das [[#Referenzkompendium|Referenzkompendium]] sehr nützlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ich will mithelfen!'''&lt;br /&gt;
&lt;br /&gt;
Um die Informationen auf diesen Seiten immer möglichst aktuell zu halten, ist natürlich viel Arbeit und Zeit notwendig. Jeder, der mithelfen möchte, diese Seiten zu pflegen, darf sich jederzeit hier anmelden und die Artikel hier überarbeiten. Alles, was man dafür braucht, ist ein [[Special:UserLogin|Wiki-Account]]. Oberhalb jeder Seite ist ein &amp;quot;Edit&amp;quot;-Link. Ausserdem sollte dieser Guide gelesen werden: [[de:Contribution Guide|Leitfaden für das SphereWiki]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Dank geht speziell an:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus and WarAngel]], für das Hinzufügen von Inhalt.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Daleth]], für das Erstellen des Sphere Reference Project, and [[WhoIsWho|Mordaunt]] für die Konvertierung ins .chm-Format.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Tracker]], für das Übertragen von Änderungen in Sphere 56 Tracking Changes.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Taran]], für die originalen Sphere Scripting for Dummies tutorials und [[WhoIsWho|MrSugarCube]], der ständige Neuerungen aktuell hält.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Furio, Radiant, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon and MrSugarCube]] für kontinuierliche Arbeit an Sphere, wodurch ein sehr mächtiger und an alle möglichen Bedürfnisse anpassbarer Ultima Online Emulator entstand.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Crius]], der das ursprüngliche Wiki gehostet hat, und [[WhoIsWho|Torfo]], der das Wiki momentan hostet.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation von Sphere==&lt;br /&gt;
&lt;br /&gt;
* [[de:Where to get Sphere|Sphere herunterladen]]&lt;br /&gt;
* [[de:Installing Sphere|Sphere installieren]]&lt;br /&gt;
* [[de:Configuring Sphere.ini|Konfigurationseinstellungen der Sphere.ini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
Die Kapitel von Taran in aktualisierter Version für 56b:&lt;br /&gt;
&lt;br /&gt;
* [[de:Chapter 1|Kapitel 1]] ''(Nummern, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[de:Chapter 2|Kapitel 2]] ''(Übersicht über die Standardskripte)''&lt;br /&gt;
* [[de:Chapter 3|Kapitel 3]] ''(NPC's und Gegenstände, coole Funktionen)''&lt;br /&gt;
* [[de:Chapter 4|Kapitel 4]] ''(Objekte, Operatoren, Sprache)''&lt;br /&gt;
* [[de:Chapter 5|Kapitel 5]] ''(Tags, Vars, Locals, Functions)''&lt;br /&gt;
* [[de:Chapter 6|Kapitel 6]] ''(LINKs, TIMERs, TARGETs)''&lt;br /&gt;
* [[de:Chapter 7|Kapitel 7]] ''(Schleifen und mächtige Funktionen)''&lt;br /&gt;
* [[de:Chapter 8|Kapitel 8]] ''(SKILLMENUs, MENUs, Gumps)''&lt;br /&gt;
* [[de:Chapter 9|Kapitel 9]] ''(Events)''&lt;br /&gt;
* [[de:Chapter 10|Kapitel 10]] ''(Strings/Zeichenketten behandeln)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zusätlich gibt es noch einige etwas fortgeschrittenere Tutorials, die von anderen Mitgliedern der Community bereitgestellt wurden. Nachdem man die 10 Kapitel durchgearbeitet hat, bieten sich die folgenden an, wenn man noch mehr lernen möchte:&lt;br /&gt;
&lt;br /&gt;
* [[Common Mistakes|Häufige Fehler]] ''(A revision of Maximus's tutorial on the forums, and continuation of Taran's Misconceptions tutorial)''&lt;br /&gt;
* [[Internet and Sphere]] ''(And how to make the right use of them)''&lt;br /&gt;
* [[Languages Tutorial]] ''(How to script your own language system)''&lt;br /&gt;
* [[Making your own Skills]] ''(How to make and customize your skill)''&lt;br /&gt;
* [[Mul Patching Tutorial|Nazghul's Mul Patching Tutorial]] [http://sorea.profitux.cz/patching/ external link] ''(A document about mul patching and customizing your server)''&lt;br /&gt;
* [[Overriding Hardcoded Commands]] ''(How to override hardcoded commands and functions)''&lt;br /&gt;
* [[Scheduled Reboot]] ''(How to schedule system reboots)''&lt;br /&gt;
* [[Using MySQL]] ''(How to use MySQL)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Referenzkompendium==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Definitions|Definitions]]&lt;br /&gt;
** [[CHARDEF|Characters]]&lt;br /&gt;
** [[DIALOG|Dialogs]]&lt;br /&gt;
** [[EVENTS|Events]]&lt;br /&gt;
** [[ITEMDEF|Items]]&lt;br /&gt;
** [[MENU|Menus]]&lt;br /&gt;
** [[REGIONRESOURCE|Region Resources]]&lt;br /&gt;
** [[REGIONTYPE|Region Types]]&lt;br /&gt;
** [[AREADEF|Regions]]&lt;br /&gt;
** [[ROOMDEF|Rooms]]&lt;br /&gt;
** [[SKILLCLASS|Skill Classes]]&lt;br /&gt;
** [[SKILLMENU|Skill Menus]]&lt;br /&gt;
** [[SKILL|Skills]]&lt;br /&gt;
** [[SPAWN|Spawn Groups]]&lt;br /&gt;
** [[SPELL|Spells]]&lt;br /&gt;
** [[TYPEDEF|Types]]&lt;br /&gt;
* [[:Category:Objects|Objects]]&lt;br /&gt;
** [[Accounts]]&lt;br /&gt;
** [[Characters]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[Files]]&lt;br /&gt;
** [[GM Pages]]&lt;br /&gt;
** [[Items]]&lt;br /&gt;
*** [[Special Items]]&lt;br /&gt;
** [[Map Points]]&lt;br /&gt;
** [[Parties]]&lt;br /&gt;
** [[Regions]]&lt;br /&gt;
** [[Rooms]]&lt;br /&gt;
** [[Sectors]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
* [[:Category:Scripts|Scripts]]&lt;br /&gt;
** [[:Category:Functions|Functions and Triggers]]&lt;br /&gt;
** [[:Category:Variables|General Functions, Properties and References]]&lt;br /&gt;
** [[Intrinsic Functions]]&lt;br /&gt;
** [[:Category:Statements|Statements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Andere Artikel==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Calculation]]&lt;br /&gt;
* [[Client Changes]]&lt;br /&gt;
* [[Common Scripting Misconceptions]]&lt;br /&gt;
* [[Custom Object Properties]]&lt;br /&gt;
* [[Error Codes]]&lt;br /&gt;
* [[Experience System]]&lt;br /&gt;
* [[How Combat Works]]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimization|Optimization Theory]]&lt;br /&gt;
* [[Override TAGs]]&lt;br /&gt;
* [[Revisions Changelog]]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Skill Gain Theory]]&lt;br /&gt;
* [[The Process of Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sphereserver.net/ Offizielle SphereServer Webseite]&lt;br /&gt;
* [http://prerelease.sphere.torfo.org/ Offizielle Sphere 56b Downloads]&lt;br /&gt;
* [http://nightly.prerelease.sphere.torfo.org/ Offizielle Sphere 56b Nightly Builds]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [http://www.cs.rit.edu/~djr7581/ Taran's Scripting for Dummies (Sphere 55i)]&lt;br /&gt;
* [http://uo.torfo.org/packetguide/ Jerrith's UO Packet Guide]&lt;br /&gt;
* [http://uo.torfo.org/packetguideKR/ Wyatt&amp;amp;Kons's UOKR Packet Guide]&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Template:Languages&amp;diff=662</id>
		<title>Template:Languages</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Template:Languages&amp;diff=662"/>
				<updated>2010-11-25T22:10:56Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{ {{{2|Languages/Interface}}}&lt;br /&gt;
&amp;lt;!--|{{LanguageExisting|am|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|am|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ar|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ar|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|bg|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|bg|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|br|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|br|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|bs|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|bs|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ca|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ca|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|cz|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|cz|{{{1|{{PAGENAME}}}}}|{{#language:cs}}}}&lt;br /&gt;
|{{LanguageExisting|da|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|da|{{{1|{{PAGENAME}}}}}}}--&amp;gt;&lt;br /&gt;
|{{LanguageExisting|de|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|de|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
&amp;lt;!--|{{LanguageExisting|el|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|el|{{{1|{{PAGENAME}}}}}}}--&amp;gt;&lt;br /&gt;
|{{LanguageExistingEn|{{{1|{{PAGENAME}}}}}}} = {{LanguageLinkEn|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
&amp;lt;!--|{{LanguageExisting|eo|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|eo|{{{1|{{PAGENAME}}}}}}}--&amp;gt;&lt;br /&gt;
|{{LanguageExisting|es|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|es|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
&amp;lt;!--|{{LanguageExisting|et|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|et|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|eu|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|eu|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|fi|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|fi|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|fr|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|fr|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|fy|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|fy|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|gcf|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|gcf|{{{1|{{PAGENAME}}}}}|Créole guadeloupéen}}&lt;br /&gt;
|{{LanguageExisting|he|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|he|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ht|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ht|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|HU|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|HU|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|hr|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|hr|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|hy|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|hy|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ia|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ia|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|is|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|is|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|it|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|it|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ja|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ja|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ko|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ko|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|lb|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|lb|{{{1|{{PAGENAME}}}}}|Lëtzebuergesch}}&lt;br /&gt;
|{{LanguageExisting|lt|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|lt|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|lv|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|lv|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|mk|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|mk|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|nl|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|nl|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|nn|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|nn|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|no|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|no|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|oc|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|oc|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|pl|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|pl|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|pt|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|pt|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|pt-br|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|pt-br|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ro|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ro|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ro-md|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ro-md|{{{1|{{PAGENAME}}}}}|{{#language:ro}} (Moldova)}}&lt;br /&gt;
|{{LanguageExisting|ru|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ru|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|sk|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|sk|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|sl|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|sl|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|sq|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|sq|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|sv|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|sv|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|tr|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|tr|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|uk|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|uk|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|vi|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|vi|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|zh-hans|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|zh-hans|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|zh-hant|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|zh-hant|{{{1|{{PAGENAME}}}}}}}--&amp;gt;&lt;br /&gt;
}}&amp;lt;!--[[Category:Pages with language links|{{PAGENAME}}]]--&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
'''Note: This is a test for  a language toolbar. The template is taken from the openstreetmap-wiki.'''&lt;br /&gt;
&lt;br /&gt;
'''Do not edit this template too often. This template is linked from many pages, when you renew it, the wiki-server starts to rebuild database of link connections. It takes about 20 seconds for each page.'''&lt;br /&gt;
&lt;br /&gt;
Instructions were moved to [[Wiki Translation]]:&lt;br /&gt;
{{Languages|Wiki Translation}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Template:Internationalisation]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Template:Languages&amp;diff=661</id>
		<title>Template:Languages</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Template:Languages&amp;diff=661"/>
				<updated>2010-11-25T22:09:10Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{ {{{2|Languages/Interface}}}&lt;br /&gt;
&amp;lt;!--|{{LanguageExisting|am|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|am|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ar|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ar|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|bg|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|bg|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|br|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|br|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|bs|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|bs|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ca|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ca|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|cz|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|cz|{{{1|{{PAGENAME}}}}}|{{#language:cs}}}}&lt;br /&gt;
|{{LanguageExisting|da|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|da|{{{1|{{PAGENAME}}}}}}}--&amp;gt;&lt;br /&gt;
|{{LanguageExisting|de|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|de|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|el|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|el|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExistingEn|{{{1|{{PAGENAME}}}}}}} = {{LanguageLinkEn|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|eo|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|eo|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|es|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|es|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|et|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|et|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|eu|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|eu|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|fi|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|fi|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|fr|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|fr|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|fy|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|fy|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|gcf|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|gcf|{{{1|{{PAGENAME}}}}}|Créole guadeloupéen}}&lt;br /&gt;
|{{LanguageExisting|he|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|he|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ht|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ht|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|HU|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|HU|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|hr|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|hr|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|hy|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|hy|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ia|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ia|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|is|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|is|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|it|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|it|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ja|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ja|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ko|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ko|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|lb|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|lb|{{{1|{{PAGENAME}}}}}|Lëtzebuergesch}}&lt;br /&gt;
|{{LanguageExisting|lt|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|lt|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|lv|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|lv|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|mk|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|mk|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|nl|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|nl|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|nn|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|nn|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|no|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|no|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|oc|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|oc|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|pl|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|pl|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|pt|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|pt|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|pt-br|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|pt-br|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ro|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ro|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|ro-md|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ro-md|{{{1|{{PAGENAME}}}}}|{{#language:ro}} (Moldova)}}&lt;br /&gt;
|{{LanguageExisting|ru|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|ru|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|sk|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|sk|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|sl|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|sl|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|sq|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|sq|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|sv|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|sv|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|tr|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|tr|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|uk|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|uk|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|vi|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|vi|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|zh-hans|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|zh-hans|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|{{LanguageExisting|zh-hant|{{{1|{{PAGENAME}}}}}}} = {{LanguageLink|zh-hant|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
}}&amp;lt;!--[[Category:Pages with language links|{{PAGENAME}}]]--&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
'''Note: This is a test for  a language toolbar. The template is taken from the openstreetmap-wiki.'''&lt;br /&gt;
&lt;br /&gt;
'''Do not edit this template too often. This template is linked from many pages, when you renew it, the wiki-server starts to rebuild database of link connections. It takes about 20 seconds for each page.'''&lt;br /&gt;
&lt;br /&gt;
Instructions were moved to [[Wiki Translation]]:&lt;br /&gt;
{{Languages|Wiki Translation}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Template:Internationalisation]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=659</id>
		<title>De:Installing Sphere</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=659"/>
				<updated>2010-11-25T13:36:25Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: moved Installing Sphere/de to De:Installing Sphere&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Linux==&lt;br /&gt;
===Vorwort===&lt;br /&gt;
Sphere auf einem Linuxsystem zu installieren, ist nicht viel schwieriger als auf einem Windowsrechner. Allerdings ist Basiswissen über Linux vorausgesetzt und ein wenig Erfahrung mit der Kommandozeile von Nöten, da hier nicht einfach auf ein Symbol geklickt wird und Sphere läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung ist deshalb darauf ausgelegt, dass eine Shell oder ein Terminal zum Linuxsystem verfügbar ist und root-Rechte vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich wird diese Anleitung nicht beinhalten, welche Dateien auf dem Linux Server verfügbar sein müssen. Diese Anleitung umfasst keine Einführung in Linuxsysteme und hat auch keinen Anspruch darauf, dies zu sein. Für weiterführende Informationen über Linux gibt es viele E-Books und Howtos, die frei im Web verfügbar sind. Beispielsweise ist hier ein guter Startpunkt: [http://www.linux.org http://www.linux.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wichtig ist aber vor allem folgendes: Anders als ein Windowssystem, ist Linux bezüglich Datei- und Ordnernamen die Groß- und Kleinschreibung zu beachten. Wenn eine Datei von Sphere nicht gefunden wird, liegt das möglicherweise daran, dass gewisse Dateien falsch geschrieben sind, wie bspw: &amp;quot;sphere.INI&amp;quot; anstelle von &amp;quot;sphere.ini&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen, die in dieser Anleitung kursiv sind, sollten direkt in das Terminal eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Vorbereitungens===&lt;br /&gt;
Auf dem Linuxsystem wird eine Installation des MySQL Clients benötigt. Fehlen die Bibliotheken des MySQL Clients, wird Sphere nicht ausführbar sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des Weiteren wird ein Sphere Version FÜR LINUX benötigt, sowie das passende Skriptpaket und eventuelle zusätzliche Bibliotheken, die in der Downloadsektion angegeben sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Schritt für Schritt Installation===&lt;br /&gt;
'''1)''' Mit Rootrechten einen neuen Nutzer namens &amp;quot;sphere&amp;quot; anlegen. Dieser Nutzer benötigt ein eigenen Heimverzeichnis (meistens: /home/sphere) mit den entsprechenden Rechten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;useradd -d /home/sphere sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
mkdir /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown sphere /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 700 /home/sphere&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2)''' Kopiere alle Dateien des Sphere LINUX downloads, das Skriptpaket und eventuell nötige Bibliotheken in das neu angelegte Verzeichnis. Zudem müssen Unterordner angelegt werden: &amp;quot;save&amp;quot;, &amp;quot;logs&amp;quot; und &amp;quot;accounts&amp;quot;, wie angegeben in der sphere.ini und in spheretables.scp. Am Ende sollte eine ähnliche Ordnerstruktur vorliegen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/home/sphere --- spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphere.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphereCrypt.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- accounts/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- logs/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- muls/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- save/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- scripts/&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3)''' Nachdem alle Dateien an die richtige Stelle kopiert wurden, benötigen sie die richtigen Dateirechte. Deshalb weiterhin unter Rootrechten folgende Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown -R sphere *&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type d | xargs chmod 0700&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type f | xargs chmod 0600&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 4700 spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4)''' Immer noch unter Rootrechten:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ldd spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe sollte nun ungefähr so lauten: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ldd spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
libpthread.so.0 =&amp;gt; /lib/libpthread.so.0 (0x4001f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/lib/libmysqlclient.so.15 (0x40071000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libboost_regex-gcc-1_33_1.so =&amp;gt; /usr/lib/libboost_regex-gcc-1_33_1.so (0x40243000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x402ea000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.6 =&amp;gt; /lib/libm.so.6 (0x403c9000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x403ef000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.6 =&amp;gt; /lib/libc.so.6 (0x403fa000)&amp;lt;br /&amp;gt;&lt;br /&gt;
/lib/ld-linux.so.2 (0x40000000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.1 =&amp;gt; /lib/libcrypt.so.1 (0x4051c000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libnsl.so.1 =&amp;gt; /lib/libnsl.so.1 (0x4054a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.1 =&amp;gt; /usr/lib/libz.so.1 (0x40561000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NACH FEHLENDEN BIBLIOTHEKEN AUSSCHAU HALTEN! Notfalls müssen diese nachinstalliert werden.&lt;br /&gt;
&lt;br /&gt;
===Die Installation testen===&lt;br /&gt;
Es ist jetzt nicht mehr von Belang, ob der erste Test mit Rootrechten oder unter dem Benutzer sphere ausgeführt wird. Werden die Rechte der Datei auf 4700 gesetzt, wird Sphere automatisch immer unter dem benutzer sphere ausgeführt. Deshalb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
./spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es sollte nun eine Liste des Startups folgen ... mit vielleicht enthaltenen Warnings: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ./spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
WARNING:(sphere.ini,587)'scripts/spherestatusbase.html' not found...&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(sphere.ini,587)Can't open web page input 'spherestatusbase1.htm'&amp;lt;br /&amp;gt;&lt;br /&gt;
Sphere Version 0.56b [Linux] by www.sphereserver.com, compiled at Sep 15 2006 (23:23:07)&amp;lt;br /&amp;gt;&lt;br /&gt;
Signal handlers installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
Expansion maps supported: T2A, LBR, AOS, SE, ML&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)Unable to open directory scripts/custom/&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)DirList=-1 for 'scripts/custom/'&amp;lt;br /&amp;gt;&lt;br /&gt;
Allocating map sectors: 0=7168 1=7168 2=900 3=1280 4=32761&amp;lt;br /&amp;gt;&lt;br /&gt;
Indexing 211 scripts...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading scripts/sphere_defs.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
[...]&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warnings und Fehler über fehlende Webseiten können ignoriert werden. Falls allerdings andere Fehler auftreten oder Sphere terminiert (=sich beendet), dann sollte in den vorhergehenden Zeilen nach dem Grund gesucht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich sollten folgende Meldungen auftauchen, falls alles gut lief: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;[...]&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spheredata...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherestatics...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/sphereworld...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherechars...&amp;lt;br /&amp;gt;&lt;br /&gt;
166 Objects accounted for&amp;lt;br /&amp;gt;&lt;br /&gt;
Option flags: CommandSysmsgs + NoHouseMuteSpeech&amp;lt;br /&amp;gt;&lt;br /&gt;
Experimental flags: DiagonalWalkCheck + ScriptsReturnStrings + NewTriggersEnable + NewPositionChecks + WalkCheck + ScriptProfiler + SizeOptimize&amp;lt;br /&amp;gt;&lt;br /&gt;
Admin=me@my.email.com, URL=www.myshard.com, Lang=English, TZ=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Startup complete. items=0, chars=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Creating thread.&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach befindet man sich in der Sphere Konsole und kann allgemeine Befehle absetzen ('?' gibt eine Liste aus). Lege einen Account an, aktiviert ihn, editier die login.cfg des Ultima Online Clients damit er die IP-Adresse des Servers enthält und log ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit Sphere wieder heruntergefahren wird, ist zunächst der Befehl &amp;quot;S&amp;quot;, gefolgt vom Befehl &amp;quot;X&amp;quot; notwendig. Linux wird dann versuchen, Sphere zu beenden - sollte das aus irgendeinem Grund nicht funktionieren, hilft die Tastenkombination STRG-c weiter.&lt;br /&gt;
&lt;br /&gt;
===Einen Liveshard aufsetzen===&lt;br /&gt;
Sphere in einem Terminal laufen zu lassen hat einen Nachteil: schließt man dieses Terminal, beendet Linux auch Sphere. Das ist unter Linuxsystemen beabsichtigt, weil es ein Multiusersystem ist. Das bedeutet vor allem, dass bei jedem Logout eines Nutzers auch unbedingt all seine laufenden Prozesse beendet werden sollten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich ist es aber dennoch möglich, Prozesse im Hintergrund laufen zu lassen, selbst wenn Terminal oder Shell geschlossen werden. Hierfür bietet sich ein Skript an, das ein Tool namens 'screen' nutzt (notfalls nachinstallieren):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;#!/bin/sh&amp;lt;br /&amp;gt;&lt;br /&gt;
cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
while true; do&amp;lt;br /&amp;gt;&lt;br /&gt;
screen -D -m /home/sphere/spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
sleep 30&amp;lt;br /&amp;gt;&lt;br /&gt;
done&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Skript kann in jedem beliebigen Editor abgespeichert werden und sollte möglichst die Dateiendung .sh erhalten. Wird das Skript ausgeführt, startet sich Sphere in einem virtuellen Terminal, das jederzeit mit &amp;quot;screen -r &amp;quot;abgerufen werden kann. Mit der Tastenkombination STRG-a gefolgt von STRG-d kann man dieses Terminal jederzeit wieder verlassen und es läuft im Hintergrund weiter. In der Dokumentation von &amp;quot;screen&amp;quot; finden sich weitere Informationen.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
Als erstes sollte Sphere hier heruntergeladen werden: [[Where to get Sphere/de|Sphere Download]]. Man sollte danach mindestestens zwei verschiedene zip Dateien erhalten haben, eins für den SphereServer und eins mit dem Script Paket.&lt;br /&gt;
&lt;br /&gt;
# Entpacke SphereServer-0.56b....zip in einen Ordner bspw. nach &amp;quot;c:\sphere&amp;quot;&lt;br /&gt;
# Entpacke SphereServer-0.56b-xxxxxxxxxxxx-Scripts.zip Ordner aus Schritt 1. Es sollte nun &amp;quot;c:\sphere&amp;quot; ein Ordner namens &amp;quot;scripts&amp;quot; vorhanden sein.&lt;br /&gt;
# Erstelle in diesem Ordner drei weitere Unterordner: &amp;quot;accounts&amp;quot;, &amp;quot;logs&amp;quot; und &amp;quot;save&amp;quot;.&lt;br /&gt;
# Im &amp;quot;save&amp;quot; Ordner, erstelle eine leere Textdatei (bspw. mit dem Windows Notepad) und schreibe in diese Datei eine einzelne Zeile, in der [EOF] steht. Benenne diese Datei dann &amp;quot;spheredata.SCP&amp;quot; (NICHT .txt).&lt;br /&gt;
# Erstelle drei Kopien dieser Datei und benenne sie: spherestatics, spherechars.scp und sphereworld.scp&lt;br /&gt;
# Wiederhole das dann im &amp;quot;accounts&amp;quot; Ordner und erstelle die Dateien: &amp;quot;sphereacct.scp&amp;quot; und &amp;quot;sphereaccu.scp&amp;quot;&lt;br /&gt;
# Lade dir dann [http://prerelease.sphere.torfo.org/files/libMySQL.dll MySQL Library] und kopiere sie in den Sphere Ordner (bspw.: &amp;quot;c:\sphere&amp;quot;).&lt;br /&gt;
# Nun sollte die [[Configuring_Sphere.ini/de|Sphere.ini]] bearbeitet werden, der SphereServer wird sonst nicht starten.&lt;br /&gt;
# Doppelklicke dann SphereSvr.exe und dann wird die Konsole starten. In diesem Fenster können administrative Befehle abgesetzt werden (eine Liste dieser Befehle gibts mit Eingabe von &amp;quot;?&amp;quot;).&lt;br /&gt;
# Erstelle einen ersten Account auf dem Server. Führe deshalb folgende Befehle der Reihe nach aus und setze dabei einen passenden Nutzernamen und ein passenden Passwort ein: &lt;br /&gt;
#*&amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account add USERNAME PASSWORD&amp;lt;/font&amp;gt;&amp;quot;&lt;br /&gt;
#*&amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account USERNAME plevel 7&amp;lt;/font&amp;gt;&amp;quot; (dieser Befehl gibt dem Account GM-Rechte).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Server ist nun bereit und man kann sich mit einem UO Client einloggen. Es empfiehlt sich die Tutorials innerhalb dieses Wikis zu lesen, um ein wenig mehr über Sphere zu erfahren.&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
We currently have no guide for this OS. Anyway, the developers have posted a list of required stuff. Here is the list:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compiled on: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;FreeBSD freebsdvbox.fastwebnet.it 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008     root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Using built-in specs.&amp;lt;br /&amp;gt;&lt;br /&gt;
Target: i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Configured with: ./..//gcc-4.1-20071105/configure --disable-nls --with-system-zlib --with-libiconv-prefix=/usr/local --program-suffix=41 --libdir=/usr/local/lib/gcc-4.1.3 --with-gxx-include-dir=/usr/local/lib/gcc-4.1.3/include/c++/ --disable-rpath --prefix=/usr/local --mandir=/usr/local/man --infodir=/usr/local/info/gcc41 i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Thread model: posix&amp;lt;br /&amp;gt;&lt;br /&gt;
gcc version 4.1.3 20071105 (prerelease)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linked Against:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;libthr.so.3 =&amp;gt; /lib/libthr.so.3 (0x281f3000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/local/lib/mysql/libmysqlclient.so.15 (0x28206000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x28265000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.5 =&amp;gt; /lib/libm.so.5 (0x2835a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x2836f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.7 =&amp;gt; /lib/libc.so.7 (0x2837a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.4 =&amp;gt; /lib/libcrypt.so.4 (0x28476000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.4 =&amp;gt; /lib/libz.so.4 (0x2848f000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you use this release, please check [http://www.sphereserver.net/index.php?showtopic=44153 this topic].&lt;br /&gt;
&lt;br /&gt;
{{Languages|Installing Sphere}}&lt;br /&gt;
[[Category: Setting Up Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Installing_Sphere/de&amp;diff=660</id>
		<title>Installing Sphere/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Installing_Sphere/de&amp;diff=660"/>
				<updated>2010-11-25T13:36:25Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: moved Installing Sphere/de to De:Installing Sphere&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[De:Installing Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Where_to_get_Sphere&amp;diff=657</id>
		<title>De:Where to get Sphere</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Where_to_get_Sphere&amp;diff=657"/>
				<updated>2010-11-25T13:35:45Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: moved Where to get Sphere/de to De:Where to get Sphere&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Für Sphere 56b gibt es hauptsächlich 2 Möglichkeiten: Pre-Releases und automatische Builds. Unten ist eine Gegenüberstellung, die Unterschiede beinhaltet.&lt;br /&gt;
&lt;br /&gt;
==Prerelease Builds==&lt;br /&gt;
Prerelease Builds werden regelmäßig veröffentlicht, wenn die Entwickler der Meinung sind, dass eine neue Version fällig ist und sie mit der Stabilität zufrieden sind (d.h. u.a. dass ein Prerelease Build auch läuft). Weil es noch keinen finalen Build gibt, sind die Prerelease Builds am nächsten an einer stabilen Version dran.&lt;br /&gt;
&lt;br /&gt;
Prerelease Builds können hier heruntergeladen werden: [http://prerelease.sphereserver.net SphereServer Pre-releases].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls du nicht sicher bist, was genau hinter einem Prerelease Build steckt, dann gibt es hier noch weitere Informationen: [[#Was will ich eigentlich?|Was will ich eigentlich?]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatisierte Builds==&lt;br /&gt;
Jede Nacht wird automatisiert aus dem bestehenden Code eine neue Version von Sphere erstellt. Das passiert direkt und dieser Build enthält die letzten Änderungen, die von den Entwicklern vorgenommen wurden. Wenn es also die das topaktuellste sein soll, dann nutzt man einen automatisierten Build.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Automatisierte Builds sind hier zum Download verfügbar: [http://nightly.prerelease.sphere.torfo.org/ SphereServer Nightly Automated Builds]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Einige Warnungen, ehe ein solcher automatisierter Build genutzt wird:&lt;br /&gt;
* Da diese Builds direkt mit den neuesten und aktuellsten Änderungen am Quellcode erstellt wurden, ist es nicht ratsam, diese Version für einen laufenden Server zu nutzen, ausser man hat zuvor gut und gründlich getestet.&lt;br /&gt;
* Das Entwicklerteam kann keine oder wenige Hilfestellungen leisten, falls Probleme auftreten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Was will ich eigentlich?==&lt;br /&gt;
Falls noch Unsicherheiten bestehen, welche Version gewählt werden soll, dann sollte man auf einen Prerelease Build zurückgreifen. Automatisierte Builds sind vor allem für fortgeschrittenere Nutzer und Tester gedacht, die neue Features austesten wollen, bevor sie offiziell veröffentlicht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier eine knappe Gegenüberstellung, was die Builds hauptsächlich unterscheidet:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''[[#Prerelease Builds|Prerelease Builds]]''' || '''[[#Automatisierte Builds|Automatisierte Builds]]'''&lt;br /&gt;
|-&lt;br /&gt;
| Forensupport || Kein Support in den Foren&lt;br /&gt;
|-&lt;br /&gt;
| Höhere Stabilität || Keine Garantien für Stabilität&lt;br /&gt;
|-&lt;br /&gt;
| Von Hand kompiliert aus einem stabilen Zweig des Quellcodes || Automatisch kompiliert aus dem Quellcode der Entwickler&lt;br /&gt;
|-&lt;br /&gt;
| Enthält nicht die neuesten Features und Fehlerkorrekturen || Enthält das neueste an Features und Fehlerkorrekturen&lt;br /&gt;
|-&lt;br /&gt;
| Wird alle paar Monate veröffentlicht || Wird täglich veröffentlicht&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zusammengefasst: die Prerelease Builds erhalten Forensupport durch die Entwickler und werden nur veröffentlicht, wenn das Team der Meinung ist, dass genug an Arbeit hineingeflossen ist.  Solange nicht dringend neueste Features und Fehlerkorrekturen benötigt werden, sollte man deshalb als Endnutzer auf diese Builds zurückgreifen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Anmerkung:''''' ''Sollte man nur aus dem Grund einen automatisierten Build wählen, da man nicht auf die offiziellen Prerelease Builds warten will, dann sollte man sich das genau überlegen. Zwar sind neue Features oder Fehlerkorrekturen enthalten, aber die Gefahr, dass manche Dinge nicht abgeschlossen wurden oder bisher unbekannte Bugs und Fehler in Sphere auftauchen, ist viel höher und das kann die Stabilität des Servers stark verringern.''&lt;br /&gt;
&lt;br /&gt;
{{Languages|Where to get Sphere}}&lt;br /&gt;
[[Category: Setting Up Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Where_to_get_Sphere/de&amp;diff=658</id>
		<title>Where to get Sphere/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Where_to_get_Sphere/de&amp;diff=658"/>
				<updated>2010-11-25T13:35:45Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: moved Where to get Sphere/de to De:Where to get Sphere&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[De:Where to get Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Where_to_get_Sphere&amp;diff=656</id>
		<title>De:Where to get Sphere</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Where_to_get_Sphere&amp;diff=656"/>
				<updated>2010-11-25T13:35:36Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Für Sphere 56b gibt es hauptsächlich 2 Möglichkeiten: Pre-Releases und automatische Builds. Unten ist eine Gegenüberstellung, die Unterschiede beinhaltet.&lt;br /&gt;
&lt;br /&gt;
==Prerelease Builds==&lt;br /&gt;
Prerelease Builds werden regelmäßig veröffentlicht, wenn die Entwickler der Meinung sind, dass eine neue Version fällig ist und sie mit der Stabilität zufrieden sind (d.h. u.a. dass ein Prerelease Build auch läuft). Weil es noch keinen finalen Build gibt, sind die Prerelease Builds am nächsten an einer stabilen Version dran.&lt;br /&gt;
&lt;br /&gt;
Prerelease Builds können hier heruntergeladen werden: [http://prerelease.sphereserver.net SphereServer Pre-releases].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls du nicht sicher bist, was genau hinter einem Prerelease Build steckt, dann gibt es hier noch weitere Informationen: [[#Was will ich eigentlich?|Was will ich eigentlich?]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatisierte Builds==&lt;br /&gt;
Jede Nacht wird automatisiert aus dem bestehenden Code eine neue Version von Sphere erstellt. Das passiert direkt und dieser Build enthält die letzten Änderungen, die von den Entwicklern vorgenommen wurden. Wenn es also die das topaktuellste sein soll, dann nutzt man einen automatisierten Build.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Automatisierte Builds sind hier zum Download verfügbar: [http://nightly.prerelease.sphere.torfo.org/ SphereServer Nightly Automated Builds]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Einige Warnungen, ehe ein solcher automatisierter Build genutzt wird:&lt;br /&gt;
* Da diese Builds direkt mit den neuesten und aktuellsten Änderungen am Quellcode erstellt wurden, ist es nicht ratsam, diese Version für einen laufenden Server zu nutzen, ausser man hat zuvor gut und gründlich getestet.&lt;br /&gt;
* Das Entwicklerteam kann keine oder wenige Hilfestellungen leisten, falls Probleme auftreten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Was will ich eigentlich?==&lt;br /&gt;
Falls noch Unsicherheiten bestehen, welche Version gewählt werden soll, dann sollte man auf einen Prerelease Build zurückgreifen. Automatisierte Builds sind vor allem für fortgeschrittenere Nutzer und Tester gedacht, die neue Features austesten wollen, bevor sie offiziell veröffentlicht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier eine knappe Gegenüberstellung, was die Builds hauptsächlich unterscheidet:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''[[#Prerelease Builds|Prerelease Builds]]''' || '''[[#Automatisierte Builds|Automatisierte Builds]]'''&lt;br /&gt;
|-&lt;br /&gt;
| Forensupport || Kein Support in den Foren&lt;br /&gt;
|-&lt;br /&gt;
| Höhere Stabilität || Keine Garantien für Stabilität&lt;br /&gt;
|-&lt;br /&gt;
| Von Hand kompiliert aus einem stabilen Zweig des Quellcodes || Automatisch kompiliert aus dem Quellcode der Entwickler&lt;br /&gt;
|-&lt;br /&gt;
| Enthält nicht die neuesten Features und Fehlerkorrekturen || Enthält das neueste an Features und Fehlerkorrekturen&lt;br /&gt;
|-&lt;br /&gt;
| Wird alle paar Monate veröffentlicht || Wird täglich veröffentlicht&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zusammengefasst: die Prerelease Builds erhalten Forensupport durch die Entwickler und werden nur veröffentlicht, wenn das Team der Meinung ist, dass genug an Arbeit hineingeflossen ist.  Solange nicht dringend neueste Features und Fehlerkorrekturen benötigt werden, sollte man deshalb als Endnutzer auf diese Builds zurückgreifen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Anmerkung:''''' ''Sollte man nur aus dem Grund einen automatisierten Build wählen, da man nicht auf die offiziellen Prerelease Builds warten will, dann sollte man sich das genau überlegen. Zwar sind neue Features oder Fehlerkorrekturen enthalten, aber die Gefahr, dass manche Dinge nicht abgeschlossen wurden oder bisher unbekannte Bugs und Fehler in Sphere auftauchen, ist viel höher und das kann die Stabilität des Servers stark verringern.''&lt;br /&gt;
&lt;br /&gt;
{{Languages|Where to get Sphere}}&lt;br /&gt;
[[Category: Setting Up Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Contribution_Guide&amp;diff=655</id>
		<title>De:Contribution Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Contribution_Guide&amp;diff=655"/>
				<updated>2010-11-25T13:34:18Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da dieses Wiki durch die Community und nicht durch die Entwickler gepflegt wird, ist jede Hilfe willkommen.&lt;br /&gt;
&lt;br /&gt;
Es wird lediglich ein [[Special:UserLogin|Account]] benötigt und schon kann man loslegen. Oberhalb jedes Artikels ist ein &amp;quot;Edit&amp;quot;-Link, mit dem sich jeder Artikel sofort bearbeiten lässt, sofern man eingeloggt ist.&lt;br /&gt;
&lt;br /&gt;
Zentrale Punkte in der Pflege der Artikel:&lt;br /&gt;
* Fehlerkorrektur in existierenden Seiten&lt;br /&gt;
* Artikel über UO oder Sphere verfassen&lt;br /&gt;
* Updates für das [[de:Main Page#Referenzkompendium|Referenzkompendium]], denn mit jeder neuen Version von Sphere können neue Features auftauchen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Egal welche Art von Pflege hier betrieben wird, es sollten dabei folgende Gebote beachtet werden:&lt;br /&gt;
* Sicherstellen, dass die Information fehlerfrei, präzise und aktuell ist.&lt;br /&gt;
* So klar wie möglich Sachverhalte darlegen und dabei auf den übliche Internetslang verzichten.&lt;br /&gt;
* Andere werden es nicht gern sehen, wenn man ihre Artikel grundlegend verändert. Wenn grundlegende Änderungen durchgeführt werden sollen, sollte man in Betracht ziehen, die ursprünglichen Autoren zu kontaktieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn du etwas beitragen möchtest, aber nicht weisst, was zu tun wäre:&lt;br /&gt;
* Überprüfe [[Special:WantedPages|wanted pages]]. Diese Liste enthält Seiten, die von anderen Artikeln zwar verlinkt wurden, aber die noch keinerlei Inhalt haben.&lt;br /&gt;
* Überprüfe [[Special:WantedCategories|wanted categories]]. Hier sind Kategorisierungen, die von anderen verlinkt wurden, aber noch keinen Inhalt enthalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls du beim Bearbeiten von Artikeln keinerlei Erfahrung hast und die Syntax des Wikis nicht kennst: [[Help:Editing|Editing help]] (deutsche Version wird noch folgen). Diese Hilfe enthält auch eine spezielle Syntax für Sphere Skripte.&lt;br /&gt;
&lt;br /&gt;
{{Languages|Contribution Guide}}&lt;br /&gt;
[[Category: Navigation]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Contribution_Guide&amp;diff=653</id>
		<title>De:Contribution Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Contribution_Guide&amp;diff=653"/>
				<updated>2010-11-25T13:33:33Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: moved Contribution Guide/de to De:Contribution Guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da dieses Wiki durch die Community und nicht durch die Entwickler gepflegt wird, ist jede Hilfe willkommen.&lt;br /&gt;
&lt;br /&gt;
Es wird lediglich ein [[Special:UserLogin|Account]] benötigt und schon kann man loslegen. Oberhalb jedes Artikels ist ein &amp;quot;Edit&amp;quot;-Link, mit dem sich jeder Artikel sofort bearbeiten lässt, sofern man eingeloggt ist.&lt;br /&gt;
&lt;br /&gt;
Zentrale Punkte in der Pflege der Artikel:&lt;br /&gt;
* Fehlerkorrektur in existierenden Seiten&lt;br /&gt;
* Artikel über UO oder Sphere verfassen&lt;br /&gt;
* Updates für das [[Main Page/de#Referenzkompendium|Referenzkompendium]], denn mit jeder neuen Version von Sphere können neue Features auftauchen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Egal welche Art von Pflege hier betrieben wird, es sollten dabei folgende Gebote beachtet werden:&lt;br /&gt;
* Sicherstellen, dass die Information fehlerfrei, präzise und aktuell ist.&lt;br /&gt;
* So klar wie möglich Sachverhalte darlegen und dabei auf den übliche Internetslang verzichten.&lt;br /&gt;
* Andere werden es nicht gern sehen, wenn man ihre Artikel grundlegend verändert. Wenn grundlegende Änderungen durchgeführt werden sollen, sollte man in Betracht ziehen, die ursprünglichen Autoren zu kontaktieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn du etwas beitragen möchtest, aber nicht weisst, was zu tun wäre:&lt;br /&gt;
* Überprüfe [[Special:WantedPages|wanted pages]]. Diese Liste enthält Seiten, die von anderen Artikeln zwar verlinkt wurden, aber die noch keinerlei Inhalt haben.&lt;br /&gt;
* Überprüfe [[Special:WantedCategories|wanted categories]]. Hier sind Kategorisierungen, die von anderen verlinkt wurden, aber noch keinen Inhalt enthalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls du beim Bearbeiten von Artikeln keinerlei Erfahrung hast und die Syntax des Wikis nicht kennst: [[Help:Editing|Editing help]] (deutsche Version wird noch folgen). Diese Hilfe enthält auch eine spezielle Syntax für Sphere Skripte.&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Contribution_Guide/de&amp;diff=654</id>
		<title>Contribution Guide/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Contribution_Guide/de&amp;diff=654"/>
				<updated>2010-11-25T13:33:33Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: moved Contribution Guide/de to De:Contribution Guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[De:Contribution Guide]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Main_Page&amp;diff=652</id>
		<title>De:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Main_Page&amp;diff=652"/>
				<updated>2010-11-25T13:32:38Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Willkommen zum Remake von Taran's bekannter Seite: &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot;. Seine Tutorials waren damals für Sphere 55i erstellt worden, mittlerweile ist die aktuelle Version Sphere 56b und deshalb wurde entschieden, hier auf diesen Seiten eine Sammlung aktueller Tutorials und ein Kompendium neuer Funktionen zu bieten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Wo fang ich nun an?'''&lt;br /&gt;
&lt;br /&gt;
Jeder, der sich für die Skriptsprache von Sphere 56b interessiert, sollte hier anfangen: [[#Installation von Sphere|Installation von Sphere]]. Dort findet man die ersten Schritte mit Sphere. Danach empfiehlt es sich alle [[#Tutorials|Tutorials]] durch zu arbeiten, möglichst alles dabei zu verstehen und viel zu lernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ich hab jetzt Skripten gelernt! Was nun?'''&lt;br /&gt;
&lt;br /&gt;
Sind die ersten 10 Kapitels durchgearbeitet, dann gibt es hier natürlich noch weitere Artikel und Seiten. Sie erscheinen vielleicht nicht so wichtig, wie die anderen, aber sind dennöch mit weiterführenden und nützlichen Informationen gespickt. Versuche eigene Skripte zu entwickeln, sie vielleicht auch im [http://www.sphereserver.net/index.php SphereServer Forums] zu veröffentlichen. In den Forum erhält man auch weitere Hilfestellungen und Antworten auf Fragen. Des Weiteren ist auch das [[#Referenzkompendium|Referenzkompendium]] sehr nützlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ich will mithelfen!'''&lt;br /&gt;
&lt;br /&gt;
Um die Informationen auf diesen Seiten immer möglichst aktuell zu halten, ist natürlich viel Arbeit und Zeit notwendig. Jeder, der mithelfen möchte, diese Seiten zu pflegen, darf sich jederzeit hier anmelden und die Artikel hier überarbeiten. Alles, was man dafür braucht, ist ein [[Special:UserLogin|Wiki-Account]]. Oberhalb jeder Seite ist ein &amp;quot;Edit&amp;quot;-Link. Ausserdem sollte dieser Guide gelesen werden: [[de:Contribution Guide|Leitfaden für das SphereWiki]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Dank geht speziell an:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus and WarAngel]], für das Hinzufügen von Inhalt.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Daleth]], für das Erstellen des Sphere Reference Project, and [[WhoIsWho|Mordaunt]] für die Konvertierung ins .chm-Format.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Tracker]], für das Übertragen von Änderungen in Sphere 56 Tracking Changes.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Taran]], für die originalen Sphere Scripting for Dummies tutorials und [[WhoIsWho|MrSugarCube]], der ständige Neuerungen aktuell hält.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Furio, Radiant, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon and MrSugarCube]] für kontinuierliche Arbeit an Sphere, wodurch ein sehr mächtiger und an alle möglichen Bedürfnisse anpassbarer Ultima Online Emulator entstand.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Crius]], der das ursprüngliche Wiki gehostet hat, und [[WhoIsWho|Torfo]], der das Wiki momentan hostet.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation von Sphere==&lt;br /&gt;
&lt;br /&gt;
* [[de:Where to get Sphere|Sphere herunterladen]]&lt;br /&gt;
* [[de:Installing Sphere|Sphere installieren]]&lt;br /&gt;
* [[de:Configuring Sphere.ini|Konfigurationseinstellungen der Sphere.ini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
Die Kapitel von Taran in aktualisierter Version für 56b:&lt;br /&gt;
&lt;br /&gt;
* [[de:Chapter 1|Kapitel 1]] ''(Nummern, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[de:Chapter 2|Kapitel 2]] ''(Übersicht über die Standardskripte)''&lt;br /&gt;
* [[de:Chapter 3|Kapitel 3]] ''(NPC's und Gegenstände, coole Funktionen)''&lt;br /&gt;
* [[de:Chapter 4|Kapitel 4]] ''(Objekte, Operatoren, Sprache)''&lt;br /&gt;
* [[de:Chapter 5|Kapitel 5]] ''(Tags, Vars, Locals, Functions)''&lt;br /&gt;
* [[de:Chapter 6|Kapitel 6]] ''(LINKs, TIMERs, TARGETs)''&lt;br /&gt;
* [[de:Chapter 7|Kapitel 7]] ''(Schleifen und mächtige Funktionen)''&lt;br /&gt;
* [[de:Chapter 8|Kapitel 8]] ''(SKILLMENUs, MENUs, Gumps)''&lt;br /&gt;
* [[de:Chapter 9|Kapitel 9]] ''(Events)''&lt;br /&gt;
* [[de:Chapter 10|Kapitel 10]] ''(Strings/Zeichenketten behandeln)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zusätlich gibt es noch einige etwas fortgeschrittenere Tutorials, die von anderen Mitgliedern der Community bereitgestellt wurden. Nachdem man die 10 Kapitel durchgearbeitet hat, bieten sich die folgenden an, wenn man noch mehr lernen möchte:&lt;br /&gt;
&lt;br /&gt;
* [[Common Mistakes|Häufige Fehler]] ''(A revision of Maximus's tutorial on the forums, and continuation of Taran's Misconceptions tutorial)''&lt;br /&gt;
* [[Internet and Sphere]] ''(And how to make the right use of them)''&lt;br /&gt;
* [[Languages Tutorial]] ''(How to script your own language system)''&lt;br /&gt;
* [[Making your own Skills]] ''(How to make and customize your skill)''&lt;br /&gt;
* [[Mul Patching Tutorial|Nazghul's Mul Patching Tutorial]] [http://sorea.profitux.cz/patching/ external link] ''(A document about mul patching and customizing your server)''&lt;br /&gt;
* [[Overriding Hardcoded Commands]] ''(How to override hardcoded commands and functions)''&lt;br /&gt;
* [[Scheduled Reboot]] ''(How to schedule system reboots)''&lt;br /&gt;
* [[Using MySQL]] ''(How to use MySQL)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Referenzkompendium==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Definitions|Definitions]]&lt;br /&gt;
** [[CHARDEF|Characters]]&lt;br /&gt;
** [[DIALOG|Dialogs]]&lt;br /&gt;
** [[EVENTS|Events]]&lt;br /&gt;
** [[ITEMDEF|Items]]&lt;br /&gt;
** [[MENU|Menus]]&lt;br /&gt;
** [[REGIONRESOURCE|Region Resources]]&lt;br /&gt;
** [[REGIONTYPE|Region Types]]&lt;br /&gt;
** [[AREADEF|Regions]]&lt;br /&gt;
** [[ROOMDEF|Rooms]]&lt;br /&gt;
** [[SKILLCLASS|Skill Classes]]&lt;br /&gt;
** [[SKILLMENU|Skill Menus]]&lt;br /&gt;
** [[SKILL|Skills]]&lt;br /&gt;
** [[SPAWN|Spawn Groups]]&lt;br /&gt;
** [[SPELL|Spells]]&lt;br /&gt;
** [[TYPEDEF|Types]]&lt;br /&gt;
* [[:Category:Objects|Objects]]&lt;br /&gt;
** [[Accounts]]&lt;br /&gt;
** [[Characters]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[Files]]&lt;br /&gt;
** [[GM Pages]]&lt;br /&gt;
** [[Items]]&lt;br /&gt;
*** [[Special Items]]&lt;br /&gt;
** [[Map Points]]&lt;br /&gt;
** [[Parties]]&lt;br /&gt;
** [[Regions]]&lt;br /&gt;
** [[Rooms]]&lt;br /&gt;
** [[Sectors]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
* [[:Category:Scripts|Scripts]]&lt;br /&gt;
** [[:Category:Functions|Functions and Triggers]]&lt;br /&gt;
** [[:Category:Variables|General Functions, Properties and References]]&lt;br /&gt;
** [[Intrinsic Functions]]&lt;br /&gt;
** [[:Category:Statements|Statements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Andere Artikel==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Calculation]]&lt;br /&gt;
* [[Client Changes]]&lt;br /&gt;
* [[Common Scripting Misconceptions]]&lt;br /&gt;
* [[Custom Object Properties]]&lt;br /&gt;
* [[Error Codes]]&lt;br /&gt;
* [[Experience System]]&lt;br /&gt;
* [[How Combat Works]]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimization|Optimization Theory]]&lt;br /&gt;
* [[Override TAGs]]&lt;br /&gt;
* [[Revisions Changelog]]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Skill Gain Theory]]&lt;br /&gt;
* [[The Process of Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sphereserver.net/ Offizielle SphereServer Webseite]&lt;br /&gt;
* [http://prerelease.sphere.torfo.org/ Offizielle Sphere 56b Downloads]&lt;br /&gt;
* [http://nightly.prerelease.sphere.torfo.org/ Offizielle Sphere 56b Nightly Builds]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [http://www.cs.rit.edu/~djr7581/ Taran's Scripting for Dummies (Sphere 55i)]&lt;br /&gt;
* [http://uo.torfo.org/packetguide/ Jerrith's UO Packet Guide]&lt;br /&gt;
* [http://uo.torfo.org/packetguideKR/ Wyatt&amp;amp;Kons's UOKR Packet Guide]&lt;br /&gt;
&lt;br /&gt;
{{Languages|Main Page}}&lt;br /&gt;
[[Category: Navigation]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Main_Page&amp;diff=650</id>
		<title>De:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Main_Page&amp;diff=650"/>
				<updated>2010-11-25T13:30:28Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: moved Main Page/de to De:Main Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Willkommen zum Remake von Taran's bekannter Seite: &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot;. Seine Tutorials waren damals für Sphere 55i erstellt worden, mittlerweile ist die aktuelle Version Sphere 56b und deshalb wurde entschieden, hier auf diesen Seiten eine Sammlung aktueller Tutorials und ein Kompendium neuer Funktionen zu bieten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Wo fang ich nun an?'''&lt;br /&gt;
&lt;br /&gt;
Jeder, der sich für die Skriptsprache von Sphere 56b interessiert, sollte hier anfangen: [[#Installation von Sphere|Installation von Sphere]]. Dort findet man die ersten Schritte mit Sphere. Danach empfiehlt es sich alle [[#Tutorials|Tutorials]] durch zu arbeiten, möglichst alles dabei zu verstehen und viel zu lernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ich hab jetzt Skripten gelernt! Was nun?'''&lt;br /&gt;
&lt;br /&gt;
Sind die ersten 10 Kapitels durchgearbeitet, dann gibt es hier natürlich noch weitere Artikel und Seiten. Sie erscheinen vielleicht nicht so wichtig, wie die anderen, aber sind dennöch mit weiterführenden und nützlichen Informationen gespickt. Versuche eigene Skripte zu entwickeln, sie vielleicht auch im [http://www.sphereserver.net/index.php SphereServer Forums] zu veröffentlichen. In den Forum erhält man auch weitere Hilfestellungen und Antworten auf Fragen. Des Weiteren ist auch das [[#Referenzkompendium|Referenzkompendium]] sehr nützlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ich will mithelfen!'''&lt;br /&gt;
&lt;br /&gt;
Um die Informationen auf diesen Seiten immer möglichst aktuell zu halten, ist natürlich viel Arbeit und Zeit notwendig. Jeder, der mithelfen möchte, diese Seiten zu pflegen, darf sich jederzeit hier anmelden und die Artikel hier überarbeiten. Alles, was man dafür braucht, ist ein [[Special:UserLogin|Wiki-Account]]. Oberhalb jeder Seite ist ein &amp;quot;Edit&amp;quot;-Link. Ausserdem sollte dieser Guide gelesen werden: [[Contribution Guide/de|Leitfaden für das SphereWiki]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Dank geht speziell an:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus and WarAngel]], für das Hinzufügen von Inhalt.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Daleth]], für das Erstellen des Sphere Reference Project, and [[WhoIsWho|Mordaunt]] für die Konvertierung ins .chm-Format.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Tracker]], für das Übertragen von Änderungen in Sphere 56 Tracking Changes.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Taran]], für die originalen Sphere Scripting for Dummies tutorials und [[WhoIsWho|MrSugarCube]], der ständige Neuerungen aktuell hält.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Furio, Radiant, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon and MrSugarCube]] für kontinuierliche Arbeit an Sphere, wodurch ein sehr mächtiger und an alle möglichen Bedürfnisse anpassbarer Ultima Online Emulator entstand.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Crius]], der das ursprüngliche Wiki gehostet hat, und [[WhoIsWho|Torfo]], der das Wiki momentan hostet.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation von Sphere==&lt;br /&gt;
&lt;br /&gt;
* [[Where to get Sphere/de|Sphere herunterladen]]&lt;br /&gt;
* [[Installing Sphere/de|Sphere installieren]]&lt;br /&gt;
* [[Configuring Sphere.ini/de|Konfigurationseinstellungen der Sphere.ini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
Die Kapitel von Taran in aktualisierter Version für 56b:&lt;br /&gt;
&lt;br /&gt;
* [[Chapter 1/de|Kapitel 1]] ''(Nummern, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[Chapter 2/de|Kapitel 2]] ''(Übersicht über die Standardskripte)''&lt;br /&gt;
* [[Chapter 3/de|Kapitel 3]] ''(NPC's und Gegenstände, coole Funktionen)''&lt;br /&gt;
* [[Chapter 4/de|Kapitel 4]] ''(Objekte, Operatoren, Sprache)''&lt;br /&gt;
* [[Chapter 5/de|Kapitel 5]] ''(Tags, Vars, Locals, Functions)''&lt;br /&gt;
* [[Chapter 6/de|Kapitel 6]] ''(LINKs, TIMERs, TARGETs)''&lt;br /&gt;
* [[Chapter 7/de|Kapitel 7]] ''(Schleifen und mächtige Funktionen)''&lt;br /&gt;
* [[Chapter 8/de|Kapitel 8]] ''(SKILLMENUs, MENUs, Gumps)''&lt;br /&gt;
* [[Chapter 9/de|Kapitel 9]] ''(Events)''&lt;br /&gt;
* [[Chapter 10/de|Kapitel 10]] ''(Strings/Zeichenketten behandeln)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zusätlich gibt es noch einige etwas fortgeschrittenere Tutorials, die von anderen Mitgliedern der Community bereitgestellt wurden. Nachdem man die 10 Kapitel durchgearbeitet hat, bieten sich die folgenden an, wenn man noch mehr lernen möchte:&lt;br /&gt;
&lt;br /&gt;
* [[Common Mistakes|Häufige Fehler]] ''(A revision of Maximus's tutorial on the forums, and continuation of Taran's Misconceptions tutorial)''&lt;br /&gt;
* [[Internet and Sphere]] ''(And how to make the right use of them)''&lt;br /&gt;
* [[Languages Tutorial]] ''(How to script your own language system)''&lt;br /&gt;
* [[Making your own Skills]] ''(How to make and customize your skill)''&lt;br /&gt;
* [[Mul Patching Tutorial|Nazghul's Mul Patching Tutorial]] [http://sorea.profitux.cz/patching/ external link] ''(A document about mul patching and customizing your server)''&lt;br /&gt;
* [[Overriding Hardcoded Commands]] ''(How to override hardcoded commands and functions)''&lt;br /&gt;
* [[Scheduled Reboot]] ''(How to schedule system reboots)''&lt;br /&gt;
* [[Using MySQL]] ''(How to use MySQL)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Referenzkompendium==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Definitions|Definitions]]&lt;br /&gt;
** [[CHARDEF|Characters]]&lt;br /&gt;
** [[DIALOG|Dialogs]]&lt;br /&gt;
** [[EVENTS|Events]]&lt;br /&gt;
** [[ITEMDEF|Items]]&lt;br /&gt;
** [[MENU|Menus]]&lt;br /&gt;
** [[REGIONRESOURCE|Region Resources]]&lt;br /&gt;
** [[REGIONTYPE|Region Types]]&lt;br /&gt;
** [[AREADEF|Regions]]&lt;br /&gt;
** [[ROOMDEF|Rooms]]&lt;br /&gt;
** [[SKILLCLASS|Skill Classes]]&lt;br /&gt;
** [[SKILLMENU|Skill Menus]]&lt;br /&gt;
** [[SKILL|Skills]]&lt;br /&gt;
** [[SPAWN|Spawn Groups]]&lt;br /&gt;
** [[SPELL|Spells]]&lt;br /&gt;
** [[TYPEDEF|Types]]&lt;br /&gt;
* [[:Category:Objects|Objects]]&lt;br /&gt;
** [[Accounts]]&lt;br /&gt;
** [[Characters]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[Files]]&lt;br /&gt;
** [[GM Pages]]&lt;br /&gt;
** [[Items]]&lt;br /&gt;
*** [[Special Items]]&lt;br /&gt;
** [[Map Points]]&lt;br /&gt;
** [[Parties]]&lt;br /&gt;
** [[Regions]]&lt;br /&gt;
** [[Rooms]]&lt;br /&gt;
** [[Sectors]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
* [[:Category:Scripts|Scripts]]&lt;br /&gt;
** [[:Category:Functions|Functions and Triggers]]&lt;br /&gt;
** [[:Category:Variables|General Functions, Properties and References]]&lt;br /&gt;
** [[Intrinsic Functions]]&lt;br /&gt;
** [[:Category:Statements|Statements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Andere Artikel==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Calculation]]&lt;br /&gt;
* [[Client Changes]]&lt;br /&gt;
* [[Common Scripting Misconceptions]]&lt;br /&gt;
* [[Custom Object Properties]]&lt;br /&gt;
* [[Error Codes]]&lt;br /&gt;
* [[Experience System]]&lt;br /&gt;
* [[How Combat Works]]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimization|Optimization Theory]]&lt;br /&gt;
* [[Override TAGs]]&lt;br /&gt;
* [[Revisions Changelog]]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Skill Gain Theory]]&lt;br /&gt;
* [[The Process of Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sphereserver.net/ Offizielle SphereServer Webseite]&lt;br /&gt;
* [http://prerelease.sphere.torfo.org/ Offizielle Sphere 56b Downloads]&lt;br /&gt;
* [http://nightly.prerelease.sphere.torfo.org/ Offizielle Sphere 56b Nightly Builds]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [http://www.cs.rit.edu/~djr7581/ Taran's Scripting for Dummies (Sphere 55i)]&lt;br /&gt;
* [http://uo.torfo.org/packetguide/ Jerrith's UO Packet Guide]&lt;br /&gt;
* [http://uo.torfo.org/packetguideKR/ Wyatt&amp;amp;Kons's UOKR Packet Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Main_Page/de&amp;diff=651</id>
		<title>Main Page/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Main_Page/de&amp;diff=651"/>
				<updated>2010-11-25T13:30:28Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: moved Main Page/de to De:Main Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[De:Main Page]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=635</id>
		<title>De:Installing Sphere</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=635"/>
				<updated>2010-11-23T23:50:59Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Linux==&lt;br /&gt;
===Vorwort===&lt;br /&gt;
Sphere auf einem Linuxsystem zu installieren, ist nicht viel schwieriger als auf einem Windowsrechner. Allerdings ist Basiswissen über Linux vorausgesetzt und ein wenig Erfahrung mit der Kommandozeile von Nöten, da hier nicht einfach auf ein Symbol geklickt wird und Sphere läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung ist deshalb darauf ausgelegt, dass eine Shell oder ein Terminal zum Linuxsystem verfügbar ist und root-Rechte vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich wird diese Anleitung nicht beinhalten, welche Dateien auf dem Linux Server verfügbar sein müssen. Diese Anleitung umfasst keine Einführung in Linuxsysteme und hat auch keinen Anspruch darauf, dies zu sein. Für weiterführende Informationen über Linux gibt es viele E-Books und Howtos, die frei im Web verfügbar sind. Beispielsweise ist hier ein guter Startpunkt: [http://www.linux.org http://www.linux.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wichtig ist aber vor allem folgendes: Anders als ein Windowssystem, ist Linux bezüglich Datei- und Ordnernamen die Groß- und Kleinschreibung zu beachten. Wenn eine Datei von Sphere nicht gefunden wird, liegt das möglicherweise daran, dass gewisse Dateien falsch geschrieben sind, wie bspw: &amp;quot;sphere.INI&amp;quot; anstelle von &amp;quot;sphere.ini&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen, die in dieser Anleitung kursiv sind, sollten direkt in das Terminal eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Vorbereitungens===&lt;br /&gt;
Auf dem Linuxsystem wird eine Installation des MySQL Clients benötigt. Fehlen die Bibliotheken des MySQL Clients, wird Sphere nicht ausführbar sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des Weiteren wird ein Sphere Version FÜR LINUX benötigt, sowie das passende Skriptpaket und eventuelle zusätzliche Bibliotheken, die in der Downloadsektion angegeben sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Schritt für Schritt Installation===&lt;br /&gt;
'''1)''' Mit Rootrechten einen neuen Nutzer namens &amp;quot;sphere&amp;quot; anlegen. Dieser Nutzer benötigt ein eigenen Heimverzeichnis (meistens: /home/sphere) mit den entsprechenden Rechten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;useradd -d /home/sphere sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
mkdir /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown sphere /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 700 /home/sphere&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2)''' Kopiere alle Dateien des Sphere LINUX downloads, das Skriptpaket und eventuell nötige Bibliotheken in das neu angelegte Verzeichnis. Zudem müssen Unterordner angelegt werden: &amp;quot;save&amp;quot;, &amp;quot;logs&amp;quot; und &amp;quot;accounts&amp;quot;, wie angegeben in der sphere.ini und in spheretables.scp. Am Ende sollte eine ähnliche Ordnerstruktur vorliegen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/home/sphere --- spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphere.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphereCrypt.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- accounts/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- logs/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- muls/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- save/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- scripts/&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3)''' Nachdem alle Dateien an die richtige Stelle kopiert wurden, benötigen sie die richtigen Dateirechte. Deshalb weiterhin unter Rootrechten folgende Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown -R sphere *&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type d | xargs chmod 0700&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type f | xargs chmod 0600&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 4700 spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4)''' Immer noch unter Rootrechten:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ldd spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe sollte nun ungefähr so lauten: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ldd spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
libpthread.so.0 =&amp;gt; /lib/libpthread.so.0 (0x4001f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/lib/libmysqlclient.so.15 (0x40071000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libboost_regex-gcc-1_33_1.so =&amp;gt; /usr/lib/libboost_regex-gcc-1_33_1.so (0x40243000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x402ea000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.6 =&amp;gt; /lib/libm.so.6 (0x403c9000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x403ef000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.6 =&amp;gt; /lib/libc.so.6 (0x403fa000)&amp;lt;br /&amp;gt;&lt;br /&gt;
/lib/ld-linux.so.2 (0x40000000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.1 =&amp;gt; /lib/libcrypt.so.1 (0x4051c000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libnsl.so.1 =&amp;gt; /lib/libnsl.so.1 (0x4054a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.1 =&amp;gt; /usr/lib/libz.so.1 (0x40561000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NACH FEHLENDEN BIBLIOTHEKEN AUSSCHAU HALTEN! Notfalls müssen diese nachinstalliert werden.&lt;br /&gt;
&lt;br /&gt;
===Die Installation testen===&lt;br /&gt;
Es ist jetzt nicht mehr von Belang, ob der erste Test mit Rootrechten oder unter dem Benutzer sphere ausgeführt wird. Werden die Rechte der Datei auf 4700 gesetzt, wird Sphere automatisch immer unter dem benutzer sphere ausgeführt. Deshalb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
./spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es sollte nun eine Liste des Startups folgen ... mit vielleicht enthaltenen Warnings: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ./spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
WARNING:(sphere.ini,587)'scripts/spherestatusbase.html' not found...&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(sphere.ini,587)Can't open web page input 'spherestatusbase1.htm'&amp;lt;br /&amp;gt;&lt;br /&gt;
Sphere Version 0.56b [Linux] by www.sphereserver.com, compiled at Sep 15 2006 (23:23:07)&amp;lt;br /&amp;gt;&lt;br /&gt;
Signal handlers installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
Expansion maps supported: T2A, LBR, AOS, SE, ML&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)Unable to open directory scripts/custom/&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)DirList=-1 for 'scripts/custom/'&amp;lt;br /&amp;gt;&lt;br /&gt;
Allocating map sectors: 0=7168 1=7168 2=900 3=1280 4=32761&amp;lt;br /&amp;gt;&lt;br /&gt;
Indexing 211 scripts...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading scripts/sphere_defs.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
[...]&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warnings und Fehler über fehlende Webseiten können ignoriert werden. Falls allerdings andere Fehler auftreten oder Sphere terminiert (=sich beendet), dann sollte in den vorhergehenden Zeilen nach dem Grund gesucht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich sollten folgende Meldungen auftauchen, falls alles gut lief: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;[...]&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spheredata...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherestatics...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/sphereworld...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherechars...&amp;lt;br /&amp;gt;&lt;br /&gt;
166 Objects accounted for&amp;lt;br /&amp;gt;&lt;br /&gt;
Option flags: CommandSysmsgs + NoHouseMuteSpeech&amp;lt;br /&amp;gt;&lt;br /&gt;
Experimental flags: DiagonalWalkCheck + ScriptsReturnStrings + NewTriggersEnable + NewPositionChecks + WalkCheck + ScriptProfiler + SizeOptimize&amp;lt;br /&amp;gt;&lt;br /&gt;
Admin=me@my.email.com, URL=www.myshard.com, Lang=English, TZ=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Startup complete. items=0, chars=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Creating thread.&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach befindet man sich in der Sphere Konsole und kann allgemeine Befehle absetzen ('?' gibt eine Liste aus). Lege einen Account an, aktiviert ihn, editier die login.cfg des Ultima Online Clients damit er die IP-Adresse des Servers enthält und log ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit Sphere wieder heruntergefahren wird, ist zunächst der Befehl &amp;quot;S&amp;quot;, gefolgt vom Befehl &amp;quot;X&amp;quot; notwendig. Linux wird dann versuchen, Sphere zu beenden - sollte das aus irgendeinem Grund nicht funktionieren, hilft die Tastenkombination STRG-c weiter.&lt;br /&gt;
&lt;br /&gt;
===Einen Liveshard aufsetzen===&lt;br /&gt;
Sphere in einem Terminal laufen zu lassen hat einen Nachteil: schließt man dieses Terminal, beendet Linux auch Sphere. Das ist unter Linuxsystemen beabsichtigt, weil es ein Multiusersystem ist. Das bedeutet vor allem, dass bei jedem Logout eines Nutzers auch unbedingt all seine laufenden Prozesse beendet werden sollten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich ist es aber dennoch möglich, Prozesse im Hintergrund laufen zu lassen, selbst wenn Terminal oder Shell geschlossen werden. Hierfür bietet sich ein Skript an, das ein Tool namens 'screen' nutzt (notfalls nachinstallieren):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;#!/bin/sh&amp;lt;br /&amp;gt;&lt;br /&gt;
cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
while true; do&amp;lt;br /&amp;gt;&lt;br /&gt;
screen -D -m /home/sphere/spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
sleep 30&amp;lt;br /&amp;gt;&lt;br /&gt;
done&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Skript kann in jedem beliebigen Editor abgespeichert werden und sollte möglichst die Dateiendung .sh erhalten. Wird das Skript ausgeführt, startet sich Sphere in einem virtuellen Terminal, das jederzeit mit &amp;quot;screen -r &amp;quot;abgerufen werden kann. Mit der Tastenkombination STRG-a gefolgt von STRG-d kann man dieses Terminal jederzeit wieder verlassen und es läuft im Hintergrund weiter. In der Dokumentation von &amp;quot;screen&amp;quot; finden sich weitere Informationen.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
Als erstes sollte Sphere hier heruntergeladen werden: [[Where to get Sphere/de|Sphere Download]]. Man sollte danach mindestestens zwei verschiedene zip Dateien erhalten haben, eins für den SphereServer und eins mit dem Script Paket.&lt;br /&gt;
&lt;br /&gt;
# Entpacke SphereServer-0.56b....zip in einen Ordner bspw. nach &amp;quot;c:\sphere&amp;quot;&lt;br /&gt;
# Entpacke SphereServer-0.56b-xxxxxxxxxxxx-Scripts.zip Ordner aus Schritt 1. Es sollte nun &amp;quot;c:\sphere&amp;quot; ein Ordner namens &amp;quot;scripts&amp;quot; vorhanden sein.&lt;br /&gt;
# Erstelle in diesem Ordner drei weitere Unterordner: &amp;quot;accounts&amp;quot;, &amp;quot;logs&amp;quot; und &amp;quot;save&amp;quot;.&lt;br /&gt;
# Im &amp;quot;save&amp;quot; Ordner, erstelle eine leere Textdatei (bspw. mit dem Windows Notepad) und schreibe in diese Datei eine einzelne Zeile, in der [EOF] steht. Benenne diese Datei dann &amp;quot;spheredata.SCP&amp;quot; (NICHT .txt).&lt;br /&gt;
# Erstelle drei Kopien dieser Datei und benenne sie: spherestatics, spherechars.scp und sphereworld.scp&lt;br /&gt;
# Wiederhole das dann im &amp;quot;accounts&amp;quot; Ordner und erstelle die Dateien: &amp;quot;sphereacct.scp&amp;quot; und &amp;quot;sphereaccu.scp&amp;quot;&lt;br /&gt;
# Lade dir dann [http://prerelease.sphere.torfo.org/files/libMySQL.dll MySQL Library] und kopiere sie in den Sphere Ordner (bspw.: &amp;quot;c:\sphere&amp;quot;).&lt;br /&gt;
# Nun sollte die [[Configuring_Sphere.ini/de|Sphere.ini]] bearbeitet werden, der SphereServer wird sonst nicht starten.&lt;br /&gt;
# Doppelklicke dann SphereSvr.exe und dann wird die Konsole starten. In diesem Fenster können administrative Befehle abgesetzt werden (eine Liste dieser Befehle gibts mit Eingabe von &amp;quot;?&amp;quot;).&lt;br /&gt;
# Erstelle einen ersten Account auf dem Server. Führe deshalb folgende Befehle der Reihe nach aus und setze dabei einen passenden Nutzernamen und ein passenden Passwort ein: &lt;br /&gt;
#*&amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account add USERNAME PASSWORD&amp;lt;/font&amp;gt;&amp;quot;&lt;br /&gt;
#*&amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account USERNAME plevel 7&amp;lt;/font&amp;gt;&amp;quot; (dieser Befehl gibt dem Account GM-Rechte).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Server ist nun bereit und man kann sich mit einem UO Client einloggen. Es empfiehlt sich die Tutorials innerhalb dieses Wikis zu lesen, um ein wenig mehr über Sphere zu erfahren.&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
We currently have no guide for this OS. Anyway, the developers have posted a list of required stuff. Here is the list:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compiled on: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;FreeBSD freebsdvbox.fastwebnet.it 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008     root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Using built-in specs.&amp;lt;br /&amp;gt;&lt;br /&gt;
Target: i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Configured with: ./..//gcc-4.1-20071105/configure --disable-nls --with-system-zlib --with-libiconv-prefix=/usr/local --program-suffix=41 --libdir=/usr/local/lib/gcc-4.1.3 --with-gxx-include-dir=/usr/local/lib/gcc-4.1.3/include/c++/ --disable-rpath --prefix=/usr/local --mandir=/usr/local/man --infodir=/usr/local/info/gcc41 i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Thread model: posix&amp;lt;br /&amp;gt;&lt;br /&gt;
gcc version 4.1.3 20071105 (prerelease)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linked Against:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;libthr.so.3 =&amp;gt; /lib/libthr.so.3 (0x281f3000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/local/lib/mysql/libmysqlclient.so.15 (0x28206000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x28265000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.5 =&amp;gt; /lib/libm.so.5 (0x2835a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x2836f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.7 =&amp;gt; /lib/libc.so.7 (0x2837a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.4 =&amp;gt; /lib/libcrypt.so.4 (0x28476000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.4 =&amp;gt; /lib/libz.so.4 (0x2848f000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you use this release, please check [http://www.sphereserver.net/index.php?showtopic=44153 this topic].&lt;br /&gt;
&lt;br /&gt;
{{Languages|Installing Sphere}}&lt;br /&gt;
[[Category: Setting Up Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=634</id>
		<title>De:Installing Sphere</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=634"/>
				<updated>2010-11-23T23:50:39Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Linux==&lt;br /&gt;
===Vorwort===&lt;br /&gt;
Sphere auf einem Linuxsystem zu installieren, ist nicht viel schwieriger als auf einem Windowsrechner. Allerdings ist Basiswissen über Linux vorausgesetzt und ein wenig Erfahrung mit der Kommandozeile von Nöten, da hier nicht einfach auf ein Symbol geklickt wird und Sphere läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung ist deshalb darauf ausgelegt, dass eine Shell oder ein Terminal zum Linuxsystem verfügbar ist und root-Rechte vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich wird diese Anleitung nicht beinhalten, welche Dateien auf dem Linux Server verfügbar sein müssen. Diese Anleitung umfasst keine Einführung in Linuxsysteme und hat auch keinen Anspruch darauf, dies zu sein. Für weiterführende Informationen über Linux gibt es viele E-Books und Howtos, die frei im Web verfügbar sind. Beispielsweise ist hier ein guter Startpunkt: [http://www.linux.org http://www.linux.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wichtig ist aber vor allem folgendes: Anders als ein Windowssystem, ist Linux bezüglich Datei- und Ordnernamen die Groß- und Kleinschreibung zu beachten. Wenn eine Datei von Sphere nicht gefunden wird, liegt das möglicherweise daran, dass gewisse Dateien falsch geschrieben sind, wie bspw: &amp;quot;sphere.INI&amp;quot; anstelle von &amp;quot;sphere.ini&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen, die in dieser Anleitung kursiv sind, sollten direkt in das Terminal eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Vorbereitungens===&lt;br /&gt;
Auf dem Linuxsystem wird eine Installation des MySQL Clients benötigt. Fehlen die Bibliotheken des MySQL Clients, wird Sphere nicht ausführbar sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des Weiteren wird ein Sphere Version FÜR LINUX benötigt, sowie das passende Skriptpaket und eventuelle zusätzliche Bibliotheken, die in der Downloadsektion angegeben sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Schritt für Schritt Installation===&lt;br /&gt;
'''1)''' Mit Rootrechten einen neuen Nutzer namens &amp;quot;sphere&amp;quot; anlegen. Dieser Nutzer benötigt ein eigenen Heimverzeichnis (meistens: /home/sphere) mit den entsprechenden Rechten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;useradd -d /home/sphere sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
mkdir /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown sphere /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 700 /home/sphere&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2)''' Kopiere alle Dateien des Sphere LINUX downloads, das Skriptpaket und eventuell nötige Bibliotheken in das neu angelegte Verzeichnis. Zudem müssen Unterordner angelegt werden: &amp;quot;save&amp;quot;, &amp;quot;logs&amp;quot; und &amp;quot;accounts&amp;quot;, wie angegeben in der sphere.ini und in spheretables.scp. Am Ende sollte eine ähnliche Ordnerstruktur vorliegen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/home/sphere --- spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphere.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphereCrypt.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- accounts/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- logs/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- muls/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- save/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- scripts/&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3)''' Nachdem alle Dateien an die richtige Stelle kopiert wurden, benötigen sie die richtigen Dateirechte. Deshalb weiterhin unter Rootrechten folgende Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown -R sphere *&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type d | xargs chmod 0700&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type f | xargs chmod 0600&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 4700 spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4)''' Immer noch unter Rootrechten:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ldd spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe sollte nun ungefähr so lauten: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ldd spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
libpthread.so.0 =&amp;gt; /lib/libpthread.so.0 (0x4001f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/lib/libmysqlclient.so.15 (0x40071000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libboost_regex-gcc-1_33_1.so =&amp;gt; /usr/lib/libboost_regex-gcc-1_33_1.so (0x40243000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x402ea000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.6 =&amp;gt; /lib/libm.so.6 (0x403c9000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x403ef000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.6 =&amp;gt; /lib/libc.so.6 (0x403fa000)&amp;lt;br /&amp;gt;&lt;br /&gt;
/lib/ld-linux.so.2 (0x40000000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.1 =&amp;gt; /lib/libcrypt.so.1 (0x4051c000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libnsl.so.1 =&amp;gt; /lib/libnsl.so.1 (0x4054a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.1 =&amp;gt; /usr/lib/libz.so.1 (0x40561000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NACH FEHLENDEN BIBLIOTHEKEN AUSSCHAU HALTEN! Notfalls müssen diese nachinstalliert werden.&lt;br /&gt;
&lt;br /&gt;
===Die Installation testen===&lt;br /&gt;
Es ist jetzt nicht mehr von Belang, ob der erste Test mit Rootrechten oder unter dem Benutzer sphere ausgeführt wird. Werden die Rechte der Datei auf 4700 gesetzt, wird Sphere automatisch immer unter dem benutzer sphere ausgeführt. Deshalb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
./spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es sollte nun eine Liste des Startups folgen ... mit vielleicht enthaltenen Warnings: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ./spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
WARNING:(sphere.ini,587)'scripts/spherestatusbase.html' not found...&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(sphere.ini,587)Can't open web page input 'spherestatusbase1.htm'&amp;lt;br /&amp;gt;&lt;br /&gt;
Sphere Version 0.56b [Linux] by www.sphereserver.com, compiled at Sep 15 2006 (23:23:07)&amp;lt;br /&amp;gt;&lt;br /&gt;
Signal handlers installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
Expansion maps supported: T2A, LBR, AOS, SE, ML&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)Unable to open directory scripts/custom/&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)DirList=-1 for 'scripts/custom/'&amp;lt;br /&amp;gt;&lt;br /&gt;
Allocating map sectors: 0=7168 1=7168 2=900 3=1280 4=32761&amp;lt;br /&amp;gt;&lt;br /&gt;
Indexing 211 scripts...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading scripts/sphere_defs.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
[...]&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warnings und Fehler über fehlende Webseiten können ignoriert werden. Falls allerdings andere Fehler auftreten oder Sphere terminiert (=sich beendet), dann sollte in den vorhergehenden Zeilen nach dem Grund gesucht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich sollten folgende Meldungen auftauchen, falls alles gut lief: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;[...]&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spheredata...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherestatics...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/sphereworld...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherechars...&amp;lt;br /&amp;gt;&lt;br /&gt;
166 Objects accounted for&amp;lt;br /&amp;gt;&lt;br /&gt;
Option flags: CommandSysmsgs + NoHouseMuteSpeech&amp;lt;br /&amp;gt;&lt;br /&gt;
Experimental flags: DiagonalWalkCheck + ScriptsReturnStrings + NewTriggersEnable + NewPositionChecks + WalkCheck + ScriptProfiler + SizeOptimize&amp;lt;br /&amp;gt;&lt;br /&gt;
Admin=me@my.email.com, URL=www.myshard.com, Lang=English, TZ=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Startup complete. items=0, chars=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Creating thread.&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach befindet man sich in der Sphere Konsole und kann allgemeine Befehle absetzen ('?' gibt eine Liste aus). Lege einen Account an, aktiviert ihn, editier die login.cfg des Ultima Online Clients damit er die IP-Adresse des Servers enthält und log ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit Sphere wieder heruntergefahren wird, ist zunächst der Befehl &amp;quot;S&amp;quot;, gefolgt vom Befehl &amp;quot;X&amp;quot; notwendig. Linux wird dann versuchen, Sphere zu beenden - sollte das aus irgendeinem Grund nicht funktionieren, hilft die Tastenkombination STRG-c weiter.&lt;br /&gt;
&lt;br /&gt;
===Einen Liveshard aufsetzen===&lt;br /&gt;
Sphere in einem Terminal laufen zu lassen hat einen Nachteil: schließt man dieses Terminal, beendet Linux auch Sphere. Das ist unter Linuxsystemen beabsichtigt, weil es ein Multiusersystem ist. Das bedeutet vor allem, dass bei jedem Logout eines Nutzers auch unbedingt all seine laufenden Prozesse beendet werden sollten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich ist es aber dennoch möglich, Prozesse im Hintergrund laufen zu lassen, selbst wenn Terminal oder Shell geschlossen werden. Hierfür bietet sich ein Skript an, das ein Tool namens 'screen' nutzt (notfalls nachinstallieren):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;#!/bin/sh&amp;lt;br /&amp;gt;&lt;br /&gt;
cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
while true; do&amp;lt;br /&amp;gt;&lt;br /&gt;
screen -D -m /home/sphere/spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
sleep 30&amp;lt;br /&amp;gt;&lt;br /&gt;
done&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Skript kann in jedem beliebigen Editor abgespeichert werden und sollte möglichst die Dateiendung .sh erhalten. Wird das Skript ausgeführt, startet sich Sphere in einem virtuellen Terminal, das jederzeit mit &amp;quot;screen -r &amp;quot;abgerufen werden kann. Mit der Tastenkombination STRG-a gefolgt von STRG-d kann man dieses Terminal jederzeit wieder verlassen und es läuft im Hintergrund weiter. In der Dokumentation von &amp;quot;screen&amp;quot; finden sich weitere Informationen.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
Als erstes sollte Sphere hier heruntergeladen werden: [[Where to get Sphere/de|Sphere Download]]. Man sollte danach mindestestens zwei verschiedene zip Dateien erhalten haben, eins für den SphereServer und eins mit dem Script Paket.&lt;br /&gt;
&lt;br /&gt;
# Entpacke SphereServer-0.56b....zip in einen Ordner bspw. nach &amp;quot;c:\sphere&amp;quot;&lt;br /&gt;
# Entpacke SphereServer-0.56b-xxxxxxxxxxxx-Scripts.zip Ordner aus Schritt 1. Es sollte nun &amp;quot;c:\sphere&amp;quot; ein Ordner namens &amp;quot;scripts&amp;quot; vorhanden sein.&lt;br /&gt;
# Erstelle in diesem Ordner drei weitere Unterordner: &amp;quot;accounts&amp;quot;, &amp;quot;logs&amp;quot; und &amp;quot;save&amp;quot;.&lt;br /&gt;
# Im &amp;quot;save&amp;quot; Ordner, erstelle eine leere Textdatei (bspw. mit dem Windows Notepad) und schreibe in diese Datei eine einzelne Zeile, in der [EOF] steht. Benenne diese Datei dann &amp;quot;spheredata.SCP&amp;quot; (NICHT .txt).&lt;br /&gt;
# Erstelle drei Kopien dieser Datei und benenne sie: spherestatics, spherechars.scp und sphereworld.scp&lt;br /&gt;
# Wiederhole das dann im &amp;quot;accounts&amp;quot; Ordner und erstelle die Dateien: &amp;quot;sphereacct.scp&amp;quot; und &amp;quot;sphereaccu.scp&amp;quot;&lt;br /&gt;
# Lade dir dann [http://prerelease.sphere.torfo.org/files/libMySQL.dll MySQL Library] und kopiere sie in den Sphere Ordner (bspw.: &amp;quot;c:\sphere&amp;quot;).&lt;br /&gt;
# Nun sollte die [[Configuring_Sphere.ini/de|Sphere.ini]] bearbeitet werden, der SphereServer wird sonst nicht starten.&lt;br /&gt;
# Doppelklicke dann SphereSvr.exe und dann wird die Konsole starten. In diesem Fenster können administrative Befehle abgesetzt werden (eine Liste dieser Befehle gibts mit Eingabe von &amp;quot;?&amp;quot;).&lt;br /&gt;
# Erstelle einen ersten Account auf dem Server. Führe deshalb folgende Befehle der Reihe nach aus und setze dabei einen passenden Nutzernamen und ein passenden Passwort ein: &lt;br /&gt;
#*&amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account add USERNAME PASSWORD&amp;lt;/font&amp;gt;&amp;quot;&lt;br /&gt;
#*&amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account USERNAME plevel 7&amp;lt;/font&amp;gt;&amp;quot; (dieser Befehl gibt dem Account GM-Rechte).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Server ist nun bereit und man kann sich mit einem UO Client einloggen. Es empfiehlt sich die Tutorials innerhalb dieses Wikis zu lesen, um ein wenig mehr über Sphere zu erfahren.&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
We currently have no guide for this OS. Anyway, the developers have posted a list of required stuff. Here is the list:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compiled on: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;FreeBSD freebsdvbox.fastwebnet.it 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008     root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Using built-in specs.&amp;lt;br /&amp;gt;&lt;br /&gt;
Target: i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Configured with: ./..//gcc-4.1-20071105/configure --disable-nls --with-system-zlib --with-libiconv-prefix=/usr/local --program-suffix=41 --libdir=/usr/local/lib/gcc-4.1.3 --with-gxx-include-dir=/usr/local/lib/gcc-4.1.3/include/c++/ --disable-rpath --prefix=/usr/local --mandir=/usr/local/man --infodir=/usr/local/info/gcc41 i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Thread model: posix&amp;lt;br /&amp;gt;&lt;br /&gt;
gcc version 4.1.3 20071105 (prerelease)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linked Against:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;libthr.so.3 =&amp;gt; /lib/libthr.so.3 (0x281f3000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/local/lib/mysql/libmysqlclient.so.15 (0x28206000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x28265000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.5 =&amp;gt; /lib/libm.so.5 (0x2835a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x2836f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.7 =&amp;gt; /lib/libc.so.7 (0x2837a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.4 =&amp;gt; /lib/libcrypt.so.4 (0x28476000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.4 =&amp;gt; /lib/libz.so.4 (0x2848f000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you use this release, please check [http://www.sphereserver.net/index.php?showtopic=44153 this topic].&lt;br /&gt;
&lt;br /&gt;
{{Language|Installing Sphere}}&lt;br /&gt;
[[Category: Setting Up Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=632</id>
		<title>De:Installing Sphere</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=632"/>
				<updated>2010-11-23T15:32:40Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Linux==&lt;br /&gt;
===Vorwort===&lt;br /&gt;
Sphere auf einem Linuxsystem zu installieren, ist nicht viel schwieriger als auf einem Windowsrechner. Allerdings ist Basiswissen über Linux vorausgesetzt und ein wenig Erfahrung mit der Kommandozeile von Nöten, da hier nicht einfach auf ein Symbol geklickt wird und Sphere läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung ist deshalb darauf ausgelegt, dass eine Shell oder ein Terminal zum Linuxsystem verfügbar ist und root-Rechte vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich wird diese Anleitung nicht beinhalten, welche Dateien auf dem Linux Server verfügbar sein müssen. Diese Anleitung umfasst keine Einführung in Linuxsysteme und hat auch keinen Anspruch darauf, dies zu sein. Für weiterführende Informationen über Linux gibt es viele E-Books und Howtos, die frei im Web verfügbar sind. Beispielsweise ist hier ein guter Startpunkt: [http://www.linux.org http://www.linux.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wichtig ist aber vor allem folgendes: Anders als ein Windowssystem, ist Linux bezüglich Datei- und Ordnernamen die Groß- und Kleinschreibung zu beachten. Wenn eine Datei von Sphere nicht gefunden wird, liegt das möglicherweise daran, dass gewisse Dateien falsch geschrieben sind, wie bspw: &amp;quot;sphere.INI&amp;quot; anstelle von &amp;quot;sphere.ini&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen, die in dieser Anleitung kursiv sind, sollten direkt in das Terminal eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Vorbereitungens===&lt;br /&gt;
Auf dem Linuxsystem wird eine Installation des MySQL Clients benötigt. Fehlen die Bibliotheken des MySQL Clients, wird Sphere nicht ausführbar sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des Weiteren wird ein Sphere Version FÜR LINUX benötigt, sowie das passende Skriptpaket und eventuelle zusätzliche Bibliotheken, die in der Downloadsektion angegeben sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Schritt für Schritt Installation===&lt;br /&gt;
'''1)''' Mit Rootrechten einen neuen Nutzer namens &amp;quot;sphere&amp;quot; anlegen. Dieser Nutzer benötigt ein eigenen Heimverzeichnis (meistens: /home/sphere) mit den entsprechenden Rechten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;useradd -d /home/sphere sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
mkdir /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown sphere /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 700 /home/sphere&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2)''' Kopiere alle Dateien des Sphere LINUX downloads, das Skriptpaket und eventuell nötige Bibliotheken in das neu angelegte Verzeichnis. Zudem müssen Unterordner angelegt werden: &amp;quot;save&amp;quot;, &amp;quot;logs&amp;quot; und &amp;quot;accounts&amp;quot;, wie angegeben in der sphere.ini und in spheretables.scp. Am Ende sollte eine ähnliche Ordnerstruktur vorliegen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/home/sphere --- spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphere.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphereCrypt.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- accounts/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- logs/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- muls/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- save/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- scripts/&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3)''' Nachdem alle Dateien an die richtige Stelle kopiert wurden, benötigen sie die richtigen Dateirechte. Deshalb weiterhin unter Rootrechten folgende Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown -R sphere *&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type d | xargs chmod 0700&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type f | xargs chmod 0600&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 4700 spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4)''' Immer noch unter Rootrechten:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ldd spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe sollte nun ungefähr so lauten: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ldd spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
libpthread.so.0 =&amp;gt; /lib/libpthread.so.0 (0x4001f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/lib/libmysqlclient.so.15 (0x40071000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libboost_regex-gcc-1_33_1.so =&amp;gt; /usr/lib/libboost_regex-gcc-1_33_1.so (0x40243000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x402ea000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.6 =&amp;gt; /lib/libm.so.6 (0x403c9000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x403ef000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.6 =&amp;gt; /lib/libc.so.6 (0x403fa000)&amp;lt;br /&amp;gt;&lt;br /&gt;
/lib/ld-linux.so.2 (0x40000000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.1 =&amp;gt; /lib/libcrypt.so.1 (0x4051c000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libnsl.so.1 =&amp;gt; /lib/libnsl.so.1 (0x4054a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.1 =&amp;gt; /usr/lib/libz.so.1 (0x40561000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NACH FEHLENDEN BIBLIOTHEKEN AUSSCHAU HALTEN! Notfalls müssen diese nachinstalliert werden.&lt;br /&gt;
&lt;br /&gt;
===Die Installation testen===&lt;br /&gt;
Es ist jetzt nicht mehr von Belang, ob der erste Test mit Rootrechten oder unter dem Benutzer sphere ausgeführt wird. Werden die Rechte der Datei auf 4700 gesetzt, wird Sphere automatisch immer unter dem benutzer sphere ausgeführt. Deshalb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
./spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es sollte nun eine Liste des Startups folgen ... mit vielleicht enthaltenen Warnings: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ./spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
WARNING:(sphere.ini,587)'scripts/spherestatusbase.html' not found...&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(sphere.ini,587)Can't open web page input 'spherestatusbase1.htm'&amp;lt;br /&amp;gt;&lt;br /&gt;
Sphere Version 0.56b [Linux] by www.sphereserver.com, compiled at Sep 15 2006 (23:23:07)&amp;lt;br /&amp;gt;&lt;br /&gt;
Signal handlers installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
Expansion maps supported: T2A, LBR, AOS, SE, ML&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)Unable to open directory scripts/custom/&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)DirList=-1 for 'scripts/custom/'&amp;lt;br /&amp;gt;&lt;br /&gt;
Allocating map sectors: 0=7168 1=7168 2=900 3=1280 4=32761&amp;lt;br /&amp;gt;&lt;br /&gt;
Indexing 211 scripts...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading scripts/sphere_defs.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
[...]&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warnings und Fehler über fehlende Webseiten können ignoriert werden. Falls allerdings andere Fehler auftreten oder Sphere terminiert (=sich beendet), dann sollte in den vorhergehenden Zeilen nach dem Grund gesucht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich sollten folgende Meldungen auftauchen, falls alles gut lief: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;[...]&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spheredata...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherestatics...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/sphereworld...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherechars...&amp;lt;br /&amp;gt;&lt;br /&gt;
166 Objects accounted for&amp;lt;br /&amp;gt;&lt;br /&gt;
Option flags: CommandSysmsgs + NoHouseMuteSpeech&amp;lt;br /&amp;gt;&lt;br /&gt;
Experimental flags: DiagonalWalkCheck + ScriptsReturnStrings + NewTriggersEnable + NewPositionChecks + WalkCheck + ScriptProfiler + SizeOptimize&amp;lt;br /&amp;gt;&lt;br /&gt;
Admin=me@my.email.com, URL=www.myshard.com, Lang=English, TZ=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Startup complete. items=0, chars=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Creating thread.&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach befindet man sich in der Sphere Konsole und kann allgemeine Befehle absetzen ('?' gibt eine Liste aus). Lege einen Account an, aktiviert ihn, editier die login.cfg des Ultima Online Clients damit er die IP-Adresse des Servers enthält und log ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit Sphere wieder heruntergefahren wird, ist zunächst der Befehl &amp;quot;S&amp;quot;, gefolgt vom Befehl &amp;quot;X&amp;quot; notwendig. Linux wird dann versuchen, Sphere zu beenden - sollte das aus irgendeinem Grund nicht funktionieren, hilft die Tastenkombination STRG-c weiter.&lt;br /&gt;
&lt;br /&gt;
===Einen Liveshard aufsetzen===&lt;br /&gt;
Sphere in einem Terminal laufen zu lassen hat einen Nachteil: schließt man dieses Terminal, beendet Linux auch Sphere. Das ist unter Linuxsystemen beabsichtigt, weil es ein Multiusersystem ist. Das bedeutet vor allem, dass bei jedem Logout eines Nutzers auch unbedingt all seine laufenden Prozesse beendet werden sollten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich ist es aber dennoch möglich, Prozesse im Hintergrund laufen zu lassen, selbst wenn Terminal oder Shell geschlossen werden. Hierfür bietet sich ein Skript an, das ein Tool namens 'screen' nutzt (notfalls nachinstallieren):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;#!/bin/sh&amp;lt;br /&amp;gt;&lt;br /&gt;
cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
while true; do&amp;lt;br /&amp;gt;&lt;br /&gt;
screen -D -m /home/sphere/spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
sleep 30&amp;lt;br /&amp;gt;&lt;br /&gt;
done&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Skript kann in jedem beliebigen Editor abgespeichert werden und sollte möglichst die Dateiendung .sh erhalten. Wird das Skript ausgeführt, startet sich Sphere in einem virtuellen Terminal, das jederzeit mit &amp;quot;screen -r &amp;quot;abgerufen werden kann. Mit der Tastenkombination STRG-a gefolgt von STRG-d kann man dieses Terminal jederzeit wieder verlassen und es läuft im Hintergrund weiter. In der Dokumentation von &amp;quot;screen&amp;quot; finden sich weitere Informationen.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
Als erstes sollte Sphere hier heruntergeladen werden: [[Where to get Sphere/de|Sphere Download]]. Man sollte danach mindestestens zwei verschiedene zip Dateien erhalten haben, eins für den SphereServer und eins mit dem Script Paket.&lt;br /&gt;
&lt;br /&gt;
# Entpacke SphereServer-0.56b....zip in einen Ordner bspw. nach &amp;quot;c:\sphere&amp;quot;&lt;br /&gt;
# Entpacke SphereServer-0.56b-xxxxxxxxxxxx-Scripts.zip Ordner aus Schritt 1. Es sollte nun &amp;quot;c:\sphere&amp;quot; ein Ordner namens &amp;quot;scripts&amp;quot; vorhanden sein.&lt;br /&gt;
# Erstelle in diesem Ordner drei weitere Unterordner: &amp;quot;accounts&amp;quot;, &amp;quot;logs&amp;quot; und &amp;quot;save&amp;quot;.&lt;br /&gt;
# Im &amp;quot;save&amp;quot; Ordner, erstelle eine leere Textdatei (bspw. mit dem Windows Notepad) und schreibe in diese Datei eine einzelne Zeile, in der [EOF] steht. Benenne diese Datei dann &amp;quot;spheredata.SCP&amp;quot; (NICHT .txt).&lt;br /&gt;
# Erstelle drei Kopien dieser Datei und benenne sie: spherestatics, spherechars.scp und sphereworld.scp&lt;br /&gt;
# Wiederhole das dann im &amp;quot;accounts&amp;quot; Ordner und erstelle die Dateien: &amp;quot;sphereacct.scp&amp;quot; und &amp;quot;sphereaccu.scp&amp;quot;&lt;br /&gt;
# Lade dir dann [http://prerelease.sphere.torfo.org/files/libMySQL.dll MySQL Library] und kopiere sie in den Sphere Ordner (bspw.: &amp;quot;c:\sphere&amp;quot;).&lt;br /&gt;
# Nun sollte die [[Configuring_Sphere.ini/de|Sphere.ini]] bearbeitet werden, der SphereServer wird sonst nicht starten.&lt;br /&gt;
# Doppelklicke dann SphereSvr.exe und dann wird die Konsole starten. In diesem Fenster können administrative Befehle abgesetzt werden (eine Liste dieser Befehle gibts mit Eingabe von &amp;quot;?&amp;quot;).&lt;br /&gt;
# Erstelle einen ersten Account auf dem Server. Führe deshalb folgende Befehle der Reihe nach aus und setze dabei einen passenden Nutzernamen und ein passenden Passwort ein: &lt;br /&gt;
#*&amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account add USERNAME PASSWORD&amp;lt;/font&amp;gt;&amp;quot;&lt;br /&gt;
#*&amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account USERNAME plevel 7&amp;lt;/font&amp;gt;&amp;quot; (dieser Befehl gibt dem Account GM-Rechte).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Server ist nun bereit und man kann sich mit einem UO Client einloggen. Es empfiehlt sich die Tutorials innerhalb dieses Wikis zu lesen, um ein wenig mehr über Sphere zu erfahren.&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
We currently have no guide for this OS. Anyway, the developers have posted a list of required stuff. Here is the list:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compiled on: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;FreeBSD freebsdvbox.fastwebnet.it 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008     root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Using built-in specs.&amp;lt;br /&amp;gt;&lt;br /&gt;
Target: i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Configured with: ./..//gcc-4.1-20071105/configure --disable-nls --with-system-zlib --with-libiconv-prefix=/usr/local --program-suffix=41 --libdir=/usr/local/lib/gcc-4.1.3 --with-gxx-include-dir=/usr/local/lib/gcc-4.1.3/include/c++/ --disable-rpath --prefix=/usr/local --mandir=/usr/local/man --infodir=/usr/local/info/gcc41 i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Thread model: posix&amp;lt;br /&amp;gt;&lt;br /&gt;
gcc version 4.1.3 20071105 (prerelease)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linked Against:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;libthr.so.3 =&amp;gt; /lib/libthr.so.3 (0x281f3000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/local/lib/mysql/libmysqlclient.so.15 (0x28206000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x28265000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.5 =&amp;gt; /lib/libm.so.5 (0x2835a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x2836f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.7 =&amp;gt; /lib/libc.so.7 (0x2837a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.4 =&amp;gt; /lib/libcrypt.so.4 (0x28476000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.4 =&amp;gt; /lib/libz.so.4 (0x2848f000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you use this release, please check [http://www.sphereserver.net/index.php?showtopic=44153 this topic].&lt;br /&gt;
&lt;br /&gt;
[[Category: Setting Up Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=624</id>
		<title>De:Installing Sphere</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=624"/>
				<updated>2010-11-23T08:01:09Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: /* Einen Liveshard aufsetzen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Linux==&lt;br /&gt;
===Vorwort===&lt;br /&gt;
Sphere auf einem Linuxsystem zu installieren, ist nicht viel schwieriger als auf einem Windowsrechner. Allerdings ist Basiswissen über Linux vorausgesetzt und ein wenig Erfahrung mit der Kommandozeile von Nöten, da hier nicht einfach auf ein Symbol geklickt wird und Sphere läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung ist deshalb darauf ausgelegt, dass eine Shell oder ein Terminal zum Linuxsystem verfügbar ist und root-Rechte vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich wird diese Anleitung nicht beinhalten, welche Dateien auf dem Linux Server verfügbar sein müssen. Diese Anleitung umfasst keine Einführung in Linuxsysteme und hat auch keinen Anspruch darauf, dies zu sein. Für weiterführende Informationen über Linux gibt es viele E-Books und Howtos, die frei im Web verfügbar sind. Beispielsweise ist hier ein guter Startpunkt: [http://www.linux.org http://www.linux.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wichtig ist aber vor allem folgendes: Anders als ein Windowssystem, ist Linux bezüglich Datei- und Ordnernamen die Groß- und Kleinschreibung zu beachten. Wenn eine Datei von Sphere nicht gefunden wird, liegt das möglicherweise daran, dass gewisse Dateien falsch geschrieben sind, wie bspw: &amp;quot;sphere.INI&amp;quot; anstelle von &amp;quot;sphere.ini&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen, die in dieser Anleitung kursiv sind, sollten direkt in das Terminal eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Vorbereitungens===&lt;br /&gt;
Auf dem Linuxsystem wird eine Installation des MySQL Clients benötigt. Fehlen die Bibliotheken des MySQL Clients, wird Sphere nicht ausführbar sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des Weiteren wird ein Sphere Version FÜR LINUX benötigt, sowie das passende Skriptpaket und eventuelle zusätzliche Bibliotheken, die in der Downloadsektion angegeben sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Schritt für Schritt Installation===&lt;br /&gt;
'''1)''' Mit Rootrechten einen neuen Nutzer namens &amp;quot;sphere&amp;quot; anlegen. Dieser Nutzer benötigt ein eigenen Heimverzeichnis (meistens: /home/sphere) mit den entsprechenden Rechten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;useradd -d /home/sphere sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
mkdir /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown sphere /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 700 /home/sphere&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2)''' Kopiere alle Dateien des Sphere LINUX downloads, das Skriptpaket und eventuell nötige Bibliotheken in das neu angelegte Verzeichnis. Zudem müssen Unterordner angelegt werden: &amp;quot;save&amp;quot;, &amp;quot;logs&amp;quot; und &amp;quot;accounts&amp;quot;, wie angegeben in der sphere.ini und in spheretables.scp. Am Ende sollte eine ähnliche Ordnerstruktur vorliegen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/home/sphere --- spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphere.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphereCrypt.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- accounts/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- logs/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- muls/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- save/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- scripts/&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3)''' Nachdem alle Dateien an die richtige Stelle kopiert wurden, benötigen sie die richtigen Dateirechte. Deshalb weiterhin unter Rootrechten folgende Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown -R sphere *&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type d | xargs chmod 0700&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type f | xargs chmod 0600&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 4700 spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4)''' Immer noch unter Rootrechten:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ldd spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe sollte nun ungefähr so lauten: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ldd spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
libpthread.so.0 =&amp;gt; /lib/libpthread.so.0 (0x4001f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/lib/libmysqlclient.so.15 (0x40071000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libboost_regex-gcc-1_33_1.so =&amp;gt; /usr/lib/libboost_regex-gcc-1_33_1.so (0x40243000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x402ea000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.6 =&amp;gt; /lib/libm.so.6 (0x403c9000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x403ef000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.6 =&amp;gt; /lib/libc.so.6 (0x403fa000)&amp;lt;br /&amp;gt;&lt;br /&gt;
/lib/ld-linux.so.2 (0x40000000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.1 =&amp;gt; /lib/libcrypt.so.1 (0x4051c000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libnsl.so.1 =&amp;gt; /lib/libnsl.so.1 (0x4054a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.1 =&amp;gt; /usr/lib/libz.so.1 (0x40561000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NACH FEHLENDEN BIBLIOTHEKEN AUSSCHAU HALTEN! Notfalls müssen diese nachinstalliert werden.&lt;br /&gt;
&lt;br /&gt;
===Die Installation testen===&lt;br /&gt;
Es ist jetzt nicht mehr von Belang, ob der erste Test mit Rootrechten oder unter dem Benutzer sphere ausgeführt wird. Werden die Rechte der Datei auf 4700 gesetzt, wird Sphere automatisch immer unter dem benutzer sphere ausgeführt. Deshalb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
./spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es sollte nun eine Liste des Startups folgen ... mit vielleicht enthaltenen Warnings: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ./spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
WARNING:(sphere.ini,587)'scripts/spherestatusbase.html' not found...&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(sphere.ini,587)Can't open web page input 'spherestatusbase1.htm'&amp;lt;br /&amp;gt;&lt;br /&gt;
Sphere Version 0.56b [Linux] by www.sphereserver.com, compiled at Sep 15 2006 (23:23:07)&amp;lt;br /&amp;gt;&lt;br /&gt;
Signal handlers installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
Expansion maps supported: T2A, LBR, AOS, SE, ML&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)Unable to open directory scripts/custom/&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)DirList=-1 for 'scripts/custom/'&amp;lt;br /&amp;gt;&lt;br /&gt;
Allocating map sectors: 0=7168 1=7168 2=900 3=1280 4=32761&amp;lt;br /&amp;gt;&lt;br /&gt;
Indexing 211 scripts...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading scripts/sphere_defs.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
[...]&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warnings und Fehler über fehlende Webseiten können ignoriert werden. Falls allerdings andere Fehler auftreten oder Sphere terminiert (=sich beendet), dann sollte in den vorhergehenden Zeilen nach dem Grund gesucht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich sollten folgende Meldungen auftauchen, falls alles gut lief: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;[...]&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spheredata...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherestatics...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/sphereworld...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherechars...&amp;lt;br /&amp;gt;&lt;br /&gt;
166 Objects accounted for&amp;lt;br /&amp;gt;&lt;br /&gt;
Option flags: CommandSysmsgs + NoHouseMuteSpeech&amp;lt;br /&amp;gt;&lt;br /&gt;
Experimental flags: DiagonalWalkCheck + ScriptsReturnStrings + NewTriggersEnable + NewPositionChecks + WalkCheck + ScriptProfiler + SizeOptimize&amp;lt;br /&amp;gt;&lt;br /&gt;
Admin=me@my.email.com, URL=www.myshard.com, Lang=English, TZ=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Startup complete. items=0, chars=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Creating thread.&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach befindet man sich in der Sphere Konsole und kann allgemeine Befehle absetzen ('?' gibt eine Liste aus). Lege einen Account an, aktiviert ihn, editier die login.cfg des Ultima Online Clients damit er die IP-Adresse des Servers enthält und log ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit Sphere wieder heruntergefahren wird, ist zunächst der Befehl &amp;quot;S&amp;quot;, gefolgt vom Befehl &amp;quot;X&amp;quot; notwendig. Linux wird dann versuchen, Sphere zu beenden - sollte das aus irgendeinem Grund nicht funktionieren, hilft die Tastenkombination STRG-c weiter.&lt;br /&gt;
&lt;br /&gt;
===Einen Liveshard aufsetzen===&lt;br /&gt;
Sphere in einem Terminal laufen zu lassen hat einen Nachteil: schließt man dieses Terminal, beendet Linux auch Sphere. Das ist unter Linuxsystemen beabsichtigt, weil es ein Multiusersystem ist. Das bedeutet vor allem, dass bei jedem Logout eines Nutzers auch unbedingt all seine laufenden Prozesse beendet werden sollten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich ist es aber dennoch möglich, Prozesse im Hintergrund laufen zu lassen, selbst wenn Terminal oder Shell geschlossen werden. Hierfür bietet sich ein Skript an, das ein Tool namens 'screen' nutzt (notfalls nachinstallieren):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;#!/bin/sh&amp;lt;br /&amp;gt;&lt;br /&gt;
cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
while true; do&amp;lt;br /&amp;gt;&lt;br /&gt;
screen -D -m /home/sphere/spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
sleep 30&amp;lt;br /&amp;gt;&lt;br /&gt;
done&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Skript kann in jedem beliebigen Editor abgespeichert werden und sollte möglichst die Dateiendung .sh erhalten. Wird das Skript ausgeführt, startet sich Sphere in einem virtuellen Terminal, das jederzeit mit &amp;quot;screen -r &amp;quot;abgerufen werden kann. Mit der Tastenkombination STRG-a gefolgt von STRG-d kann man dieses Terminal jederzeit wieder verlassen und es läuft im Hintergrund weiter. In der Dokumentation von &amp;quot;screen&amp;quot; finden sich weitere Informationen.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
:Übersetzung läuft noch --[[User:Sco|Sco]] 07:58, 23 November 2010 (UTC)&lt;br /&gt;
Start by downloading Sphere. See the [[Where to get Sphere]] page for download links. You should end up with two different zip files, one containing the Sphere executable and the other containing the [[Script Pack]].&lt;br /&gt;
&lt;br /&gt;
# Extract the SphereServer-0.56b-xxxxxxxxxxxx-Win32.zip file to wherever you want to run it from. I would recommend &amp;quot;c:\sphere&amp;quot;&lt;br /&gt;
# Extract SphereServer-0.56b-xxxxxxxxxxxx-Scripts.zip to the directory where you previously extracted the file in the previous step. Now you should have the directory scripts in &amp;quot;c:\sphere&amp;quot;.&lt;br /&gt;
# Create three new folders, one named &amp;quot;accounts&amp;quot;, another called &amp;quot;logs&amp;quot;, and the third one called &amp;quot;save&amp;quot;.&lt;br /&gt;
# Now, go to your &amp;quot;save&amp;quot; folder, recently created. And create an empty text file (I recommend using the Start Menu to access Notepad instead of &amp;quot;Right Click =&amp;gt; New&amp;quot;). Write an empty line and add &amp;quot;[EOF]&amp;quot; in the second one. Save the file as &amp;quot;spheredata.SCP&amp;quot; (not .txt).&lt;br /&gt;
# Copy this file three times an rename them as: spherestatics, spherechars.scp and sphereworld.scp&lt;br /&gt;
# Go to the &amp;quot;accounts&amp;quot; folder that you created alongside the &amp;quot;save&amp;quot; folder, and do the same as Step 3 and 4, but name the files: &amp;quot;sphereacct.scp&amp;quot; and &amp;quot;sphereaccu.scp&amp;quot;&lt;br /&gt;
# Download the [http://prerelease.sphere.torfo.org/files/libMySQL.dll MySQL Library] and place it into your Sphere Folder (remember: &amp;quot;c:\sphere&amp;quot;).&lt;br /&gt;
# Now, [[Configuring_Sphere.ini|configure your sphere.ini]]. This is a must before running Sphere for the first time!&lt;br /&gt;
# Double Click on SphereSvr.exe to launch the Console. This black window is your server console from which you can enter commands.&lt;br /&gt;
# Create an Account for yourself. In the console, type in &amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account add USERNAME PASSWORD&amp;lt;/font&amp;gt;&amp;quot;. With whatever username and password you want. Then, type in &amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account USERNAME plevel 7&amp;lt;/font&amp;gt;&amp;quot; to grant your account Owner privileges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you can go around your map and explore some parts of it. You can use the navigation bar on the left to read various tutorials to learn how to script and learn something about Sphere. After that, read the other articles and check the [[Main_Page#Reference Compendium|reference compendium]] if you need something special.&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
We currently have no guide for this OS. Anyway, the developers have posted a list of required stuff. Here is the list:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compiled on: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;FreeBSD freebsdvbox.fastwebnet.it 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008     root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Using built-in specs.&amp;lt;br /&amp;gt;&lt;br /&gt;
Target: i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Configured with: ./..//gcc-4.1-20071105/configure --disable-nls --with-system-zlib --with-libiconv-prefix=/usr/local --program-suffix=41 --libdir=/usr/local/lib/gcc-4.1.3 --with-gxx-include-dir=/usr/local/lib/gcc-4.1.3/include/c++/ --disable-rpath --prefix=/usr/local --mandir=/usr/local/man --infodir=/usr/local/info/gcc41 i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Thread model: posix&amp;lt;br /&amp;gt;&lt;br /&gt;
gcc version 4.1.3 20071105 (prerelease)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linked Against:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;libthr.so.3 =&amp;gt; /lib/libthr.so.3 (0x281f3000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/local/lib/mysql/libmysqlclient.so.15 (0x28206000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x28265000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.5 =&amp;gt; /lib/libm.so.5 (0x2835a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x2836f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.7 =&amp;gt; /lib/libc.so.7 (0x2837a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.4 =&amp;gt; /lib/libcrypt.so.4 (0x28476000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.4 =&amp;gt; /lib/libz.so.4 (0x2848f000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you use this release, please check [http://www.sphereserver.net/index.php?showtopic=44153 this topic].&lt;br /&gt;
&lt;br /&gt;
[[Category: Setting Up Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=623</id>
		<title>De:Installing Sphere</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Installing_Sphere&amp;diff=623"/>
				<updated>2010-11-23T07:58:47Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: Created page with '==Linux== ===Vorwort=== Sphere auf einem Linuxsystem zu installieren, ist nicht viel schwieriger als auf einem Windowsrechner. Allerdings ist Basiswissen über Linux vorausgesetz...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Linux==&lt;br /&gt;
===Vorwort===&lt;br /&gt;
Sphere auf einem Linuxsystem zu installieren, ist nicht viel schwieriger als auf einem Windowsrechner. Allerdings ist Basiswissen über Linux vorausgesetzt und ein wenig Erfahrung mit der Kommandozeile von Nöten, da hier nicht einfach auf ein Symbol geklickt wird und Sphere läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung ist deshalb darauf ausgelegt, dass eine Shell oder ein Terminal zum Linuxsystem verfügbar ist und root-Rechte vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich wird diese Anleitung nicht beinhalten, welche Dateien auf dem Linux Server verfügbar sein müssen. Diese Anleitung umfasst keine Einführung in Linuxsysteme und hat auch keinen Anspruch darauf, dies zu sein. Für weiterführende Informationen über Linux gibt es viele E-Books und Howtos, die frei im Web verfügbar sind. Beispielsweise ist hier ein guter Startpunkt: [http://www.linux.org http://www.linux.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wichtig ist aber vor allem folgendes: Anders als ein Windowssystem, ist Linux bezüglich Datei- und Ordnernamen die Groß- und Kleinschreibung zu beachten. Wenn eine Datei von Sphere nicht gefunden wird, liegt das möglicherweise daran, dass gewisse Dateien falsch geschrieben sind, wie bspw: &amp;quot;sphere.INI&amp;quot; anstelle von &amp;quot;sphere.ini&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen, die in dieser Anleitung kursiv sind, sollten direkt in das Terminal eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Vorbereitungens===&lt;br /&gt;
Auf dem Linuxsystem wird eine Installation des MySQL Clients benötigt. Fehlen die Bibliotheken des MySQL Clients, wird Sphere nicht ausführbar sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des Weiteren wird ein Sphere Version FÜR LINUX benötigt, sowie das passende Skriptpaket und eventuelle zusätzliche Bibliotheken, die in der Downloadsektion angegeben sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Schritt für Schritt Installation===&lt;br /&gt;
'''1)''' Mit Rootrechten einen neuen Nutzer namens &amp;quot;sphere&amp;quot; anlegen. Dieser Nutzer benötigt ein eigenen Heimverzeichnis (meistens: /home/sphere) mit den entsprechenden Rechten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;useradd -d /home/sphere sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
mkdir /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown sphere /home/sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 700 /home/sphere&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2)''' Kopiere alle Dateien des Sphere LINUX downloads, das Skriptpaket und eventuell nötige Bibliotheken in das neu angelegte Verzeichnis. Zudem müssen Unterordner angelegt werden: &amp;quot;save&amp;quot;, &amp;quot;logs&amp;quot; und &amp;quot;accounts&amp;quot;, wie angegeben in der sphere.ini und in spheretables.scp. Am Ende sollte eine ähnliche Ordnerstruktur vorliegen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/home/sphere --- spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphere.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;sphereCrypt.ini&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- accounts/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- logs/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- muls/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- save/&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|-------------------- scripts/&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3)''' Nachdem alle Dateien an die richtige Stelle kopiert wurden, benötigen sie die richtigen Dateirechte. Deshalb weiterhin unter Rootrechten folgende Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
chown -R sphere *&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type d | xargs chmod 0700&amp;lt;br /&amp;gt;&lt;br /&gt;
find . -type f | xargs chmod 0600&amp;lt;br /&amp;gt;&lt;br /&gt;
chmod 4700 spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4)''' Immer noch unter Rootrechten:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ldd spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe sollte nun ungefähr so lauten: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ldd spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
libpthread.so.0 =&amp;gt; /lib/libpthread.so.0 (0x4001f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/lib/libmysqlclient.so.15 (0x40071000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libboost_regex-gcc-1_33_1.so =&amp;gt; /usr/lib/libboost_regex-gcc-1_33_1.so (0x40243000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x402ea000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.6 =&amp;gt; /lib/libm.so.6 (0x403c9000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x403ef000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.6 =&amp;gt; /lib/libc.so.6 (0x403fa000)&amp;lt;br /&amp;gt;&lt;br /&gt;
/lib/ld-linux.so.2 (0x40000000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.1 =&amp;gt; /lib/libcrypt.so.1 (0x4051c000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libnsl.so.1 =&amp;gt; /lib/libnsl.so.1 (0x4054a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.1 =&amp;gt; /usr/lib/libz.so.1 (0x40561000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NACH FEHLENDEN BIBLIOTHEKEN AUSSCHAU HALTEN! Notfalls müssen diese nachinstalliert werden.&lt;br /&gt;
&lt;br /&gt;
===Die Installation testen===&lt;br /&gt;
Es ist jetzt nicht mehr von Belang, ob der erste Test mit Rootrechten oder unter dem Benutzer sphere ausgeführt wird. Werden die Rechte der Datei auf 4700 gesetzt, wird Sphere automatisch immer unter dem benutzer sphere ausgeführt. Deshalb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
./spheresvr&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es sollte nun eine Liste des Startups folgen ... mit vielleicht enthaltenen Warnings: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;longbow:/home/sphere# ./spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
WARNING:(sphere.ini,587)'scripts/spherestatusbase.html' not found...&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(sphere.ini,587)Can't open web page input 'spherestatusbase1.htm'&amp;lt;br /&amp;gt;&lt;br /&gt;
Sphere Version 0.56b [Linux] by www.sphereserver.com, compiled at Sep 15 2006 (23:23:07)&amp;lt;br /&amp;gt;&lt;br /&gt;
Signal handlers installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
Expansion maps supported: T2A, LBR, AOS, SE, ML&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)Unable to open directory scripts/custom/&amp;lt;br /&amp;gt;&lt;br /&gt;
ERROR:(spheretables.scp,59)DirList=-1 for 'scripts/custom/'&amp;lt;br /&amp;gt;&lt;br /&gt;
Allocating map sectors: 0=7168 1=7168 2=900 3=1280 4=32761&amp;lt;br /&amp;gt;&lt;br /&gt;
Indexing 211 scripts...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading scripts/sphere_defs.scp&amp;lt;br /&amp;gt;&lt;br /&gt;
[...]&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warnings und Fehler über fehlende Webseiten können ignoriert werden. Falls allerdings andere Fehler auftreten oder Sphere terminiert (=sich beendet), dann sollte in den vorhergehenden Zeilen nach dem Grund gesucht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Letztendlich sollten folgende Meldungen auftauchen, falls alles gut lief: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;[...]&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spheredata...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherestatics...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/sphereworld...&amp;lt;br /&amp;gt;&lt;br /&gt;
Loading save/spherechars...&amp;lt;br /&amp;gt;&lt;br /&gt;
166 Objects accounted for&amp;lt;br /&amp;gt;&lt;br /&gt;
Option flags: CommandSysmsgs + NoHouseMuteSpeech&amp;lt;br /&amp;gt;&lt;br /&gt;
Experimental flags: DiagonalWalkCheck + ScriptsReturnStrings + NewTriggersEnable + NewPositionChecks + WalkCheck + ScriptProfiler + SizeOptimize&amp;lt;br /&amp;gt;&lt;br /&gt;
Admin=me@my.email.com, URL=www.myshard.com, Lang=English, TZ=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Startup complete. items=0, chars=0&amp;lt;br /&amp;gt;&lt;br /&gt;
Creating thread.&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach befindet man sich in der Sphere Konsole und kann allgemeine Befehle absetzen ('?' gibt eine Liste aus). Lege einen Account an, aktiviert ihn, editier die login.cfg des Ultima Online Clients damit er die IP-Adresse des Servers enthält und log ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit Sphere wieder heruntergefahren wird, ist zunächst der Befehl &amp;quot;S&amp;quot;, gefolgt vom Befehl &amp;quot;X&amp;quot; notwendig. Linux wird dann versuchen, Sphere zu beenden - sollte das aus irgendeinem Grund nicht funktionieren, hilft die Tastenkombination STRG-c weiter.&lt;br /&gt;
&lt;br /&gt;
===Einen Liveshard aufsetzen===&lt;br /&gt;
Sphere in einem Terminal laufen zu lassen hat einen Nachteil: schließt man dieses Terminal, beendet Linux auch Sphere. Das ist unter Linuxsystemen beabsichtigt, weil es ein Multiusersystem ist. Das bedeutet vor allem auch, dass bei jedem Logout eines Nutzers auch unbedingt all seine laufenden Prozesse beendet werden sollten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natürlich ist es aber dennoch möglich, Prozesse im Hintergrund laufen zu lassen, selsbt wenn das Terminal oder die Shell geschlossen werden. Hierfür bietet sich ein Skript an, das ein tool namens 'screen' nutzt (notfalls nachinstallieren):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;#!/bin/sh&amp;lt;br /&amp;gt;&lt;br /&gt;
cd ~sphere&amp;lt;br /&amp;gt;&lt;br /&gt;
while true; do&amp;lt;br /&amp;gt;&lt;br /&gt;
screen -D -m /home/sphere/spheresvr&amp;lt;br /&amp;gt;&lt;br /&gt;
sleep 30&amp;lt;br /&amp;gt;&lt;br /&gt;
done&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Skript kann in jedem beliebigen Editor abgespeichert werden und sollte möglichst die Dateiendung .sh erhalten. Wird das Skript ausgeführt, startet sich Sphere in einem virtuellen Terminal, das jederzeit mit screen -r abgerufen werden kann. Mit der Tastenkombination STRG-a gefolgt von STRG-d kann man dieses Terminal jederzeit wieder verlassen und es läuft im Hintergrund weiter. In der Dokumentation von &amp;quot;screen&amp;quot; finden sich weitere Informationen.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
:Übersetzung läuft noch --[[User:Sco|Sco]] 07:58, 23 November 2010 (UTC)&lt;br /&gt;
Start by downloading Sphere. See the [[Where to get Sphere]] page for download links. You should end up with two different zip files, one containing the Sphere executable and the other containing the [[Script Pack]].&lt;br /&gt;
&lt;br /&gt;
# Extract the SphereServer-0.56b-xxxxxxxxxxxx-Win32.zip file to wherever you want to run it from. I would recommend &amp;quot;c:\sphere&amp;quot;&lt;br /&gt;
# Extract SphereServer-0.56b-xxxxxxxxxxxx-Scripts.zip to the directory where you previously extracted the file in the previous step. Now you should have the directory scripts in &amp;quot;c:\sphere&amp;quot;.&lt;br /&gt;
# Create three new folders, one named &amp;quot;accounts&amp;quot;, another called &amp;quot;logs&amp;quot;, and the third one called &amp;quot;save&amp;quot;.&lt;br /&gt;
# Now, go to your &amp;quot;save&amp;quot; folder, recently created. And create an empty text file (I recommend using the Start Menu to access Notepad instead of &amp;quot;Right Click =&amp;gt; New&amp;quot;). Write an empty line and add &amp;quot;[EOF]&amp;quot; in the second one. Save the file as &amp;quot;spheredata.SCP&amp;quot; (not .txt).&lt;br /&gt;
# Copy this file three times an rename them as: spherestatics, spherechars.scp and sphereworld.scp&lt;br /&gt;
# Go to the &amp;quot;accounts&amp;quot; folder that you created alongside the &amp;quot;save&amp;quot; folder, and do the same as Step 3 and 4, but name the files: &amp;quot;sphereacct.scp&amp;quot; and &amp;quot;sphereaccu.scp&amp;quot;&lt;br /&gt;
# Download the [http://prerelease.sphere.torfo.org/files/libMySQL.dll MySQL Library] and place it into your Sphere Folder (remember: &amp;quot;c:\sphere&amp;quot;).&lt;br /&gt;
# Now, [[Configuring_Sphere.ini|configure your sphere.ini]]. This is a must before running Sphere for the first time!&lt;br /&gt;
# Double Click on SphereSvr.exe to launch the Console. This black window is your server console from which you can enter commands.&lt;br /&gt;
# Create an Account for yourself. In the console, type in &amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account add USERNAME PASSWORD&amp;lt;/font&amp;gt;&amp;quot;. With whatever username and password you want. Then, type in &amp;quot;&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;account USERNAME plevel 7&amp;lt;/font&amp;gt;&amp;quot; to grant your account Owner privileges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you can go around your map and explore some parts of it. You can use the navigation bar on the left to read various tutorials to learn how to script and learn something about Sphere. After that, read the other articles and check the [[Main_Page#Reference Compendium|reference compendium]] if you need something special.&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
We currently have no guide for this OS. Anyway, the developers have posted a list of required stuff. Here is the list:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compiled on: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;FreeBSD freebsdvbox.fastwebnet.it 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008     root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Using built-in specs.&amp;lt;br /&amp;gt;&lt;br /&gt;
Target: i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Configured with: ./..//gcc-4.1-20071105/configure --disable-nls --with-system-zlib --with-libiconv-prefix=/usr/local --program-suffix=41 --libdir=/usr/local/lib/gcc-4.1.3 --with-gxx-include-dir=/usr/local/lib/gcc-4.1.3/include/c++/ --disable-rpath --prefix=/usr/local --mandir=/usr/local/man --infodir=/usr/local/info/gcc41 i386-portbld-freebsd7.0&amp;lt;br /&amp;gt;&lt;br /&gt;
Thread model: posix&amp;lt;br /&amp;gt;&lt;br /&gt;
gcc version 4.1.3 20071105 (prerelease)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linked Against:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;libthr.so.3 =&amp;gt; /lib/libthr.so.3 (0x281f3000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libmysqlclient.so.15 =&amp;gt; /usr/local/lib/mysql/libmysqlclient.so.15 (0x28206000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x28265000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libm.so.5 =&amp;gt; /lib/libm.so.5 (0x2835a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x2836f000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libc.so.7 =&amp;gt; /lib/libc.so.7 (0x2837a000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libcrypt.so.4 =&amp;gt; /lib/libcrypt.so.4 (0x28476000)&amp;lt;br /&amp;gt;&lt;br /&gt;
libz.so.4 =&amp;gt; /lib/libz.so.4 (0x2848f000)&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you use this release, please check [http://www.sphereserver.net/index.php?showtopic=44153 this topic].&lt;br /&gt;
&lt;br /&gt;
[[Category: Setting Up Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Where_to_get_Sphere&amp;diff=619</id>
		<title>De:Where to get Sphere</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Where_to_get_Sphere&amp;diff=619"/>
				<updated>2010-11-22T12:33:33Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: /* Was will ich eigentlich? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Für Sphere 56b gibt es hauptsächlich 2 Möglichkeiten: Pre-Releases und automatische Builds. Unten ist eine Gegenüberstellung, die Unterschiede beinhaltet.&lt;br /&gt;
&lt;br /&gt;
==Prerelease Builds==&lt;br /&gt;
Prerelease Builds werden regelmäßig veröffentlicht, wenn die Entwickler der Meinung sind, dass eine neue Version fällig ist und sie mit der Stabilität zufrieden sind (d.h. u.a. dass ein Prerelease Build auch läuft). Weil es noch keinen finalen Build gibt, sind die Prerelease Builds am nächsten an einer stabilen Version dran.&lt;br /&gt;
&lt;br /&gt;
Prerelease Builds können hier heruntergeladen werden: [http://prerelease.sphereserver.net SphereServer Pre-releases].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls du nicht sicher bist, was genau hinter einem Prerelease Build steckt, dann gibt es hier noch weitere Informationen: [[#Was will ich eigentlich?|Was will ich eigentlich?]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatisierte Builds==&lt;br /&gt;
Jede Nacht wird automatisiert aus dem bestehenden Code eine neue Version von Sphere erstellt. Das passiert direkt und dieser Build enthält die letzten Änderungen, die von den Entwicklern vorgenommen wurden. Wenn es also die das topaktuellste sein soll, dann nutzt man einen automatisierten Build.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Automatisierte Builds sind hier zum Download verfügbar: [http://nightly.prerelease.sphere.torfo.org/ SphereServer Nightly Automated Builds]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Einige Warnungen, ehe ein solcher automatisierter Build genutzt wird:&lt;br /&gt;
* Da diese Builds direkt mit den neuesten und aktuellsten Änderungen am Quellcode erstellt wurden, ist es nicht ratsam, diese Version für einen laufenden Server zu nutzen, ausser man hat zuvor gut und gründlich getestet.&lt;br /&gt;
* Das Entwicklerteam kann keine oder wenige Hilfestellungen leisten, falls Probleme auftreten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Was will ich eigentlich?==&lt;br /&gt;
Falls noch Unsicherheiten bestehen, welche Version gewählt werden soll, dann sollte man auf einen Prerelease Build zurückgreifen. Automatisierte Builds sind vor allem für fortgeschrittenere Nutzer und Tester gedacht, die neue Features austesten wollen, bevor sie offiziell veröffentlicht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier eine knappe Gegenüberstellung, was die Builds hauptsächlich unterscheidet:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''[[#Prerelease Builds|Prerelease Builds]]''' || '''[[#Automatisierte Builds|Automatisierte Builds]]'''&lt;br /&gt;
|-&lt;br /&gt;
| Forensupport || Kein Support in den Foren&lt;br /&gt;
|-&lt;br /&gt;
| Höhere Stabilität || Keine Garantien für Stabilität&lt;br /&gt;
|-&lt;br /&gt;
| Von Hand kompiliert aus einem stabilen Zweig des Quellcodes || Automatisch kompiliert aus dem Quellcode der Entwickler&lt;br /&gt;
|-&lt;br /&gt;
| Enthält nicht die neuesten Features und Fehlerkorrekturen || Enthält das neueste an Features und Fehlerkorrekturen&lt;br /&gt;
|-&lt;br /&gt;
| Wird alle paar Monate veröffentlicht || Wird täglich veröffentlicht&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zusammengefasst: die Prerelease Builds erhalten Forensupport durch die Entwickler und werden nur veröffentlicht, wenn das Team der Meinung ist, dass genug an Arbeit hineingeflossen ist.  Solange nicht dringend neueste Features und Fehlerkorrekturen benötigt werden, sollte man deshalb als Endnutzer auf diese Builds zurückgreifen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Anmerkung:''''' ''Sollte man nur aus dem Grund einen automatisierten Build wählen, da man nicht auf die offiziellen Prerelease Builds warten will, dann sollte man sich das genau überlegen. Zwar sind neue Features oder Fehlerkorrekturen enthalten, aber die Gefahr, dass manche Dinge nicht abgeschlossen wurden oder bisher unbekannte Bugs und Fehler in Sphere auftauchen, ist viel höher und das kann die Stabilität des Servers stark verringern.''&lt;br /&gt;
&lt;br /&gt;
[[Category: Setting Up Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Where_to_get_Sphere&amp;diff=618</id>
		<title>De:Where to get Sphere</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Where_to_get_Sphere&amp;diff=618"/>
				<updated>2010-11-22T12:28:40Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: Created page with 'Für Sphere 56b gibt es hauptsächlich 2 Möglichkeiten: Pre-Releases und automatische Builds. Unten ist eine Gegenüberstellung, die Unterschiede beinhaltet.  ==Prerelease Build...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Für Sphere 56b gibt es hauptsächlich 2 Möglichkeiten: Pre-Releases und automatische Builds. Unten ist eine Gegenüberstellung, die Unterschiede beinhaltet.&lt;br /&gt;
&lt;br /&gt;
==Prerelease Builds==&lt;br /&gt;
Prerelease Builds werden regelmäßig veröffentlicht, wenn die Entwickler der Meinung sind, dass eine neue Version fällig ist und sie mit der Stabilität zufrieden sind (d.h. u.a. dass ein Prerelease Build auch läuft). Weil es noch keinen finalen Build gibt, sind die Prerelease Builds am nächsten an einer stabilen Version dran.&lt;br /&gt;
&lt;br /&gt;
Prerelease Builds können hier heruntergeladen werden: [http://prerelease.sphereserver.net SphereServer Pre-releases].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls du nicht sicher bist, was genau hinter einem Prerelease Build steckt, dann gibt es hier noch weitere Informationen: [[#Was will ich eigentlich?|Was will ich eigentlich?]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatisierte Builds==&lt;br /&gt;
Jede Nacht wird automatisiert aus dem bestehenden Code eine neue Version von Sphere erstellt. Das passiert direkt und dieser Build enthält die letzten Änderungen, die von den Entwicklern vorgenommen wurden. Wenn es also die das topaktuellste sein soll, dann nutzt man einen automatisierten Build.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Automatisierte Builds sind hier zum Download verfügbar: [http://nightly.prerelease.sphere.torfo.org/ SphereServer Nightly Automated Builds]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Einige Warnungen, ehe ein solcher automatisierter Build genutzt wird:&lt;br /&gt;
* Da diese Builds direkt mit den neuesten und aktuellsten Änderungen am Quellcode erstellt wurden, ist es nicht ratsam, diese Version für einen laufenden Server zu nutzen, ausser man hat zuvor gut und gründlich getestet.&lt;br /&gt;
* Das Entwicklerteam kann keine oder wenige Hilfestellungen leisten, falls Probleme auftreten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Was will ich eigentlich?==&lt;br /&gt;
Falls noch Unsicherheiten bestehen, welche Version gewählt werden soll, dann sollte man auf einen Prerelease Build zurückgreifen. Automatisierte Builds sind vor allem für fortgeschrittenere Nutzer und Tester gedacht, die neue Features austesten wollen, bevor sie offiziell veröffentlicht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier eine knappe Gegenüberstellung, was die Builds hauptsächlich unterscheidet:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''[[#Prerelease Builds|Prerelease Builds]]''' || '''[[#Automatisierte Builds|Automatisierte Builds]]'''&lt;br /&gt;
|-&lt;br /&gt;
| Forensupport || Kein Support in den Foren&lt;br /&gt;
|-&lt;br /&gt;
| Höhere Stabilität || Keine Garantien für Stabilität&lt;br /&gt;
|-&lt;br /&gt;
| Von Hand kompiliert aus einem stabilen Zweig des Quellcodes || Automatisch kompiliert aus dem Quellcode der Entwickler&lt;br /&gt;
|-&lt;br /&gt;
| Enthält nicht die neuesten Features und Fehlerkorrekturen || Enthält das neueste an Features und Fehlerkorrekturen&lt;br /&gt;
|-&lt;br /&gt;
| Wird alle paar Monate veröffentlicht || Wird täglich veröffentlicht&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To summarise, the prerelease builds are supported and specifically released by the Sphere development team at appropriate times when it is felt that enough development work has been made for a new release to be worthwhile. Unless you urgently need an as-of-yet unreleased feature or bugfix there should be no reason for you, as an end-user, to want to download an automated build.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' ''If your only reason for choosing to use an automated Sphere build is that you don't want to wait for an official prerelease containing a new feature or bugfix then you should reconsider this decision. Whilst you may enjoy having the feature or bugfix in question, there is also an increased chance that some of the work has not been completed, or a new bug may have been introduced, which could consequently destabalise your server!''&lt;br /&gt;
&lt;br /&gt;
[[Category: Setting Up Sphere]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Contribution_Guide&amp;diff=617</id>
		<title>De:Contribution Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Contribution_Guide&amp;diff=617"/>
				<updated>2010-11-22T12:01:29Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: Created page with 'Da dieses Wiki durch die Community und nicht durch die Entwickler gepflegt wird, ist jede Hilfe willkommen.  Es wird lediglich ein Account benötigt und sch...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da dieses Wiki durch die Community und nicht durch die Entwickler gepflegt wird, ist jede Hilfe willkommen.&lt;br /&gt;
&lt;br /&gt;
Es wird lediglich ein [[Special:UserLogin|Account]] benötigt und schon kann man loslegen. Oberhalb jedes Artikels ist ein &amp;quot;Edit&amp;quot;-Link, mit dem sich jeder Artikel sofort bearbeiten lässt, sofern man eingeloggt ist.&lt;br /&gt;
&lt;br /&gt;
Zentrale Punkte in der Pflege der Artikel:&lt;br /&gt;
* Fehlerkorrektur in existierenden Seiten&lt;br /&gt;
* Artikel über UO oder Sphere verfassen&lt;br /&gt;
* Updates für das [[Main Page/de#Referenzkompendium|Referenzkompendium]], denn mit jeder neuen Version von Sphere können neue Features auftauchen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Egal welche Art von Pflege hier betrieben wird, es sollten dabei folgende Gebote beachtet werden:&lt;br /&gt;
* Sicherstellen, dass die Information fehlerfrei, präzise und aktuell ist.&lt;br /&gt;
* So klar wie möglich Sachverhalte darlegen und dabei auf den übliche Internetslang verzichten.&lt;br /&gt;
* Andere werden es nicht gern sehen, wenn man ihre Artikel grundlegend verändert. Wenn grundlegende Änderungen durchgeführt werden sollen, sollte man in Betracht ziehen, die ursprünglichen Autoren zu kontaktieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn du etwas beitragen möchtest, aber nicht weisst, was zu tun wäre:&lt;br /&gt;
* Überprüfe [[Special:WantedPages|wanted pages]]. Diese Liste enthält Seiten, die von anderen Artikeln zwar verlinkt wurden, aber die noch keinerlei Inhalt haben.&lt;br /&gt;
* Überprüfe [[Special:WantedCategories|wanted categories]]. Hier sind Kategorisierungen, die von anderen verlinkt wurden, aber noch keinen Inhalt enthalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls du beim Bearbeiten von Artikeln keinerlei Erfahrung hast und die Syntax des Wikis nicht kennst: [[Help:Editing|Editing help]] (deutsche Version wird noch folgen). Diese Hilfe enthält auch eine spezielle Syntax für Sphere Skripte.&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=De:Main_Page&amp;diff=616</id>
		<title>De:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=De:Main_Page&amp;diff=616"/>
				<updated>2010-11-22T11:43:39Z</updated>
		
		<summary type="html">&lt;p&gt;Sco: Created page with 'Willkommen zum Remake von Taran's bekannter Seite: &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot;. Seine Tutorials waren damals für Sphere 55i erstel...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Willkommen zum Remake von Taran's bekannter Seite: &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot;. Seine Tutorials waren damals für Sphere 55i erstellt worden, mittlerweile ist die aktuelle Version Sphere 56b und deshalb wurde entschieden, hier auf diesen Seiten eine Sammlung aktueller Tutorials und ein Kompendium neuer Funktionen zu bieten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Wo fang ich nun an?'''&lt;br /&gt;
&lt;br /&gt;
Jeder, der sich für die Skriptsprache von Sphere 56b interessiert, sollte hier anfangen: [[#Installation von Sphere|Installation von Sphere]]. Dort findet man die ersten Schritte mit Sphere. Danach empfiehlt es sich alle [[#Tutorials|Tutorials]] durch zu arbeiten, möglichst alles dabei zu verstehen und viel zu lernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ich hab jetzt Skripten gelernt! Was nun?'''&lt;br /&gt;
&lt;br /&gt;
Sind die ersten 10 Kapitels durchgearbeitet, dann gibt es hier natürlich noch weitere Artikel und Seiten. Sie erscheinen vielleicht nicht so wichtig, wie die anderen, aber sind dennöch mit weiterführenden und nützlichen Informationen gespickt. Versuche eigene Skripte zu entwickeln, sie vielleicht auch im [http://www.sphereserver.net/index.php SphereServer Forums] zu veröffentlichen. In den Forum erhält man auch weitere Hilfestellungen und Antworten auf Fragen. Des Weiteren ist auch das [[#Referenzkompendium|Referenzkompendium]] sehr nützlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ich will mithelfen!'''&lt;br /&gt;
&lt;br /&gt;
Um die Informationen auf diesen Seiten immer möglichst aktuell zu halten, ist natürlich viel Arbeit und Zeit notwendig. Jeder, der mithelfen möchte, diese Seiten zu pflegen, darf sich jederzeit hier anmelden und die Artikel hier überarbeiten. Alles, was man dafür braucht, ist ein [[Special:UserLogin|Wiki-Account]]. Oberhalb jeder Seite ist ein &amp;quot;Edit&amp;quot;-Link. Ausserdem sollte dieser Guide gelesen werden: [[Contribution Guide/de|Leitfaden für das SphereWiki]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Dank geht speziell an:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus and WarAngel]], für das Hinzufügen von Inhalt.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Daleth]], für das Erstellen des Sphere Reference Project, and [[WhoIsWho|Mordaunt]] für die Konvertierung ins .chm-Format.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Tracker]], für das Übertragen von Änderungen in Sphere 56 Tracking Changes.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Taran]], für die originalen Sphere Scripting for Dummies tutorials und [[WhoIsWho|MrSugarCube]], der ständige Neuerungen aktuell hält.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Furio, Radiant, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon and MrSugarCube]] für kontinuierliche Arbeit an Sphere, wodurch ein sehr mächtiger und an alle möglichen Bedürfnisse anpassbarer Ultima Online Emulator entstand.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Crius]], der das ursprüngliche Wiki gehostet hat, und [[WhoIsWho|Torfo]], der das Wiki momentan hostet.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation von Sphere==&lt;br /&gt;
&lt;br /&gt;
* [[Where to get Sphere/de|Sphere herunterladen]]&lt;br /&gt;
* [[Installing Sphere/de|Sphere installieren]]&lt;br /&gt;
* [[Configuring Sphere.ini/de|Konfigurationseinstellungen der Sphere.ini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
Die Kapitel von Taran in aktualisierter Version für 56b:&lt;br /&gt;
&lt;br /&gt;
* [[Chapter 1/de|Kapitel 1]] ''(Nummern, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[Chapter 2/de|Kapitel 2]] ''(Übersicht über die Standardskripte)''&lt;br /&gt;
* [[Chapter 3/de|Kapitel 3]] ''(NPC's und Gegenstände, coole Funktionen)''&lt;br /&gt;
* [[Chapter 4/de|Kapitel 4]] ''(Objekte, Operatoren, Sprache)''&lt;br /&gt;
* [[Chapter 5/de|Kapitel 5]] ''(Tags, Vars, Locals, Functions)''&lt;br /&gt;
* [[Chapter 6/de|Kapitel 6]] ''(LINKs, TIMERs, TARGETs)''&lt;br /&gt;
* [[Chapter 7/de|Kapitel 7]] ''(Schleifen und mächtige Funktionen)''&lt;br /&gt;
* [[Chapter 8/de|Kapitel 8]] ''(SKILLMENUs, MENUs, Gumps)''&lt;br /&gt;
* [[Chapter 9/de|Kapitel 9]] ''(Events)''&lt;br /&gt;
* [[Chapter 10/de|Kapitel 10]] ''(Strings/Zeichenketten behandeln)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zusätlich gibt es noch einige etwas fortgeschrittenere Tutorials, die von anderen Mitgliedern der Community bereitgestellt wurden. Nachdem man die 10 Kapitel durchgearbeitet hat, bieten sich die folgenden an, wenn man noch mehr lernen möchte:&lt;br /&gt;
&lt;br /&gt;
* [[Common Mistakes|Häufige Fehler]] ''(A revision of Maximus's tutorial on the forums, and continuation of Taran's Misconceptions tutorial)''&lt;br /&gt;
* [[Internet and Sphere]] ''(And how to make the right use of them)''&lt;br /&gt;
* [[Languages Tutorial]] ''(How to script your own language system)''&lt;br /&gt;
* [[Making your own Skills]] ''(How to make and customize your skill)''&lt;br /&gt;
* [[Mul Patching Tutorial|Nazghul's Mul Patching Tutorial]] [http://sorea.profitux.cz/patching/ external link] ''(A document about mul patching and customizing your server)''&lt;br /&gt;
* [[Overriding Hardcoded Commands]] ''(How to override hardcoded commands and functions)''&lt;br /&gt;
* [[Scheduled Reboot]] ''(How to schedule system reboots)''&lt;br /&gt;
* [[Using MySQL]] ''(How to use MySQL)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Referenzkompendium==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Definitions|Definitions]]&lt;br /&gt;
** [[CHARDEF|Characters]]&lt;br /&gt;
** [[DIALOG|Dialogs]]&lt;br /&gt;
** [[EVENTS|Events]]&lt;br /&gt;
** [[ITEMDEF|Items]]&lt;br /&gt;
** [[MENU|Menus]]&lt;br /&gt;
** [[REGIONRESOURCE|Region Resources]]&lt;br /&gt;
** [[REGIONTYPE|Region Types]]&lt;br /&gt;
** [[AREADEF|Regions]]&lt;br /&gt;
** [[ROOMDEF|Rooms]]&lt;br /&gt;
** [[SKILLCLASS|Skill Classes]]&lt;br /&gt;
** [[SKILLMENU|Skill Menus]]&lt;br /&gt;
** [[SKILL|Skills]]&lt;br /&gt;
** [[SPAWN|Spawn Groups]]&lt;br /&gt;
** [[SPELL|Spells]]&lt;br /&gt;
** [[TYPEDEF|Types]]&lt;br /&gt;
* [[:Category:Objects|Objects]]&lt;br /&gt;
** [[Accounts]]&lt;br /&gt;
** [[Characters]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[Files]]&lt;br /&gt;
** [[GM Pages]]&lt;br /&gt;
** [[Items]]&lt;br /&gt;
*** [[Special Items]]&lt;br /&gt;
** [[Map Points]]&lt;br /&gt;
** [[Parties]]&lt;br /&gt;
** [[Regions]]&lt;br /&gt;
** [[Rooms]]&lt;br /&gt;
** [[Sectors]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
* [[:Category:Scripts|Scripts]]&lt;br /&gt;
** [[:Category:Functions|Functions and Triggers]]&lt;br /&gt;
** [[:Category:Variables|General Functions, Properties and References]]&lt;br /&gt;
** [[Intrinsic Functions]]&lt;br /&gt;
** [[:Category:Statements|Statements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Andere Artikel==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Calculation]]&lt;br /&gt;
* [[Client Changes]]&lt;br /&gt;
* [[Common Scripting Misconceptions]]&lt;br /&gt;
* [[Custom Object Properties]]&lt;br /&gt;
* [[Error Codes]]&lt;br /&gt;
* [[Experience System]]&lt;br /&gt;
* [[How Combat Works]]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimization|Optimization Theory]]&lt;br /&gt;
* [[Override TAGs]]&lt;br /&gt;
* [[Revisions Changelog]]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Skill Gain Theory]]&lt;br /&gt;
* [[The Process of Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sphereserver.net/ Offizielle SphereServer Webseite]&lt;br /&gt;
* [http://prerelease.sphere.torfo.org/ Offizielle Sphere 56b Downloads]&lt;br /&gt;
* [http://nightly.prerelease.sphere.torfo.org/ Offizielle Sphere 56b Nightly Builds]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [http://www.cs.rit.edu/~djr7581/ Taran's Scripting for Dummies (Sphere 55i)]&lt;br /&gt;
* [http://uo.torfo.org/packetguide/ Jerrith's UO Packet Guide]&lt;br /&gt;
* [http://uo.torfo.org/packetguideKR/ Wyatt&amp;amp;Kons's UOKR Packet Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;/div&gt;</summary>
		<author><name>Sco</name></author>	</entry>

	</feed>