Ein neues Thema erstellen  Auf das Thema antworten  [ 16 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: pugin_stetze_nextmap
BeitragVerfasst: 10.10.2002, 13:36 
Benutzeravatar

Registriert: 24.11.2001, 01:00
Beiträge: 248
Joa ichh ab das plugin ein wenig verändert aber im grossen nur übersetzt...

Was mir aber nich in kramm passt ist das wenn cm anzeit die nächste map ist azze und 2 min vor ende der vote kommt keiner die map verlägrn wil lalso die map gewechselt wird aufeinmal dust2 kommt...

Das doch bestimmt nen prob zwischen cm und am oder ????


und ich weis nich wirklich ob es so ist aber ich glaube er verlängert die zeit nicht um 1 also bei timelimit 25 min sondern um 2 nämlich um 50 min und das wollen wir ja so auch nich nech *g* normal verlängert er doch nur um eins oder nich...

plugin schaut so aus :
Code:
/* $Id $ */

#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>

#define ACCESS_NEXTMAP_VOTE 1
#define ACCESS_CONTROL_VOTE 2

#define MAP_INVALID -1
#define MAX_MAPS 64

new STRING_VERSION[MAX_DATA_LENGTH] = "2.50.0";

new ExtendCount = 0;
new ExtendMapTime = 0;

public StartNextMapVote() {
        new Text[MAX_TEXT_LENGTH];
        new sNextMap[MAX_TEXT_LENGTH];
        if (vote_allowed()!=1) {
                selfmessage( "NextMap vote not allowed at this time.");
                return PLUGIN_HANDLED;
        }
        new iMaxExtend = getvar("admin_vote_maxextend");
        if(ExtendCount < iMaxExtend || iMaxExtend == 0) {
          nextmap(sNextMap,30)
          if (valid_map(sNextMap) == 1) {
                  snprintf(Text, MAX_TEXT_LENGTH, "Aktuelle Map verlaengern ?^n", sNextMap);
                  log(Text);
                  vote(Text,"Nein","Ja","HandleNextMapVote",sNextMap);
          } else {
                  say("Map Vote fehlgeschlagen !");
          }
        }
        return PLUGIN_HANDLED;
}

public ChangeNextMap(Timer,Repeat,HLUser,HLParam) {
        new NewMap[MAX_NAME_LENGTH];

        convert_string(HLParam,NewMap,MAX_NAME_LENGTH);
        if(strlen(NewMap) != 0) {
                changelevel(NewMap);
        }
}

public ExtendNextMap(Timer,Repeat,HLUser,HLParam) {
  new iFreq = getvar("admin_vote_freq");
  new ExecCommand[MAX_DATA_LENGTH];
  new Timelimit = 0;
  new VaultData[MAX_DATA_LENGTH];
  new intTime = timeleft(0);

  ExtendCount++;
  Timelimit = getvar("mp_timelimit");
  Timelimit += GetExtendTime();
  snprintf(ExecCommand, MAX_DATA_LENGTH, "mp_timelimit %i", Timelimit);
  exec(ExecCommand);
  if (iFreq > 0) {
    set_timer("AllowMapVote",iFreq,1);
  }
  get_vaultdata("NEXTMAP_AUTOSTART",VaultData, MAX_DATA_LENGTH);
  if(VaultData[0] == '1') {
          /* Call for a vote two minutes before map ends */
          set_timer("StartNextMapVote", intTime + ((ExtendMapTime - 2) * 60),1);
  }
}

/* Handle a map vote's results. */
public HandleNextMapVote(WinningOption,HLMap,VoteCount,UserCount) {
        new strNumber[MAX_NUMBER_LENGTH];
        new Text[MAX_TEXT_LENGTH];
        new VoteMap[MAX_DATA_LENGTH];
        convert_string(HLMap,VoteMap,MAX_DATA_LENGTH);
        if (WinningOption == 1) {
                new Ratio = getvar("map_ratio");
                if (VoteCount >= Ratio*UserCount/100) {
                        snprintf(Text, MAX_TEXT_LENGTH, "Mapwechsel. Es folgt: %s ", VoteMap);
                        say(Text);
                        exec("mp_timelimit 1");
                        set_timer("ChangeNextMap",2,1,VoteMap);
                } else {
                        numtostr(Ratio*UserCount/100,strNumber);
                        snprintf(Text, MAX_TEXT_LENGTH, "Map Vote war erfolgreich, aber es fehlten %s Stimmen zum Wechsel", strNumber);
                        say(Text);
                }
        } else {
            if(WinningOption == 2) {
              new iExtend = GetExtendTime();
              snprintf(Text, MAX_TEXT_LENGTH, "Map Vote beendet. Aktuelle Map wird um %i Minuten verlaengert. ", iExtend);
              say(Text);
              set_timer("ExtendNextMap",2,1);
            } else {
              say("Map vote failed.");
            }
        }
}

/* Return the amount of time (in minutes) to extend a map for if an extend vote wins. */
GetExtendTime() {
        /* If this is the first time we're extending the map, we want to extend it
        by the length of mp_timelimit.  Second and subsequent times through, we want
        to keep extending it by the original timelimit...not the new one (eg, if we
        start at 30 mins...on the second time through, mp_timelimit will say 60.  We
        want to jump to 90, not 120. */
        if (ExtendMapTime == 0) {
                ExtendMapTime = getvar("mp_timelimit");
        }
        return ExtendMapTime;
}

public admin_map_maxextend(HLCommand,HLData,HLUserName,UserIndex) {
        new Command[MAX_COMMAND_LENGTH];
        new Data[MAX_DATA_LENGTH];
        new User[MAX_NAME_LENGTH];
        convert_string(HLCommand,Command,MAX_COMMAND_LENGTH);
        convert_string(HLData,Data,MAX_DATA_LENGTH);
        convert_string(HLUserName,User,MAX_NAME_LENGTH);
        execute_command(User,Command,"admin_vote_maxextend",Data);
        return PLUGIN_HANDLED;
}

public admin_vote_nextmap(HLCommand,HLData,HLUserName,UserIndex) {
        new Command[MAX_COMMAND_LENGTH];
        new Data[MAX_DATA_LENGTH];
        new Text[MAX_TEXT_LENGTH];
        new User[MAX_NAME_LENGTH];
        new sNextMap[MAX_TEXT_LENGTH];

        if (vote_allowed()!=1) {
                selfmessage( "Vote nicht erlaubt zur jetzigen Zeit.");
                return PLUGIN_HANDLED;
        }

        convert_string(HLCommand,Command,MAX_COMMAND_LENGTH);
        convert_string(HLData,Data,MAX_DATA_LENGTH);
        convert_string(HLUserName,User,MAX_NAME_LENGTH);
        nextmap(sNextMap,30);
        if (valid_map(sNextMap) == 1) {
                  snprintf(Text, MAX_TEXT_LENGTH, "Aktuelle Map verlaengern ?^n", sNextMap);
                  log(Text);
                  vote(Text,"Nein","Ja","HandleNextMapVote",sNextMap);
        } else {
                  say("Map Vote fehlgeschlagen !");
        }
        return PLUGIN_HANDLED;
}


public plugin_init() {
        plugin_registerinfo("NextMap voting plugin by stetze","Enables Voting for Nextmap or extend - visit www.adminmod.de 4 more!",STRING_VERSION);
        plugin_registercmd("admin_vote_nextmap","admin_vote_nextmap",ACCESS_NEXTMAP_VOTE,"admin_vote_nextmap: Starts Voting for NextMap or extend the current map.");
        plugin_registercmd("admin_map_maxextend","admin_map_maxextend",ACCESS_CONTROL_VOTE,"admin_map_maxextend <nr>: Sets how often a map can be extended.");

        new intTime = timeleft(0);

        new VaultData[MAX_DATA_LENGTH];
        /*
        new sVaultData[MAX_DATA_LENGTH];
        get_vaultdata("NEXTMAP_AUTOSTART", sVaultData, MAX_DATA_LENGTH);
        VaultData = strtonum(sVaultData);
        if(VaultData == '1' || VaultData == 1) {   */

        get_vaultdata("NEXTMAP_AUTOSTART",VaultData, MAX_DATA_LENGTH);
        if(VaultData[0] == '1') {
                /* Call for a vote two minutes before map ends */
                set_timer("StartNextMapVote", intTime - 120, 1);
        }
        return PLUGIN_CONTINUE;
}
naja hoffe jmd kann helfen

thx im voraus...

_________________
<werbung>

www.teamarab.de
62.4.81.251:27085 #teamarab.de | Doenerbude
62.4.74.200:27020 #teamarab.de | Muckibude
80.239.224.29:27700 - #teamarab.de ][ Muckibude | bY quado.net -

#teamarab.de @ Q - Net

</werbung>


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 11.10.2002, 13:57 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
ich hab jetzt nicht alle möglichkeiten genau durchgegenagen, aber ich denke es würde helfen, wenn man in der prozedur
public StartNextMapVote()
die zeile
nextmap(sNextMap,30)
zu
getstrvar("cm_nextmap",sNextMap,30);
ändern würde.
nch der zeile fehlt btw eh ein ;


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 11.10.2002, 13:59 
Benutzeravatar

Registriert: 24.11.2001, 01:00
Beiträge: 248
äh cm_nextmap steht jez für die nxt map von cm und snextmap 30???

_________________
<werbung>

www.teamarab.de
62.4.81.251:27085 #teamarab.de | Doenerbude
62.4.74.200:27020 #teamarab.de | Muckibude
80.239.224.29:27700 - #teamarab.de ][ Muckibude | bY quado.net -

#teamarab.de @ Q - Net

</werbung>


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 13.10.2002, 01:16 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
fügt den inhalt der servervariable cm_nextmap in die scriptvariable sNextMap bis zu einer textlänge von 30 zeichen.
das script wechselt wenn der vote misslingt zu der map die in sNextMap steht, und clanmod zeigt als nächste map immer den inhalt von cm_nextmap an. somit wäre die anzeige mit der folgenden map identisch


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 13.10.2002, 01:23 
Benutzeravatar

Registriert: 24.11.2001, 01:00
Beiträge: 248
ja danke gab bisher keine fehler werds gleich mal ausprobieren...

_________________
<werbung>

www.teamarab.de
62.4.81.251:27085 #teamarab.de | Doenerbude
62.4.74.200:27020 #teamarab.de | Muckibude
80.239.224.29:27700 - #teamarab.de ][ Muckibude | bY quado.net -

#teamarab.de @ Q - Net

</werbung>


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 13.10.2002, 19:27 
Benutzeravatar

Registriert: 24.11.2001, 01:00
Beiträge: 248
ja es geht nur jez hab ich nen andres problem und zwar ist es ja so bei cm das wenn man die map wechselt die nächste map die im cycle ist dann die nächste map bleibt und wen jez sniper_map die nächste map ist am sie aber per befehl wechselt kommt sie ja 2mal was bei uns jez auch der fall ist...

Meine idee:

könnte man wenn der vote für verlangern nich erfoglreich war also die map nich verlängert wird die map nich zuende laufen lassen und dann automatisch wechseln lassen ?

Müsste doch eigentlich gehen man müsste doch nur etwas aus dem plugin rausnehmen..

Hoffe ihr könnt mir da hefen..

Thx im voraus...

_________________
<werbung>

www.teamarab.de
62.4.81.251:27085 #teamarab.de | Doenerbude
62.4.74.200:27020 #teamarab.de | Muckibude
80.239.224.29:27700 - #teamarab.de ][ Muckibude | bY quado.net -

#teamarab.de @ Q - Net

</werbung>


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 13.10.2002, 20:07 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
wie gesagt, ich bin nicht alles durchgegangen. ich denke wenn man statt die map mit
changelevel(NextMap)
einfach das timelimit auf 0.1 setzen würde
exec("mp_timelimit 0.1")
würde das helfen.
das würde überhaupt einige sachen des scripts überflüssig machen.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 13.10.2002, 20:27 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
so, ich hab das mal nen wenig überarbeitet. ka obs funktioniert, aus irgendeinem grund hat meine mutter keinen small cmpiler auf ihrem pc :roll:
allerdings scheint mir der gesamte code recht umständlich und unsauber zu sein. evtl schreib ich das ding nochmal ganz neu. aber nicht ohne compiler :)
Code:
/* $Id $ */

#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>

#define ACCESS_NEXTMAP_VOTE 1
#define ACCESS_CONTROL_VOTE 2

#define MAP_INVALID -1
#define MAX_MAPS 64

new STRING_VERSION[MAX_DATA_LENGTH] = "2.50.0";

new ExtendCount = 0;
new ExtendMapTime = 0;

public StartNextMapVote() {
        if (vote_allowed()!=1) {
                selfmessage( "NextMap vote not allowed at this time.");
                return PLUGIN_HANDLED;
        }
        new iMaxExtend = getvar("admin_vote_maxextend");
        if(ExtendCount < iMaxExtend || iMaxExtend == 0) {
                  vote("\yAktuelle Map verlaengern ?\w^n","Nein","Ja","HandleNextMapVote");
        }
        return PLUGIN_HANDLED;
}

public ExtendNextMap(Timer,Repeat,HLUser,HLParam) {
  new iFreq = getvar("admin_vote_freq");
  new ExecCommand[MAX_DATA_LENGTH];
  new Timelimit = 0;
  new VaultData[MAX_DATA_LENGTH];
  new intTime = timeleft(0);

  ExtendCount++;
  Timelimit = getvar("mp_timelimit");
  Timelimit += GetExtendTime();
  snprintf(ExecCommand, MAX_DATA_LENGTH, "mp_timelimit %i", Timelimit);
  exec(ExecCommand);
  get_vaultdata("NEXTMAP_AUTOSTART",VaultData, MAX_DATA_LENGTH);
  if(VaultData[0] == '1') {
          /* Call for a vote two minutes before map ends */
          set_timer("StartNextMapVote", intTime + ((ExtendMapTime - 2) * 60),1);
  }
}

/* Handle a map vote's results. */
public HandleNextMapVote(WinningOption,HLMap,VoteCount,UserCount) {
        new Text[MAX_TEXT_LENGTH];
        new VoteMap[MAX_NAME_LENGTH];
        getstrvar("cm_nextmap",VoteMap,MAX_NAME_LENGHT);
        if (WinningOption == 1) {
                new Ratio = getvar("map_ratio");
                if (VoteCount >= Ratio*UserCount/100) {
                        snprintf(Text, MAX_TEXT_LENGTH, "Mapwechsel. Es folgt: %s ", VoteMap);
                        say(Text);
                        exec("mp_timelimit 0.1");
                } else {
                        snprintf(Text, MAX_TEXT_LENGTH, "Map Vote war erfolgreich, aber es fehlten %i Stimmen zum Wechsel", Ratio*UserCount/100);
                        say(Text);
                }
        } else {
            if(WinningOption == 2) {
              new iExtend = GetExtendTime();
              snprintf(Text, MAX_TEXT_LENGTH, "Map Vote beendet. Aktuelle Map wird um %i Minuten verlaengert. ", iExtend);
              say(Text);
              set_timer("ExtendNextMap",2,1);
            } else {
              say("Map vote failed.");
            }
        }
}

/* Return the amount of time (in minutes) to extend a map for if an extend vote wins. */
GetExtendTime() {
        /* If this is the first time we're extending the map, we want to extend it
        by the length of mp_timelimit.  Second and subsequent times through, we want
        to keep extending it by the original timelimit...not the new one (eg, if we
        start at 30 mins...on the second time through, mp_timelimit will say 60.  We
        want to jump to 90, not 120. */
        if (ExtendMapTime == 0) {
                ExtendMapTime = getvar("mp_timelimit");
        }
        return ExtendMapTime;
}

public admin_map_maxextend(HLCommand,HLData,HLUserName,UserIndex) {
        new Command[MAX_COMMAND_LENGTH];
        new Data[MAX_DATA_LENGTH];
        new User[MAX_NAME_LENGTH];
        convert_string(HLCommand,Command,MAX_COMMAND_LENGTH);
        convert_string(HLData,Data,MAX_DATA_LENGTH);
        convert_string(HLUserName,User,MAX_NAME_LENGTH);
        execute_command(User,Command,"admin_vote_maxextend",Data);
        return PLUGIN_HANDLED;
}

public admin_vote_nextmap(HLCommand,HLData,HLUserName,UserIndex) {
        new Command[MAX_COMMAND_LENGTH];
        new Data[MAX_DATA_LENGTH];
        new Text[MAX_TEXT_LENGTH];
        new User[MAX_NAME_LENGTH];
        new sNextMap[MAX_TEXT_LENGTH];

        if (vote_allowed()!=1) {
                selfmessage( "Vote nicht erlaubt zur jetzigen Zeit.");
                return PLUGIN_HANDLED;
        }

        convert_string(HLCommand,Command,MAX_COMMAND_LENGTH);
        convert_string(HLData,Data,MAX_DATA_LENGTH);
        convert_string(HLUserName,User,MAX_NAME_LENGTH);
        nextmap(sNextMap,30);
        if (valid_map(sNextMap) == 1) {
                  snprintf(Text, MAX_TEXT_LENGTH, "Aktuelle Map verlaengern ?^n", sNextMap);
                  log(Text);
                  vote(Text,"Nein","Ja","HandleNextMapVote",sNextMap);
        } else {
                  say("Map Vote fehlgeschlagen !");
        }
        return PLUGIN_HANDLED;
}


