Ein neues Thema erstellen  Auf das Thema antworten  [ 21 Beiträge ]  Gehe zu Seite 1 2 Nächste
Autor Nachricht
BeitragVerfasst: 12.07.2002, 23:24 

Registriert: 12.07.2002, 21:37
Beiträge: 12
Wohnort: Neu-Ulm
...kann???? ich meine jetz admin_vote_map de_dust de_dust2 cs_office?????? wenn ja welches brauche ich dafür. ich weiss das es das für clan mode gibt, aber ned ob auch für AdminMod. wenn ja wie heisst das ding,

Axo @ Sir Drink a lot hoffe dieser betreff war besser :D :oops: :D :wink:


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 13.07.2002, 02:22 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
brav...sehr gut. :-)

Schau mal hier:
http://board.battlenation.de/viewtopic.php?t=3429

Ist noch Beta. Aber auf unserem WING-Clanserver läuft es.

Da wird dann irgendwann mal ein plugin "vote_for_it" draus.

Ergänzungen sind dann geplant, wie nur vote extend von Plugin_stetze und die feinen votes von plugin_democracy (aber nur für admins verfügbar.)

Wer weiß, was mir noch so einfällt, für was der admin voten lassen kann. Es gibt ja schon ein paar votes in den standard-plugins. Die fallen dann ja leider raus.

_________________
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: 13.07.2002, 02:32 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
aber bevor ich mir alle Lorbeeren einheimse, dass original Plugin findest Du auf www.adminmod.org
plugin_cavey_votemap heisst es.

Aber ich habe so ein paar Sachen verändert.

P.S.: Zum Titel des Beitrags noch ein Wort: Es ist schon etwas blöd, wenn da soviele Rechtschreibfehler drin sind...aber shit happens...egal. Wird schon jeder wissen, was Du ungefähr meinst :wink:

_________________
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: 13.07.2002, 16:01 

Registriert: 12.07.2002, 21:37
Beiträge: 12
Wohnort: Neu-Ulm
ja schon klar, aber habe 2 tage kaum gepennt, da kann sowas schon passieren oder??????? :o :evil:


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 13.07.2002, 16:25 

Registriert: 12.07.2002, 21:37
Beiträge: 12
Wohnort: Neu-Ulm
so habe mal diese plugin_multivotemap gesaugt, mal sehen ob es unsern admins passt was ich den da anschleppe! :D. axo sir hast du icq, wenn ja schreibe mir mal bitte.

THX [ViT]-=]Wanted[=-

P.S. meine icq #131023761


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 13.07.2002, 17:34 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
ich habe das multivote plugin erweitert und ein plugin vote-for-it draus gemacht.

Man kann damit als admin neben dem multimap-voting auch ein vote für extend, ff, chasecam, gravity, no awp und pistols only machen.

Wird aber noch ausgebaut, denke ich. Das Aufbau-Prinzip des Plugins ist eigentlich sehr einfach. Das kann eigentlich jeder erweitern, wie er lustig ist.

Probiere es mal aus. Die Befehle für das multimap voting haben sich etwas geändert.

_________________
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: 16.07.2002, 14:00 

Registriert: 31.03.2002, 19:51
Beiträge: 276
Wohnort: Hamburg
Wie kann man das machen, dass die acht maps zum Voten zwei Minuten vor dem Ende der Map automatisch erscheinen? Und kann man das so machen, dass man als Nummer 1 "Map verlängern" und die restlichen sieben nur Maps zum Voten sind? Es müsste dann auch noch eine Sperre drinne sein, damit man nur einmal "Map verlängern" kann.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16.07.2002, 18:14 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Da man zur Zeit nur mit Logd für Adminmod die Zeit richtig auswerten kann, werde ich es ins logd_timerem2 einbauen, um dann das plugin_vote_for_it aufzurufen.
Man braucht dann also beide Plugins.

Da die Auswertung 30 sekunden braucht, wird sie 60 sekunden vor mapchange aufgerufen.

Das heisst aber, dass ich mir noch eine Verzögerung einfallen lassen muss, dass sie nicht zufällig zur Kaufzeit aufgerufen wird. Sonst wird ja irgendwas gewählt.

Muss ich mir mal überlegen. Ins plugin vote_for_it wird aber kein LogD eingebaut. Es soll ein reines AM Plugin bleiben.

_________________
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: 16.07.2002, 21:16 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Ich habe mal das logd_timerem2 ergänzt, so dass in den letzten 60 sek. der Befehl amin_vote_maps ausgeführt wird. Aber in der (listen)server.cfg muss admin_vote_autostart schon auf 1 stehen, damit es ausgeführt wird.

Bzw. wird ein mögliches Kaufen am Rundeanfang abgewartet und dann der Befehl admin_vote_maps ausgeführt.

Ihr müsst natürlich selber darauf achten, das auch maps in der mapvote.ini angelegt sind!!!

_________________
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: 16.07.2002, 21:23 

Registriert: 31.03.2002, 19:51
Beiträge: 276
Wohnort: Hamburg
Ja Kewl, so etwas hatte ich gesucht...thx :)

P.S. Seit wann kann man hier denn Sachen uploaden?
Komisch ist mir irgendwie nie aufgefallen, dass man das kann :-?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 17.07.2002, 16:40 

Registriert: 31.03.2002, 19:51
Beiträge: 276
Wohnort: Hamburg
Ist das Plugin dann auch auf alle Vote-Plugins abgerichtet? Also ich habe jetzt mein optimales Vote-Plugin gefunden (plugin_map_random) und ich würde es auch gerne angepasst haben! Ich habe das Plugin "logd_timeleft" einmal ausprobiert und es funktioniert noch wunderbar. Wenn ich jetzt "admin_restartround 10" mache, dann ändert sich die Zeitangabe im Chat auch richtig und fängt von vorne an. Jetzt habe ich nur noch das Problem mit dem Voteplugin, da sich dieses Plugin irgendwie nicht an die neue Zeit richtet, sondern die "alte" von "admin_timeleft" benutzt. Das heißt, dass der Map Vote schon so ziemlich in der Mitte kommt, da ja die Map eigentlich gleich zu ende wäre, doch ich habe ja "admin_restartround" eingegeben und es beginnt von vorne. Kann man also das Vote-Plugin irgendwie auf die "chat"-Timelefteingabe abstimmen?

P.S.Wenn ich die "SMA" posten soll, dann sagt bescheid! :)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 17.07.2002, 19:13 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
nochmal kurz:

1. plugin_timeleft und plugin_logd_timerem2 sind 2 verschiedene Sachen.

2. logd_timerem2 läuft automatisch, plugin_timeleft per chateingabe "timeleft".

3. Das Plugin vote_for_it wird in der oben geposteten Version vom logd_timerem2 bei 60 sekunden aufgerufen.

4. Das logd_timerem2 soll eben auch admin_restardround mitbekommen und somit den vote des plugins vote_for_it (admin_vote_maps) immer richtig starten.(wenn das logd_timerem2 nicht die korrekte Zeit mehr anzeigt, bitte melden. Bekannter Bug: den Server pausieren lassen)

5. das plugin_hldsld_mapvote ist abzuschalten. Ebenso funktioniert das plugin_random_map nicht korrekt. Diese beiden Plugins arbeiten mit der internen Adminmod timeleft()-Funktion, die für CS "nicht richtig" geht.

6. Auf das plugin_timeleft kann nicht reagiert werden, bzw. die Votes können nicht darauf abgestimmt werden. Man erhält keine Wertrückgabe. Es erscheint nur am Bildschirm, da es eine interne CS-Funktion ist, die durch das Plugin einfach bei jedem ausgeführt wird.

7. Bin zur Zeit zu faul, jedes Vote Plugin auf das logd_timerem2 anzupassen. Vielleicht hat ja ein anderer Lust.

_________________
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: 17.07.2002, 21:54 

Registriert: 31.03.2002, 19:51
Beiträge: 276
Wohnort: Hamburg
Nun gut ich habe dann jetzt dein logd-timerem2 und das Plugin vote-for-it installiert. Zur Nebeninfo, ich habe nicht das Plugin-Timeleft drauf, sondern immer noch das logd-Timeleft von www.adminmod-hilfe.de drauf. Was ich sehr Schade finde, ist wie du es geschrieben hast, dass dieses map-random nicht richtig funktioniert! Na gut ich mache jetzt halt dein vote-for-it rauf und werde mal sehen, wie es ist. Was ich beim map-random so gut fand, ist dass jeder vote wohl durch Zufall irgendwelche Maps aus der Mapcycle.txt zum Voten entnommen hat. Geht das auch mit deinem? Wenn ich zum Beispiel nur fünf Maps in die "mapvote.ini" eintrage, dann kann er doch nicht wählen oder (ich meine per Zufall)? Kann man das nicht so machen, dass dein Plugin sich per Zufall bei jedem neuen Vote seine Maps raussuchen kann? Ich habe ja leider keine Ahnung wie es dieses map-random gemacht hat. Ich weiß, ich weiß, du hast genug andere Sorgen, doch bitteeee.... :)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 17.07.2002, 22:05 

