AdminMod.de
https://www.adminmod.de/

Anpassen dieses plugins an AM v2.50.50
https://www.adminmod.de/viewtopic.php?t=4413
Seite 1 von 1

Autor:  Schnuffer [ 20.11.2002, 22:36 ]
Betreff des Beitrags:  Anpassen dieses plugins an AM v2.50.50

Hab mal ein plugin drangehangen. Kann mir das mal jemand an die "Mapverwechselnde" AM v2.50.50 anpassen? Mit AM vb2.50.42 läuft es prima und wechselt auch zur richtigen Map, nur mit 2.50.50 wiederholt es immer wieder ein und die selbe Map.

THX

Autor:  Sir Drink a lot [ 20.11.2002, 22:54 ]
Betreff des Beitrags: 

ja wie Schnuffer...

Hast Du nicht gehört, dass das nextmap-Problem in der AM 50.50 gelöst worden ist?

Einfach das changelevel löschen.

Autor:  Schnuffer [ 20.11.2002, 23:13 ]
Betreff des Beitrags: 

OK ich nehm's mal raus und probier nochmal. Melde mich dann ob's geht.

Autor:  Sir Drink a lot [ 21.11.2002, 01:56 ]
Betreff des Beitrags: 

ok.sollte danach klappen.

Er merkt sich nämlich jetzt, welche map man mit admin_map gewechselt hat und wechselt dann später wieder zur der map, die regulär im Mapcycle, nach der zuletzt regulären Map nach Mapcycle, dran ist.

Hm..mein Satzbau war auch schonmal besser...bin müde.

Autor:  Schnuffer [ 21.11.2002, 04:44 ]
Betreff des Beitrags: 

Jo funzt jetzt. Was passiert wenn ich per rcon wechsle? Aso und ich hab das Timerem etwas verarscht, damit es auch genau bei 0 die Map wechselt ohne changelevel. Hab das Original mp_timeleft ausgelesen und - 1 gesetzt. Hoffe das funzt dann auch bei map extend vote.

Autor:  [WING] Black Knight [ 21.11.2002, 09:50 ]
Betreff des Beitrags: 

changelevel bekommt er nicht mit. Es werden ausschließlich die AM-Commands abgefangen. Changelog lesen lohnt sich. ;)

EDIT:
Wie mp_timeleft ausgelesen? Die Variable existiert zwar, wird aber nicht genutzt und steht daher standardmäßig immer auf 0! Oder ist das "Kriegsgebiet" neuerdings ein TFC-Server?

Autor:  Sir Drink a lot [ 21.11.2002, 11:53 ]
Betreff des Beitrags: 

mp_timelimit auf -1 gesetzt.

Ein kleiner override :-) Nette Idee.

Autor:  Schnuffer [ 21.11.2002, 14:34 ]
Betreff des Beitrags: 

Um es für alle anschaulich zu machen, Poste ich es jetzt nochmal.
Code:
#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>

#define ACCESS_CONSOLE 131072

new STRING_VERSION[MAX_DATA_LENGTH] = "1.6";

new GameCommencing=0;
new checktime;
new origtimelimit;
new timer;

