AdminMod.de https://www.adminmod.de/ |
|
AM Version > Beta 42: Adminmod-Menü https://www.adminmod.de/viewtopic.php?t=4045 |
Seite 1 von 12 |
Autor: | Sir Drink a lot [ 14.09.2002, 14:14 ] |
Betreff des Beitrags: | AM Version > Beta 42: Adminmod-Menü |
Hallo Leute! In dieser Beta-Version gibt es den Befehl menu(...). Jetzt wollte ich das doch mal ausprobieren und habe mal ein Menü entwickelt. Es handelt sich um ein Retribution-Menü. Die Befehle werden in einem Array gespeichert. Zur Zeit sind: new MenuCommand[MENUID][]={"ban","bury","kick","llama","slap","slay","unbury","unllama"}; vorhanden. Die menu(...)-Funktion in dieser Beta-Version aktiviert man, in dem man amv_enable_beta "menu1" in seine adminmod.cfg schreibt. Bzw. (listen)server.cfg Das Plugin reagiert auf die chateingabe "menu" und zeigt die Commando-Menüauswahl. Danach wählt man den Spieler aus, auf den man den Command anwenden möchte. Wer also die Beta 42 sein eigen nennt, kann es ja mal ausprobieren. Besonders interessiert mich, ob es zu Problemen kommt, wenn 2 Admins gleichzeitig das Menü aufrufen. Gruß, Sir Drink a lot ------Hier mal der Code---- Code: /*Adminmod Menü, (c) Sir Drink a lot*/ /*v1.0 :Retribution only*/ #include <core> #include <console> #include <string> #include <admin> #include <adminlib> new String_Version[]="14.09.02"; /*Hier Anzahl der Befehle eintragen -- maximale Zahl = 9*/ #define MENUID 8 /*Hier Befehle eintragen-- max. 9 Stück...0 ist Abbruch -- bitte alles kleinschreiben*/ new MenuCommand[MENUID][]={"ban","bury","kick","llama","slap","slay","unbury","unllama"}; /*Arrays zur Auswertung, anhand des UserIndex des Admins werden hoffentlich Fehlauswahlen verhindert*/ new MenuID[MAX_PLAYERS]; new SelectedPlayerLoop[MAX_PLAYERS]={1,1,...}; new SelectedMenuCommand[MAX_PLAYERS]={0,0,...}; new SelectedPlayer[MAX_PLAYERS]; /*Menu 1: MenüCommandos Slay,Slap,Bury etc.*/ public admin_menu(UserIndex,User[]){ new Text[512]; new Command[MAX_TEXT_LENGTH]; new i; new a=1; new keys=0; snprintf(Text,MAX_TEXT_LENGTH,"Commands:^n"); for(i=0;i<MENUID;i++){ snprintf(Command,MAX_TEXT_LENGTH,"^n%i. %s",i+1,MenuCommand[i]); strcat(Text,Command,MAX_TEXT_LENGTH); a+=a; keys=a-1; } strcat(Text,"^n^n0. Cancel",MAX_TEXT_LENGTH); keys+=512; menu(User,Text,keys); MenuID[UserIndex]=1; return 0; } /*Menu 2: Spielerauswahl*/ public playerselection(User[],UserIndex,Command[]){ new Text[512]; new Name[MAX_NAME_LENGTH]; new PlayerOutput[MAX_TEXT_LENGTH]; new player=playercount(); new i; new keys=0; new l=0; new a=1; snprintf(Text,MAX_TEXT_LENGTH,"%s:^n",Command); for(i=SelectedPlayerLoop[UserIndex];i<=player;i++){ l++; playerinfo(i,Name,MAX_NAME_LENGTH); snprintf(PlayerOutput,MAX_TEXT_LENGTH,"^n%i. %s",l,Name); strcat(Text,PlayerOutput,MAX_TEXT_LENGTH); a+=a; keys=a-1; if(l==5 && player>=SelectedPlayerLoop[UserIndex]+5){ strcat(Text,"^n^n9. Next",MAX_TEXT_LENGTH); keys+=256; break; } } strcat(Text,"^n^n0. Cancel",MAX_TEXT_LENGTH); keys+=512; menu(User,Text,keys); MenuID[UserIndex]=2; return 0; } /*Auswertung der Menüauswahl*/ public menuselect(HLCommand,HLData,HLUserName,UserIndex){ new Data[MAX_DATA_LENGTH]; new User[MAX_NAME_LENGTH]; convert_string(HLData,Data,MAX_DATA_LENGTH); convert_string(HLUserName,User,MAX_NAME_LENGTH); if(MenuID[UserIndex]==1){ SelectedMenuCommand[UserIndex]=strtonum(Data); if(SelectedMenuCommand[UserIndex]==10){ SelectedMenuCommand[UserIndex]=0; MenuID[UserIndex]=0; SelectedPlayerLoop[UserIndex]=1; SelectedPlayer[UserIndex]=0; }else{ playerselection(User,UserIndex,MenuCommand[SelectedMenuCommand[UserIndex]-1]); } }else if(MenuID[UserIndex]==2){ SelectedPlayer[UserIndex]=strtonum(Data); if(SelectedPlayer[UserIndex]==9){ SelectedPlayerLoop[UserIndex]=SelectedPlayerLoop[UserIndex]+5; playerselection(User,UserIndex,MenuCommand[SelectedMenuCommand[UserIndex]-1]); }else if(SelectedPlayer[UserIndex]==10){ SelectedMenuCommand[UserIndex]=0; MenuID[UserIndex]=0; SelectedPlayerLoop[UserIndex]=1; SelectedPlayer[UserIndex]=0; }else{ if(SelectedPlayerLoop[UserIndex]>5){ SelectedPlayer[UserIndex]=SelectedPlayerLoop[UserIndex]+SelectedPlayer[UserIndex]-1; } treatment(User,UserIndex); } } return PLUGIN_CONTINUE; } /*Wenn Spieler ausgewählt, entsprechend der MenüCommandos behandeln*/ public treatment(User[],UserIndex){ new Player[MAX_NAME_LENGTH]; new Command[MAX_DATA_LENGTH]; if(playerinfo(SelectedPlayer[UserIndex],Player,MAX_NAME_LENGTH)){ snprintf(Command, MAX_DATA_LENGTH, "admin_%s", MenuCommand[SelectedMenuCommand[UserIndex]-1]); plugin_exec(Command,Player); } SelectedMenuCommand[UserIndex]=0; MenuID[UserIndex]=0; SelectedPlayerLoop[UserIndex]=1; SelectedPlayer[UserIndex]=0; return PLUGIN_HANDLED; } public SayCommand(HLCommand,HLData,HLUserName,UserIndex) { new Data[MAX_DATA_LENGTH]; new UserName[MAX_NAME_LENGTH]; convert_string(HLData,Data,MAX_DATA_LENGTH); convert_string(HLUserName,UserName,MAX_NAME_LENGTH); strstripquotes(Data); if (strcmp(Data,"menu")==0) { admin_menu(UserIndex,UserName); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } public plugin_init(){ plugin_registerinfo("Adminmod-Menu","Beispiel eines Adminmod Menues",String_Version); plugin_registercmd("admin_menu", "admin_menu", ACCESS_BAN, "admin_menu"); plugin_registercmd("menuselect","menuselect",ACCESS_ALL); plugin_registercmd("say","SayCommand",ACCESS_ALL); return PLUGIN_CONTINUE; } |
Autor: | Sir Drink a lot [ 14.09.2002, 23:24 ] |
Betreff des Beitrags: | |
Ok. Noch ein paar kleinere Änderungen, damit es etwas übersichtlicher wird. Habe für das zurücksetzen der Arrays eine eigene Funktion geschrieben. Ausserdem habe ich in das HandleSay ein check_auth eingebaut. Aber wie ja alle wissen, wird plugin_exec sowieso nur bei vorhandenem Recht ausgeführt. Soll heißen, da es sich um Retribution handelt, die meisten admin-Befehle den Rechtelevel von 256 vorrausetzen. Code: /*Adminmod Menü, (c) Sir Drink a lot*/ /*v1.0 :Retribution only*/ #include <core> #include <console> #include <string> #include <admin> #include <adminlib> new String_Version[]="14.09.02"; /*Hier Anzahl der Befehle eintragen -- maximale Zahl = 9*/ #define MENUID 8 /*Hier Befehle eintragen-- max. 9 Stück...0 ist Abbruch -- bitte alles kleinschreiben*/ new MenuCommand[MENUID][]={"ban","bury","kick","llama","slap","slay","unbury","unllama"}; /*Arrays zur Auswertung, anhand des UserIndex des Admins werden hoffentlich Fehlauswahlen verhindert*/ new MenuID[MAX_PLAYERS]; new SelectedPlayerLoop[MAX_PLAYERS]={1,1,...}; new SelectedMenuCommand[MAX_PLAYERS]={0,0,...}; new SelectedPlayer[MAX_PLAYERS]; /*Menu 1: MenüCommandos Slay,Slap,Bury etc.*/ public adminmenu(User[],UserIndex){ new Text[512]; new Command[MAX_TEXT_LENGTH]; new i; new a=1; new keys=0; snprintf(Text,MAX_TEXT_LENGTH,"Commands:^n"); for(i=0;i<MENUID;i++){ snprintf(Command,MAX_TEXT_LENGTH,"^n%i. %s",i+1,MenuCommand[i]); strcat(Text,Command,MAX_TEXT_LENGTH); a+=a; keys=a-1; } strcat(Text,"^n^n0. Cancel",MAX_TEXT_LENGTH); keys+=512; menu(User,Text,keys); MenuID[UserIndex]=1; return 0; } /*Menu 2: Spielerauswahl*/ public playerselection(User[],UserIndex,Command[]){ new Text[512]; new Name[MAX_NAME_LENGTH]; new PlayerOutput[MAX_TEXT_LENGTH]; new player=playercount(); new i; new keys=0; new l=0; new a=1; snprintf(Text,MAX_TEXT_LENGTH,"%s:^n",Command); for(i=SelectedPlayerLoop[UserIndex];i<=player;i++){ l++; playerinfo(i,Name,MAX_NAME_LENGTH); snprintf(PlayerOutput,MAX_TEXT_LENGTH,"^n%i. %s",l,Name); strcat(Text,PlayerOutput,MAX_TEXT_LENGTH); a+=a; keys=a-1; if(l==5 && player>=SelectedPlayerLoop[UserIndex]+5){ strcat(Text,"^n^n9. Next",MAX_TEXT_LENGTH); keys+=256; break; } } strcat(Text,"^n^n0. Cancel",MAX_TEXT_LENGTH); keys+=512; menu(User,Text,keys); MenuID[UserIndex]=2; return 0; } /*Auswertung der Menüauswahl*/ public menuselect(HLCommand,HLData,HLUserName,UserIndex){ new Data[MAX_DATA_LENGTH]; new User[MAX_NAME_LENGTH]; convert_string(HLData,Data,MAX_DATA_LENGTH); convert_string(HLUserName,User,MAX_NAME_LENGTH); if(MenuID[UserIndex]==1){ SelectedMenuCommand[UserIndex]=strtonum(Data); if(SelectedMenuCommand[UserIndex]==10){ reset_array(UserIndex); }else{ playerselection(User,UserIndex,MenuCommand[SelectedMenuCommand[UserIndex]-1]); } }else if(MenuID[UserIndex]==2){ SelectedPlayer[UserIndex]=strtonum(Data); if(SelectedPlayer[UserIndex]==9){ SelectedPlayerLoop[UserIndex]=SelectedPlayerLoop[UserIndex]+5; playerselection(User,UserIndex,MenuCommand[SelectedMenuCommand[UserIndex]-1]); }else if(SelectedPlayer[UserIndex]==10){ reset_array(UserIndex); }else{ if(SelectedPlayerLoop[UserIndex]>5){ SelectedPlayer[UserIndex]=SelectedPlayerLoop[UserIndex]+SelectedPlayer[UserIndex]-1; } treatment(User,UserIndex); } } return PLUGIN_CONTINUE; } /*Wenn Spieler ausgewählt, entsprechend der MenüCommandos behandeln*/ public treatment(User[],UserIndex){ new Player[MAX_NAME_LENGTH]; new Command[MAX_DATA_LENGTH]; new Target[MAX_DATA_LENGTH]; new Dummy[MAX_AUTHID_LENGTH]; new dummy; new iSession; if(playerinfo(SelectedPlayer[UserIndex],Player,MAX_NAME_LENGTH,iSession,dummy,dummy,dummy,Dummy)){ snprintf(Command, MAX_DATA_LENGTH, "admin_%s", MenuCommand[SelectedMenuCommand[UserIndex]-1]); snprintf(Target,MAX_DATA_LENGTH,"%i",iSession); plugin_exec(Command,Target); } reset_array(UserIndex); return PLUGIN_HANDLED; } public SayCommand(HLCommand,HLData,HLUserName,UserIndex) { new Data[MAX_DATA_LENGTH]; new UserName[MAX_NAME_LENGTH]; convert_string(HLData,Data,MAX_DATA_LENGTH); convert_string(HLUserName,UserName,MAX_NAME_LENGTH); strstripquotes(Data); if (strcmp(Data,"menu")==0) { if(check_auth(2)==1){ adminmenu(UserName,UserIndex); return PLUGIN_HANDLED; } messageex(UserName,"Du hast keine Rechte zum Aufrufen des Menues!",print_chat); } return PLUGIN_CONTINUE; } /*Setzt die Arrays wieder zurück*/ public reset_array(UserIndex){ SelectedMenuCommand[UserIndex]=0; MenuID[UserIndex]=0; SelectedPlayerLoop[UserIndex]=1; SelectedPlayer[UserIndex]=0; return PLUGIN_CONTINUE; } public plugin_init(){ plugin_registerinfo("Adminmod-Menu","Beispiel eines Adminmod Menues",String_Version); plugin_registercmd("menuselect","menuselect",ACCESS_ALL); plugin_registercmd("say","SayCommand",ACCESS_ALL); return PLUGIN_CONTINUE; } |
Autor: | MrClone [ 15.09.2002, 08:04 ] |
Betreff des Beitrags: | |
Ich hab dein plugin noch nicht ausprobiert, aber wenn ein menüpunkt mit "\y" beginnt dann wird es yellow, dann sollte es mit "\w" (white) enden, \r ist right. |
Autor: | Sir Drink a lot [ 15.09.2002, 14:17 ] |
Betreff des Beitrags: | |
end genial!!!! Das wusste ich noch gar nicht!!! Danke Dir!!! Habe ich sofort eingebaut! Änderung kommt sofort... |
Autor: | Sir Drink a lot [ 15.09.2002, 14:40 ] |
Betreff des Beitrags: | |
So...Hier jetzt mit farblicher Unterscheidung! Überschrift ist gelb, Auswahlpunkte sind weiss, Next ist gelb, Cancel ist rot. |
Autor: | Sir Drink a lot [ 15.09.2002, 18:24 ] |
Betreff des Beitrags: | |
So. Und da mir diese neue Menü-Funktion so gefällt, habe ich auch mal ein Map-Menü gemacht. Es liest die Maps aus der mapcycle.txt Wer die maps.ini benutzt, muss ganz oben im Plugin bei MapFile "maps.ini" eintragen. Zusätzlich habe ich auch noch neben dem "Next" ein "Back" eingebaut. So kann man jetzt schön durch die Mapauswahl schalten und walten. Die Eingabe im chat lautet "mapmenu". Gruß, SDal Hier der Code: Code: /*Adminmod Menü, (c) Sir Drink a lot*/ /*v1.0 :Map only*/ #include <core> #include <console> #include <string> #include <admin> #include <adminlib> new String_Version[]="15.09.02"; new MapFile[MAX_TEXT_LENGTH]="mapcycle.txt"; /*Hier Anzahl der Maps eintragen -- maximale Zahl zur Zeit= 30*/ #define MAPSID 30 /*Hier werden die Maps reingeladen-- zur Zeit max. 30 Stück*/ new Maps[MAPSID][MAX_TEXT_LENGTH]; /*Arrays zur Auswertung, anhand des UserIndex des Admins werden hoffentlich Fehlauswahlen verhindert*/ new MenuID[MAX_PLAYERS]; new SelectedMenuCommand[MAX_PLAYERS]; new SelectedMap[MAX_PLAYERS]; new SelectedMapLoop[MAX_PLAYERS]={0,0,...}; new mapsloaded=0; /*Menu 1: Mapauswahl...immer 5 werden angezeigt, 8 ist Next, 9 ist Back, 0 ist Cancel*/ public mapmenu(User[],UserIndex){ new Text[512]; new Command[MAX_TEXT_LENGTH]; new l=0; new i; new a=1; new keys=0; snprintf(Text,MAX_TEXT_LENGTH,"\yMap-Change to:^n"); for(i=SelectedMapLoop[UserIndex];i<mapsloaded;i++){ l++; if(l==6){ if(mapsloaded>SelectedMapLoop[UserIndex]+5){ strcat(Text,"\y^n^n8. Next",MAX_TEXT_LENGTH); keys+=128; break; }else{ break; } }else{ snprintf(Command,MAX_TEXT_LENGTH,"\w^n%i. %s",l,Maps[i]); strcat(Text,Command,MAX_TEXT_LENGTH); a+=a; keys=a-1; } } if(SelectedMapLoop[UserIndex]>=5){ strcat(Text,"\y^n^n9. Back",MAX_TEXT_LENGTH); keys+=256; } strcat(Text,"\r^n^n0. Cancel",MAX_TEXT_LENGTH); keys+=512; menu(User,Text,keys); MenuID[UserIndex]=1; return 0; } /*Auswertung der Menüauswahl*/ public menuselect(HLCommand,HLData,HLUserName,UserIndex){ new Data[MAX_DATA_LENGTH]; new User[MAX_NAME_LENGTH]; convert_string(HLData,Data,MAX_DATA_LENGTH); convert_string(HLUserName,User,MAX_NAME_LENGTH); if(MenuID[UserIndex]==1){ SelectedMenuCommand[UserIndex]=strtonum(Data); if(SelectedMenuCommand[UserIndex]==8){ SelectedMapLoop[UserIndex]=SelectedMapLoop[UserIndex]+5; mapmenu(User,UserIndex); }else if(SelectedMenuCommand[UserIndex]==9){ SelectedMapLoop[UserIndex]=SelectedMapLoop[UserIndex]-5; mapmenu(User,UserIndex); }else if(SelectedMenuCommand[UserIndex]==10){ reset_array(UserIndex); }else{ if(SelectedMapLoop[UserIndex]>=5){ SelectedMap[UserIndex]=SelectedMapLoop[UserIndex]+SelectedMenuCommand[UserIndex]-1; }else{ SelectedMap[UserIndex]=SelectedMenuCommand[UserIndex]-1; } mapchange(User,UserIndex); } } return PLUGIN_CONTINUE; } /*Wenn Map ausgewählt, entsprechend zur Map wechseln*/ public mapchange(User[],UserIndex){ new Map[MAX_TEXT_LENGTH]; snprintf(Map,MAX_TEXT_LENGTH,"%s",Maps[SelectedMap[UserIndex]]); plugin_exec("admin_map",Map); reset_array(UserIndex); return PLUGIN_HANDLED; } public SayCommand(HLCommand,HLData,HLUserName,UserIndex) { new Data[MAX_DATA_LENGTH]; new UserName[MAX_NAME_LENGTH]; new Text[MAX_TEXT_LENGTH]; convert_string(HLData,Data,MAX_DATA_LENGTH); convert_string(HLUserName,UserName,MAX_NAME_LENGTH); strstripquotes(Data); if (strcmp(Data,"mapmenu")==0) { if(check_auth(2)==1){ mapmenu(UserName,UserIndex); return PLUGIN_HANDLED; } snprintf(Text,MAX_TEXT_LENGTH,"\r^n^n^n^n^n^n^n^n^nDu hast keine Rechte ^nzum Aufrufen des Menues!"); menu(UserName,Text,1023); } return PLUGIN_CONTINUE; } /*Setzt die Arrays wieder zurück*/ public reset_array(UserIndex){ SelectedMenuCommand[UserIndex]=0; MenuID[UserIndex]=0; SelectedMapLoop[UserIndex]=0; SelectedMap[UserIndex]=0; return PLUGIN_CONTINUE; } public load_maps(){ new Data[MAX_DATA_LENGTH]; new Text[MAX_TEXT_LENGTH]; new j; new iLineCount; iLineCount=filesize(MapFile); for(j=0; j <= iLineCount; j++){ readfile(MapFile,Data,j,MAX_TEXT_LENGTH); if(valid_map(Data)){ strcpy(Maps[mapsloaded],Data,MAX_TEXT_LENGTH); mapsloaded++; } } snprintf(Text,MAX_TEXT_LENGTH,"[ADMIN-MAP-MENU] %i Maps loaded successfully from %s",mapsloaded,MapFile); log(Text); return PLUGIN_CONTINUE; } public plugin_init(){ plugin_registerinfo("Adminmod-MapMenu","Beispiel eines Adminmod Menues",String_Version); plugin_registercmd("menuselect","menuselect",ACCESS_ALL); plugin_registercmd("say","SayCommand",ACCESS_ALL); load_maps(); return PLUGIN_CONTINUE; } |
Autor: | Biohazard1 [ 15.09.2002, 23:47 ] |
Betreff des Beitrags: | |
Gefällt mir. Ist ein gutes Beispiel für neue Plugins. Bio |
Autor: | MrClone [ 16.09.2002, 14:31 ] |
Betreff des Beitrags: | |
Zitat: Gefällt mir. Ist ein gutes Beispiel für neue Plugins.
jupp
Bio |
Autor: | Sir Drink a lot [ 16.09.2002, 21:01 ] |
Betreff des Beitrags: | |
Danke Euch ! |
Autor: | [-=THH=-]Stillsetzhut [ 23.09.2002, 18:08 ] |
Betreff des Beitrags: | sch...... compilieren |
Auch wenn ich hier bei den Profis fehl am Platze bin, wuerd ich gerne die Menues testen. Leider habe ich erhebliche Probleme beim Compilieren der Plugins, nicht nur der Menues von SDal, sondern auch mit den AdminMod betas. Weis jemand Abhilfe? sers [-=THH=-]Stillsetzhut |
Autor: | MrClone [ 23.09.2002, 18:38 ] |
Betreff des Beitrags: | Re: sch...... compilieren |
Ich weis nicht ob du das beachtet hast, du musst alle include dateien ersetzen, und alle mitgelieferten smas neu compilieren! |
Autor: | [-=THH=-]Stillsetzhut [ 23.09.2002, 18:58 ] |
Betreff des Beitrags: | ist klar |
Ich weiss, dass die AdminMod Betas alle compiliert werden muessen, das hab ich schon gerafft, aber leider hab ich nur den Compiler vom derzeitigen Adminmod ........... hab ich da was nicht gerafft?, mhmmmhhh wohl doch fehl am Platz. Trotzdem THX for request [-=THH=.]Stillsetzhut |
Autor: | Sir Drink a lot [ 26.09.2002, 07:21 ] |
Betreff des Beitrags: | |
Kurze Ergänzung zu meinem Mapmenü: Nach kurzem debugging von Caveman im englischen AM-Forum habe ich mal ein paar neue Funktionen eingebaut. Vorher gab es Probleme gemeiner Art. Wenn man nämlich das Menü aufgerufen hat und dann in ein anderes Menü, z.B. Buymenü gewechselt hat, war "das Mapmenü immer noch aktiv im Hintergrund" Das dürfte jetzt nicht mehr passieren. Ausserdem ist eine connect und disconnect Funktion reingekommen, damit es nicht passiert, wenn ein Admin das menü offen lässt und disconnected, dass ein neuer Admin, der zufällig gerade connected und demzufolge in den selben Slot wie der vorherige rutscht, das menü dann doch auslößt. (Was für ein Satz.....mein Deutschlehrer wälzt sich im Grab...) Nun denn... @Stillsetzhut: Du hast den Compiler im Download von AM26a erhalten. Im Download von Beta42 sind jetzt nur die Include-Dateien mit drin und der Compiler ist weggelassen. Jetzt erstellst Du einen neuen Ordner in: Dein Verzeichniss\entpackter Ordner:admin-2.50.x-2.50.26\scripting\include Nenne ihn Include26a. Kopierst die alten 26a Include Dateien dort hinein und kopierst die neuen Include Dateien von der Beta42 in diesen Include Ordner. Damit stehen Dir die neuen Funktionen zur Verfügung und Du arbeitest wie bisher. |
Autor: | [-=THH=-]Stillsetzhut [ 26.09.2002, 13:27 ] |
Betreff des Beitrags: | THX |
THX @SDal !! klappt alles wunderbar, und es laeuft auch schon auf dem Server. [-=THH=-]Stillsetzhut |
Autor: | MrClone [ 26.09.2002, 14:48 ] |
Betreff des Beitrags: | |
SDal, apropo caveman, machst du das auch wie er, mit einer externen datei, z.B. menu.ini oder so? Wenn ja, dann mach das nicht so kompliziert |
Autor: | Sir Drink a lot [ 26.09.2002, 18:23 ] |
Betreff des Beitrags: | |
wie? wo? hat er eins gemacht? Habe ich noch gar nicht gesehen. Hat er gar nichts von gemacht.... Gib mal den Link!!! |
Autor: | MrClone [ 26.09.2002, 19:29 ] |
Betreff des Beitrags: | |
ich sage nur plugin_cavey_menu.zip, weis den link nit mehr, das plugin hat über 1000 Zeilen (ok, das ist nicht mehr viel). Habs mal hier hin gepackt. |
Autor: | [WING] Black Knight [ 26.09.2002, 19:47 ] |
Betreff des Beitrags: | |
Denk gar nicht erst darüber nach es Dir anzusehen. Ist schon krass. Das ist komplizierter in der Bedienung als Dein Taskplaner. |
Autor: | Sir Drink a lot [ 26.09.2002, 21:35 ] |
Betreff des Beitrags: | |
Jetzt bin ich aber neugierig geworden Hat er auch versucht ein kleines CS-Windows zu schreiben wie ich mit meinem Taskplaner... Nun denn... |
Autor: | Sir Drink a lot [ 26.09.2002, 21:59 ] |
Betreff des Beitrags: | |
lol--- Nun gut. Auch nicht schlecht. Warum leicht, wenn es auch etwas komplizierter geht. Aber er ist nunmal einen Schritt weiter als ich. Er hat schon die menu.ini Ich werde es aber einfacher machen. Versprochen. Mir schwebt vor: Da ich den Mapcycle ja schon drin habe, der für den Mapchange gebraucht wird, kann ich diesen für Mapvote genauso benutzen. Und alles was auf Spieler anwendbar ist, kommt in eine menu.ini. Mit ändern der Cvars dürfte so auch kein Problem sein. Mir schwebt so eine menu.ini vor: Haupt-Menü-Punkte an erster Stelle ':' Dazugehörige Unter-Menü-Punkte ';' Unter-Unter-Menü-Punkt Retribution:slap:ban:kick:unban:etc. Cvars:mp_timelimit;10;15;20;25;30:mp_forcechasecam;0;1:etc. WeaponRestrict:awp;0;1:etc. Das müsste doch auch gehen, oder? Oder ich teile nochmal die Cvars auf. Welche die nur an-/ausgemacht werden und welche die mehr Optionen haben. Mal sehen. |
Seite 1 von 12 | Alle Zeiten sind UTC+01:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |