Neuigkeiten:

:)

 
-Menü

Beiträge anzeigen

Dieser Abschnitt erlaubt es Ihnen, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachten Sie, dass Sie nur Beiträge sehen können, die in Teilen des Forums geschrieben wurden, auf die Sie aktuell Zugriff haben.

Beiträge anzeigen-Menü

Benachrichtigungen - feindfluglp

#1
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
#2
hab dir ne pn geschickt wegen ts ;)
#3
Also ich hab nun meine alten q3 server daten mal rausgekram.

wie folgt habe ich meine servers immer aufgebaut.
in dem quake3 ordner habe ich ein ordner drinne mit dem name .q3a und in dem ist folgendes enthalten:
mod ordner z.b. exessiveplus (dient als log ornder für denn server)
pb (punkbuster ordner)

Downloadlink für denn .q3a ordner: http://www.mediafire.com/download.php?lhqycvmcr7q5tcm


ein serverstartscript sieht bei mir wie folgt aus:
#!/bin/bash
while true
do
/usr/games/quake3/q3ded +set fs_homepath "/usr/games/quake3/.q3a" +set vm_game "0" +set fs_game excessiveplus +set dedicated 2 +set net_port 27960 +exec 1v1.cfg
echo "server crashed on `date`" > server_crash_1v1.txt
done



WICHTIG: bitte immer genau denn name angeben sonst funktioniert der restartscript nicht!




ein restartscript denn ich immer benutzt habe um regelmäßig meinen server zu restarten:
bitte dem file denn name geben:
q3date_restart.sh

#!/bin/bash
# Copyright (C) Feindflug
#
# Don't edit the file!!!
# Copy and rename!!!
# THX - Greatz Feindflug
#
  #
while [ 1=1 ];do
hour=`date | tail -n 1 | sed 's/\//\ /' | awk '{print $4}'`
if [ "$hour" = "08:00:00" ];then
echo "Restart all Quake III Arena Servers!!"

./q3date_cmdline

echo "The Restart ist Finish!!!"
fi
sleep 1

done;




erklärung zur: q3date_restart.sh

if [ "$hour" = "08:00:00" ];then
einfach deine uhrzeit eintragen wann die server restarten sollen
WICHTIG: die uhrzeit muss genauso am ende so stehen z.b. 10:00:00 = hh:mm:ss


2 Files was zum q3 restart script gehört:
bitte diesen name als filename angeben:
q3date_cmdline

#!/bin/bash
# Copyright (C) Feindflug
#
# Don't edit the file!!!
# Copy and rename!!!
# THX - Greatz Feindflug
#
  # 
cd /usr/games/quake3;
    kill `ps aux | grep -v grep | grep -i 1v1 | grep -i SCREEN | awk '{print $2}'`;
  screen -A -L -d -m -S 1v1 sh 1v1.sh;

sleep 0.1

cd /usr/games/quake3;
    kill `ps aux | grep -v grep | grep -i freeze | grep -i SCREEN | awk '{print $2}'`;
  screen -A -L -d -m -S freeze sh freeze.sh;

sleep 0.1

cd /usr/games/quake3;
./tab_res;





erklärung zur: q3date_cmdline
cd /usr/games/quake3;
    kill `ps aux | grep -v grep | grep -i 1v1 | grep -i SCREEN | awk '{print $2}'`;
  screen -A -L -d -m -S 1v1 sh 1v1.sh;


was musst du ändern?
cd [b]"baseordner von quake3"[/b];
    kill `ps aux | grep -v grep | grep -i [b]"server screen name"[/b] | grep -i SCREEN | awk '{print $2}'`;
  screen -A -L -d -m -S [b]"server screen name"[/b] sh [b]"server startscript name"[/b].sh;

WICHTIG: immer nur von " bis " rauslöschen und eintragen. gänsefüße natürlich mit rauslöschen ;)




du kannst beliebt weiter befehle einfügen z.b.:

#!/bin/bash
# Copyright (C) Feindflug
#
# Don't edit the file!!!
# Copy and rename!!!
# THX - Greatz Feindflug
#
  # 
cd /usr/games/quake3;
    kill `ps aux | grep -v grep | grep -i 1v1 | grep -i SCREEN | awk '{print $2}'`;
  screen -A -L -d -m -S 1v1 sh 1v1.sh;

sleep 0.1

cd /usr/games/quake3;
    kill `ps aux | grep -v grep | grep -i freeze | grep -i SCREEN | awk '{print $2}'`;
  screen -A -L -d -m -S freeze sh freeze.sh;

sleep 0.1

cd /usr/games/quake3;
    kill `ps aux | grep -v grep | grep -i instagib | grep -i SCREEN | awk '{print $2}'`;
  screen -A -L -d -m -S instagib sh instagib.sh;
sleep 0.1

cd /usr/games/quake3;
    kill `ps aux | grep -v grep | grep -i ctf | grep -i SCREEN | awk '{print $2}'`;
  screen -A -L -d -m -S ctf sh ctf.sh;

sleep 0.1

cd /usr/games/quake3;
./tab_res;




es ist in diesem bereich nur wichtig das du nach dem sleep 0.1 mit cd ..... anfängst.
am ende muss stehen:

cd /usr/games/quake3;
./tab_res;




3 datei im bunde:
WICHTIG: bitte diesen dateiname angeben: tab_res


iptables -F
in diesem file brauchst du nichts zu ändern



und dann hab ich mir noch eine datei geschreiben die nennt sich q3tempdel
man braucht sie nicht aber ist nützlich um schnell mal alle logs zu löschen :)


#!/bin/tcsh
# Q3 TempDel V.2.1
# Copyright Feindflug
# Created and Coded by Feindflug

# 48 Stunden
set timeout=172800

set one=1

if ( $one == 1 ) then
echo "Q3 TempDel V.2.0 ist Gestartet!"
endif
while(1)
cd /usr/games/quake3/;
rm screenlog.0 botlib.log;
cd /usr/games/quake3/.q3a/excessiveplus/;
rm *.log q3config.cfg;
cd /usr/games/quake3/.q3a/pb/svlogs/;
rm *.log;
cd /usr/games/quake3/.q3a/pb/;
rm  *.log;
cd /usr/games/quake3/;
rm *.txt;
cd /usr/games/block
rm screenlog.0;
endif
   sleep $timeout
endif
end
;;



ich hoffe doch du verstehst wie der script gemeint ist.
ist vom grund her nichts anders wie der startscript nur das er halt daten löscht rm.



und dann nochmal eine server.cfg von mir:
set rconpassword ""
set refereePassword ""
set sv_privatePassword ""
set sv_fps "30"
set g_speed "350"
set com_hunkmegs "56"
set com_maxfps "80"
set xp_referee "map,map_restart,w,forceteam,k,rotate,cp,status,exec,.^1INFO TO EXEC: ^2/ref exec pbon or pboff,"
set g_log "a1v1.log"
set g_logSync "1"
set sv_allowdownload "0"
set xp_holyshit "1"
set g_forcerespawn "3"
set bot_minplayers "2"
set bot_nochat "1"
set xp_chatProtection "3"
set xp_userdb "1"
set sv_hostname "^1[^7OS^1] ^21vs1 Public Server"
set g_motd "^7Have Fun^2! ^7- ^2Next Map^7: ^2q3tourney1"
set sv_maxclients "6"
set sv_privateClients "0"
set g_allowvote "1"
set xp_vote "map_restart,rotate"
set sv_maxrate "25000"
set sv_minPing "0"
set sv_maxping "0"
set sv_floodProtect "1"
set xp_validTLD "0"
set xp_matchmode "0"
set xp_suddenDeath "0"
set roundtimelimit "0"
set roundlimit "0"
set capturelimit "0"
set g_teamAutoJoin "0"
set timelimit "10"
set fraglimit "15"
set g_gametype "1"
set g_doWarmup "1"
set g_warmup "5"
set xp_motd "1v1.motd.txt"
set xp_bans "bans.txt"
set xp_crontab "1v1.cron.txt"
set xp_config "conf/plusc.cfg"
set xp_rotation "1v1.rot.txt"
set xp_voteconf ""
sets .Admin "Feindflug"
sets .Email "kreidler_cross_sport@hotmail.de"
sets .URL "www.Offline-Servers.info"

seta sv_master1 "master0.gamespy.com"
seta sv_master2 "master3.idsoftware.com"
seta sv_master3 "q3master.allseeingeye.com"
seta sv_master4 "master.quake3arena.com"
map q3tourney1
exec pureon.cfg
exec pboff.cfg




ich hoffe ich konnte dir damit helfen :)
wenn nicht bitte melde dich nochmal dann gehen wir mal im teamspeak durch was du vlt in denn scripten falsch gemacht hast.