public timerem2_welt(HLCommand,HLData,HLUserName,UserIndex){
        new Data [MAX_DATA_LENGTH];
        new x [MAX_DATA_LENGTH];
        new dummy[MAX_DATA_LENGTH];
                                        
        convert_string( HLData, Data, MAX_DATA_LENGTH );
        strsplit(Data,"_",x,MAX_DATA_LENGTH,dummy,MAX_DATA_LENGTH);
                        
        if(strcmp(x,"Game")==0 && GameCommencing == 0){
                GameCommencing = 1;
                checktime =systemtime();
                origtimelimit = getvar("mp_timelimit")*60+2;
                kill_timer(timer);
                timer=set_timer("warn",1, 0);
        }
        else if(strcmp(x,"Restart")==0){
                origtimelimit =getvar("mp_timelimit")*60+2;
                checktime = systemtime();
                kill_timer(timer);
                timer=set_timer("warn",1,0);
        }
        else if(strcmp(x,"Round")==0){
                if (getvar("mp_timelimit")*60+2 != origtimelimit){
                        checktime = systemtime()-(systemtime()- checktime);
                        origtimelimit= getvar("mp_timelimit")*60+2;     
                        kill_timer(timer);
                        timer=set_timer("warn",1,0);
                }
        }
        return PLUGIN_CONTINUE;
}
public warn(Timer,Repeat,HLUser,HLParam)
{
        new a;
        new time;
                
        if (getvar("mp_timelimit")*60+2 != origtimelimit){
                checktime = systemtime()-(systemtime()- checktime);
                origtimelimit= getvar("mp_timelimit")*60+2;     
        }
        
        time = (origtimelimit-(systemtime()-checktime));
        
        switch(time){
                case 1800:{
                        execclient_all("speak ^"fvox/thirty minutes remaining^"");
                        centersay("30 Minuten noch...",6,0,255,0);
                        a = 300;
                }
                case 1500:{
                        execclient_all("speak ^"fvox/twenty five minutes remaining^"");
                        centersay("25 Minuten noch...",6,0,255,0);
                        a = 300;
                }
                case 1200:{
                        execclient_all("speak ^"fvox/twenty minutes remaining^"");
                        centersay("20 Minuten noch...",6,0,255,0);
                        a = 300;
                }
                case 900:{
                        execclient_all("speak ^"fvox/fifteen minutes remaining^"");
                        centersay("15 Minuten noch...",6,0,255,0);
                        a = 300;
                }
                case 600:{
                        execclient_all("speak ^"fvox/ten minutes remaining^"");
                        centersay("10 Minuten noch...",6,0,255,0);
                        a = 300;
                }
                case 300:{
                        execclient_all("speak ^"fvox/five minutes remaining^"");
                        centersay("5 Minuten noch...",6,0,255,0);
                        a = 180;
                }
                case 120:{
                        execclient_all("speak ^"fvox/two minutes remaining^"");
                        centersay("2 Minuten noch...",6,0,255,0);
                        a = 60;
                }
                case 60:{
                        execclient_all("speak ^"fvox/sixty seconds remaining^"");
                        centersay("60 Sekunden noch...",6,255,0,0);
                        a = 40;
                }
                case 20:{
                        execclient_all("speak ^"you are authorized for a advanced level^"");
                        centersay("20 Sekunden noch...",6,255,0,0);
                        a = 10;
                }
                case 10:{
                        execclient_all("speak ^"ten seconds remaining^"");
                        centersay("10 Sekunden noch...",5,255,0,0);
                        a = 5;
                }
                case 5:{
                        execclient_all("speak ^"five^"");
                        centersay("Five",1,255,0,0);
                        a = 1;
                }       
                case 4:{
                        execclient_all("speak ^"four^"");
                        centersay("Four",1,255,0,0);
                        a = 1;
                }       
                case 3:{
                        execclient_all("speak ^"three^"");
                        centersay("Three",1,255,0,0);
                        a = 1;
                }       
                case 2:{
                        execclient_all("speak ^"two^"");
                        centersay("Two",1,255,0,0);
                        a = 1;
                }       
                case 1:{
                        execclient_all("speak ^"one^"");
                        centersay("One",1,255,0,0);
                        a = 1;
                }
Hier nun der Bereich wo ich as timelimit verändere:
Code:
case 0:{
                	new ExecCommand[MAX_DATA_LENGTH];
			new Timelimit = 0;
			Timelimit = getvar("mp_timelimit") - 1;
			snprintf(ExecCommand, MAX_DATA_LENGTH, "mp_timelimit %i", Timelimit);
			exec(ExecCommand);
			execclient_all("speak ^"this round is over^"");
                }
                default:{
                        if(time>1800){
                                a = time-1800;
                        }else if(time<1800 && time>1500){
                                a = time - 1500;
                        }else if(time<1500 && time>1200){
                                a = time - 1200;
                        }else if(time<1200 && time>900){
                                a = time - 900;
                        }else if(time<900 && time>600){
                                a = time - 600;
                        }else if(time<600 && time>300){
                                a = time - 300;
                        }else if(time<300 && time>120){
                                a = time - 120;
                        }else if(time<120 && time>60){
                                a = time - 60;
                        }else if(time<60 && time>30){
                                a = time - 30;
                        }else{
                                a=1;
                        }
                }
        }
        timer=set_timer("warn",a, 0);
        return PLUGIN_CONTINUE;
}
public plugin_init(){
        plugin_registerinfo("Time Remaining Counter","Just a countdown until the Map over.",STRING_VERSION);
        plugin_registercmd("timerem2_welt", "timerem2_welt", ACCESS_CONSOLE);
        exec("logd_reg 62 admin_command timerem2_welt");
        checktime =systemtime();
        origtimelimit = getvar("mp_timelimit")*60+2;
        timer=set_timer("warn",1, 0);
        return PLUGIN_CONTINUE;
}
@BlackKnight
Ich hatte bei case 0: hatte ich die nextmap ausgelesen und die dann mit changelevel(Map,3); gewechselt

