Sry, ich war im Urlaub, konnte daher nicht antworten.
Es sind noch ein paaar bugs enthalten, ich schau mir das morgen mal an, am wochenede habt ihr warscheinlich eine lauffähige Version
Beiträge von VinDel
-
-
Hallo,
Ich schreibe mal wieder an einem Plugin, wobei beim Event 'nextMap' eine Funktion aufgerufen wird, weleche auf die neue (aktuelle) Karte zugreifen muss. Ein Blich in die "Liste der Events für registerEvent()" ezigt bei 'nextMap' nur 'array_dvars(...)', in der Mod-Klasse kann ich auch keiner Variable entnehmen, was für eine Mpa zur Zeit läuft.Weiß jemand genaueres?
Dankeschön!
-
Ich habe jetzt eine neue Version gebstelt, sie ist aber noch ungetestet. Leide habe ich recht wenig Zeit, daher werde ich erst am wochenende dazu kommen, es auszuprobieren, und ggf. noch etwas zu ändern. Wer mag, kann sich die neue Version schon einmal herunterladen und testen, am WE kommt auf jeden Fall ein neues Paket, bei welchem auch das Logging eingeschaltet sein wird.
:link: -
Ich hatte ja gerade nicht vor, an denen herumzuspielen, die einzige Möglichkeit das mit Plugins zu schreiben, wäre die Befehle alle neu zu schreiben, da könnte man aber auch eigentlich gleich nen neuen mod schreiben^^ xd
Mal sehen, was so in 11.4 los ist, zur Not muss ich da halt mal ran oder lasse es... -
Danke Pvt. Paula für dein Feedback, werde mich mal wenn ich wieder Zeit hab darum kümmern.
-
Ich weiß zwar nicht, ob es noch aktuell ist, aber [Huhn]Killer und Ich haben da etwas gebastelt:
:link: -
Ich programmiere ja selbst Plugins, habe aber keine Möglichkeit gefunden, die Hierarchie durch Plugins zu erzeugen. Wenn, dann müsste man in den Kern eingreifen, was ich sicherlich nicht vorhabe
Weiß jemand etwas genaues? -
Wird die Hierarchie in der Version 11.4 implementiert werden?
-
Tut mir leid, dass ich jetzt so lange nicht mehr on war, hatte ein bisschen viel mit der schule um die ohren -.-
Ich wollte das 'Only'-Plugin noch etwas erweitern und für richtiges Sniper-Only gehört meiner Meinung auch das Messer.
manu: danke für den Link, ich werde demnächst schonmal anfangen mit dem coden, fertigstellen werde ich es dann aber erst mit V11.4 -
Steht da, wer mit welcher Waffe gekillt wurde? Ich habe bis jetzt nur die ausgeführten Commands und andere Ereignisse (Player joint & leavt) gefunden...
-
Hallo, kurze Frage: Gibt es bei Cod4 auch einen Internern Namen für das Messer?
-
Oh die Kommentare sind ja noch da... sry, die sollten da eigentlich nicht mehr hingehören. Die Befehe holen sich die daten automatisch aus der Config-Datei. Danke für die Erinnerung, ich werde das dann bals rausnehmen.
Zu deiner anderen Frage: Die entfernten Rechte werden in einer Textdatei gespeichert, die einen Server neustart überlebt. Ursprünglich hatte ich die Idee, den entfernten ClanMamber-Status nur temporär zu speichern und die Admingruppe beim leaven eines Spielers wieder zuzuweisen. Dann fiel mir aber genau das Probelm auf, das du hier ansprichst, denn wenn der Spieler noch drauf wäre, wenn der Server beendet würde, wären die Adminrechte futsch xd.
Durch die Auslagerung in die Datei kannst du aber deinen Server sooft neu starten, wie du willstLade dir einfach nochmal das Archiv runter und ersetze die clantagtest.php mit der, die du bis jetzt hattest, dann dürften keiner Schwierigkeiten mehr auftreten.
-
Pappnase: Im Grunde genommen ist das so, allerdings werden diesem Spieler die Rechte nicht beim verlassen des Servers wiedergegeben, sondern beim nächsten Joinen wird geprüft, ob er nun das ClanTag im Namen hat. Wenn das nicht der Fall ist, bleibt es bei defaultrechten, anderenfalls werden ihm wieder die zuvor weggenommen Adminrechte gegeben.
Zu deiner 2. Frage: Ich verstehe die nicht richtig. Ich hatte das gestern veröffentlicht und danach ist mir eingefallen, dass es sinnvoll wäre, dass ihr gar nichts an der clantagtest.php machne müsst, sondern alles in der Config anpassen könnt. In dem neuen Packet clantagtester20-..._new musst du gar nichts in der clantagtest.php mehr ändern. Es reicht wenn du deine Einstellungen in der config.cfg änderstHoffe, ich konnte dir damit helfen, wenn noch Fragen bestehen oder ich deine falsch verstanden habe, dann schildere deine Frage bitte etwas ausführlicher
-
So, ich habe das ein bisschen mal angepasst und stelle es hier mal frei zur Verfügung, damit andere auch was daran haben.
Der Unterschied zur Version von [Huhn]Killer ist, dass das entfernen der Adminrechte nur temporär ist, also nach hinzufügen des Clantags gibts werden sie wieder zugewisen.
Weiterhin kann man beliebig viele Clantags eintragen, welche erlaubt sind und man kann einstellen, welche Admingruppen überprüft werden sollen.
Das letztere habe ich hinzugefügt, weil ich auf meinem Server Freunden, welche nicht unbedingt im Clan sind, die Rechte zugewiesen habe, Spieler zu verwarnen, wenn sie sich regelwiederig verhalten. Diese Gruppe darf natürlich nicht auf das Tag überprüft werden, und das wird es in dieser Version auch nichtEin kurze Einweisung:
- Download des ZIP-Archives und entpacken dessen
- Die Dateien so einordnen, wie es die Ordnerhierarchie des Archives hergibt (Achtung: config.cfg nicht ersetzen, sondern nur inhalt hinzufügen)
dh: clantagtest.php nach 'plugins'; leere groups_removed.lst im config/plugins-Ordner anlegen/kopieren; Inhalt der config.cfg in der orginalen hinzufügen; - ClanTagCheck-Teil in der Config anpassen:
tags = "Tag,Tag2,Tag3,usw" <-- Mögliche Clantags (durch Komma getrennt)
groups = "master,admin,member" <-- Zu überprüfende Gruppen (auch durch Koma getrennt) - Clanmember auslachen, wenn sie vergessen, ihr Clantag im Namen zu haben und vergeblich versuchen, die Map zu wechseln xd oder einfach nur Spaß haben
Viel Spaß damit.
Für die bequemen hier noch der komplette Quellcode:
Spoiler anzeigen
PHP
Alles anzeigen$mod->registerEvent("playerJoined", "clantagtest_main"); $mod->setDefaultCV("clantagtest", "enabled", 0); function clantagtest_main($aGuid){ global $mod; global $players; if($mod->getCV("clantagtest", "enabled") == "0"){ return false; } $tClantags = explode(",",$mod->getCV("clantagtest","tags")); $tGroups = explode(",",$mod->getCV("clantagtest","groups")); $configdir = $GLOBALS['mod']->getConfigDir(); $configpath = $configdir."/plugins/groups_removed.lst"; $list = file($configpath); if ($list === false) { $GLOBALS['logging']->write(MOD_WARNING, "ClanTagTester: File $configdir/plugins/groups_removed.lst could not be opened, ClanTagTester will be disabled"); return false; } //Get Group and Nickname of Player $tGroup = $players[$aGuid]->getGroup(); $tNickname = $players[$aGuid]->getName(); $tInGroups = false; $tClanTagExists = false; //Check Groups if(in_array($tGroup,$tGroups)) $tInGroups = true; //Check Clantag foreach($tClantags as $fClantag) if(preg_match("/^".preg_quote($fClantag,"/")."/",$tNickname)) $tClanTagExists = true; if($tClanTagExists && !$tInGroups){ $removed_admins = clantagtest_del_admins_read($list); foreach($removed_admins as $value) if($value[0]==$aGuid){ clantagtest_add_admin($aGuid,$value[1],$tNickname,$configpath,$removed_admins); return; } } elseif(!$tClanTagExists && $tInGroups){ clantagtest_del_admin($aGuid,$tGroup,$tNickname,$configpath); } } function clantagtest_del_admins_read($aList){ $tIds = array(); foreach ($aList as $value) { if(!empty($value)) array_push($tIds,explode("-",$value)); } return $tIds; } function clantagtest_trimm($aText){ return str_replace("-","",$aText); } function clantagtest_add_admin($aGuid,$aGroup,$aNickname,$aConfigpath,$aRemoved_admins){ global $mod; global $players; //Set Group to Admin Group $players[$aGuid]->setGroup($aGroup); $handle = fopen($aConfigpath,"w"); foreach($aRemoved_admins as $value) if($value[0]!=$aGuid)fwrite($handle,$value[0]."-".$value[1]."-".$value[2]."\n"); fclose($handle); } function clantagtest_del_admin($aGuid,$aGroup,$aNickname,$aConfigpath){ global $mod; global $players; echo "SetGroup Defalut"; //Set Group to default $players[$aGuid]->setGroup("default"); $handle = fopen($aConfigpath,"a"); fwrite($handle,$aGuid."-".clantagtest_trimm($aGroup)."-".clantagtest_trimm($aNickname)."\n"); fclose($handle); }
Edit: Habe gerade gemerkt, dass der AdminMod immer abstürtzt, wenn das ClanTester Plugin seine Arbeit verrichten soll. Das lag an den Loggingfunktionen. Ich habe sie jetzt mal herausgelöscht und es funktioniert wieder wunderbar. Also wer noch die Version von gestern hat ->updaten!
Edit V2.1ALPHA: Ich habe mir heute den Ratschlag von Pvt. Paula zu Herzen genommen und habe eine neue Version gebstelt, sie ist aber noch ungetestet. Leide habe ich recht wenig Zeit, daher werde ich erst am wochenende dazu kommen, es auszuprobieren, und ggf. noch etwas zu ändern. Wer mag, kann sich die neue Version schon einmal herunterladen und testen, am WE kommt auf jeden Fall ein neues Paket, bei welchem auch das Logging eingeschaltet sein wird. -
Noch einmal zum TempBan-Voting: Ich möchte ja gerade den "Normalen" Spielern nicht erlauben, jemanden auf alle ewigkeit zu bannen, sondern nur für 5 min. oder kann man die 0 irgendwo verbieten, bzw den standartwert ändern?
-
Ich weiß zwar nicht, ob dieser Vorschlag schonmal geäußert wurde, aber ein !vote tempban wäre auch nicht schlecht. Manche Cheater kommen sonst, wenn kein Admin da ist, nach Kicks imnmer wieder...
-
Danke für eure bisherigen Antworten.
Momentan ist es sowieso nur so eingestellt, dass ein Masteradmin groups vergeben kann. Das wwerde ich jetzt auch einfach so belassen, ist ja kein großen Problem.
Aber nochmal zurück zum begrenzen Warning. Ließe sich das vielleicht in das nächste ManuAdminMod einbauen? -
Aber woher weiß der Mod denn welche Gruppe "höher" steht.
Sie könen ja komplett unterschiedliche Rechte beinhalten.
Außerdem sollen ClanMember andere nicht zu Clanmambern machen dürfen sondern nur der Admin -
Hallo Leute,
Ich habe jetzt auch noch einen Verbesserungsvorschlag, nämlich eine Gruppenhierarchie eizubauen. Mir ist aufgefallen, dass man Gruppen nur pauschal rechte geben kann, sowie Spieler nur komplett Schützen kann.
Jedoch fände ich eine Möglichkeit gut, bei der zB. Clanmember Clanfremde verwarnen können, jedoch Leute aus dem Clan nicht. Ein einfacher Schutz bringt nicht den Nutzen, weil der Admin trotzdem die Möglichkeit haben sollte, Clanmember zu kicken bzw. zu ermahnen.
Es wäre toll, wenn man es so einstellen kann, dass die Befehle den Höhergestellten nichts anhaben können.Eine weitere Sache wäre da noch. Wenn man das Recht "!setgroup" vergib, kann dieser dann alle Gruppen zuweisen? Also auch wenn er aus der Gruppe Clanmember stammt und einen Masteradminstatus vergeben will?
Vielen Dank schon mal!