public plugin_init() {
        plugin_registerinfo("NextMap voting plugin by stetze","Enables Voting for Nextmap or extend - visit www.adminmod.de 4 more!",STRING_VERSION);
        plugin_registercmd("admin_vote_nextmap","admin_vote_nextmap",ACCESS_NEXTMAP_VOTE,"admin_vote_nextmap: Starts Voting for NextMap or extend the current map.");
        plugin_registercmd("admin_map_maxextend","admin_map_maxextend",ACCESS_CONTROL_VOTE,"admin_map_maxextend <nr>: Sets how often a map can be extended.");

        new intTime = timeleft(0);

        new VaultData[MAX_DATA_LENGTH];
        /*
        new sVaultData[MAX_DATA_LENGTH];
        get_vaultdata("NEXTMAP_AUTOSTART", sVaultData, MAX_DATA_LENGTH);
        VaultData = strtonum(sVaultData);
        if(VaultData == '1' || VaultData == 1) {   */

        get_vaultdata("NEXTMAP_AUTOSTART",VaultData, MAX_DATA_LENGTH);
        if(VaultData[0] == '1') {
                /* Call for a vote two minutes before map ends */
                set_timer("StartNextMapVote", intTime - 120, 1);
        }
        return PLUGIN_CONTINUE;
}


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 13.10.2002, 22:57 
Benutzeravatar

Registriert: 24.11.2001, 01:00
Beiträge: 248
ja cool danke erstmal dafür und wenn dus neu schrieben würdets bidde sag mir bescheid würde mich freuen...

Werds jez erstmal ausprobieren...

_________________
<werbung>

www.teamarab.de
62.4.81.251:27085 #teamarab.de | Doenerbude
62.4.74.200:27020 #teamarab.de | Muckibude
80.239.224.29:27700 - #teamarab.de ][ Muckibude | bY quado.net -

#teamarab.de @ Q - Net

</werbung>


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 13.10.2002, 23:01 
Benutzeravatar

Registriert: 24.11.2001, 01:00
Beiträge: 248
plugin_stetze_nextmap.sma(49) Warning [204]: symbol is assigned a value that is never used: "iFreq"
plugin_stetze_nextmap.sma(55) Error [17]: undefined symbol "MAX_NAME_LENGHT"


kam beim compilieren...

_________________
<werbung>

www.teamarab.de
62.4.81.251:27085 #teamarab.de | Doenerbude
62.4.74.200:27020 #teamarab.de | Muckibude
80.239.224.29:27700 - #teamarab.de ][ Muckibude | bY quado.net -

#teamarab.de @ Q - Net

</werbung>


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.10.2002, 11:14 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
warning kannst du ignorieren. der error is nun nen kleinen tiffpehler. ich hba 2 buchstaben vertauscht. in zeile 55 musst du das MAX_NAME_LENGHT zu nem MAX_NAME_LENGTH machn. das schon alles

gegen den warning kannst du noch diese zeile löschen:
new iFreq = getvar("admin_vote_freq");
mit dem wert wurde irgendein timer gestartet, der eine prozedur aufrief die gar nciht vorhanden war :o also hab ich alles gelöscht, und die überflüssig gewordene variable vergessen.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.10.2002, 14:00 
Benutzeravatar

Registriert: 24.11.2001, 01:00
Beiträge: 248
Danke fehler sind weg werds nachher mal ausprobieren hab zu zur zeit no time ums aufem server zu testen...

_________________
<werbung>

www.teamarab.de
62.4.81.251:27085 #teamarab.de | Doenerbude
62.4.74.200:27020 #teamarab.de | Muckibude
80.239.224.29:27700 - #teamarab.de ][ Muckibude | bY quado.net -

#teamarab.de @ Q - Net

</werbung>


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.10.2002, 20:28 
Benutzeravatar

Registriert: 24.11.2001, 01:00
Beiträge: 248
ja jez kommt irgendwie überhaupt kein vote...

also es kommt garnix...bleibt alles leer....

Kein vote *heul*

_________________
<werbung>

www.teamarab.de
62.4.81.251:27085 #teamarab.de | Doenerbude
62.4.74.200:27020 #teamarab.de | Muckibude
80.239.224.29:27700 - #teamarab.de ][ Muckibude | bY quado.net -

#teamarab.de @ Q - Net

</werbung>


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.10.2002, 18:49 
Benutzeravatar

Registriert: 24.11.2001, 01:00
Beiträge: 248
also ich habs jez mal so gemacht wie du es erklärt hatest mit den variablen also nich dein gesamten quelltext genommen da geht es hat allerding einen fehler das nach dem verlängern irgendwann mittendrin aufeinmal doch die map gewechselt wird also die stats anzeige kommt und die map nich wechselt kein plan ob das am plugin liegt nervt aufjeden *gg*

und ein kleiner fehler noch der aber nich wieter schlimm ist das wenn dr vote komtm und die map verlängert wird die zeit die noch übrg war mit hinten dran gezogen wird...aber wie gesagt das nich so schlimm...


Wär goil wenn mir bei dem ersten fehler jmd helfen könnte...

ThX im voraus..

_________________
<werbung>

www.teamarab.de
62.4.81.251:27085 #teamarab.de | Doenerbude
62.4.74.200:27020 #teamarab.de | Muckibude
80.239.224.29:27700 - #teamarab.de ][ Muckibude | bY quado.net -

#teamarab.de @ Q - Net

</werbung>


Nach oben
   
 Betreff des Beitrags: ANDERER ERROR
BeitragVerfasst: 16.10.2002, 10:52 

Registriert: 11.04.2002, 04:36
Beiträge: 188
Wohnort: hannover
:cry:
plugin_stetze_nextmap.sma(49) Warning [204]: symbol is assigned a value that is never used: "iFreq"
plugin_stetze_nextmap.sma(152) Error [10]: invalid function or declaration
plugin_stetze_nextmap.sma(154) Error [10]: invalid function or declaration


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16.10.2002, 11:43 
Benutzeravatar

Registriert: 24.11.2001, 01:00
Beiträge: 248
der müsste gehen :
Code:
/* $Id $ */ 

#include <core> 
#include <console> 
#include <string> 
#include <admin> 
#include <adminlib> 

#define ACCESS_NEXTMAP_VOTE 1 
#define ACCESS_CONTROL_VOTE 2 

#define MAP_INVALID -1 
#define MAX_MAPS 64 

new STRING_VERSION[MAX_DATA_LENGTH] = "2.50.0"; 

new ExtendCount = 0; 
new ExtendMapTime = 0; 

public StartNextMapVote() { 
        new Text[MAX_TEXT_LENGTH]; 
        new sNextMap[MAX_TEXT_LENGTH]; 
        if (vote_allowed()!=1) { 
                selfmessage( "Vote nicht erlaubt zur jetzigen Zeit."); 
                return PLUGIN_HANDLED; 
        } 
        new iMaxExtend = getvar("admin_vote_maxextend"); 
        if(ExtendCount < iMaxExtend || iMaxExtend == 0) { 
          getstrvar("cm_nextmap",sNextMap,30);  
          if (valid_map(sNextMap) == 1) { 
                  snprintf(Text, MAX_TEXT_LENGTH, "Aktuelle Map verlaengern ?^n", sNextMap); 
                  log(Text); 
                  vote(Text,"Nein","Ja","HandleNextMapVote",sNextMap); 
          } else { 
                  say("Map Vote fehlgeschlagen !"); 
          } 
        } 
        return PLUGIN_HANDLED; 
} 

public ChangeNextMap(Timer,Repeat,HLUser,HLParam) { 
        new NewMap[MAX_NAME_LENGTH]; 

        convert_string(HLParam,NewMap,MAX_NAME_LENGTH); 
        if(strlen(NewMap) != 0) { 
                exec("mp_timelimit 0.1"); 
        } 
} 

public ExtendNextMap(Timer,Repeat,HLUser,HLParam) { 
  new iFreq = getvar("admin_vote_freq"); 
  new ExecCommand[MAX_DATA_LENGTH]; 
  new Timelimit = 0; 
  new VaultData[MAX_DATA_LENGTH]; 
  new intTime = timeleft(0); 

  ExtendCount++; 
  Timelimit = getvar("mp_timelimit"); 
  Timelimit += GetExtendTime(); 
  snprintf(ExecCommand, MAX_DATA_LENGTH, "mp_timelimit %i", Timelimit); 
  exec(ExecCommand); 
  if (iFreq > 0) { 
    set_timer("AllowMapVote",iFreq,1); 
  } 
  get_vaultdata("NEXTMAP_AUTOSTART",VaultData, MAX_DATA_LENGTH); 
  if(VaultData[0] == '1') { 
          /* Call for a vote two minutes before map ends */ 
          set_timer("StartNextMapVote", intTime + ((ExtendMapTime - 2) * 60),1); 
  } 
} 

/* Handle a map vote's results. */ 
public HandleNextMapVote(WinningOption,HLMap,VoteCount,UserCount) { 
        new strNumber[MAX_NUMBER_LENGTH]; 
        new Text[MAX_TEXT_LENGTH]; 
        new VoteMap[MAX_DATA_LENGTH]; 
        convert_string(HLMap,VoteMap,MAX_DATA_LENGTH); 
        if (WinningOption == 1) { 
                new Ratio = getvar("map_ratio"); 
                if (VoteCount >= Ratio*UserCount/100) { 
                        snprintf(Text, MAX_TEXT_LENGTH, "Mapwechsel. Es folgt: %s ", VoteMap); 
                        say(Text); 
                        exec("mp_timelimit 1"); 
                        set_timer("ChangeNextMap",2,1,VoteMap); 
                } else { 
                        numtostr(Ratio*UserCount/100,strNumber); 
                        snprintf(Text, MAX_TEXT_LENGTH, "Map Vote war erfolgreich, aber es fehlten %s Stimmen zum Wechsel", strNumber); 
                        say(Text); 
                } 
        } else { 
            if(WinningOption == 2) { 
              new iExtend = GetExtendTime(); 
              snprintf(Text, MAX_TEXT_LENGTH, "Map Vote beendet. Aktuelle Map wird um %i Minuten verlaengert. ", iExtend); 
              say(Text); 
              set_timer("ExtendNextMap",2,1); 
            } else { 
              say("Map vote failed."); 
            } 
        } 
} 

/* Return the amount of time (in minutes) to extend a map for if an extend vote wins. */ 
GetExtendTime() { 
        /* If this is the first time we're extending the map, we want to extend it 
        by the length of mp_timelimit.  Second and subsequent times through, we want 
        to keep extending it by the original timelimit...not the new one (eg, if we 
        start at 30 mins...on the second time through, mp_timelimit will say 60.  We 
        want to jump to 90, not 120. */ 
        if (ExtendMapTime == 0) { 
                ExtendMapTime = getvar("mp_timelimit"); 
        } 
        return ExtendMapTime; 
} 

public admin_map_maxextend(HLCommand,HLData,HLUserName,UserIndex) { 
        new Command[MAX_COMMAND_LENGTH]; 
        new Data[MAX_DATA_LENGTH]; 
        new User[MAX_NAME_LENGTH]; 
        convert_string(HLCommand,Command,MAX_COMMAND_LENGTH); 
        convert_string(HLData,Data,MAX_DATA_LENGTH); 
        convert_string(HLUserName,User,MAX_NAME_LENGTH); 
        execute_command(User,Command,"admin_vote_maxextend",Data); 
        return PLUGIN_HANDLED; 
} 

public admin_vote_nextmap(HLCommand,HLData,HLUserName,UserIndex) { 
        new Command[MAX_COMMAND_LENGTH]; 
        new Data[MAX_DATA_LENGTH]; 
        new Text[MAX_TEXT_LENGTH]; 
        new User[MAX_NAME_LENGTH]; 
        new sNextMap[MAX_TEXT_LENGTH]; 

        if (vote_allowed()!=1) { 
                selfmessage( "Vote nicht erlaubt zur jetzigen Zeit."); 
                return PLUGIN_HANDLED; 
        } 

        convert_string(HLCommand,Command,MAX_COMMAND_LENGTH); 
        convert_string(HLData,Data,MAX_DATA_LENGTH); 
        convert_string(HLUserName,User,MAX_NAME_LENGTH); 
        nextmap(sNextMap,30); 
        if (valid_map(sNextMap) == 1) { 
                  snprintf(Text, MAX_TEXT_LENGTH, "Aktuelle Map verlaengern ?^n", sNextMap); 
                  log(Text); 
                  vote(Text,"Nein","Ja","HandleNextMapVote",sNextMap); 
        } else { 
                  say("Map Vote fehlgeschlagen !"); 
        } 
        return PLUGIN_HANDLED; 
} 


public plugin_init() { 
        plugin_registerinfo("NextMap voting plugin by stetze","Enables Voting for Nextmap or extend - visit www.adminmod.de 4 more!",STRING_VERSION); 
        plugin_registercmd("admin_vote_nextmap","admin_vote_nextmap",ACCESS_NEXTMAP_VOTE,"admin_vote_nextmap: Starts Voting for NextMap or extend the current map."); 
        plugin_registercmd("admin_map_maxextend","admin_map_maxextend",ACCESS_CONTROL_VOTE,"admin_map_maxextend <nr>: Sets how often a map can be extended."); 

        new intTime = timeleft(0); 

        new VaultData[MAX_DATA_LENGTH]; 
        /* 
        new sVaultData[MAX_DATA_LENGTH]; 
        get_vaultdata("NEXTMAP_AUTOSTART", sVaultData, MAX_DATA_LENGTH); 
        VaultData = strtonum(sVaultData); 
        if(VaultData == '1' || VaultData == 1) {   */ 

        get_vaultdata("NEXTMAP_AUTOSTART",VaultData, MAX_DATA_LENGTH); 
        if(VaultData[0] == '1') { 
                /* Call for a vote two minutes before map ends */ 
                set_timer("StartNextMapVote", intTime - 120, 1); 
        } 
        return PLUGIN_CONTINUE; 
}

_________________
<werbung>

www.teamarab.de
62.4.81.251:27085 #teamarab.de | Doenerbude
62.4.74.200:27020 #teamarab.de | Muckibude
80.239.224.29:27700 - #teamarab.de ][ Muckibude | bY quado.net -

#teamarab.de @ Q - Net

</werbung>


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 16 Beiträge ] 


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 ]"