Ein neues Thema erstellen  Auf das Thema antworten  [ 34 Beiträge ]  Gehe zu Seite 1 2 Nächste
Autor Nachricht
 Betreff des Beitrags: PLUGIN_SDAL_REDIRECT
BeitragVerfasst: 20.01.2003, 11:30 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Hi Leute!

Ich habe mal eine Erweiterung des plugin_sharp_direct gemacht.

Man kann jetzt mehrere server und IP:Port in einer redirectserver.cfg anlegen, zu denen dann automatisch umgeleitet werden kann.
(wenn der Server voll ist oder der Admin den Befehl: admin_redirect 'player' benutzt)

Ausserdem hat der Spieler selber die Möglichkeit, mit der Chateingabe:"redirect me", sich die Serverliste in Menüform anzusehen und sich einen Server auszusuchen, zu dem er connecten möchte.

Sinn ist, dass befreundete Clans sich ihre Spieler sharen :-)

Unser Server ist seit dem Wechsel zu NGZ leider sehr leer geworden :oops:


Das Plugin ist noch im Betastatus.

Was mich besonders interessieren würde ist, ob bei vollen Server der Admin mit dem Recht 'Reserved Slot' trotzdem connecten kann. (Sollte aber funktionieren).
Desweiteren habe ich festgestellt, dass schon mal die Admin-Rechte flöten gehen, wenn der Admin von einem zum anderen Server umgeleitet wird und er normalerweise auf beiden Servern Admin-Rechte hat.

Nun denn, berichtet mal, ob es läuft.

Gruß,
SDal

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20.01.2003, 12:50 
AM.de Team

Registriert: 08.07.2002, 21:11
Beiträge: 2192
Hmm,

die Idee mit dem Redirect Menue finde ich klasse, gleich mal drauf machen :lol:

_________________
it's better to burn out, than to fade away


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20.01.2003, 13:58 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Hmmm,
ich muss das mit meinen Ideen wieder öfter machen. Ich krieg ihn immer zum proggen. :D
Und wenn er mal angefangen hat, gibt es kein halten mehr. Hier noch eine Verbesserung, da noch ein neues Feature. Respekt mein Herr. Deinen Arbeitseifer möchte ich beim Pluginprogrammieren auch haben. ;)

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20.01.2003, 19:43 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
tja, die Sucht...schrecklich...ich muss unbedingt eine Entziehungskur machen...

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 22.01.2003, 20:13 
AM.de Team

Registriert: 08.07.2002, 21:11
Beiträge: 2192
Ok, weil mir Idee richtig gut gefaellt hab ich 'redirect' mal bei uns gesetzt. Eine Gamerserver 'Linkliste' find ich faszinierend. Es funktioniert auch soweit vorzueglich.
Leider 'kollidiert' es jedoch mit SDal's Menu Plugins ....... sprich, wenn ich im Chat 'Menu' eingebe, erscheinen auch 4 Menue's. Wenn ich dann jedoch 'Playermenu' waehle (3), erscheint dieses nicht, sondern ich werde zum Wing Server weitergeleitet.
Ich bin jedoch nicht gewillt auf die Menues zu verzichten, weil bei uns alle Admins diese schaetzen.
Nun stellt sich die Frage, wie kann ich das umgehen, besser vielleicht noch integrieren? ............. Ich haette auch gern redirect .........
Beide Ideen finde ich erhaltenswert ....... nichts fuer ungut

greez

[-=THH=-]Stillsetzhut

_________________
it's better to burn out, than to fade away


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 22.01.2003, 20:23 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
wenn es darum geht, dass sich die menüs gegenseitig überdecken und das falsche plugin das menuselect interpretiert, dagegen habe ich eine lösung, die immer funktioniert, vorrausgesetzt, alle menüplugins auf dem serve runterstützen diese funktion. bei interesse mal melden


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 22.01.2003, 20:28 
AM.de Team

Registriert: 08.07.2002, 21:11
Beiträge: 2192
meld :D