mfg
feindfluglp
#4
Zitat von: feindfluglp am 04. Mai 2013, 17:33:33
warte einfach das ist bei denn quake 3 server bugs gibt ich gebe dir morgen nochmal mehr infos :)

sry hatte heute keine zeit werde mich darum morgen mal kümmern :)

also heute ;)
#5
warte einfach das ist bei denn quake 3 server bugs gibt ich gebe dir morgen nochmal mehr infos :)
#6
wenn du etwas zeit hast werde ich mich mal morgen dran setzen und meine daten auspacken und schauen weil irgentwas ist bei der starconfig falsch

mfg feindfluglp
#7
mach bitte mal mit dem script denn ich dir oben gegebn habe ein neuen startscipt und versuche es mal damit :)

natürlich musst du noch bissel daran rum schrauben.



// ********************** START OF SHELLSCRIPT TO START THE SERVER **********************
// FILENAME : start-osp-server.sh


#!/bin/sh
ip="ip_of_your_server"
port="port_of_your_server"
name="q3a-osp"

echo running server $name on $ip : $port

screen -A -m -d -S $name /usr/local/games/quake3/q3ded +set sv_punkbuster 1 +set fs_basepath /usr/local/games/quake3/ +set fs_game osp +set dedicated 1 +set com_hunkMegs 32 +set net_ip $ip +set net_port $port +set g_log $name.log +exec q3ded-osp-ffa.cfg


// ********************** END OF SHELLSCRIPT TO START THE SERVER **********************
#8
du musst einfach die datei aus dem zip packet kopieren und ersetzen im ordner quake3 ;)
da liegen ja auch die daten die in dem packet drinne sind.

./q3ded +set dedicated 2 +set fs_game gsmod +set net_ip gsip +set net_port gsport +set sv_maxclients gsplayer +set fs_basepath ./ +set fs_homepath ./quake +set com_hunkmegs 96 +set com_zoneMegs 64 +set vm_game 0 +set ttycon 0 +exec server.cfg +set r_allowSoftwareGL 1

das ist totaler blödsinn was du da gemacht hast.

./q3ded +set dedicated 2 +set fs_game gsmod +set net_ip IP COM SERVER +set net_port PORT ANGEBEN  +set sv_maxclients DAS MUSS IN DIE CFG +set fs_basepath ./ +set fs_homepath ./quake +set com_hunkmegs 96 +set com_zoneMegs 64 +set vm_game 0 +set ttycon 0 +exec server.cfg +set r_allowSoftwareGL 1


bsp.

./q3ded +set dedicated 2 +set fs_game gsmod +set net_ip 188.188.188.188 +set net_port 27960 +set fs_basepath ./ +set fs_homepath ./quake +set com_hunkmegs 96 +set com_zoneMegs 64 +set vm_game 0 +set ttycon 0 +exec server.cfg +set r_allowSoftwareGL 1


EDIT:
das kommt in die cfg:
seta sv_maxClients "8"            // max players allowed on server, includes spectators
seta sv_privateClients "2"

nochmal nen bsp. fürn startscript:

// ********************** START OF SHELLSCRIPT TO START THE SERVER **********************
// FILENAME : start-osp-server.sh


#!/bin/sh
ip="ip_of_your_server"
port="port_of_your_server"
name="q3a-osp"

echo running server $name on $ip : $port

screen -A -m -d -S $name /usr/local/games/quake3/q3ded +set sv_punkbuster 1 +set fs_basepath /usr/local/games/quake3/ +set fs_game osp +set dedicated 1 +set com_hunkMegs 32 +set net_ip $ip +set net_port $port +set g_log $name.log +exec q3ded-osp-ffa.cfg


// ********************** END OF SHELLSCRIPT TO START THE SERVER **********************
#9
du musst dir denn patch runter laden:

http://www.quake3world.com/forum/viewtopic.php?t=21699

1.32c brauchst du ;)

die datei in dem ordner macht eh keinen sinn

EDIT:
wenn es noch nicht geht bitte schick mal denn start script also kopier es einfach mal hier ins forum :)
#10
Hallo

also folgende:

in der log ist das hier zu sehen:
"/home/kd-100034/server/Quake3_25000/baseq3/qagamei386.so: cannot open shared object file: No such file or directory"

update mal auf 1.32c dann sollte das problem nicht mehr bestehen.

mfg
feindfluglp