Registriert: 31.03.2002, 19:51
Beiträge: 276
Wohnort: Hamburg
AN ALLE, HAT JEMAND VIELLEICHT LUST DAS PLUGIN "MAP_RANDOM" AN DAS PLUGIN "LOGD_TIMEREM2" ANZUPASSEN? BITTE

Hier die "SMA" vom Plugin MAP-RANDOM:
Code:
/* This plugin will bring up a vote for 5 random maps at the end of the round 
   This is a direct replacement for plugin_hldsld_mapvote.sma.  It will use all
   of the cvar settings for that plugin.  It is *highly* recommended you remove
   that plugin if you are running this one. 
   
   Idea for this plugin, all features, and testing done by Platinum of gamesniffer.com:27015 
   Go there to see it in action! */

/* $Id: plugin_map_random.sma,v 1.3 2002/02/21 yensid $ */

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

#define ACCESS_VOTE_MAPS 1
#define ACCESS_CONTROL_VOTE 2

/* The number of maps to store in memory so they can't be voted for again. 
   Feel free to change this.  Note that this number must be half or less
   than the maximum number of maps you have in your maps.ini. */
#define MAX_DENY_MAP 5

/* The number of maps to vote for.
   Do not change this without changing the vote() function lines! */
#define MAX_MAPS 5


enum VoteStatus {
	VoteInProgress,		/* Voting is allowed */
	VoteNotBegun,		/* Voting not allowed - no vote in progress, but a vote may be called */
	MapStart,		/* Voting not allowed - map just began */
	VoteFinished		/* Voting not allowed - vote just finished */
}

new STRING_VERSION[MAX_DATA_LENGTH] = "2.50.26";

new VoteStatus:MapVoteStatus = MapStart;

new ExtendCount = 0;
new ExtendMapTime = 0;
new DenyMaps[MAX_DENY_MAP][MAX_NAME_LENGTH];
new VoteMaps[MAX_MAPS][MAX_NAME_LENGTH];
new Deny_Map_Count;

public admin_startvote(HLCommand,HLData,HLUserName,UserIndex) {
	new Maps[MAX_DATA_LENGTH];
	new Data[MAX_DATA_LENGTH];
	convert_string(HLData,Data,MAX_DATA_LENGTH);
	strbreak(Data, Data, Maps, MAX_DATA_LENGTH);
	StartVoteHelper(0, Data);
	return PLUGIN_HANDLED;
}

public AllowMapVote(Timer,Repeat,HLUser,HLParam) {
	MapVoteStatus = VoteNotBegun;
}

/* removed in 1.3 to use new changelevel function
public ChangeMap(Timer,Repeat,HLUser,HLParam) {
	new NewMap[MAX_NAME_LENGTH];
	
	convert_string(HLParam,NewMap,MAX_NAME_LENGTH);
	if(strlen(NewMap) != 0) {
		changelevel(NewMap);
	}
}
*/

public ExtendMap(Timer,Repeat,HLUser,HLParam) {
	new iFreq = getvar("admin_vote_freq");
	new ExecCommand[MAX_DATA_LENGTH];
	new Timelimit = 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); 
	}
	if(getvar("admin_vote_autostart") != 0) {
		/* Call for a vote five minutes before map ends */
		set_timer("StartMapVote", (ExtendMapTime - 5) * 60, 1, "");
	}
}

public FixVoteFreq(Timer,Repeat,HLUser,HLParam) {
	new strVoteAllow[MAX_NUMBER_LENGTH];
	new Cmd[MAX_DATA_LENGTH];
	
	convert_string(HLParam,strVoteAllow,MAX_NUMBER_LENGTH);
	snprintf(Cmd, MAX_TEXT_LENGTH, "vote_freq &s", strVoteAllow);
	exec(Cmd);
}

/* 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;
}

/* Handle a map vote's results. */
public HandleMapVote(WinningOption,HLMap,VoteCount,UserCount) {
	new strNumber[MAX_NUMBER_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new iMap = WinningOption - 1;
	new ChatTime = getvar("mp_chattime");
	
	new Ratio = getvar("admin_vote_ratio");
	if (VoteCount >= Ratio*UserCount/100) {
		if (WinningOption == 6) {
			new iExtend = GetExtendTime();
			snprintf(Text, MAX_TEXT_LENGTH, "Voting is now over. The map will be extended for %i more minutes.", iExtend);
			say(Text);
			set_timer("ExtendMap",2,1);
		} else {
			new strDeny_Map_Count[MAX_NUMBER_LENGTH];
			new Key[MAX_COMMAND_LENGTH]
			get_serverinfo("Deny_Map_Count", strDeny_Map_Count, MAX_NUMBER_LENGTH);
			Deny_Map_Count = strtonum(strDeny_Map_Count);
			if (Deny_Map_Count >= MAX_DENY_MAP) {
				Deny_Map_Count = 0;
			}
			snprintf(Key, MAX_NAME_LENGTH, "deny_map_%i", Deny_Map_Count);
			set_serverinfo(Key, VoteMaps[iMap]);
			Deny_Map_Count++;
			numtostr(Deny_Map_Count, strDeny_Map_Count);
			set_serverinfo("Deny_Map_Count", strDeny_Map_Count);
			snprintf(Text, MAX_TEXT_LENGTH, "Changing map to %s due to vote.", VoteMaps[iMap]);
			say(Text);
			if (ChatTime < 5) {
				exec("mp_chattime 5");
			}
			// added in 1.3:
			changelevel( VoteMaps[iMap], 5 );
/* removed in 1.3 to use new changelevel function
			exec("mp_timelimit 1");
			set_timer("ChangeMap",2,1,VoteMaps[iMap]);
*/
		}
	} else {
		numtostr(Ratio*UserCount/100,strNumber);
		snprintf(Text, MAX_TEXT_LENGTH, "Map vote succeeded, but not enough votes for change (needed %s)", strNumber);
		say(Text);
	}
	MapVoteStatus = VoteFinished;
}

public HandleSay(HLCommand,HLData,HLUserName,UserIndex) {
	new Data[MAX_DATA_LENGTH];
	
	convert_string(HLData,Data,MAX_DATA_LENGTH);

	strstripquotes(Data);
	if (strmatch(Data, "rockthevote", 11)==1 || strmatch(Data, "mapvote", 7)==1) {
		new Maps[MAX_DATA_LENGTH];
		strbreak(Data, Data, Maps, MAX_DATA_LENGTH);
		StartVoteHelper(1, Maps);
	}
	return PLUGIN_CONTINUE;
}

public StartMapVote(Timer,Repeat,HLUser,HLParam) {
	new Extend = 0;
	new iMaxExtend = getvar("admin_vote_maxextend");
	new LoadFile[MAX_NAME_LENGTH];
	new MapFileSize;
	new MapLine;
	new Key[MAX_NAME_LENGTH];
	new iExtend = GetExtendTime();
	new Target[MAX_NAME_LENGTH];
	new MaxPlayers = maxplayercount();
	new VoteAllow = getvar("vote_freq");
	new strVoteAllow[MAX_NUMBER_LENGTH];
	new Match;
	new Data[MAX_DATA_LENGTH];
	new Map[MAX_MAPS][MAX_NAME_LENGTH];
	
	convert_string(HLParam,Data,MAX_DATA_LENGTH);
	
	if(MapVoteStatus==VoteInProgress) {
		return PLUGIN_HANDLED;
	}
	MapVoteStatus = VoteInProgress;
	if (strlen(Data)!=0) {
		strcpy(Map[0], Data, MAX_DATA_LENGTH);
		for (new i = 0; i < MAX_MAPS; ++i) {
			if (strlen(Map[i])!=0) {
				strbreak(Map[i], Map[i], Map[i+1], MAX_DATA_LENGTH);
			}
		}
	}
			
	getstrvar("maps_file", LoadFile, MAX_NAME_LENGTH);
	if ((strlen(LoadFile)==0) || (streq(LoadFile, "0")==1)) {
		strcpy(LoadFile, "mapcycle.txt", 13);
	}
	if(ExtendCount < iMaxExtend || iMaxExtend == 0) {
		Extend = 1;
	}
	MapFileSize = filesize(LoadFile);
	if (MapFileSize >= MAX_DENY_MAP * 2) {
		for (new i = 0; i < MAX_DENY_MAP; ++i) {
			snprintf(Key, MAX_NAME_LENGTH, "deny_map_%i", i);
			get_serverinfo(Key, DenyMaps[i], MAX_NAME_LENGTH);
		}
	} else {
		log ("Cannot restrict maps in map vote because MAX_DENY_MAP is greater than or equal to half the number of maps.");
		return PLUGIN_HANDLED;
	}
	if (vote_allowed()!=1) {
		exec("vote_freq 1");
		numtostr(VoteAllow, strVoteAllow);
		set_timer("FixVoteFreq", 10, 1, "strVoteAllow");
	}
	for (new i = 0; i < MAX_MAPS; ++i) {
		Match = 1;
		while(Match == 1) {
			Match = 0;
			if (valid_map(Map[i])!=1) {
				MapLine = random(MapFileSize);
				readfile(LoadFile, VoteMaps[i], MapLine, MAX_TEXT_LENGTH);
			} else {
				strcpy(VoteMaps[i], Map[i], MAX_NAME_LENGTH);
				strinit(Map[i]);
			}
			for (new j = 0; j < MAX_DENY_MAP; ++j) {
				if ((streq(VoteMaps[i], DenyMaps[j])==1)||(streq(VoteMaps[i], "")==1)) {
					Match = 1;
				} else {
					if (i > 0) {
						for (new k = 0; k < i; ++k) {
							if (streq(VoteMaps[i], VoteMaps[k])==1) {
								Match = 1;
							}
						}
					}
				}
			}
		}
	}
	for (new i=1; i<=MaxPlayers; i++) {
		strinit(Target);
		if(playerinfo(i,Target,MAX_NAME_LENGTH)==1) {
			execclient(Target,"speak gman/gman_choose1");
		}
	}
	if (Extend == 1) {
		new strExtend[MAX_NUMBER_LENGTH];
		snprintf(strExtend, MAX_NUMBER_LENGTH, "Extend by %i", iExtend);
		vote("Change map to:", VoteMaps[0], VoteMaps[1], VoteMaps[2], VoteMaps[3], VoteMaps[4], strExtend, "HandleMapVote", LoadFile);
	} else {
		vote("Change map to:", VoteMaps[0], VoteMaps[1], VoteMaps[2], VoteMaps[3], VoteMaps[4], "HandleMapVote", LoadFile);
	}
	return PLUGIN_HANDLED;
}

StartVoteHelper(Public = 0, Maps[]) {
	new Text[MAX_TEXT_LENGTH];
	
	if (check_auth(ACCESS_VOTE_MAPS) == 0) {
		reject_message(Public);
		return PLUGIN_HANDLED;
	}
	
	if (getvar("admin_vote_freq") <= 0) {
		if (check_auth(ACCESS_CONTROL_VOTE) == 0) {
			reject_message(Public);
			return PLUGIN_HANDLED;
		}
	}

	if (MapVoteStatus==VoteInProgress) {
		strcpy(Text,"A map vote is already in progress.",MAX_TEXT_LENGTH);
	} else if (MapVoteStatus==VoteNotBegun) {
		set_timer("StartMapVote", 1, 1, Maps);
		return PLUGIN_HANDLED;
	} else if (MapVoteStatus==MapStart) {
		new iFreq = getvar("admin_vote_freq") / 60;
		snprintf(Text,MAX_TEXT_LENGTH,"A map vote is not allowed within %i minutes of the map start.",iFreq);
	} else if (MapVoteStatus==VoteFinished) {
		new iFreq = getvar("admin_vote_freq") / 60;
		snprintf(Text,MAX_TEXT_LENGTH,"A map vote is not allowed within %i minutes of a previous vote.",iFreq);
	} else {
		strcpy(Text,"Oops.  Apparently, there's an unhandled map vote status here.",MAX_TEXT_LENGTH);
	}
	if (Public == 0) {
		selfmessage(Text);
	} else {
		say(Text);
	}
	return PLUGIN_HANDLED;
}

public plugin_init() {
	plugin_registerinfo("Admin Random Map Vote Plugin","Runs a vote for random maps at the end of the round.",STRING_VERSION);
	
	plugin_registercmd("admin_startvote","admin_startvote",ACCESS_VOTE_MAPS,"admin_startvote [<mapnames>]: Starts a random map vote.  Optionally, include mapnames.");
	plugin_registercmd("say","HandleSay",ACCESS_ALL);
	plugin_registerhelp("say",ACCESS_VOTE_MAPS,"say mapvote [<mapnames>]: Starts a random map vote.  Optionally, include mapnames.");
	plugin_registerhelp("say",ACCESS_VOTE_MAPS,"say rockthevote [<mapnames>]: Starts a random map vote.  Optionally, include mapnames.");
	
	new iFreq = getvar("admin_vote_freq");
	new intTimeLimit = getvar("mp_timelimit") * 60;
	new intTime = timeleft(0);
	
	/* If the map is not yet iFreq seconds in, disable voting until it is */
	MapVoteStatus = MapStart;
	if (iFreq > 0 && intTime > (intTimeLimit - iFreq)) {
		set_timer("AllowMapVote",intTime - (intTimeLimit - iFreq), 1);
	}
	if(getvar("admin_vote_autostart") != 0) {
		if (intTime > 300) {
			/* Call for a vote five minutes before map ends */
			set_timer("StartMapVote", intTime - 300, 1, ""); 
		}
	}
	return PLUGIN_CONTINUE;
}


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 17.07.2002, 22:08 

Registriert: 31.03.2002, 19:51
Beiträge: 276
Wohnort: Hamburg
Und hier ist die "SMA" vom Plugin "LOGD_TIMEREM2", die schon auf das Plugin "vote-for-it" angepasst ist.
Code:
#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>

#define ACCESS_CONSOLE 131072

new STRING_VERSION[MAX_DATA_LENGTH] = "Beta 1.0";

#define MinutesRed 255
#define MinutesGreen 0
#define MinutesBlue 0
#define SecondsRed 255
#define SecondsGreen 255
#define SecondsBlue 255

new GameCommencing=0;
new checktime;
new origtimelimit;
new timer;
new Map[MAX_NAME_LENGTH];

/*--- Für mapvoting des plugins vote_for_it ---*/
new votetimer;
new voteallowed;

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);
                }
		voteallowed=0;
		set_timer("check_vote",20,0);
        }
        return PLUGIN_CONTINUE;
}
public warn(Timer,Repeat,HLUser,HLParam)
{
        new a;
        new time;
        new Msg[MAX_TEXT_LENGTH];
	
                
        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 bis zum Mapchange!",12,MinutesRed,MinutesGreen,MinutesBlue);
                        a = 300;
                }
                case 1500:{
                        execclient_all("speak ^"fvox/twenty five minutes remaining^"");
                        centersay("25 Minuten bis zum Mapchange!",12,MinutesRed,MinutesGreen,MinutesBlue);
                        a = 300;
                }
                case 1200:{
                        execclient_all("speak ^"fvox/twenty minutes remaining^"");
                        centersay("20 Minuten bis zum Mapchange!",12,MinutesRed,MinutesGreen,MinutesBlue);
                        a = 300;
                }
                case 900:{
                        execclient_all("speak ^"fvox/fifteen minutes remaining^"");
                        centersay("15 Minuten bis zum Mapchange!",12,MinutesRed,MinutesGreen,MinutesBlue);
                        a = 300;
                }
                case 600:{
                        execclient_all("speak ^"fvox/ten minutes remaining^"");
                        centersay("10 Minuten bis zum Mapchange!",12,MinutesRed,MinutesGreen,MinutesBlue);
                        a = 300;
                }
                case 300:{
                        execclient_all("speak ^"fvox/five minutes remaining^"");
                        centersay("5 Minuten bis zum Mapchange!",12,MinutesRed,MinutesGreen,MinutesBlue);
                        a = 180;
                }
                case 120:{
                        execclient_all("speak ^"fvox/two minutes remaining^"");
                        centersay("2 Minuten bis zum Mapchange!",12,MinutesRed,MinutesGreen,MinutesBlue);
                        a = 60;
                }
                case 60:{
                        execclient_all("speak ^"fvox/sixty seconds remaining^"");
                        centersay("60 Sekunden bis zum Mapchange!",12,SecondsRed,SecondsGreen,SecondsBlue);
			votetimer=set_timer("do_vote",1,99999);
                        a = 30;
                }
                case 30:{
                        execclient_all("speak ^"fvox/thirty seconds remaining^"");
                        centersay("30 Sekunden bis zum Mapchange!",12,SecondsRed,SecondsGreen,SecondsBlue);
                        a = 20;
                }
                case 10:{
                        execclient_all("speak ^"fvox/ten^"");
                        centersay("TEN!",12,SecondsRed,SecondsGreen,SecondsBlue);
                        a = 1;
                }
                case 9:{
                        execclient_all("speak ^"fvox/nine^"");
                        centersay("NINE!",12,SecondsRed,SecondsGreen,SecondsBlue);
                        a = 1;
                }
                case 8:{
                        execclient_all("speak ^"fvox/eight^"");
                        centersay("EIGHT!",12,SecondsRed,SecondsGreen,SecondsBlue);
                        a = 1;
                }
                case 7:{
                        execclient_all("speak ^"fvox/seven^"");
                        centersay("SEVEN!",12,SecondsRed,SecondsGreen,SecondsBlue);
                        a = 1;
                }
                case 6:{
                        execclient_all("speak ^"fvox/six^"");
                        centersay("SIX!",12,SecondsRed,SecondsGreen,SecondsBlue);
                        a = 1;
                        nextmap( Map, MAX_NAME_LENGTH );
                }       
                case 5:{
                        execclient_all("speak ^"fvox/five^"");
                        snprintf(Msg,MAX_TEXT_LENGTH,"FIVE! ^nNext Map:%s",Map);
                        centersay(Msg,12,SecondsRed,SecondsGreen,SecondsBlue);
                        a = 1;
                }       
                case 4:{
                        execclient_all("speak ^"fvox/four^"");
                        snprintf(Msg,MAX_TEXT_LENGTH,"FOUR! ^nNext Map:%s",Map);
                        centersay(Msg,12,SecondsRed,SecondsGreen,SecondsBlue);
                        a = 1;
                }       
                case 3:{
                        execclient_all("speak ^"fvox/three^"");
                        snprintf(Msg,MAX_TEXT_LENGTH,"THREE! ^nNext Map:%s",Map);
                        centersay(Msg,12,SecondsRed,SecondsGreen,SecondsBlue);
                        a = 1;
                }       
                case 2:{
                        execclient_all("speak ^"fvox/two^"");
                        snprintf(Msg,MAX_TEXT_LENGTH,"TWO! ^nNext Map:%s",Map);
                        centersay(Msg,12,SecondsRed,SecondsGreen,SecondsBlue);
                        a = 1;
                }       
                case 1:{
                        execclient_all("speak ^"fvox/one^"");
                        snprintf(Msg,MAX_TEXT_LENGTH,"ONE! ^nNext Map:%s",Map);
                        centersay(Msg,12,SecondsRed,SecondsGreen,SecondsBlue);
                        a = 1;
                }
                case 0:{
                        execclient_all("speak ^"have a nice day^"");
                        snprintf(Msg,MAX_TEXT_LENGTH,"Game Over!^nChanging Map to:%s",Map);
                        centersay(Msg,12,SecondsRed,SecondsGreen,SecondsBlue);
                        say(Msg);
                        changelevel(Map,5);
                }
                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;
                        }
                }
        }
        execclient_all("timeleft");/*Debug-Funktion, um zu sehen, ob das Announcing stimmt*/
        /*
        new Msg[MAX_TEXT_LENGTH];
        snprintf(Msg,MAX_TEXT_LENGTH,"Naechste Timer in %i Sekunden",a);
        say(Msg);
        */
        timer=set_timer("warn",a, 0);
        return PLUGIN_CONTINUE;
}
public check_vote(Timer,Repeat,HLUser,HLParam)
{
	voteallowed=1;
	return PLUGIN_CONTINUE;
}

public do_vote(Timer,Repeat,HLUser,HLParam)
{
	if (voteallowed==1){
		kill_timer(votetimer);
		if(getvar("admin_vote_autostart")==1){
			plugin_exec("admin_vote_maps","");
		}
	}
	return PLUGIN_CONTINUE;
}


public plugin_init(){
        plugin_registerinfo("Ein Timeremember auf LogD-Basis","",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;
}
P.S. Ich hoffe das geht klar, dass ich die beiden "sma's" hier gepostet habe! :oops:


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.07.2002, 12:01 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Ich hatte mal einen Map-Randomizer. War ziemlich einfach, aber funktionierte. Man musste lediglich eine ranmaps.ini anlegen, in der die Maps dann wie in der mapcycle.txt geschrieben werden.

Alles ohne Gewähr auf Funktion. Ist nicht meine Code:
Code:
/*
* Bud-froggy Productions -- July 17th, 2001
* Map Randomizer®
* 
* 
*/


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


new STRING_VERSION[MAX_DATA_LENGTH] = "2.50.0";

new success = 0;


randomize() {
	new i;
	new iLines;
	
	new Map[MAX_DATA_LENGTH];
	new CurrentMap[MAX_DATA_LENGTH];
	
	if(!getvar("file_access_read")) {
		say("[ADMIN] Map Randomizer: file_access_read ist ausgeschaltet.");
		return PLUGIN_FAILURE;
	} else if(!getvar("file_access_write")) {
		say("[ADMIN] Map Randomizer: file_access_write ist ausgeschaltet.");
		return PLUGIN_FAILURE;
	} else if(!fileexists("ranmaps.ini")) {
		say("[ADMIN] Map Randomizer: ranmaps.ini existiert nicht.");
		return PLUGIN_FAILURE;
	} else if(!filesize("ranmaps.ini")) {
		say("[ADMIN] Map Randomizer: ranmaps.ini ist leer.");
		return PLUGIN_FAILURE;
	}	
	resetfile("mapcycle.txt");
	iLines = filesize("ranmaps.ini");
	
	
	currentmap(CurrentMap,MAX_DATA_LENGTH);
	writefile("mapcycle.txt",Map,0);
		
	new iRandom = random(iLines);
	readfile("ranmaps.ini", Map, iRandom, MAX_DATA_LENGTH);
	writefile("mapcycle.txt", Map,1);
	
	for(i = 0; i <= iLines; i++) {
		if(i == iRandom)
			continue;
		else {
			readfile("ranmaps.ini", Map, i, MAX_DATA_LENGTH);
			if(strcmp(CurrentMap, Map) == 0)
				continue;
			writefile("mapcycle.txt", Map, (i + 2));
		} 
	}
	
	return PLUGIN_HANDLED;
}

public plugin_init() {
	plugin_registerinfo("Map Radomizer","Randomizes the weighted mapcycle at the beginning of every round.",STRING_VERSION);

	
	new intTimeLimit = getvar("mp_timelimit") * 60;
	new intTime = timeleft(0);
	
	
	if (intTime < intTimeLimit) {
		if(!success) {
			randomize();
			success = 1;
		}
		
	}
	
	return PLUGIN_CONTINUE;
}

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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.07.2002, 14:30 

Registriert: 31.03.2002, 19:51
Beiträge: 276
Wohnort: Hamburg
@SDal

Ich habe nur noch zwei Wünsche (und es könnten auch nur Wünsche bleiben) :wink:

1. Kann man eine Map aus dem Multivote wegnehmen und stattdessen "map verlängern" einbauen?

2. Kann man das so machen, dass sich der Multivote aus "einer" Mapcycle die Maps per Zufall raussucht?

(immer die acht gleichen Maps zur Auswahl ist irgendwie langweilig :-?

So der ganze Rest hat sich erledigt! :)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.07.2002, 17:18 

Registriert: 31.03.2002, 19:51
Beiträge: 276
Wohnort: Hamburg
OK das erste hat sich erledigt, hab es nur übersehen...sorry :wink:

So jetzt habe ich aber noch einen Fehler!

In der letzten Minute einer Map erscheint nicht der Vote..hm mache ich was falsch? :-?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.07.2002, 17:46 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
1. Du hast ja mehrere Befehle für das mapvoting system.

admin_vote_maplist zeigt Dir Die maps in der mapvote.ini innerhalb CS an.

mit admin_vote_mapdel löschst Du die Liste.

mit admin_vote_mapadd fügst Du der Liste eine map hinzu. Du kannst also schön mischen. Musst es aber manuell machen.

2. Komisch. Bei mir macht er es einwandfrei. Hoffe, es ist auch noch jemand auf dem Server und Du nicht nur alleine. Das könnte ein Grund sein, warum es nicht funktioniert. Der andere Grund, den ich Dir aber jetzt nicht unterstellen will, ist, dass das Plugin vote_for_it nicht richtig installiert ist.

Aber so auf anhieb fällt mir da nix ein.... Achso...Wenn die Runde bei 60 sekunden neu anfängt, gibt es eine Verzögerung von 15 sekunden, damit auch ein ordentlicher Vote stattfinden kann.

_________________
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: 18.07.2002, 20:00 

Registriert: 31.03.2002, 19:51
Beiträge: 276
Wohnort: Hamburg
Ist zwar Schade das es nicht per Zufall welche rausfischt, aber was solls...macht nichts (per Hand geht dann auch noch :wink: ). Ich habe den Fehler behoben (lag an meinem Waffenwechselscript, es benutzt indirekt die Tasten 1 und 2). Das heißt, bei jedem schnellen Waffenwechsel von prim auf sek. hat er 1 und 2 benutzt und so ganz schnell für mich gevotet. Da muss ich wohl schnell was ändern. :lol:


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 21 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 ]"