IOQuake3 sv_dlRate - Source Datei kompilieren

Begonnen von feindfluglp, 14. Mai 2013, 03:52:32

⏪ vorheriges - nächstes ⏩

feindfluglp

Um was geht es Hier in diesem Beitrag?
Möchte euch zeigen wie man mit einfachsten Mitteln eine ioquake3 datei für seinen Linux Quake3 / IOQuake3 Server kompilieren so das der Befehl sv_dlRate in der Server.cfg funktioniert so wie es bei Call of Duty 2 der fall ist.
Als Client (Spieler) kann man mit Quake3 normalen Setup auf denn IOQuake3 Server Connecten.



Inhalt:
1. Allgemeine Erklärungen
2. Welche Pakete muss ich Installiern um IOQuake3 zu kompilieren?
3. Welche Datein brauche ich zum kompilieren?
4. Was mach ich mit der Heruntergeladenen ioquake3-master.zip?
5. Welche datein in dem Ordner muss ich verändern?
6. Was mache ich wenn ich alles Eingestellt habe?
7. Nach dem kompilieren brauche ich welche Dateien und wo müssen sie hin?
8. Wie Installiere ich einen Quake3 / IOQuake3 Server?
9. Wie starte ich meinen Quake3 / IOQuake3 Server?
10. Was mache ich wenn ich einfach nur die Files haben Will?
11. Der sv_dlRate Befehl für die Downloadrate






Allgemeine Erklärungen:
Wenn man einen Quake3 / IOQuake3 Server betreibt und z.b. denn mod Excessiveplus etc. benutzt, brauch der Client (Spieler) genau denn selben mod.
Nicht alle Spieler haben die mod auch Installiert.

Solange auf dem Server in der Server.cfg set sv_allowdownload "1" eingetragen ist, kann der Client (Spieler) die mod auch Herunterladen und das direkt mit Quake3.
Das Problem dabei ist nur das man meist nicht mehr als 14 Kb/s Downloaded und das kann bei 15 - 30 MB sehr Nervig sein.
Diese gilt auch für andere Map die auf dem Server gestartet werden. Der Client (Spieler) muss diese auch Herunterladen und die meisten gehen einfach auf einen anderen Server wo sie ohne Downloaden drauf kommen.

Welche Pakete muss ich Installiern um IOQuake3 zu kompilieren?:
Um bei Debain o. Ubuntu (Kubuntu, Xubuntu, Lubuntu....) Paket zu installieren braucht ihr nur in der Konsole (Putty, lxterm etc.) folgenden befehl einzugeben apt-get install (Bsp. apt-get install make)


Also folgendes führt ihr in der Konsole aus:


Zitatapt-get install make libsdl1.2-dev gcc bison flex libc6-dev libfontconfig1-dev libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libgphoto2-2-dev libgsm1-dev libice-dev libjpeg62-dev libldap2-dev libmpg123-dev libncurses5-dev libopenal-dev libpng12-dev libsm-dev libssl-dev libtiff4-dev libusb-dev libx11-dev libxcomposite-dev libxcursor-dev libxext-dev libxi-dev libxinerama-dev libxml2-dev libxrandr-dev libxrender-dev libxslt1-dev libxt-dev libxxf86vm-dev make prelink



Diese Pakete gibt es auch bei Suse-Linux, Redhat etc. auch nur der name könnte anders sein.
Falls ihr ein anderes system als Debian-Derivate oder Ubuntu-Derivate nutzt, schreibt bitte in diesem Thema so das ich darauf Antworten kann. (Die wenigsten benutzten Suse etc.)
Debian-Derivate oder Ubuntu-Derivate werden andere ähnlich aufgebaute Debian systeme genannt, diese könnt ihr hier nachschauen: http://de.wikipedia.org/wiki/Liste_von_Linux-Distributionen








Welche Datein brauche ich zum kompilieren?:
Ladet euch bitte diese .zip Datei Herunter und Entpackt diese http://www.mdf-life.de/forum/download//ioquake3-master.zip




Was mach ich mit der Heruntergeladenen ioquake3-master.zip?
Nachdem die Datei entpackt ist ladet ihr bitte alle entpackten Dateien auf euren Root Server, VServer oder auch auf euer Virtuales aufgesetzte Linux system.
Dann gibt ihr dem gesamten Ordner im Linux system volle 777 rechte z.b. mit Konsole (Putty) chmod -R 777 /home/down/a.
Mit dem chmod Befehl gebt ihr Dateien und Ordner Rechte, das -R bedeutet alle Dateien sowie Unterordner in dem Ordner z.b. /home/down/a volle Rechte bekommt.
Somit ist der Ordner a bereit zum Nutzen.





Welche datein in dem Ordner muss ich verändern?:

Mit diesen Einstellungen gibt ihr an was am ende kompiliert werden soll.
Im Hauptordner die Datei Makefile muss verändert werden und zwar an diesen stellen:

Zitat
Bei Line 26 - 45 verändern

ifndef BUILD_STANDALONE
  BUILD_STANDALONE = 0
endif
ifndef BUILD_CLIENT
  BUILD_CLIENT     = 1
endif
ifndef BUILD_CLIENT_SMP
  BUILD_CLIENT_SMP = 0
endif
ifndef BUILD_SERVER
  BUILD_SERVER     = 1
endif
ifndef BUILD_GAME_SO
  BUILD_GAME_SO    = 1
endif
ifndef BUILD_GAME_QVM
  BUILD_GAME_QVM   = 1
endif
ifndef BUILD_MISSIONPACK
  BUILD_MISSIONPACK= 0
endif


Mit dieser Einstellung könnt ihr denn Produkt Name verändern so das man es im HLSW Server monitor sieht
Im Ordner Code - qcommon die Datei q_shared.h kann verändert werden aber muss nicht:

Zitat
Bei Line 42, 44, 45 verändern 

#define PRODUCT_NAME         "ioq3 TEST"
#define BASEGAME         "baseq3"
#define CLIENT_WINDOW_TITLE        "ioquake3 TEST"
#define CLIENT_WINDOW_MIN_TITLE    "ioq3 TEST"


Mit dieser Einstellung könnt ihr die sv_dlRate Standardwerte einstellen
Im Ordner Code - server kann die Datei sv_init.c verändert werden:

Zitat
Bei line 646 kann der wert von 100 verändert werden z.b. auf 1000 angabe in kb/s

sv_minRate = Cvar_Get ("sv_minRate", "0", CVAR_ARCHIVE | CVAR_SERVERINFO );
sv_maxRate = Cvar_Get ("sv_maxRate", "0", CVAR_ARCHIVE | CVAR_SERVERINFO );
sv_dlRate = Cvar_Get("sv_dlRate", "100", CVAR_ARCHIVE | CVAR_SERVERINFO);
sv_minPing = Cvar_Get ("sv_minPing", "0", CVAR_ARCHIVE | CVAR_SERVERINFO );
sv_maxPing = Cvar_Get ("sv_maxPing", "0", CVAR_ARCHIVE | CVAR_SERVERINFO );
sv_floodProtect = Cvar_Get ("sv_floodProtect", "1", CVAR_ARCHIVE | CVAR_SERVERINFO );




Was mache ich wenn ich alles Eingestellt habe?:

Mit der Konsole z.b. lxterm oder über Putty geht ihr in denn Ordner z.b. /home/down/a wie folgt hinein:
Zitatcd /home/down/a/
Mit dem cd befehl kann man in Ordner rein und rausgehen cd .. bedeutet man geht 1 Ordner Zurück.

In dem Orden angelangt gibt man einfach denn befehl make ein und drückt Enter. Nun ist warten angesagt zwischen 10 - 30 min.
Wenn ihr beim kompilieren fehlermeldungen habt und es nicht Funktioniert bitte hier in dieses Thema reinschreiben mit denn Fehlermeldung die die Konsole ausgibt.






Nach dem kompilieren brauche ich welche Dateien und wo müssen sie hin?:
Nach dem Fertigstellen des kompilieren´s wird in dem Hauptordner wo Makefile etc drinne ist, ein Ordner erstellt der sich build nennt.
In diesem Ordner ist ein weiter Ordner in dem wir auch Hineingehen mit z.b. WinScp oder mit einem Dateimanager unter Ubuntu.


Aus diesem Ordner brauchen wir folgende Dateien:
Zitat
Aus dem Hauptordner:

ioq3ded.i386
ioquake3.i386

Aus dem baseq3 Ordner:

cgamei386.so
qagamei386.so
uii386.so

Diese Datein müssen bei dem Quake3 Server in den Ordner wo die Installation gemacht wurde genauso Hineinkopiert werden.
Zitat
In denn Hauptordner von eurem Quake3 Server Installations Ordner:

ioq3ded.i386
ioquake3.i386

In denn baseq3 Ordner:

cgamei386.so
qagamei386.so
uii386.so





Wie Installiere ich einen Quake3 Server?:

Schaut euch einfach meine Video an bei Fragen einfach hier Posten: http://www.youtube.com/playlist?list=PLFF3B518DCF31A47E

Nach der Installation kann in dem Installationordner alles Gelöscht werden ausser dem Ordner baseq3 und nicht vergessen die Fertig kompilierten Datein in denn Installations Ordner zu Kopieren. Siehe: 7. Nach dem kompilieren brauche ich welche Dateien und wo müssen sie hin?







Wie starte ich meinen Quake3 / IOQuake3 Server?:

Dies ist ein Exemplar wie ein Startscript ausehen kann:

Zitat
// ********************** START OF SHELLSCRIPT TO START THE SERVER **********************
// FILENAME : ioq3server-start.sh


#!/bin/sh
ip="ip von eurem Server"
port="port von eurem server"
name="ioq3s"

echo running server $name on $ip : $port

screen -A -m -d -S $name /usr/local/games/quake3/ioq3ded.i386 +set sv_punkbuster 1 +set fs_basepath /usr/local/games/quake3/ +set fs_game osp +set dedicated 2 +set net_ip $ip +set net_port $port +set g_log $name.log +exec server.cfg


// ********************** END OF SHELLSCRIPT TO START THE SERVER **********************

Jenachdem muss der Startscript noch verändert werden.






Was mache ich wenn ich einfach nur die Files haben Will?:
Dann lade sie dir Hier runter: http://www.mdf-life.de/forum/download/ioquake3-sv_dlrate.rar



Der sv_dlRate Befehl für die Downloadrate:
Einfach in der Server.cfg denn Befehl set sv_dlRate "1000" das heist mit 1000 kb/s läd ein Client (Spieler) die Fehlenden Datein um auf denn Server von dir zu Spielen.
Bitte nicht vergessen denn Befehl set sv_allowdownload "1" in euere Server.cfg einzutragen weil sonst die Clients(Spieler) nicht Downloaden können.






Wenn sonst noch Fragen, Angerungen oder Tips sind einfach in diesem Thema Posten.



mfg
FeindflugLP