don-banane
16.07.2008, 13:49
Hallo :)
Ich dachte es wäre mal eine gute Idee ein ULX/ULib Tutorial zu machen, um mal wirklich alles zu erklären :gmod:
Zusätzlich werde noch das sui_scoreboard, UTeam und weitere Addons zeigen.
1. Die Einleitung
Was ist ULX?
ULX ist eine Adminmod für Garry's Mod, einer der besten, mit vielen Einstellmöglichkeiten und Funktionen. Es wurde vom Team Ulysses entwickelt.
Wo kann man es downloaden?
Am besten über SVN, wenn man immer die aktuelle Version haben will. Wenn nicht, ist hier ist der normale Download.
http://maurice.gmod.de/Tutorial/Trennstrich.png
2. Die Installation
Nach erfolgreichen download von ULX und ULib, schiebt man den ULX und den ULib Ordner (sie enthalten eine info.txt) in den garrysmod/garrysmod/addons Ordner.
Jetzt solltest du den Server Neustarten, und wenn du alles richtig gemacht hast, wirst du am Anfang eine MOTD sehen (daruf komme ich später noch zurück :gmod:)
3. Die ersten Schritte
3.1 Die Gruppen
Geht als erstes in garrysmod/garrysmod/data/ulib und schaut euch die groups.txt an ;)
ULX hat schon einige Gruppen mit verschiedenen Rechten als Standartmäßig drin. Die Superadmin Gruppe sieht so aus:
"superadmin" <- Der Gruppenname
{
"deny" <- Welche Befehle werden verboten
{
}
"allow" <- Welche Befehle werden erlaubt
{
"ulx hiddenecho"
"ulx rcon"
"ulx luarun"
"ulx cexec"
"ulx ent"
"ulx adduser"
"ulx adduserid"
"ulx removeuser"
"ulx userallow"
"ulx userdeny"
"ulx addgroup"
"ulx removegroup"
"ulx groupallow"
"ulx groupdeny"
"overcomeimmunity"
}
"inherit_from" <- Erbt von
{
"admin"
}
}
Man hat zwei möglichkeiten die Rechte einer Gruppe zuzuweisen, entweder man erlaubt einige Befehle, und der Rest wird verboten, oder man verbietet einige Befehle, und der Rest wird erlaubt.
Inherit heißt Erben, d.h. die Gruppe bekommt die Befehle, die bei ihr eingetragen ist + die Befehle von der Gruppe die unter "inherit_from" steht. (Also "erbt" z.B. die Superadmin Gruppe alle Befehle von der Admin und von der Operator Gruppe, wie eine Kette also)
Der einzige Sinn daran ist, dass man man nicht immer alle Befehle schreiben muss.
Zu der User Gruppe zählt der ganze Rest, also das einfache Volk, das keiner Gruppe zugeordnet ist :D
3.1.1 Gruppen erstellen
Nehmen wir also mal an, wir wollen eine VIP Gruppe erstellen, der einige Rechte zur Verfügung stehen, also führen wir einfach die Liste fort indem wir z.B. das anhängen:
"vip"
{
"deny"
{
}
"allow" <- Diese ganzen Befehle werden der VIP Gruppe erlaubt
{
"ulx kick"
"ulx who"
"ulx votemap"
"ulx thetime"
"ulx voteban"
"ulx votekick"
"ulx jail"
"ulx goto"
"ulx teleport"
"ulx god"
"ulx ungod"
"ulx noclip"
"ulx slay"
"ulx vote"
"ulx mute"
"ulx ragdoll"
"ulx blind"
"ulx clientmenu"
"ulx showmotd"
"ulx unjail"
"ulx unblind"
"ulx unragdoll"
"ulx unmute"
}
"inherit_from" <- Und err bekommt zusätzlich die Befehle vom einfachen Volk
{
"user"
}
}
Und so weiter, das ist jetzt erstmal eine ganze Menge an Befehlen, aber die kommen später noch ;)
P.S.: Wenn man in allow den Befehl "immunity" einträgt, dann ist man automatisch immun gegen Kicks und Bans, ausser der, der dich Bannen will hat "overcomeimmunity". Also würde ich als Chef natürlich beides bei mir in meine Superadmingruppe eintragen.
3.2 Gruppeneinteilung
Dazu gibt es auch eine Textdatei, die wir aber (falls nicht vorhanden) erstellen müssen.
Als erstes gehen wir in garrysmod/garrysmod/data/ulib und erstellen dort eine users.txt, diese ist nötig um die Rechte an die verschiedenen Leute zu geben.
Das ganze sieht ziemlich ähnlich aus, wie bei der groups.txt
Um User in Gruppen aufzunehmen (z.B Admins), muss man sie einfach nach folgendem Schema eintragen:
"<account_name>"
{
"id" "<name|ip|steamid|clantag>"
"type" "<name|ip|steamid|clantag>"
"pass" "<password>"
"pass_req" "<0|1>"
"groups"
{
"<gruppe>"
}
"allow"
{
}
"deny"
{
}
}
Also z.B als Superadmin mit allen Rechten:
"don-banane"
{
"id" "STEAM_0:0:1234567" <- Die SteamID (einfach status in die console eingeben, um sie herauszufinden)
"type" "steamid" <- Der Typ sollte immer steamID sein
"pass" ""
"pass_req" "0" <- Kein Passwort benötigt
"groups"
{
"superadmin" <- Diese Gruppe hat komplett alle Rechte, siehe groups.txt
}
"allow" <- Welche Befehle werden erlaubt (einfach leer lassen)
{
}
"deny" <- Welche Befehle werden verboten (nochmal um spezifisch einzelne Rechte zu verbiebten, die in der Gruppe normalerweise nicht verboten sind)
{
}
}
Jetzt bin ich in der Superadmin Gruppe und habe alle Rechte, genauso kann man dann auch andere User z.B in die VIP Gruppe schieben :gmod:
Hinweis: Man kann natürlich auch ingame bestimme User in Gruppen aufnehmen, das ist natürlich einfacher, siehe Liste der Befehle ;)
3.3 Die Message of the day
Die Message Of The Day, kurz: MotD kennt ihr sicherlich. Wenn man auf einen Server joint, kommt ein Fenster mit den Regeln und dem ganzen Rest.
ULX bietet die Möglichkeit, die MotD einfach mit html zu bearbeiten. Hier ist der Pfad zur ulx_motd.txt: garrysmod/garrysmod/addons/ulx/
Man muss keine besonderen HTML Kenntnisse haben, man kann auch einfach das Vorhandene nehmen und erweitern, so wie ich das mal gemacht habe:
<html>
<body bgcolor=#dbdbdb>
<div style="text-align: center;">
<div style="width: 80%; margin: 0px auto; border: 10px solid #c9d6e4; background-color: #ededed; padding: 10px; font-size: 12px; font-family: Tahoma; margin-top: 30px; color: #818181; text-align: left;">
<div style="font-size: 30px; font-family: impact; width: 100%; margin-bottom: 5px;">Insert Server Name here :)</div>
<br>
This Server uses the following mods:<br>
ULX, PHX2, Wire (latest SVN), usw...<br>
<br>
<h2>Rules</h2>
1. Don't mess with other players stuff. If they want help, they'll ask!<br>
2. Don't spam<br>
3. No Deathmatch<br>
4. Build serious, not just messing around with props<br>
5. Don't fuck around<br>
6. Deactivate the sound of your thrusters<br>
7. Have fun<br>
<br>
Das ist ein deutscher Server, aber es wird auch Englisch gesprochen.<br>
<div style="width: 100%; text-align: center; margin: 10px; font-weight: bold;">- The Admins</div>
<div style="width: 100%; text-align: center; margin: 10px; font-weight: bold;">Admins: Horst, Ingeborg, Werner</div>
<div style="width: 100%; text-align: center; margin: 10px; font-weight: bold;">If an admin bans you for no reason, ask one of the admins in steam to unban you.</div>
</div>
</div>
</body>
</html>
3.4 Die Server.ini
Diese Datei bietet eine Menge zum einstellen, man findet sie in garrysmod/garrysmod/addons/ulx/cfg ;)
ulx showMotd 1 // Soll die Message of the Day beim Start angezeigt werden?
ulx addGimpSay "I'm a llama." // Siehe Liste der Befehle
ulx addGimpSay "How do you fly?"
ulx addGimpSay "baaaaaaaaaah."
ulx addGimpSay "Llama power!"
ulx addGimpSay "Llamas are the coolest!"
ulx addGimpSay "What's that gun to move stuff?"
ulx chattime 1.5 // Die Spieler können nur alle 1.5 Sekunden etwas in den Chat schreiben (spam schutz).
// Diese Zeile sehen die User wenn sie joinen
// Mit %host% und %curmap% fügt ULX dort automatisch den Servernamen und die Map die gerade äuft ein
ulx welcomemessage "Welcome to %host%! We're playing %curmap%."
// Werbung
// addCsayAdvert <msg> <r> <g> <b> <repeat_time> <length> [<group>]
// addAdvert <msg> <repeat_time> [<group>]
// R, G und B ist die Farbe, nach Rot Grün und Blau die die Werbung hat. Weiß wäre z.B. 255, 255, 255
// Repeat_time ist die Wiederholungsrate, length ist wie lange die Werbung angezeigt wird, mit Group kann man optional die Gruppe einstellen, der nur die Werbung gezeigt wird
// addCsayAdvert macht Werbung in der mitte vom Bildschirm, addAdvert macht Werbung im Chat
// Man kann %host%, %curmap%, und %ulx_version% ebenfalls verwenden
ulx addCsayAdvert "You're playing on %host%, enjoy your stay!" 255 255 255 300 10
// ULX Werbung, sollte man anstandsweise drinlassen :)
ulx addAdvert "This server is running ULX Admin Mod version %ulx_version% by Team Ulysses -- ulyssesmod.net" 540
ulx logFile 1 // Soll geloggt werden? Siehe Logs
ulx logEvents 1 // Sollen Events geloggt werden? (player connect, disconnect, death)
ulx logChat 1 // Soll der Chat geloggt werden?
ulx logSpawns 1 // Sollen Prop-Spawns geloggt werden?
ulx logSpawnsEcho 1 // Sollen Spawns auf dem Server geloggt werden? 0 = aus, 1 = Nur Admins, 2 = Alle
ulx logDir "ulx_logs" // Die Log Datei in garrysmod/data.
ulx logEcho 2 // Echo mode
// Echo modes:
// 0 - AUS, d.h. wenn ein Admin einen Befehl ausführt, wird nichts in den Chat geschrieben
// 1 - ANONYM Man sieht den Befehl, aber nicht wer in ausgeführt hat. Sieht dann z.B. so aus: "(ADMIN) slapped Bob with 0 damage"
// 2 - ALLES Man sieht den Befehl und den Namen des Admins: "(ADMIN) don-banane slapped Bob with 0 damage"
ulx rslotsMode 0
ulx rslots 2
ulx rslotsVisible 1
// Erklärung: 0 = Aus, es werden keine Slots reserviert
// 1 = Es sind immer zwei Slots für Admins reserviert, also nehmen wir mal an wir haben einen 10 Slot Server und haben 8 Spieler drauf, jetzt kann kein Spieler mehr joinen, weil die restlichen 2 für Admins reserviert sind.
// 2 = Sehr schwer zu erklären, braucht man aber eigentlich eh nicht xD
// 3 = Wenn ein Admin joint, und der Server voll ist, wird der Spieler, der am kürzesten auf dem Server ist gekickt, um Platz für den Admin zu machen.
// rslotsVisible:
// Wenn keine regulären Spielerplätze mehr frei sind, wird der Server auf "Full" gesetzt. Admins können dann nurnoch über die console via "connect <ip>" joinen (falls Slots reserviert sind)
ulx votemapEnabled 1 // Votemap ein oder aus
ulx votemapMintime 10 // Wie lange soll Votemap dauern
ulx votemapWaittime 5 // Um Votemap Spam zu vermeiden, die Zeit bis der jeweilige User einen neuen Vote machen kann
ulx votemapSuccessratio 0.4 // Die Rate, damit die Map gechanged wird berechnet durch (Votes)/(Anzahl aller Spieler)
ulx votemapMinvotes 3 // Mindestanzahl der Votes damit der Vote überhaupt zählt
ulx votemapVetotime 30 // Soviel Zeit bleibt dem Admin um den Vote abzubrechen, nachdem der Vote zuende ist, bis die Map gechanged wird
ulx votemapMapmode 1 // 1 = Alle maps zum Vote erlaubt, 2 = Nur die unten aufgelisteten Maps zum Voten erlauben
ulx voteEcho 0 // 1 = Zeigt im Chat an wer für was gestimmt hat 0 = Zeigt nichts an
ulx votemap2Successratio 0.5 // Das gleiche wie oben, ausser dass man bei votemap2 mehrere Maps zur auswahl hat
ulx votemap2Minvotes 3 // Auch gleich
ulx votekickSuccessratio 0.6 // Votekick Rate berechnet nach (Votes/Anzahl aller Spieler) bis ein Votekick wirkt
ulx votekickMinvotes 2 // Mindestanzahl der Votes damit der Votekick überhaupt zählt
ulx votebanSuccessratio 0.7 // Genauso wie votekick
ulx votebanMinvotes 3 // Ebenfalls
// Hier kannst du die Maps eintragen, falls du bei bei votemapMapmode 2 eingestellt hast ;)
ulx votemapAddmap gm_construct
ulx votemapAddmap gm_flatgrass
// Hier kann man einstellen, welche Files man gezwungen ist herunter zu laden
// So fügt man Files dazu: ulx addForcedDownload <file/folder> [<recursive>]
// Zum Bleistift:
//ulx addForcedDownload "sound/cheeseman.mp3"
// Man kann auch komplette Ordner auswählen, wenn recursive auf 1 ist, werden alle Unterordner mitgenommen
//ulx addForcedDownload "sound/my_music" 1
3. Die Befehle
Wenn man "ulx help" in die Console eingibt, bekommt man eine Liste mit den wichtigsten Befehlen ;)
http://www.abload.de/thumb/ulxcommandsoey.jpg (http://www.abload.de/image.php?img=ulxcommandsoey.jpg)
Wie man sieht, kann man die meisten Befehle in den Chat schreiben, z.B. !kick <user>
Der wichtigste Befehl ist !menu, mit dem kommt man nämlich ins Menü, das sehr nützlich ist, und in der Kategorie "User Management" findet man übrigens die Befehle für Ingame User zu Gruppen hinzufügen und so.
4. Ein Buntes Scoreboard
Wie macht man sowas?
http://www.abload.de/thumb/freespace06v210001xrab8.jpg (http://www.abload.de/image.php?img=freespace06v210001xrab8.jpg)
Antwort: Mit dem sui_scoreboard and UTeam!
Das sui_scoreboard gibts hier: http://ulyssesmod.net/archive/sui_scoreboard.zip
(Forum Thread zum sui_scoreboard: http://forums.ulyssesmod.net/index.php/topic,1118.0.html)
Es wurde zusätzlich eine alternative sui_scoreboard Version gemacht, die auch Steamavatare und die auf dem Server gespielte Zeit anzeigt: http://forums.ulyssesmod.net/index.php/topic,3650.0.html
Einfach in den Addons Ordner damit und fertig :)
Aber ohne UTeam geht nichts. UTeam ist ein Addon für ULX, mit dem man die Usergruppen in dem neuen sui_scoreboard anzeigen kann, und noch verschiedene Einstellmöglichkeiten für die Gruppen hat. Download: http://www.ulyssesmod.net/spbogie/UTeam1.1.zip
(Forum Thread zu UTeam: http://forums.ulyssesmod.net/index.php/topic,663.0.html)
Installation:
UTeam.txt kommt in garrysmod/data
UTeam.lua kommt in garrysmod/lua/autorun
Wir öffnen die UTeam.txt, und was für ein Wunder, es sieht genauso aus wie die ganzen anderen .txt's :shock:
"Out"
{
"teams"
{
"1" //Team Nummer
{
"name" "Name" //Teamname (der im sui_scoreboard angezeigt wird)
"group" "usergroup" //Gruppe die in der groups.txt angegeben sind
"color" //Farbe im sui_scoreboard (und auch im Chat :D)
{
"r" "255" //Rot
"g" "100" //Grün
"b" "0" //Blau
"a" "255" //Alpha }
"hp" "500" //(*Optional*) HP aller Player der Gruppe
"armor" "500" //(*Optional*) Armor aller Player der Gruppe
"model" "gman" //(*Optional*) Playermodel aller Player der Gruppe, siehe UTeam_readme.txt
"plytable" //(*Optional*) Verschiedens
{ //Format ist key:value
"1" "SprintSpeed:1000" //Stellt die Sprint-Geschwindigkeit der Gruppe ein (Standart 500)
"2" "WalkSpeed:500" //Stellt die Geh-Geschwindigkeit der Gruppe ein (Standart 250)
}
}
}
"gamemodes" //Gamemodes bei denen UTeam laden soll (?)
{
"1" "Sandbox"
}
}
Hier mal ein kleines Beispiel zum Verständnis:
"Out"
{
"teams"
{
[...]
"9"
{
"name" "Member"
"group" "member"
"color"
{
"a" "255"
"B" "140"
"g" "0"
"r" "0"
}
}
"10"
{
"name" "Kiddie"
"group" "kiddie"
"hp" "10"
"color"
{
"a" "255"
"B" "162"
"g" "0"
"r" "255"
}
"model" "alyx"
}
"11"
{
"name" "Asshole"
"group" "asshole"
"hp" "10" // Hat nur 10 HP (beim spawnen)
"color"
{
"a" "255"
"B" "0"
"g" "0" // Das wäre jetzt z.B schwarz
"r" "0"
}
"model" "monk" // Alle spieler sind gezwungen das Grigory Model zu nehmen
}
"12"
{
"name" "Player" // Die Gruppe soll offiziell Player heißen, aaaber eigentlich meinen wir die User Gruppe, weil das der Name in der groups.txt ist
"group" "user"
"color"
{
"a" "255"
"B" "255"
"g" "100"
"r" "0"
}
}
}
}
Achtung Wichtig! Die Gruppe die ich hier als letztes stehen habe, muss IMMER ganz unten in der Liste stehen, alles was unter der User Gruppe steht, wird garantiert nicht angezeigt! Zur Erinnerung: Die user Gruppe ist die Gruppe, zu der alle Spieler gehören, die zu keiner Gruppe gehören.
5. Weitere Addons
UClip eigentlich nur dafür gedacht, dass man nicht durch andere Props noclippen kann, sondern nur durch seine eigenen. Admins können natürlich überall durch ;)
http://forums.ulyssesmod.net/index.php/topic,1080.0.html
Anti Spam, mehr gibts hier: http://forums.ulyssesmod.net/index.php/topic,3434.0.html
Speichert, und zeigt von jedem Spieler die Spielzeit auf dem Server an, wenn man auf ihn zielt.
http://forums.ulyssesmod.net/index.php/topic,3039.0.html
Mit dem Befehl "!report <text>" (im Chat) kann man Reports abschicken, die dann in der .txt gepeichert werden.
http://forums.ulyssesmod.net/index.php/topic,1162.0.html
Dieses Addon wechselt die Map automatisch in bestimmten Zeitintervallen.
http://forums.ulyssesmod.net/index.php/topic,688.0.html
Mein Lieblingsaddon, es kickt automatisch Spieler, die sich für eine bestimmte Zeit nicht bewegt haben, nachdem sie als AFK markiert werden. Man kann auch einstellen, aber welcher Spieleranzahl autokick an sein soll, und natürlich ob Admins auch gekickt werden sollen ;)
http://forums.ulyssesmod.net/index.php/topic,3032.0.html
Gibts hier: http://forums.ulyssesmod.net/index.php/board,15.0.html ;)
6. Der ganze Rest
Die Logs findet man in garrysmod/garrysmod/data/ulx_logs, sie können für Admins oft sehr nützlich sein
In garrysmod/garrysmod/data/ULib sind alle Bans in der bans.txt aufgelistet
In garrysmod/garrysmod/gamemodes/sandbox/gamemode müssen in der init.lua folgende Zeilen abgeändert werden:
function GM:PlayerLoadout( pl )
// Remove any old ammo
pl:RemoveAllAmmo()
if ( server_settings.Bool( "sbox_weapons", true ) ) then
pl:GiveAmmo( 256, "Pistol", true )
pl:GiveAmmo( 256, "SMG1", true )
pl:GiveAmmo( 5, "grenade", true )
pl:GiveAmmo( 64, "Buckshot", true )
pl:GiveAmmo( 32, "357", true )
pl:GiveAmmo( 32, "XBowBolt", true )
pl:GiveAmmo( 6, "AR2AltFire", true )
pl:Give( "weapon_ar2" )
pl:Give( "weapon_crowbar" )
pl:Give( "weapon_pistol" )
pl:Give( "weapon_smg1" )
pl:Give( "weapon_frag" )
pl:Give( "weapon_physcannon" )
pl:Give( "weapon_crossbow" )
pl:Give( "weapon_shotgun" )
pl:Give( "weapon_357" )
pl:Give( "weapon_rpg" )
pl:Give( "weapon_ar2" )
// The only reason I'm leaving this out is because
// I don't want to add too many weapons to the first
// row because that's where the gravgun is.
//pl:Give( "weapon_stunstick" )
end
pl:Give( "gmod_tool" )
pl:Give( "gmod_camera" )
pl:Give( "weapon_physgun" )
local cl_defaultweapon = pl:GetInfo( "cl_defaultweapon" )
if ( pl:HasWeapon( cl_defaultweapon ) ) then
pl:SelectWeapon( cl_defaultweapon )
end
end
Wenn man eine Waffe entfernen will, setzt man einfach ein // vor pl:giveAmmo (Waffe) und pl:Give (Waffe).
Soo das wars eigentlich schon, ich hoffe es war verständlich, wenn es noch Fragen gibt, oder etwas fehlt dann schreibt es ruhig hier rein ;)
Aber eins muss ich noch sagen: Ausprobieren! Probiert ruhig das !menu aus, und die ganzen Funbefehle, wie Ragdoll oder Jail, man kann nicht viel falsch machen, ausser sich selbst Bannen, aber den kann man ja locker in der bans.txt löschen ;)
Ich dachte es wäre mal eine gute Idee ein ULX/ULib Tutorial zu machen, um mal wirklich alles zu erklären :gmod:
Zusätzlich werde noch das sui_scoreboard, UTeam und weitere Addons zeigen.
1. Die Einleitung
Was ist ULX?
ULX ist eine Adminmod für Garry's Mod, einer der besten, mit vielen Einstellmöglichkeiten und Funktionen. Es wurde vom Team Ulysses entwickelt.
Wo kann man es downloaden?
Am besten über SVN, wenn man immer die aktuelle Version haben will. Wenn nicht, ist hier ist der normale Download.
http://maurice.gmod.de/Tutorial/Trennstrich.png
2. Die Installation
Nach erfolgreichen download von ULX und ULib, schiebt man den ULX und den ULib Ordner (sie enthalten eine info.txt) in den garrysmod/garrysmod/addons Ordner.
Jetzt solltest du den Server Neustarten, und wenn du alles richtig gemacht hast, wirst du am Anfang eine MOTD sehen (daruf komme ich später noch zurück :gmod:)
3. Die ersten Schritte
3.1 Die Gruppen
Geht als erstes in garrysmod/garrysmod/data/ulib und schaut euch die groups.txt an ;)
ULX hat schon einige Gruppen mit verschiedenen Rechten als Standartmäßig drin. Die Superadmin Gruppe sieht so aus:
"superadmin" <- Der Gruppenname
{
"deny" <- Welche Befehle werden verboten
{
}
"allow" <- Welche Befehle werden erlaubt
{
"ulx hiddenecho"
"ulx rcon"
"ulx luarun"
"ulx cexec"
"ulx ent"
"ulx adduser"
"ulx adduserid"
"ulx removeuser"
"ulx userallow"
"ulx userdeny"
"ulx addgroup"
"ulx removegroup"
"ulx groupallow"
"ulx groupdeny"
"overcomeimmunity"
}
"inherit_from" <- Erbt von
{
"admin"
}
}
Man hat zwei möglichkeiten die Rechte einer Gruppe zuzuweisen, entweder man erlaubt einige Befehle, und der Rest wird verboten, oder man verbietet einige Befehle, und der Rest wird erlaubt.
Inherit heißt Erben, d.h. die Gruppe bekommt die Befehle, die bei ihr eingetragen ist + die Befehle von der Gruppe die unter "inherit_from" steht. (Also "erbt" z.B. die Superadmin Gruppe alle Befehle von der Admin und von der Operator Gruppe, wie eine Kette also)
Der einzige Sinn daran ist, dass man man nicht immer alle Befehle schreiben muss.
Zu der User Gruppe zählt der ganze Rest, also das einfache Volk, das keiner Gruppe zugeordnet ist :D
3.1.1 Gruppen erstellen
Nehmen wir also mal an, wir wollen eine VIP Gruppe erstellen, der einige Rechte zur Verfügung stehen, also führen wir einfach die Liste fort indem wir z.B. das anhängen:
"vip"
{
"deny"
{
}
"allow" <- Diese ganzen Befehle werden der VIP Gruppe erlaubt
{
"ulx kick"
"ulx who"
"ulx votemap"
"ulx thetime"
"ulx voteban"
"ulx votekick"
"ulx jail"
"ulx goto"
"ulx teleport"
"ulx god"
"ulx ungod"
"ulx noclip"
"ulx slay"
"ulx vote"
"ulx mute"
"ulx ragdoll"
"ulx blind"
"ulx clientmenu"
"ulx showmotd"
"ulx unjail"
"ulx unblind"
"ulx unragdoll"
"ulx unmute"
}
"inherit_from" <- Und err bekommt zusätzlich die Befehle vom einfachen Volk
{
"user"
}
}
Und so weiter, das ist jetzt erstmal eine ganze Menge an Befehlen, aber die kommen später noch ;)
P.S.: Wenn man in allow den Befehl "immunity" einträgt, dann ist man automatisch immun gegen Kicks und Bans, ausser der, der dich Bannen will hat "overcomeimmunity". Also würde ich als Chef natürlich beides bei mir in meine Superadmingruppe eintragen.
3.2 Gruppeneinteilung
Dazu gibt es auch eine Textdatei, die wir aber (falls nicht vorhanden) erstellen müssen.
Als erstes gehen wir in garrysmod/garrysmod/data/ulib und erstellen dort eine users.txt, diese ist nötig um die Rechte an die verschiedenen Leute zu geben.
Das ganze sieht ziemlich ähnlich aus, wie bei der groups.txt
Um User in Gruppen aufzunehmen (z.B Admins), muss man sie einfach nach folgendem Schema eintragen:
"<account_name>"
{
"id" "<name|ip|steamid|clantag>"
"type" "<name|ip|steamid|clantag>"
"pass" "<password>"
"pass_req" "<0|1>"
"groups"
{
"<gruppe>"
}
"allow"
{
}
"deny"
{
}
}
Also z.B als Superadmin mit allen Rechten:
"don-banane"
{
"id" "STEAM_0:0:1234567" <- Die SteamID (einfach status in die console eingeben, um sie herauszufinden)
"type" "steamid" <- Der Typ sollte immer steamID sein
"pass" ""
"pass_req" "0" <- Kein Passwort benötigt
"groups"
{
"superadmin" <- Diese Gruppe hat komplett alle Rechte, siehe groups.txt
}
"allow" <- Welche Befehle werden erlaubt (einfach leer lassen)
{
}
"deny" <- Welche Befehle werden verboten (nochmal um spezifisch einzelne Rechte zu verbiebten, die in der Gruppe normalerweise nicht verboten sind)
{
}
}
Jetzt bin ich in der Superadmin Gruppe und habe alle Rechte, genauso kann man dann auch andere User z.B in die VIP Gruppe schieben :gmod:
Hinweis: Man kann natürlich auch ingame bestimme User in Gruppen aufnehmen, das ist natürlich einfacher, siehe Liste der Befehle ;)
3.3 Die Message of the day
Die Message Of The Day, kurz: MotD kennt ihr sicherlich. Wenn man auf einen Server joint, kommt ein Fenster mit den Regeln und dem ganzen Rest.
ULX bietet die Möglichkeit, die MotD einfach mit html zu bearbeiten. Hier ist der Pfad zur ulx_motd.txt: garrysmod/garrysmod/addons/ulx/
Man muss keine besonderen HTML Kenntnisse haben, man kann auch einfach das Vorhandene nehmen und erweitern, so wie ich das mal gemacht habe:
<html>
<body bgcolor=#dbdbdb>
<div style="text-align: center;">
<div style="width: 80%; margin: 0px auto; border: 10px solid #c9d6e4; background-color: #ededed; padding: 10px; font-size: 12px; font-family: Tahoma; margin-top: 30px; color: #818181; text-align: left;">
<div style="font-size: 30px; font-family: impact; width: 100%; margin-bottom: 5px;">Insert Server Name here :)</div>
<br>
This Server uses the following mods:<br>
ULX, PHX2, Wire (latest SVN), usw...<br>
<br>
<h2>Rules</h2>
1. Don't mess with other players stuff. If they want help, they'll ask!<br>
2. Don't spam<br>
3. No Deathmatch<br>
4. Build serious, not just messing around with props<br>
5. Don't fuck around<br>
6. Deactivate the sound of your thrusters<br>
7. Have fun<br>
<br>
Das ist ein deutscher Server, aber es wird auch Englisch gesprochen.<br>
<div style="width: 100%; text-align: center; margin: 10px; font-weight: bold;">- The Admins</div>
<div style="width: 100%; text-align: center; margin: 10px; font-weight: bold;">Admins: Horst, Ingeborg, Werner</div>
<div style="width: 100%; text-align: center; margin: 10px; font-weight: bold;">If an admin bans you for no reason, ask one of the admins in steam to unban you.</div>
</div>
</div>
</body>
</html>
3.4 Die Server.ini
Diese Datei bietet eine Menge zum einstellen, man findet sie in garrysmod/garrysmod/addons/ulx/cfg ;)
ulx showMotd 1 // Soll die Message of the Day beim Start angezeigt werden?
ulx addGimpSay "I'm a llama." // Siehe Liste der Befehle
ulx addGimpSay "How do you fly?"
ulx addGimpSay "baaaaaaaaaah."
ulx addGimpSay "Llama power!"
ulx addGimpSay "Llamas are the coolest!"
ulx addGimpSay "What's that gun to move stuff?"
ulx chattime 1.5 // Die Spieler können nur alle 1.5 Sekunden etwas in den Chat schreiben (spam schutz).
// Diese Zeile sehen die User wenn sie joinen
// Mit %host% und %curmap% fügt ULX dort automatisch den Servernamen und die Map die gerade äuft ein
ulx welcomemessage "Welcome to %host%! We're playing %curmap%."
// Werbung
// addCsayAdvert <msg> <r> <g> <b> <repeat_time> <length> [<group>]
// addAdvert <msg> <repeat_time> [<group>]
// R, G und B ist die Farbe, nach Rot Grün und Blau die die Werbung hat. Weiß wäre z.B. 255, 255, 255
// Repeat_time ist die Wiederholungsrate, length ist wie lange die Werbung angezeigt wird, mit Group kann man optional die Gruppe einstellen, der nur die Werbung gezeigt wird
// addCsayAdvert macht Werbung in der mitte vom Bildschirm, addAdvert macht Werbung im Chat
// Man kann %host%, %curmap%, und %ulx_version% ebenfalls verwenden
ulx addCsayAdvert "You're playing on %host%, enjoy your stay!" 255 255 255 300 10
// ULX Werbung, sollte man anstandsweise drinlassen :)
ulx addAdvert "This server is running ULX Admin Mod version %ulx_version% by Team Ulysses -- ulyssesmod.net" 540
ulx logFile 1 // Soll geloggt werden? Siehe Logs
ulx logEvents 1 // Sollen Events geloggt werden? (player connect, disconnect, death)
ulx logChat 1 // Soll der Chat geloggt werden?
ulx logSpawns 1 // Sollen Prop-Spawns geloggt werden?
ulx logSpawnsEcho 1 // Sollen Spawns auf dem Server geloggt werden? 0 = aus, 1 = Nur Admins, 2 = Alle
ulx logDir "ulx_logs" // Die Log Datei in garrysmod/data.
ulx logEcho 2 // Echo mode
// Echo modes:
// 0 - AUS, d.h. wenn ein Admin einen Befehl ausführt, wird nichts in den Chat geschrieben
// 1 - ANONYM Man sieht den Befehl, aber nicht wer in ausgeführt hat. Sieht dann z.B. so aus: "(ADMIN) slapped Bob with 0 damage"
// 2 - ALLES Man sieht den Befehl und den Namen des Admins: "(ADMIN) don-banane slapped Bob with 0 damage"
ulx rslotsMode 0
ulx rslots 2
ulx rslotsVisible 1
// Erklärung: 0 = Aus, es werden keine Slots reserviert
// 1 = Es sind immer zwei Slots für Admins reserviert, also nehmen wir mal an wir haben einen 10 Slot Server und haben 8 Spieler drauf, jetzt kann kein Spieler mehr joinen, weil die restlichen 2 für Admins reserviert sind.
// 2 = Sehr schwer zu erklären, braucht man aber eigentlich eh nicht xD
// 3 = Wenn ein Admin joint, und der Server voll ist, wird der Spieler, der am kürzesten auf dem Server ist gekickt, um Platz für den Admin zu machen.
// rslotsVisible:
// Wenn keine regulären Spielerplätze mehr frei sind, wird der Server auf "Full" gesetzt. Admins können dann nurnoch über die console via "connect <ip>" joinen (falls Slots reserviert sind)
ulx votemapEnabled 1 // Votemap ein oder aus
ulx votemapMintime 10 // Wie lange soll Votemap dauern
ulx votemapWaittime 5 // Um Votemap Spam zu vermeiden, die Zeit bis der jeweilige User einen neuen Vote machen kann
ulx votemapSuccessratio 0.4 // Die Rate, damit die Map gechanged wird berechnet durch (Votes)/(Anzahl aller Spieler)
ulx votemapMinvotes 3 // Mindestanzahl der Votes damit der Vote überhaupt zählt
ulx votemapVetotime 30 // Soviel Zeit bleibt dem Admin um den Vote abzubrechen, nachdem der Vote zuende ist, bis die Map gechanged wird
ulx votemapMapmode 1 // 1 = Alle maps zum Vote erlaubt, 2 = Nur die unten aufgelisteten Maps zum Voten erlauben
ulx voteEcho 0 // 1 = Zeigt im Chat an wer für was gestimmt hat 0 = Zeigt nichts an
ulx votemap2Successratio 0.5 // Das gleiche wie oben, ausser dass man bei votemap2 mehrere Maps zur auswahl hat
ulx votemap2Minvotes 3 // Auch gleich
ulx votekickSuccessratio 0.6 // Votekick Rate berechnet nach (Votes/Anzahl aller Spieler) bis ein Votekick wirkt
ulx votekickMinvotes 2 // Mindestanzahl der Votes damit der Votekick überhaupt zählt
ulx votebanSuccessratio 0.7 // Genauso wie votekick
ulx votebanMinvotes 3 // Ebenfalls
// Hier kannst du die Maps eintragen, falls du bei bei votemapMapmode 2 eingestellt hast ;)
ulx votemapAddmap gm_construct
ulx votemapAddmap gm_flatgrass
// Hier kann man einstellen, welche Files man gezwungen ist herunter zu laden
// So fügt man Files dazu: ulx addForcedDownload <file/folder> [<recursive>]
// Zum Bleistift:
//ulx addForcedDownload "sound/cheeseman.mp3"
// Man kann auch komplette Ordner auswählen, wenn recursive auf 1 ist, werden alle Unterordner mitgenommen
//ulx addForcedDownload "sound/my_music" 1
3. Die Befehle
Wenn man "ulx help" in die Console eingibt, bekommt man eine Liste mit den wichtigsten Befehlen ;)
http://www.abload.de/thumb/ulxcommandsoey.jpg (http://www.abload.de/image.php?img=ulxcommandsoey.jpg)
Wie man sieht, kann man die meisten Befehle in den Chat schreiben, z.B. !kick <user>
Der wichtigste Befehl ist !menu, mit dem kommt man nämlich ins Menü, das sehr nützlich ist, und in der Kategorie "User Management" findet man übrigens die Befehle für Ingame User zu Gruppen hinzufügen und so.
4. Ein Buntes Scoreboard
Wie macht man sowas?
http://www.abload.de/thumb/freespace06v210001xrab8.jpg (http://www.abload.de/image.php?img=freespace06v210001xrab8.jpg)
Antwort: Mit dem sui_scoreboard and UTeam!
Das sui_scoreboard gibts hier: http://ulyssesmod.net/archive/sui_scoreboard.zip
(Forum Thread zum sui_scoreboard: http://forums.ulyssesmod.net/index.php/topic,1118.0.html)
Es wurde zusätzlich eine alternative sui_scoreboard Version gemacht, die auch Steamavatare und die auf dem Server gespielte Zeit anzeigt: http://forums.ulyssesmod.net/index.php/topic,3650.0.html
Einfach in den Addons Ordner damit und fertig :)
Aber ohne UTeam geht nichts. UTeam ist ein Addon für ULX, mit dem man die Usergruppen in dem neuen sui_scoreboard anzeigen kann, und noch verschiedene Einstellmöglichkeiten für die Gruppen hat. Download: http://www.ulyssesmod.net/spbogie/UTeam1.1.zip
(Forum Thread zu UTeam: http://forums.ulyssesmod.net/index.php/topic,663.0.html)
Installation:
UTeam.txt kommt in garrysmod/data
UTeam.lua kommt in garrysmod/lua/autorun
Wir öffnen die UTeam.txt, und was für ein Wunder, es sieht genauso aus wie die ganzen anderen .txt's :shock:
"Out"
{
"teams"
{
"1" //Team Nummer
{
"name" "Name" //Teamname (der im sui_scoreboard angezeigt wird)
"group" "usergroup" //Gruppe die in der groups.txt angegeben sind
"color" //Farbe im sui_scoreboard (und auch im Chat :D)
{
"r" "255" //Rot
"g" "100" //Grün
"b" "0" //Blau
"a" "255" //Alpha }
"hp" "500" //(*Optional*) HP aller Player der Gruppe
"armor" "500" //(*Optional*) Armor aller Player der Gruppe
"model" "gman" //(*Optional*) Playermodel aller Player der Gruppe, siehe UTeam_readme.txt
"plytable" //(*Optional*) Verschiedens
{ //Format ist key:value
"1" "SprintSpeed:1000" //Stellt die Sprint-Geschwindigkeit der Gruppe ein (Standart 500)
"2" "WalkSpeed:500" //Stellt die Geh-Geschwindigkeit der Gruppe ein (Standart 250)
}
}
}
"gamemodes" //Gamemodes bei denen UTeam laden soll (?)
{
"1" "Sandbox"
}
}
Hier mal ein kleines Beispiel zum Verständnis:
"Out"
{
"teams"
{
[...]
"9"
{
"name" "Member"
"group" "member"
"color"
{
"a" "255"
"B" "140"
"g" "0"
"r" "0"
}
}
"10"
{
"name" "Kiddie"
"group" "kiddie"
"hp" "10"
"color"
{
"a" "255"
"B" "162"
"g" "0"
"r" "255"
}
"model" "alyx"
}
"11"
{
"name" "Asshole"
"group" "asshole"
"hp" "10" // Hat nur 10 HP (beim spawnen)
"color"
{
"a" "255"
"B" "0"
"g" "0" // Das wäre jetzt z.B schwarz
"r" "0"
}
"model" "monk" // Alle spieler sind gezwungen das Grigory Model zu nehmen
}
"12"
{
"name" "Player" // Die Gruppe soll offiziell Player heißen, aaaber eigentlich meinen wir die User Gruppe, weil das der Name in der groups.txt ist
"group" "user"
"color"
{
"a" "255"
"B" "255"
"g" "100"
"r" "0"
}
}
}
}
Achtung Wichtig! Die Gruppe die ich hier als letztes stehen habe, muss IMMER ganz unten in der Liste stehen, alles was unter der User Gruppe steht, wird garantiert nicht angezeigt! Zur Erinnerung: Die user Gruppe ist die Gruppe, zu der alle Spieler gehören, die zu keiner Gruppe gehören.
5. Weitere Addons
UClip eigentlich nur dafür gedacht, dass man nicht durch andere Props noclippen kann, sondern nur durch seine eigenen. Admins können natürlich überall durch ;)
http://forums.ulyssesmod.net/index.php/topic,1080.0.html
Anti Spam, mehr gibts hier: http://forums.ulyssesmod.net/index.php/topic,3434.0.html
Speichert, und zeigt von jedem Spieler die Spielzeit auf dem Server an, wenn man auf ihn zielt.
http://forums.ulyssesmod.net/index.php/topic,3039.0.html
Mit dem Befehl "!report <text>" (im Chat) kann man Reports abschicken, die dann in der .txt gepeichert werden.
http://forums.ulyssesmod.net/index.php/topic,1162.0.html
Dieses Addon wechselt die Map automatisch in bestimmten Zeitintervallen.
http://forums.ulyssesmod.net/index.php/topic,688.0.html
Mein Lieblingsaddon, es kickt automatisch Spieler, die sich für eine bestimmte Zeit nicht bewegt haben, nachdem sie als AFK markiert werden. Man kann auch einstellen, aber welcher Spieleranzahl autokick an sein soll, und natürlich ob Admins auch gekickt werden sollen ;)
http://forums.ulyssesmod.net/index.php/topic,3032.0.html
Gibts hier: http://forums.ulyssesmod.net/index.php/board,15.0.html ;)
6. Der ganze Rest
Die Logs findet man in garrysmod/garrysmod/data/ulx_logs, sie können für Admins oft sehr nützlich sein
In garrysmod/garrysmod/data/ULib sind alle Bans in der bans.txt aufgelistet
In garrysmod/garrysmod/gamemodes/sandbox/gamemode müssen in der init.lua folgende Zeilen abgeändert werden:
function GM:PlayerLoadout( pl )
// Remove any old ammo
pl:RemoveAllAmmo()
if ( server_settings.Bool( "sbox_weapons", true ) ) then
pl:GiveAmmo( 256, "Pistol", true )
pl:GiveAmmo( 256, "SMG1", true )
pl:GiveAmmo( 5, "grenade", true )
pl:GiveAmmo( 64, "Buckshot", true )
pl:GiveAmmo( 32, "357", true )
pl:GiveAmmo( 32, "XBowBolt", true )
pl:GiveAmmo( 6, "AR2AltFire", true )
pl:Give( "weapon_ar2" )
pl:Give( "weapon_crowbar" )
pl:Give( "weapon_pistol" )
pl:Give( "weapon_smg1" )
pl:Give( "weapon_frag" )
pl:Give( "weapon_physcannon" )
pl:Give( "weapon_crossbow" )
pl:Give( "weapon_shotgun" )
pl:Give( "weapon_357" )
pl:Give( "weapon_rpg" )
pl:Give( "weapon_ar2" )
// The only reason I'm leaving this out is because
// I don't want to add too many weapons to the first
// row because that's where the gravgun is.
//pl:Give( "weapon_stunstick" )
end
pl:Give( "gmod_tool" )
pl:Give( "gmod_camera" )
pl:Give( "weapon_physgun" )
local cl_defaultweapon = pl:GetInfo( "cl_defaultweapon" )
if ( pl:HasWeapon( cl_defaultweapon ) ) then
pl:SelectWeapon( cl_defaultweapon )
end
end
Wenn man eine Waffe entfernen will, setzt man einfach ein // vor pl:giveAmmo (Waffe) und pl:Give (Waffe).
Soo das wars eigentlich schon, ich hoffe es war verständlich, wenn es noch Fragen gibt, oder etwas fehlt dann schreibt es ruhig hier rein ;)
Aber eins muss ich noch sagen: Ausprobieren! Probiert ruhig das !menu aus, und die ganzen Funbefehle, wie Ragdoll oder Jail, man kann nicht viel falsch machen, ausser sich selbst Bannen, aber den kann man ja locker in der bans.txt löschen ;)