_________________
it's better to burn out, than to fade away


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 22.01.2003, 20:51 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
*seufz* ich habs befürchtet...

okay, das prinzip ist folgendermaßen: jedesmal, wenn ein spieler ein menü aufruft, werden alle anderen plugins davon in kenntnis gesetzt. wie das geht? ganz einfach, mit plugin_exec().
als erstes habe ich ein base plugin, plugin_rindy_menubase. dieses fängt schonmal alle mod-menüs ab, so dass diese nicht in jedem plugin einzeln registert werden müssen, sowie connect und disconnect.
Code:
#include <adminlib>
#include <plugin>

new g_Version[100] = "0.1";

forward rmb_kill_menu(HLCommand,HLData,HLUserName,UserIndex);
forward rmb_reset(HLCommand,HLData,HLUserName,UserIndex);
forward rmb_receive_info(HLCommand,HLData,HLUserName,UserIndex);
forward kill_menu(UserIndex = 0);

public plugin_init(){
    plugin_registerinfo("Rinde's Menu Base Plugin","Base functions for Rinde's menuplugins.",g_Version);
    plugin_registercmd("radio1","rmb_kill_menu",ACCESS_ALL);
    plugin_registercmd("radio2","rmb_kill_menu",ACCESS_ALL);
    plugin_registercmd("radio3","rmb_kill_menu",ACCESS_ALL);
    plugin_registercmd("buyequip","rmb_kill_menu",ACCESS_ALL);
    plugin_registercmd("buy","rmb_kill_menu",ACCESS_ALL);
    plugin_registercmd("chooseteam","rmb_kill_menu",ACCESS_ALL);
    plugin_registercmd("showbriefing","rmb_kill_menu",ACCESS_ALL);
    plugin_registercmd("rmb_reset","rmb_reset",ACCESS_ALL);
    return PLUGIN_CONTINUE;
}

public plugin_connect(HLUserName,HLIP,UserIndex) {
    kill_menu(UserIndex);
    return PLUGIN_CONTINUE;
}

public plugin_disconnect(HLUserName,UserIndex) {
    kill_menu(UserIndex);
    return PLUGIN_CONTINUE;
}

public rmb_kill_menu(HLCommand,HLData,HLUserName,UserIndex) {
    kill_menu(UserIndex);
    return PLUGIN_CONTINUE;
}

public rmb_reset(HLCommand,HLData,HLUserName,UserIndex) {
    return PLUGIN_HANDLED;
}

kill_menu(UserIndex = 0) {
    new str[3];
    numtostr(UserIndex,str);
    plugin_exec("rmb_reset",str);
}
wie man sieht, ist es für cs ausgelegt, lässt sich aber für andere mods durchaus abändern. kernstück ist die funktion kill_menu(UserIndex).
es sendet das plugin_exec, mit dem userindex als string. dies wird von anderen plugins als command registriert
beispiel: plugin_rm_rindy_player (rm steht für rindy menu, kennzeichnet, dass plugin_rindy_menubase vorraussetzung ist, damit dieses plugin funktioniert)
hier gekürzt, um das wesentliche zu verdeutlichen
Code:
new g_Menu[MAX_PLAYERS];

public plugin_init() {
    plugin_registerinfo("Rinde's Advanced Ban Plugin","Recognizes players that left recently, and logs bans to a textfile",g_Version);
    plugin_registercmd("admin_playermenu","BanMenu",ACCESS_BAN,"admin_playermenu: Display player menu.");
    plugin_registercmd("menuselect","HandleMS",ACCESS_ALL);
    plugin_registercmd("rmb_reset","rmb_reset",ACCESS_ALL); //function to reset the menu if another menu is called
    return PLUGIN_CONTINUE;
}

public rmb_reset(HLCommand,HLData,HLUserName,UserIndex) {
    new Data[3];
    new i;
    convert_string(HLData,Data,3);
    if(Data[0] == '0') {
        for(i=1;i<=g_Maxplayers;i++) {
            g_Menu[i] = 0;
        }
    } else {
        g_Menu[strtonum(Data)] = 0;
    }
    return PLUGIN_CONTINUE;
}

