AdminMod.de https://www.adminmod.de/ |
|
AM Version > Beta 42: Adminmod-Menü https://www.adminmod.de/viewtopic.php?t=4045 |
Seite 2 von 12 |
Autor: | MrClone [ 27.09.2002, 13:11 ] |
Betreff des Beitrags: | |
Joa, da haben wa dich wieder auf Ideen gebracht , mach weiter so SDal, du machst das klasse, wenn du nen Tester braucht, bin da Achja, hab in deinem mapmenu plugin einen kleinn Fehler bemerkt, habe letztens mit "//" eine Map aus der mapcycle.txt auskommentiert, die Zeile "//cs_assault" wurde mit ins mapmenu geladen, füge einfach noch eine if() abfrage hinzu ob der string mit // beginnt, glaube mit strncmp(). |
Autor: | Sir Drink a lot [ 27.09.2002, 18:02 ] |
Betreff des Beitrags: | |
die darf er aber generell nicht mit einlesen. Das ist schon mit drin. //cs_assault ist keine valid map. Das habe ich ausprobiert. Komisch... |
Autor: | MrClone [ 27.09.2002, 19:18 ] |
Betreff des Beitrags: | |
Also ich habe 4 maps in der txt, eine davon ist auskommentiert, beim start kommt trotzdem 4 maps loaded, und im menü steht die mit "//" auch drinne! |
Autor: | Sir Drink a lot [ 27.09.2002, 21:40 ] |
Betreff des Beitrags: | |
Shit...Du hast recht. Da hast Du wohl einen bug im valid_map gefunden. meine mapcycle sieht nämlich so aus: //Das ist die Mapcycle-Text //Hier kommen die Maps rein, die der Server automatisch wechselt! cs_italy de_aztec cs_assault de_inferno de_train //dasd//de_dust //a //b //c Also //dsad//de_dust nimmt er nicht...aber //de_dust nimmt er... aber natürlich geht der changelevel nicht. Aber die Funktion admin_map meckert auch nicht. Erst CS.... das ist aber jetzt wirklich dumm....muss ich mal daRope fragen. |
Autor: | Sir Drink a lot [ 27.09.2002, 21:45 ] |
Betreff des Beitrags: | |
nimm ; weil ;de_map gibts nicht. Ist aber keine Behebung des Bugs. Ich sage trotzdem mal Bescheid |
Autor: | MrClone [ 28.09.2002, 08:58 ] |
Betreff des Beitrags: | re: |
Dann mach es einfach wie oben gesagt mit strncmp() if(strncmp(String,"//",2) != 0) |
Autor: | Sir Drink a lot [ 28.09.2002, 12:35 ] |
Betreff des Beitrags: | |
ok. Das klingt gut. |
Autor: | Sir Prog a lot [ 28.09.2002, 19:41 ] |
Betreff des Beitrags: | |
Hi, SDal update dein Plugin und poste es oder hänge die SMA ran |
Autor: | Sir Drink a lot [ 28.09.2002, 22:24 ] |
Betreff des Beitrags: | |
ah...Sekunde a lot. Bin ein wenig Müde a lot und habe a lot andere Dinge noch zu machen. Mein Reallife geht a lot unter in letzter Zeit Nächste Woche Montag schau ich mal. |
Autor: | Sir Prog a lot [ 28.09.2002, 22:26 ] |
Betreff des Beitrags: | |
Immer diese Spamer [EDIT] nu hat er seinen doppel post gelöscht |
Autor: | Sir Drink a lot [ 28.09.2002, 22:28 ] |
Betreff des Beitrags: | |
Wo ist hier ein Spammer? Den ban ich... |
Autor: | MrClone [ 30.09.2002, 15:18 ] |
Betreff des Beitrags: | |
So, habe mal paar Tests gemacht und 2 Bugs behoben: 1. Habe diese Methode gebastelt, spaßeshalber mit fileexists: Code: valid_map2(sMap[]) { new sMapPath[MAX_DATA_LENGTH]; snprintf(sMapPath,MAX_TEXT_LENGTH,"maps/%s.bsp",sMap); if(strncmp(sMap,"/",1) != 0){ if (fileexists(sMapPath)){ return 1; } } return 0; }nicht vergessen "if(valid_map(Data))" in "if(valid_map2(Data))" zu ändern. 2. Den CVAR "mapcyclefile" eingelesen: "new MapFile[MAX_TEXT_LENGTH]="mapcycle.txt";" in "new MapFile[MAX_TEXT_LENGTH];" ändern, und in "load_maps()" die Zeile "getstrvar("mapcyclefile",MapFile,MAX_TEXT_LENGTH);" hinzufügen. (Am besten nach "new iLineCount;") Ich hoffe das du nicht sauer bist das ich das gemacht habe, wollte dir nur bissl Arbeit abnehmen |
Autor: | Sir Drink a lot [ 30.09.2002, 19:07 ] |
Betreff des Beitrags: | |
Danke Dir. Habe es aber fertig. Ich habe mich nun für ein "Menu Plugin System" entschieden. Alle admin_Befehle kommen in die Unterschiedlichen Ini-Dateien. Ohne den Ausdruck 'admin_'. Natürlich ist die korrekte schreibweise sehr wichtig. Sonst klappt es nicht. plugin_menu_main: zugehörige Datei: menu_main.ini Aufgabe: in die menu_main kommen die Befehle, um andere Menu-Plugins aufzurufen. plugin_menu_player: zugehörige Datei: menu_player.ini Aufgabe: in diese ini kommen alle Befehle, die direkt auf den Player einwirken können. plugin_menu_map: zugehörige Datei: menu_maps.ini Aufgabe: in diese ini kommen alle Maps, zu denen entweder direkt gewechselt oder die gevotet werden können. Da mir nicht mehr Befehle als admin_map und admin_vote_map eingefallen sind, habe ich für die 2 Befehle ein Statisches Menü gemacht und keine eigene Command.ini plugin_menu_cvar: zugehörige Datei: menu_cvars Aufgabe: Alle cvars und say Ausgaben können hier untergebracht werden. Nach Auswahl muss man im Chat ('say') die fehlenden Parameter eingeben. Man hat 10 sekunden Zeit, bis dieser Messagemode wieder deaktiviert wird. Wenn man einmal verstanden hat, wie das mit dem menu funktioniert, kann man ein seperates menu plugin schreiben und es in die menu_main.ini eintragen. Es gewährleistet auch, dass man sich bestimmte Plugins rauspicken kann, da ja auch alle einzelne Plugins voll funktionsfähig sind. Ich habe mal im Anhang meine menu Plugins getan. Jedes Plugin hat seine ini Datei. Bei dem menu_map habe ich auf eine zweite ini Datei verzichtet und ein Statisches Menu gemacht, da mir ausser admin_map und admin_vote_map nix eingfallen ist, was die map betrifft. Das menu_cvar Plugin ist etwas trickig. Da ich kein Clanmod produzieren will, benutze ich den MessageMode. Soll heissen, man sucht sich die entsprechende Cvar raus (es gehen natürlich auch csay,tsay etc) und gibt dann im Chat die dazugehörigen Parameter ein. Man hat 10 Sekunden Zeit diese einzugeben. Sonst wird der messagemode automatisch wieder ausgeschaltet. Man muss aber schon ein Plugin installiert haben, was alle cvars mit dem Befehl admin_ entsprechend handeln kann. Man kann jetzt das Plugin menu_cvar auch kopieren, umbenennen, auszulesende Datei (File) in der sma ändern (z.B. menu_timecvars.ini), admin_menu Befehl ändern (z.B. admin_cvartimemenu) und entsprechend in der plugin_init() eintragen. Auch im SayCommand entsprechend den neuen Namen eintragen. Schon hat man ein neues Menu-Plugin. In die menu_timecvars kommen dann einfach alle CVars, die was mit Zeiteinstellungen zu tun haben und wird in die menu_main.ini mit cvartimemenu eingetragen. Aber am Besten schaut ihr es euch an. Ich war noch nie gut im Erklären.... |
Autor: | Sir Drink a lot [ 30.09.2002, 21:15 ] |
Betreff des Beitrags: | |
argh..ich vergaß zu sagen, dass der Ort für die menu.ini Dateien hier festgelegt wurde: modordner/addons/adminmod/menu.ini So sieht ja die neue Vereinbarung aus. Also bitte in der sma Anpassen. Habe gerade einen netten Bug im Map-Plugin gefunden. Aber so schlimm finde ich den gar nicht Er springt immer wieder ins Anfangsmenü zurück. Ist aber natürlich nicht gewollt und werde es demnächst fixen. |
Autor: | [-=THH=-]Stillsetzhut [ 01.10.2002, 11:17 ] |
Betreff des Beitrags: | |
Ich finde durch die .ini's wird man sehr flexibel. Gefaellt mir gut, weil ich so die Reihenfolge der einzelnen Menues anpassen kann. Was mir auch sehr gut gefaellt, dass ich die Menues unabhaengig vom Rechtelevel ansprechen kann (bei uns darf nicht jeder bannen ). Macht sich gut das ganze [-=THH=-]Stillsetzhut |
Autor: | Sir Drink a lot [ 01.10.2002, 12:53 ] |
Betreff des Beitrags: | |
Ja, die Menüs haben ACCESS_ALL, aber durch das plugin_exec wird verhindert, dass sie zwar Sachen auswählen können, aber es nicht ausgeführt wird, da sie nicht das Recht dazu haben. Vielleicht werde ich, damit es auch optischer besser aussieht, die ini Dateien so verändern, dass man 2 Spalten einträgt. Menüpunkt Befehl ich glaube, dass es dann z.B. für das weapon-restrict-menu Plugin einfacher wird. |
Autor: | [-=THH=-]Stillsetzhut [ 01.10.2002, 13:38 ] |
Betreff des Beitrags: | |
Tja, mit der Grafik kommt die Ergonomie .......... Hauptsache es bleibt uebersichtlich und selbsterklaeren [-=THH=-]Stillsetzhut |
Autor: | MrClone [ 01.10.2002, 15:43 ] |
Betreff des Beitrags: | |
Kritik ist immer gut und hat seinen Nutzen! was ist das denn für ein Argument?: Code: if(strncmp(Data,"//",2)==0 || strlen(Data)==0){ }else{ strcpy(MenuCommand[menuesloaded],Data,MAX_TEXT_LENGTH); menuesloaded++; }kann das nicht Code: if(strncmp(Data,"//",2)!=0 || strlen(Data)!=0){ strcpy(MenuCommand[menuesloaded],Data,MAX_TEXT_LENGTH); menuesloaded++; }heißen? Achja: *.cfg --> "//" *.ini --> ";" und, kann man nicht einfach die ini's in die vault.ini schreiben? Und wenn in der vault.ini "MENU_MAP" o.s. nicht auf "path/menu_main.ini" sondern auf "0" steht, dann sollte der die mapcycle.cfg nutzen! |
Autor: | Sir Drink a lot [ 01.10.2002, 19:02 ] |
Betreff des Beitrags: | |
Code: if(strncmp(Data,"//",2)!=0 || strlen(Data)!=0){ strcpy(MenuCommand[menuesloaded],Data,MAX_TEXT_LENGTH); menuesloaded++; }Probiere es mal aus. Wenn es bei Dir klappt, dann ändern wir das so. Bei mir hat es nicht geklappt. Keine Ahnung warum. Das mit den ; vergessen wir mal. Das ist eine Eigenart, die sich irgendwie entwickelt hat. nur // dienen als Kommentare. hm..vault.ini. Da es viel einfacher ist, aus einer Datei auszulesen, die im Plugin fest verankert ist (Pfad und Dateiname) habe ich mich darauf spezialisiert.(So habe ich die filesize der ini Datei) In der vault.ini habe ich alle menu-Befehle...wie soll ich jetzt erkennen, das der vault.ini Eintrag zu dem Plugin gehört..Ich will es ja nicht statisch haben... Obwohl...die filesize habe ich auch...der vault.ini Command fängt mit z.B. CVAR an,mit der Schleife durchlaufen und je nach signalwort zuordnen....Oh Gott...bei dem Restrict-Menu habe ich schon alleine 69 Befehle...Ich überlege es mir nochmal... |
Autor: | MrClone [ 01.10.2002, 19:04 ] |
Betreff des Beitrags: | |
Ooops, nicht "||" sondern "&&" |
Seite 2 von 12 | Alle Zeiten sind UTC+01:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |