Dieses Wiki beschreibt das Ergänzen des eigenen Testservers um weitere Gegenstände, ausgehend von einem Linux-OS:
Zunächst muss man erfolgreich die Quellen entsprechend des Compiling Guides
kompilieren.
Anzumerken wäre, dass Debian-basierte Distros Cal3d als deb-Paket installieren können.
Repositories u.a.:
http://ftp.de.debian.org
sid/main Packages
http://ftp.de.debian.org
testing/main Packages
Dies erspart das Runterladen/Kompilieren von Cal3d wie im Guide beschrieben
(nicht vergessen: "--with-cal3d=$HOME/development/cal3d"-flag weglassen).
Ist dies geschafft, so erstellt man eine Textdatei im neu erstellten planeshift-Ordner mit folgendem Inhalt:
export CRYSTAL=/Pfad/zu/cs
export LD_LIBRARY_PATH=$CEGUI/lib:/Pfad/zu/cs:$LD_LIBRARY_PATH
(Wurde Cal3d selbst kompiliert, so muss die zweite Zeile auskommentiert und ebenfalls angepasst werden.)
Dadurch wird der Ort von cs (und ggf. Cal3d) definiert.
Damit der zu startende Server nun alle Maps einliest, muss eine weitere Textdatei erstellt werden:
loadmap akkaio loadmap akkroad loadmap arena loadmap bdr2bdoors loadmap bdroad1 loadmap bdroad2 loadmap bronzedoors loadmap deathrealm loadmap hyarena loadmap hybdr loadmap hydlaa_common loadmap hydlaa_jayose loadmap hydlaa_plaza loadmap hydlaa_winch loadmap hydungeon loadmap hyjayose loadmap hyoja2 loadmap hysewers loadmap jayose loadmap korogan loadmap laanx loadmap laanxdungeon loadmap magicshop loadmap npcroom1 loadmap npcroom2 loadmap npcroom_corr loadmap ojakorogan loadmap ojaroad1 loadmap ojaroad2 loadmap podium loadmap sewers loadmap tavern_de_kadel loadmap terr_common loadmap wtower loadmap guildlaw loadmap guildsimple loadmap tutorial loadmap blackflame loadmap caves01 loadmap caves02 loadmap gugrontid loadmap roadtogug spawn ready
Damit der Server sowohl cs (und Cal3d) findet, als auch direkt alle Maps lädt, erstellt man ein Start-script im planeshift-Ordner indem man folgendes in eine Textdatei kopiert:
#!/bin/bash source profile ./psserver --run=/this/autorun
chmod +x serverstart
Soll der Client über die kompilierten Quellen gestartet werden, so muss auch hierfür ein Start-script erstellt werden, damit der cs- (und Cal3d-) Pfad gefunden wird. Analog zum Server-Start-script:
#!/bin/bash source profile ./psclient
Der frisch kompilierte Server enthält lediglich eine Minimalaustattung an Gegenständen. Um diese zu erweitern müssen mysql Datenbanken ergänzt werden. Diese finden sich in "../planeshift/src/server/database/mysql".
In "../planeshift/art/things" finden sich diverse zip-Files. Möchte man eine Waffe hinzufügen, so entpackt man "weapons.zip", und entscheidet sich z.B. für ein "Throwing Knife".
[..] throwing_knife01a.dds throwing_knife01a_icon.dds throwing_knife01a.meshfact [..]
1. Die "UNIQUE id" muss eine in dieser Datei einmalig vorkommende Zahl (id) sein.
2. Die "UNIQUE strings" enthalten die Dateinamen der beiden dds-Files des gewünschten Gegnstandes ohne Endung.
Beispiel:
INSERT INTO common_strings VALUES("2403","weapons#throwing_knife01a");
INSERT INTO common_strings VALUES("2413","/planeshift/weapons/throwing_knife01a_icon.dds");
Die erste Zeile definiert das Modell, die zweite das Icon.
Nun wurden also dem "Throwing Knife" Zahlen zugewiesen.
Damit der Server das "Throwing Knife" als Gegenstand behandelt, der z.B. angelegt werden kann, müssen Eigenschaften in der Datei "../planeshift/src/server/database/mysql/item_stats.sql" festgelegt werden.
Auch hier wieder am besten eine Zeile duplizieren und anpassen.
Erläuterung anhand des Beispiels:
(249,'B','Throwing Knife',7.00,5.00,100,0,'BULK LEFTHAND RIGHTHAND','RANGEWEAPON',0.10,0,-1,-1,'0','0','0',0.00,0.00,0.00,0.00,0.00,0.00,4.00,0.00,0.00,0.00,0.00,0.00,2403,2413,0,0,0,'Sabre',1,
1000.00,'SWORD',,0.00,,0.00,'0',0.00,'0',0,0.0000,0,0,0,1,'0','nosound',50,,,NULL,NULL,-1,2),
Wichtigste erforderliche Anpassungen:
249: Einmalige id-Nummer
Throwing Knife: Individueller Name
2403: id-Nummer des Modells aus der commonstrings.sql
2413: id-Nummer des Icons aus der commonstrings.sql
Damit der Server die Änderungen berücksichtigt, müssen zunächst die Datenbanken, die auf Basis der sql-Dateien aufgebaut werden, aktualisiert werden. Im Verzeichnis "../planeshift/src/server/database/mysql" loggt man sich zunächst in mysql ein (siehe Compiling Guide, "Create the database") und führt aus:
mysql> source drop.sql; mysql> source create_all.sql;
Zuletzt muss der Server neu gestartet werden. Nachdem man sich eingeloggt hat, vergibt man sich per "/admin" im Chatwindow entsprechende Rechte, ein anschließendes "/items" öffnet ein Fenster durch das man sich den neuen Gegenstand ins Inventory spawnen kann.