public BanMenu(HLCommand,HLData,HLUserName,UserIndex) {
    if(UserIndex == 0) {
        selfmessage("This command cannot be used from console.");
    } else {
        kill_menu(UserIndex);
        g_Menu[UserIndex] = 1;
        show_menu(UserIndex);
    }
    return PLUGIN_HANDLED;
}

public HandleMS(HLCommand,HLData,HLUserName,UserIndex) {
    new Data[MAX_NAME_LENGTH];
    new i;
    if(g_Menu[UserIndex] == 1) {
        convert_string(HLData,Data,MAX_NAME_LENGTH);
        i = strtonum(Data);
        switch(i) {
            ...
        }
        return PLUGIN_HANDLED;
    }
    return PLUGIN_CONTINUE;
}

kill_menu(UserIndex=0) {
    new str[3];
    numtostr(UserIndex,str);
    plugin_exec("rmb_reset",str);
}
die globale variable g_Menu speichert für jeden spieler, ob er im menü ist oder nicht. wird ein anderes menü aufgerufen, wird rmb_reset ausgeführt, und für den/die entsprechenden user dieser wert auf 0 gesetzt. 0 im rmb_reset steht für alle spieler, beispielsweise für vote(...) ganz praktisch. umgekehrt führt das aufrufen der playermenus dazu, dass rmb_reset erneut aufgerufen wird, wodurch alle anderen plugins wissen: "ok, ich bin nicht mehr dran" (das kill_menu in public BanMenu). erst danach darf logischerweise g_Menu[UserIndex] = 1 gesetzt werden, da das kill_menu es erneut auf 0 setzt.
und auf diese art und weise weiss die HandleMS funktion immer, ob der spieler gerade das menü dieses plugins sieht.

alles klar?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23.01.2003, 12:36 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
@Rinde: ok. ich habe zwar jetzt nicht intensiv Deine Vorgehensweise getestet, aber das killmenu für alle CS-Menues habe ich ja bisher in jedem Menu-Plugin drin. Deine Idee ist aber gut.
/*
Anmerkung:rmb_reset würde ich dann aber auf ACCESS_CONSOLE setzen, wenn es die einzelnen Menüs untereindander aufrufen.
*/

Aber ich denke, ich habe bei mir nur einen kleinen Fehler gemacht...ich werde es nochmal durchgehen. Bei mir sollte es normalerweise so sein, dass immer wenn der Spieler das menu verlässt, auch seine kompletten Arrays gelöscht werden.

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23.01.2003, 14:29 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
Zitat:
Anmerkung:rmb_reset würde ich dann aber auf ACCESS_CONSOLE setzen, wenn es die einzelnen Menüs untereindander aufrufen.
plugin_exec hat denselben accesslevel, wie der user, der es ausgeführt hat, d.h. es muss ACCESS_ALL sein, sonst funktioniert es nicht

/edith: quoten ist schwer


Zuletzt geändert von Rinde am 23.01.2003, 17:18, insgesamt 2-mal geändert.

Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23.01.2003, 15:17 
AM.de Team

Registriert: 08.07.2002, 21:11
Beiträge: 2192
:o Erstma verdaum :lol:

THX

_________________
it's better to burn out, than to fade away


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23.01.2003, 19:45 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
@Rinde:hast Recht.

/waltraud: Das mit dem Quoten klappt schon noch :-) Wehe, Du editierst dabei meine Beiträge :-)

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23.01.2003, 22:40 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
ich habe diesmal drauf geachtet, ich schwör auf koran


Nach oben
   
 Betreff des Beitrags: immer umleiten?
BeitragVerfasst: 15.03.2003, 09:53 

Registriert: 28.10.2002, 19:52
Beiträge: 26
Huhu Ihr,