Autor:  [WING] Black Knight [ 21.11.2002, 17:43 ]
Betreff des Beitrags: 

Schon klar. Sorry, ich hatte es nicht verstanden, da Du mp_timeleft geschrieben hast und nicht mp_timelimit.
BTW, ich meine mich zu erinnern, dass die changelevel Funktion bereits das Timelimit auf 1 setzt. Außerdem ist mir mal aufgefallen, dass eine Änderung des Timelimits innerhalb der ersten 3 Minuten einer Map keine Auswirkung hat. Das Timelimit kann zwar auf 1 gesetzt werden, der Mapchange kommt aber erst nach Ablauf der besagten 3 Minuten. Wenn man trotzdem früher wechseln will, muss man halt die changelevel Funktion verwenden.

Autor:  Schnuffer [ 21.11.2002, 19:57 ]
Betreff des Beitrags: 

Da habe ich aber andere erfahrungen gemacht. Habe das plugin mit mp_timelimit 2 getestet und bei 1 Mintute das timelimit auf 1 gesetzt. Somit wechselte die Map da ja das timelimit von 2 auf 1 gesetzt wurde und die 1 Minute ja abgelaufen war.

Scheiß Deutsch ;)

Autor:  Sir Drink a lot [ 21.11.2002, 20:21 ]
Betreff des Beitrags: 

auch mal ein Beispiel.(Ist das selbe, was Schnuffer gesagt hat)

Du hast mp_timelimit auf 30.

Nach 29 Minuten setzt du das mp_timelimit auf 20. Und es kommt zum Mapwechsel, da er -9 in den Miesen ist.

Autor:  DarkEyes1 [ 21.11.2002, 21:07 ]
Betreff des Beitrags: 

"beisst" sich das plugin mit irgendeinem anderen?

hatte mal soetwas gehört...

oder ist das schon ne "verbesserte" version? :oops:

Autor:  Schnuffer [ 21.11.2002, 21:40 ]
Betreff des Beitrags: 

Bis jetzt hab ich noch keine Probleme damit. Hab auch ne ganze Stange plugins im Kriegsgebiet laufen, aber bis jetzt "beissten" sich sich nicht.

Autor:  [WING] Black Knight [ 22.11.2002, 00:29 ]
Betreff des Beitrags: 

Das mit dem Timelimit kleiner als die abgelaufene Zeit setzen ist schon klar. Mir war nur bei einem Plugintest mal aufgefallen, dass das innerhalb der ersten 3 Minuten seltsamerweise nicht ging (Ich hatte mp_timelimit auf 1 gesetzt). Und pünktlich am Ende der 3 Minuten kam der Mapwechsel. Und das war reproduzierbar. Das war bei der Diskussion mit daRope über die nextmap-Funktion. Ich wollte doch ausprobieren, welche Map als nächstes kam bzw. angezeigt wurde, und musste immer 3 Minuten warten. Erinnerst Du Dich noch Sir?

Seite 1 von 1 Alle Zeiten sind UTC+01:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/