unser Server ist umgezogen - wech von NGZ :) - das Problem ist nur, dass die Leute nicht lesen können oder wollen, sodass sie weiterhin aufm "alten" spielen....

Ist es möglich dass jeder spieler der connected automatisch weitergeleitet wird, egal wie voll der Server ist?

Gruß
Gonz

_________________
217.160.183.116:27027 Testserver by Pro-GameServer.de| www.pro-gameserver.de| #pro-gameserver.de @ quakenet


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.03.2003, 14:26 
AM.de Team

Registriert: 08.07.2002, 21:11
Beiträge: 2192
Nimm das Redirect Plugin. Zu finden unter http://adminmod.battlenation.de/plugins.php Punkt 45 .
Hab es kurz ueberflogen, es braucht allerdings LogD. Befehl waere
Code:
admin_redirect all
.

_________________
it's better to burn out, than to fade away


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.03.2003, 16:07 

Registriert: 28.10.2002, 19:52
Beiträge: 26
Danke für den Tip,

leider stürzt der Server aber ab, sobald jemand connectet...

Habs nich zum Laufen bekommen :cry:

_________________
217.160.183.116:27027 Testserver by Pro-GameServer.de| www.pro-gameserver.de| #pro-gameserver.de @ quakenet


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.03.2003, 18:00 
AM.de Team

Registriert: 08.07.2002, 21:11
Beiträge: 2192
Oups, ich hab das Plugin nie probiert. Es soll auf einem NGZ Server laufen, sagst Du? Ist es auch sicher eine .amx fuer Windows?

_________________
it's better to burn out, than to fade away


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.03.2003, 18:52 

Registriert: 28.10.2002, 19:52
Beiträge: 26
:lol: Hihihi,

Nein, es soll auf unserem pro-gameserver laufen....

Also, auf der am-seite gibt es nur eine .sma Datei. Wir haben einen Linux-Server, deswegen habe ich die Linux .sma gezogen und mit einem aktuellen AM compiliert....

Evtl. ist das plugin schon zu alt, sodass deswegen der Server abschmiert wenn einer connectet?

Wer weiss es? Wer weiss es?

Die Klasse?


Greetz
Gonz

_________________
217.160.183.116:27027 Testserver by Pro-GameServer.de| www.pro-gameserver.de| #pro-gameserver.de @ quakenet


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.03.2003, 19:24 
AM.de Team

Registriert: 08.07.2002, 21:11
Beiträge: 2192
Es gibt keine Linux oder Windows .sma (jedenfalls nicht, dass ich wuesste).
Die .sma beinhaltet den Quellcode des Plugins und ist fuer beide Betriebssysteme gleich..
Ich compiliere sie immer auf meinem Windowsclienten zu einer Win.amx und konvertiere diese dann wiederum, meist mit dem GUI Converter, in eine Linux.amx um. Nur um hier mal der Verwirrung einhalt zu gebieten. Du hast sicher das richtige gemeint.
Deine Servershutdowns beim Connecten von Spielern deuteten schon auf eine .amx fuer das falsche Betriebssystem hin.

[-=THH=-]Stillsetzhut

_________________
it's better to burn out, than to fade away


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.03.2003, 19:31 

Registriert: 28.10.2002, 19:52
Beiträge: 26
Herr, schmeiss Hirn vom Himmel!!!!!!

:oops: Ich hab das umwandeln von windoof in linux vergessen :oops:

Die Pause war für mich wohl doch zulang.....
Ich nehm alles zurück und behaupte das Gegenteil!!

Nu gehts natürlich

THX!!!

Greetz
Gonz

Mein Bildchen passt besser denn je zu mir :-?

_________________
217.160.183.116:27027 Testserver by Pro-GameServer.de| www.pro-gameserver.de| #pro-gameserver.de @ quakenet


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 34 Beiträge ]  Gehe zu Seite 1 2 Nächste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de
Original Design von "[ Half-Life Admin Mod © Alfred Reynolds 2000-2003 ] - [ site design by Jägermeister ]"