UWAGA
W związku z upgrade'em Forum Wiaderko do vB 4.x ewentualne błędy i nieprawidłowości proszę zgłaszać w tym temacie
Serwery Counter Strike 1.6 wiaderko.com

HashJama [TP] 193.33.176.148:27015 status serwera HashJama [TP] połącz

HashJama [FFA] 193.33.176.188:27015status serwera HashJama [FFA] połącz

HashJama [DM] 193.33.176.53:27015status serwera HashJama [DM] połącz

HashJama [Aim Hs] 193.33.176.15:27015status serwera HashJama [Aim Hs] połącz

HashJama [Flags] 193.33.176.111:27015status serwera HashJama  [Flags] połącz

HashJama [AWP/HG DM] 193.33.176.50:27015status serwera HashJama [AWP/HG DM] 193.33.176.50:27015 połącz

HashJama [TP #2] 193.33.176.54:27015status serwera HashJama [TP #2] 193.33.176.54:27015 połącz

wiaderko.com [Ventrilo] v1.svoice.pl:6416status serwera wiaderko.com [Ventrilo]

SPONSOR:
pukawka.pl

Wątek: Mapchooser.amxx lub nextmap.amxx

Pokaż wyniki od 1 do 16 z 16
  1. #1 Mapchooser.amxx lub nextmap.amxx 
    el Wymiataczos Awatar Executor
    Dołączył
    May 2009
    Wiek
    15
    Posty
    696
    Witam mam problem z konfiguracją mapchoosera lub nextmap.amxx.
    Chciałbym by wybór mapy wyskakiwał 2 minuty przed zakończeniem servera (20 min trwa mapa). Nie wiem który jest za to odpowiedzialny(podejrzewam że mapchooser.
    Oto plik mapchooser.sma
    Kod:
    /* AMX Mod X
    *   Nextmap Chooser Plugin
    *
    * by the AMX Mod X Development Team
    *  originally developed by OLO
    *
    * This file is part of AMX Mod X.
    *
    *
    *  This program is free software; you can redistribute it and/or modify it
    *  under the terms of the GNU General Public License as published by the
    *  Free Software Foundation; either version 2 of the License, or (at
    *  your option) any later version.
    *
    *  This program is distributed in the hope that it will be useful, but
    *  WITHOUT ANY WARRANTY; without even the implied warranty of
    *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    *  General Public License for more details.
    *
    *  You should have received a copy of the GNU General Public License
    *  along with this program; if not, write to the Free Software Foundation,
    *  Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
    *
    *  In addition, as a special exception, the author gives permission to
    *  link the code of this program with the Half-Life Game Engine ("HL
    *  Engine") and Modified Game Libraries ("MODs") developed by Valve,
    *  L.L.C ("Valve"). You must obey the GNU General Public License in all
    *  respects for all of the code used other than the HL Engine and MODs
    *  from Valve. If you modify this file, you may extend this exception
    *  to your version of the file, but you are not obligated to do so. If
    *  you do not wish to do so, delete this exception statement from your
    *  version.
    */
    
    #include <amxmodx>
    #include <amxmisc>
    
    #define SELECTMAPS  5
    
    #define charsof(%1) (sizeof(%1)-1)
    
    new Array:g_mapName;
    new g_mapNums;
    
    new g_nextName[SELECTMAPS]
    new g_voteCount[SELECTMAPS + 2]
    new g_mapVoteNum
    new g_teamScore[2]
    new g_lastMap[32]
    
    new g_coloredMenus
    new bool:g_selected = false
    
    public plugin_init()
    {
    	register_plugin("Nextmap Chooser", AMXX_VERSION_STR, "AMXX Dev Team")
    	register_dictionary("mapchooser.txt")
    	register_dictionary("common.txt")
    	
    	g_mapName=ArrayCreate(32);
    	
    	new MenuName[64]
    	
    	format(MenuName, 63, "%L", "en", "CHOOSE_NEXTM")
    	register_menucmd(register_menuid(MenuName), (-1^(-1<<(SELECTMAPS+2))), "countVote")
    	register_cvar("amx_extendmap_max", "90")
    	register_cvar("amx_extendmap_step", "15")
    
    	if (cstrike_running())
    		register_event("TeamScore", "team_score", "a")
    
    	get_localinfo("lastMap", g_lastMap, 31)
    	set_localinfo("lastMap", "")
    
    	new maps_ini_file[64]
    	get_configsdir(maps_ini_file, 63);
    	format(maps_ini_file, 63, "%s/maps.ini", maps_ini_file);
    	
    	if (!file_exists(maps_ini_file))
    		get_cvar_string("mapcyclefile", maps_ini_file, 63)
    	if (loadSettings(maps_ini_file))
    		set_task(18.0, "voteNextmap", 987456, "", 0, "b")
    
    	g_coloredMenus = colored_menus()
    	
    }
    
    public checkVotes()
    {
    	new b = 0
    	
    	for (new a = 0; a < g_mapVoteNum; ++a)
    		if (g_voteCount[b] < g_voteCount[a])
    			b = a
    
    	
    	if (g_voteCount[SELECTMAPS] > g_voteCount[b]
    	    && g_voteCount[SELECTMAPS] > g_voteCount[SELECTMAPS+1])
    	{
    		new mapname[32]
    		
    		get_mapname(mapname, 31)
    		new Float:steptime = get_cvar_float("amx_extendmap_step")
    		set_cvar_float("mp_timelimit", get_cvar_float("mp_timelimit") + steptime)
    		client_print(0, print_chat, "%L", LANG_PLAYER, "CHO_FIN_EXT", steptime)
    		log_amx("Vote: Voting for the nextmap finished. Map %s will be extended to next %.0f minutes", mapname, steptime)
    		
    		return
    	}
    	
    	new smap[32]
    	if (g_voteCount[b] && g_voteCount[SELECTMAPS + 1] <= g_voteCount[b])
    	{
    		ArrayGetString(g_mapName, g_nextName[b], smap, charsof(smap));
    		set_cvar_string("amx_nextmap", smap);
    	}
    
    	
    	get_cvar_string("amx_nextmap", smap, 31)
    	client_print(0, print_chat, "%L", LANG_PLAYER, "CHO_FIN_NEXT", smap)
    	log_amx("Vote: Voting for the nextmap finished. The nextmap will be %s", smap)
    }
    
    public countVote(id, key)
    {
    	if (get_cvar_float("amx_vote_answers"))
    	{
    		new name[32]
    		get_user_name(id, name, 31)
    		
    		if (key == SELECTMAPS)
    			client_print(0, print_chat, "%L", LANG_PLAYER, "CHOSE_EXT", name)
    		else if (key < SELECTMAPS)
    		{
    			new map[32];
    			ArrayGetString(g_mapName, g_nextName[key], map, charsof(map));
    			client_print(0, print_chat, "%L", LANG_PLAYER, "X_CHOSE_X", name, map);
    		}
    	}
    	++g_voteCount[key]
    	
    	return PLUGIN_HANDLED
    }
    
    bool:isInMenu(id)
    {
    	for (new a = 0; a < g_mapVoteNum; ++a)
    		if (id == g_nextName[a])
    			return true
    	return false
    }
    
    public voteNextmap()
    {
    	new winlimit = get_cvar_num("mp_winlimit")
    	new maxrounds = get_cvar_num("mp_maxrounds")
    	
    	if (winlimit)
    	{
    		new c = winlimit - 2
    		
    		if ((c > g_teamScore[0]) && (c > g_teamScore[1]))
    		{
    			g_selected = false
    			return
    		}
    	}
    	else if (maxrounds)
    	{
    		if ((maxrounds - 2) > (g_teamScore[0] + g_teamScore[1]))
    		{
    			g_selected = false
    			return
    		}
    	} else {
    		new timeleft = get_timeleft()
    		
    		if (timeleft < 1 || timeleft > 129)
    		{
    			g_selected = false
    			return
    		}
    	}
    
    	if (g_selected)
    		return
    
    	g_selected = true
    	
    	new menu[512], a, mkeys = (1<<SELECTMAPS + 1)
    
    	new pos = format(menu, 511, g_coloredMenus ? "\y%L:\w^n^n" : "%L:^n^n", LANG_SERVER, "CHOOSE_NEXTM")
    	new dmax = (g_mapNums > SELECTMAPS) ? SELECTMAPS : g_mapNums
    	
    	for (g_mapVoteNum = 0; g_mapVoteNum < dmax; ++g_mapVoteNum)
    	{
    		a = random_num(0, g_mapNums - 1)
    		
    		while (isInMenu(a))
    			if (++a >= g_mapNums) a = 0
    		
    		g_nextName[g_mapVoteNum] = a
    		pos += format(menu[pos], 511, "%d. %a^n", g_mapVoteNum + 1, ArrayGetStringHandle(g_mapName, a));
    		mkeys |= (1<<g_mapVoteNum)
    		g_voteCount[g_mapVoteNum] = 0
    	}
    	
    	menu[pos++] = '^n'
    	g_voteCount[SELECTMAPS] = 0
    	g_voteCount[SELECTMAPS + 1] = 0
    	
    	new mapname[32]
    	get_mapname(mapname, 31)
    
    	if ((winlimit + maxrounds) == 0 && (get_cvar_float("mp_timelimit") < get_cvar_float("amx_extendmap_max")))
    	{
    		pos += format(menu[pos], 511, "%d. %L^n", SELECTMAPS + 1, LANG_SERVER, "EXTED_MAP", mapname)
    		mkeys |= (1<<SELECTMAPS)
    	}
    
    	format(menu[pos], 511, "%d. %L", SELECTMAPS+2, LANG_SERVER, "NONE")
    	new MenuName[64]
    	
    	format(MenuName, 63, "%L", "en", "CHOOSE_NEXTM")
    	show_menu(0, mkeys, menu, 15, MenuName)
    	set_task(15.0, "checkVotes")
    	client_print(0, print_chat, "%L", LANG_SERVER, "TIME_CHOOSE")
    	client_cmd(0, "spk Gman/Gman_Choose2")
    	log_amx("Vote: Voting for the nextmap started")
    }
    stock bool:ValidMap(mapname[])
    {
    	if ( is_map_valid(mapname) )
    	{
    		return true;
    	}
    	// If the is_map_valid check failed, check the end of the string
    	new len = strlen(mapname) - 4;
    	
    	// The mapname was too short to possibly house the .bsp extension
    	if (len < 0)
    	{
    		return false;
    	}
    	if ( equali(mapname[len], ".bsp") )
    	{
    		// If the ending was .bsp, then cut it off.
    		// the string is byref'ed, so this copies back to the loaded text.
    		mapname[len] = '^0';
    		
    		// recheck
    		if ( is_map_valid(mapname) )
    		{
    			return true;
    		}
    	}
    	
    	return false;
    }
    
    loadSettings(filename[])
    {
    	if (!file_exists(filename))
    		return 0
    
    	new szText[32]
    	new currentMap[32]
    	
    	new buff[256];
    	
    	get_mapname(currentMap, 31)
    
    	new fp=fopen(filename,"r");
    	
    	while (!feof(fp))
    	{
    		buff[0]='^0';
    		
    		fgets(fp, buff, charsof(buff));
    		
    		parse(buff, szText, charsof(szText));
    		
    		
    		if (szText[0] != ';' &&
    			ValidMap(szText) &&
    			!equali(szText, g_lastMap) &&
    			!equali(szText, currentMap))
    		{
    			ArrayPushString(g_mapName, szText);
    			++g_mapNums;
    		}
    		
    	}
    	
    	fclose(fp);
    
    	return g_mapNums
    }
    
    public team_score()
    {
    	new team[2]
    	
    	read_data(1, team, 1)
    	g_teamScore[(team[0]=='C') ? 0 : 1] = read_data(2)
    }
    
    public plugin_end()
    {
    	new current_map[32]
    
    	get_mapname(current_map, 31)
    	set_localinfo("lastMap", current_map)
    }
    Oto plik nextmap.sma
    Kod:
    /* AMX Mod X
    *   NextMap Plugin
    *
    * by the AMX Mod X Development Team
    *  originally developed by OLO
    *
    * This file is part of AMX Mod X.
    *
    *
    *  This program is free software; you can redistribute it and/or modify it
    *  under the terms of the GNU General Public License as published by the
    *  Free Software Foundation; either version 2 of the License, or (at
    *  your option) any later version.
    *
    *  This program is distributed in the hope that it will be useful, but
    *  WITHOUT ANY WARRANTY; without even the implied warranty of
    *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    *  General Public License for more details.
    *
    *  You should have received a copy of the GNU General Public License
    *  along with this program; if not, write to the Free Software Foundation,
    *  Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
    *
    *  In addition, as a special exception, the author gives permission to
    *  link the code of this program with the Half-Life Game Engine ("HL
    *  Engine") and Modified Game Libraries ("MODs") developed by Valve,
    *  L.L.C ("Valve"). You must obey the GNU General Public License in all
    *  respects for all of the code used other than the HL Engine and MODs
    *  from Valve. If you modify this file, you may extend this exception
    *  to your version of the file, but you are not obligated to do so. If
    *  you do not wish to do so, delete this exception statement from your
    *  version.
    */
    
    #include <amxmodx>
    
    // WARNING: If you comment this line make sure
    // that in your mapcycle file maps don't repeat.
    // However the same map in a row is still valid.
    #define OBEY_MAPCYCLE
    
    new g_nextMap[32]
    new g_mapCycle[32]
    new g_pos
    
    public plugin_init()
    {
    	register_plugin("NextMap", AMXX_VERSION_STR, "AMXX Dev Team")
    	register_dictionary("nextmap.txt")
    	register_event("30", "changeMap", "a")
    	register_clcmd("say nextmap", "sayNextMap", 0, "- displays nextmap")
    	register_clcmd("say currentmap", "sayCurrentMap", 0, "- display current map")
    	register_clcmd("say ff", "sayFFStatus", 0, "- display friendly fire status")
    	register_cvar("amx_nextmap", "", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY)
    
    	new szString[32], szString2[32], szString3[8]
    	
    	get_localinfo("lastmapcycle", szString, 31)
    	parse(szString, szString2, 31, szString3, 7)
    	g_pos = str_to_num(szString3)
    	get_cvar_string("mapcyclefile", g_mapCycle, 31)
    
    	if (!equal(g_mapCycle, szString2))
    		g_pos = 0	// mapcyclefile has been changed - go from first
    
    	readMapCycle(g_mapCycle, g_nextMap, 31)
    	set_cvar_string("amx_nextmap", g_nextMap)
    	format(szString3, 31, "%s %d", g_mapCycle, g_pos)	// save lastmapcycle settings
    	set_localinfo("lastmapcycle", szString3)
    }
    
    getNextMapName(szArg[], iMax)
    {
    	new len = get_cvar_string("amx_nextmap", szArg, iMax)
    	
    	if (ValidMap(szArg)) return len
    	len = copy(szArg, iMax, g_nextMap)
    	set_cvar_string("amx_nextmap", g_nextMap)
    	
    	return len
    }
    
    public sayNextMap()
    {
    	new name[32]
    	
    	getNextMapName(name, 31)
    	client_print(0, print_chat, "%L %s", LANG_PLAYER, "NEXT_MAP", name)
    }
    
    public sayCurrentMap()
    {
    	new mapname[32]
    
    	get_mapname(mapname, 31)
    	client_print(0, print_chat, "%L: %s", LANG_PLAYER, "PLAYED_MAP", mapname)
    }
    
    public sayFFStatus()
    {
    	client_print(0, print_chat, "%L: %L", LANG_PLAYER, "FRIEND_FIRE", LANG_PLAYER, get_cvar_num("mp_friendlyfire") ? "ON" : "OFF")
    }
    
    public delayedChange(param[])
    {
    	set_cvar_float("mp_chattime", get_cvar_float("mp_chattime") - 2.0)
    	server_cmd("changelevel %s", param)
    }
    
    public changeMap()
    {
    	new string[32]
    	new Float:chattime = get_cvar_float("mp_chattime")
    	
    	set_cvar_float("mp_chattime", chattime + 2.0)		// make sure mp_chattime is long
    	new len = getNextMapName(string, 31) + 1
    	set_task(chattime, "delayedChange", 0, string, len)	// change with 1.5 sec. delay
    }
    
    new g_warning[] = "WARNING: Couldn't find a valid map or the file doesn't exist (file ^"%s^")"
    
    stock bool:ValidMap(mapname[])
    {
    	if ( is_map_valid(mapname) )
    	{
    		return true;
    	}
    	// If the is_map_valid check failed, check the end of the string
    	new len = strlen(mapname) - 4;
    	
    	// The mapname was too short to possibly house the .bsp extension
    	if (len < 0)
    	{
    		return false;
    	}
    	if ( equali(mapname[len], ".bsp") )
    	{
    		// If the ending was .bsp, then cut it off.
    		// the string is byref'ed, so this copies back to the loaded text.
    		mapname[len] = '^0';
    		
    		// recheck
    		if ( is_map_valid(mapname) )
    		{
    			return true;
    		}
    	}
    	
    	return false;
    }
    
    #if defined OBEY_MAPCYCLE
    readMapCycle(szFileName[], szNext[], iNext)
    {
    	new b, i = 0, iMaps = 0
    	new szBuffer[32], szFirst[32]
    
    	if (file_exists(szFileName))
    	{
    		while (read_file(szFileName, i++, szBuffer, 31, b))
    		{
    			if (!isalnum(szBuffer[0]) || !ValidMap(szBuffer)) continue
    			
    			if (!iMaps)
    				copy(szFirst, 31, szBuffer)
    			
    			if (++iMaps > g_pos)
    			{
    				copy(szNext, iNext, szBuffer)
    				g_pos = iMaps
    				return
    			}
    		}
    	}
    
    	if (!iMaps)
    	{
    		log_amx(g_warning, szFileName)
    		get_mapname(szFirst, 31)
    	}
    
    	copy(szNext, iNext, szFirst)
    	g_pos = 1
    }
    
    #else
    
    readMapCycle(szFileName[], szNext[], iNext)
    {
    	new b, i = 0, iMaps = 0
    	new szBuffer[32], szFirst[32], szCurrent[32]
    	
    	get_mapname(szCurrent, 31)
    	
    	new a = g_pos
    
    	if (file_exists(szFileName))
    	{
    		while (read_file(szFileName, i++, szBuffer, 31, b))
    		{
    			if (!isalnum(szBuffer[0]) || !ValidMap(szBuffer)) continue
    			
    			if (!iMaps)
    			{
    				iMaps = 1
    				copy(szFirst, 31, szBuffer)
    			}
    			
    			if (iMaps == 1)
    			{
    				if (equali(szCurrent, szBuffer))
    				{
    					if (a-- == 0)
    						iMaps = 2
    				}
    			} else {
    				if (equali(szCurrent, szBuffer))
    					++g_pos
    				else
    					g_pos = 0
    				
    				copy(szNext, iNext, szBuffer)
    				return
    			}
    		}
    	}
    	
    	if (!iMaps)
    	{
    		log_amx(g_warning, szFileName)
    		copy(szNext, iNext, szCurrent)
    	}
    	else
    		copy(szNext, iNext, szFirst)
    	
    	g_pos = 0
    }
    #endif
    Z góry thx!
    Pomogłem? Postaw Gibona
    Nie wiesz jak?:
    Co to gibon i jak go dać
     

  2. #2 Odp: Mapchooser.amxx lub nextmap.amxx 
    Adminus pospolitus
    Dołączył
    Jan 2008
    Wiek
    20
    Posty
    9,226
    Nie wiem jak tam mapchooser bo nie używam, ale inne pluginy tego typu robią voty 2-1,45 do końca mapy
    Najlepszy hosting www tutaj
    Konfiguracja amxx, instalacja pluginów, pisanie pluginów AMXX. Więcej info na www.naven.com.pl
    Jebać steama.
     

  3. #3 Odp: Mapchooser.amxx lub nextmap.amxx 
    el Wymiataczos Awatar Executor
    Dołączył
    May 2009
    Wiek
    15
    Posty
    696
    ale mi z alliedmodders lub jakos tak nie chodzi
    Pomogłem? Postaw Gibona
    Nie wiesz jak?:
    Co to gibon i jak go dać
     

  4. #4 Odp: Mapchooser.amxx lub nextmap.amxx 
    Adminus pospolitus
    Dołączył
    Jan 2008
    Wiek
    20
    Posty
    9,226
    A instalowałeś według mojej instrukcji deagles map manager?
    Najlepszy hosting www tutaj
    Konfiguracja amxx, instalacja pluginów, pisanie pluginów AMXX. Więcej info na www.naven.com.pl
    Jebać steama.
     

  5. #5 Odp: Mapchooser.amxx lub nextmap.amxx 
    el Wymiataczos Awatar Executor
    Dołączył
    May 2009
    Wiek
    15
    Posty
    696
    tak ale pisało potem w zatrzymywaniu pluginow unnkown czy jakos tak
    Pomogłem? Postaw Gibona
    Nie wiesz jak?:
    Co to gibon i jak go dać
     

  6. #6 Odp: Mapchooser.amxx lub nextmap.amxx 
    Adminus pospolitus
    Dołączył
    Jan 2008
    Wiek
    20
    Posty
    9,226
    Źle wgrałeś coś, pokaż logi z tego czasu
    Najlepszy hosting www tutaj
    Konfiguracja amxx, instalacja pluginów, pisanie pluginów AMXX. Więcej info na www.naven.com.pl
    Jebać steama.
     

  7. #7 Odp: Mapchooser.amxx lub nextmap.amxx 
    el Wymiataczos Awatar Executor
    Dołączył
    May 2009
    Wiek
    15
    Posty
    696
    teraz mam inny problem jak ustawiłem ze od 18 minut się robi vote to od razu po nim zmienia się mapa. Jak zmienić by do końca rundy to poczekało?
    Pomogłem? Postaw Gibona
    Nie wiesz jak?:
    Co to gibon i jak go dać
     

  8. #8 Odp: Mapchooser.amxx lub nextmap.amxx 
    Adminus pospolitus
    Dołączył
    Jan 2008
    Wiek
    20
    Posty
    9,226
    Cytat Zamieszczone przez Executor Zobacz posta
    teraz mam inny problem jak ustawiłem ze od 18 minut się robi vote to od razu po nim zmienia się mapa. Jak zmienić by do końca rundy to poczekało?
    Jak od 18 minut? Co zmieniłeś(jaki cvar)
    Najlepszy hosting www tutaj
    Konfiguracja amxx, instalacja pluginów, pisanie pluginów AMXX. Więcej info na www.naven.com.pl
    Jebać steama.
     

  9. #9 Odp: Mapchooser.amxx lub nextmap.amxx 
    el Wymiataczos Awatar Executor
    Dołączył
    May 2009
    Wiek
    15
    Posty
    696
    Już nie pamiętam ale albo co innego juz nie wiem, porównaj z pierwszego postu ten
    Kod:
    /* AMX Mod X
    *   Nextmap Chooser Plugin
    *
    * by the AMX Mod X Development Team
    *  originally developed by OLO
    *
    * This file is part of AMX Mod X.
    *
    *
    *  This program is free software; you can redistribute it and/or modify it
    *  under the terms of the GNU General Public License as published by the
    *  Free Software Foundation; either version 2 of the License, or (at
    *  your option) any later version.
    *
    *  This program is distributed in the hope that it will be useful, but
    *  WITHOUT ANY WARRANTY; without even the implied warranty of
    *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    *  General Public License for more details.
    *
    *  You should have received a copy of the GNU General Public License
    *  along with this program; if not, write to the Free Software Foundation,
    *  Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
    *
    *  In addition, as a special exception, the author gives permission to
    *  link the code of this program with the Half-Life Game Engine ("HL
    *  Engine") and Modified Game Libraries ("MODs") developed by Valve,
    *  L.L.C ("Valve"). You must obey the GNU General Public License in all
    *  respects for all of the code used other than the HL Engine and MODs
    *  from Valve. If you modify this file, you may extend this exception
    *  to your version of the file, but you are not obligated to do so. If
    *  you do not wish to do so, delete this exception statement from your
    *  version.
    */
    
    #include <amxmodx>
    #include <amxmisc>
    
    #define SELECTMAPS  6
    
    #define charsof(%1) (sizeof(%1)-1)
    
    new Array:g_mapName;
    new g_mapNums;
    
    new g_nextName[SELECTMAPS]
    new g_voteCount[SELECTMAPS + 2]
    new g_mapVoteNum
    new g_teamScore[2]
    new g_lastMap[32]
    
    new g_coloredMenus
    new bool:g_selected = false
    
    public plugin_init()
    {
    	register_plugin("Nextmap Chooser", AMXX_VERSION_STR, "AMXX Dev Team")
    	register_dictionary("mapchooser.txt")
    	register_dictionary("common.txt")
    	
    	g_mapName=ArrayCreate(32);
    	
    	new MenuName[64]
    	
    	format(MenuName, 63, "%L", "en", "CHOOSE_NEXTM")
    	register_menucmd(register_menuid(MenuName), (-1^(-1<<(SELECTMAPS+2))), "countVote")
    	register_cvar("amx_extendmap_max", "90")
    	register_cvar("amx_extendmap_step", "15")
    
    	if (cstrike_running())
    		register_event("TeamScore", "team_score", "a")
    
    	get_localinfo("lastMap", g_lastMap, 31)
    	set_localinfo("lastMap", "")
    
    	new maps_ini_file[64]
    	get_configsdir(maps_ini_file, 63);
    	format(maps_ini_file, 63, "%s/maps.ini", maps_ini_file);
    	
    	if (!file_exists(maps_ini_file))
    		get_cvar_string("mapcyclefile", maps_ini_file, 63)
    	if (loadSettings(maps_ini_file))
    		set_task(17.0, "voteNextmap", 987456, "", 0, "b")
    
    	g_coloredMenus = colored_menus()
    	
    }
    
    public checkVotes()
    {
    	new b = 0
    	
    	for (new a = 0; a < g_mapVoteNum; ++a)
    		if (g_voteCount[b] < g_voteCount[a])
    			b = a
    
    	
    	if (g_voteCount[SELECTMAPS] > g_voteCount[b]
    	    && g_voteCount[SELECTMAPS] > g_voteCount[SELECTMAPS+1])
    	{
    		new mapname[32]
    		
    		get_mapname(mapname, 31)
    		new Float:steptime = get_cvar_float("amx_extendmap_step")
    		set_cvar_float("mp_timelimit", get_cvar_float("mp_timelimit") + steptime)
    		client_print(0, print_chat, "%L", LANG_PLAYER, "CHO_FIN_EXT", steptime)
    		log_amx("Vote: Voting for the nextmap finished. Map %s will be extended to next %.0f minutes", mapname, steptime)
    		
    		return
    	}
    	
    	new smap[32]
    	if (g_voteCount[b] && g_voteCount[SELECTMAPS + 1] <= g_voteCount[b])
    	{
    		ArrayGetString(g_mapName, g_nextName[b], smap, charsof(smap));
    		set_cvar_string("amx_nextmap", smap);
    	}
    
    	
    	get_cvar_string("amx_nextmap", smap, 31)
    	client_print(0, print_chat, "%L", LANG_PLAYER, "CHO_FIN_NEXT", smap)
    	log_amx("Vote: Voting for the nextmap finished. The nextmap will be %s", smap)
    }
    
    public countVote(id, key)
    {
    	if (get_cvar_float("amx_vote_answers"))
    	{
    		new name[32]
    		get_user_name(id, name, 31)
    		
    		if (key == SELECTMAPS)
    			client_print(0, print_chat, "%L", LANG_PLAYER, "CHOSE_EXT", name)
    		else if (key < SELECTMAPS)
    		{
    			new map[32];
    			ArrayGetString(g_mapName, g_nextName[key], map, charsof(map));
    			client_print(0, print_chat, "%L", LANG_PLAYER, "X_CHOSE_X", name, map);
    		}
    	}
    	++g_voteCount[key]
    	
    	return PLUGIN_HANDLED
    }
    
    bool:isInMenu(id)
    {
    	for (new a = 0; a < g_mapVoteNum; ++a)
    		if (id == g_nextName[a])
    			return true
    	return false
    }
    
    public voteNextmap()
    {
    	new winlimit = get_cvar_num("mp_winlimit")
    	new maxrounds = get_cvar_num("mp_maxrounds")
    	
    	if (winlimit)
    	{
    		new c = winlimit - 2
    		
    		if ((c > g_teamScore[0]) && (c > g_teamScore[1]))
    		{
    			g_selected = false
    			return
    		}
    	}
    	else if (maxrounds)
    	{
    		if ((maxrounds - 2) > (g_teamScore[0] + g_teamScore[1]))
    		{
    			g_selected = false
    			return
    		}
    	} else {
    		new timeleft = get_timeleft()
    		
    		if (timeleft < 1 || timeleft > 129)
    		{
    			g_selected = false
    			return
    		}
    	}
    
    	if (g_selected)
    		return
    
    	g_selected = true
    	
    	new menu[512], a, mkeys = (1<<SELECTMAPS + 1)
    
    	new pos = format(menu, 511, g_coloredMenus ? "\y%L:\w^n^n" : "%L:^n^n", LANG_SERVER, "CHOOSE_NEXTM")
    	new dmax = (g_mapNums > SELECTMAPS) ? SELECTMAPS : g_mapNums
    	
    	for (g_mapVoteNum = 0; g_mapVoteNum < dmax; ++g_mapVoteNum)
    	{
    		a = random_num(0, g_mapNums - 1)
    		
    		while (isInMenu(a))
    			if (++a >= g_mapNums) a = 0
    		
    		g_nextName[g_mapVoteNum] = a
    		pos += format(menu[pos], 511, "%d. %a^n", g_mapVoteNum + 1, ArrayGetStringHandle(g_mapName, a));
    		mkeys |= (1<<g_mapVoteNum)
    		g_voteCount[g_mapVoteNum] = 0
    	}
    	
    	menu[pos++] = '^n'
    	g_voteCount[SELECTMAPS] = 0
    	g_voteCount[SELECTMAPS + 1] = 0
    	
    	new mapname[32]
    	get_mapname(mapname, 31)
    
    	if ((winlimit + maxrounds) == 0 && (get_cvar_float("mp_timelimit") < get_cvar_float("amx_extendmap_max")))
    	{
    		pos += format(menu[pos], 511, "%d. %L^n", SELECTMAPS + 1, LANG_SERVER, "EXTED_MAP", mapname)
    		mkeys |= (1<<SELECTMAPS)
    	}
    
    	format(menu[pos], 511, "%d. %L", SELECTMAPS+2, LANG_SERVER, "NONE")
    	new MenuName[64]
    	
    	format(MenuName, 63, "%L", "en", "CHOOSE_NEXTM")
    	show_menu(0, mkeys, menu, 15, MenuName)
    	set_task(18.0, "checkVotes")
    	client_print(0, print_chat, "%L", LANG_SERVER, "TIME_CHOOSE")
    	client_cmd(0, "spk Gman/Gman_Choose2")
    	log_amx("Vote: Voting for the nextmap started")
    }
    stock bool:ValidMap(mapname[])
    {
    	if ( is_map_valid(mapname) )
    	{
    		return true;
    	}
    	// If the is_map_valid check failed, check the end of the string
    	new len = strlen(mapname) - 4;
    	
    	// The mapname was too short to possibly house the .bsp extension
    	if (len < 0)
    	{
    		return false;
    	}
    	if ( equali(mapname[len], ".bsp") )
    	{
    		// If the ending was .bsp, then cut it off.
    		// the string is byref'ed, so this copies back to the loaded text.
    		mapname[len] = '^0';
    		
    		// recheck
    		if ( is_map_valid(mapname) )
    		{
    			return true;
    		}
    	}
    	
    	return false;
    }
    
    loadSettings(filename[])
    {
    	if (!file_exists(filename))
    		return 0
    
    	new szText[32]
    	new currentMap[32]
    	
    	new buff[256];
    	
    	get_mapname(currentMap, 31)
    
    	new fp=fopen(filename,"r");
    	
    	while (!feof(fp))
    	{
    		buff[0]='^0';
    		
    		fgets(fp, buff, charsof(buff));
    		
    		parse(buff, szText, charsof(szText));
    		
    		
    		if (szText[0] != ';' &&
    			ValidMap(szText) &&
    			!equali(szText, g_lastMap) &&
    			!equali(szText, currentMap))
    		{
    			ArrayPushString(g_mapName, szText);
    			++g_mapNums;
    		}
    		
    	}
    	
    	fclose(fp);
    
    	return g_mapNums
    }
    
    public team_score()
    {
    	new team[2]
    	
    	read_data(1, team, 1)
    	g_teamScore[(team[0]=='C') ? 0 : 1] = read_data(2)
    }
    
    public plugin_end()
    {
    	new current_map[32]
    
    	get_mapname(current_map, 31)
    	set_localinfo("lastMap", current_map)
    }
    #edit
    A jednak to samo wybiera godzinę
    Ostatnio edytowane przez Executor ; 31-08-2009 o 09:41
    Pomogłem? Postaw Gibona
    Nie wiesz jak?:
    Co to gibon i jak go dać
     

  10. #10 Odp: Mapchooser.amxx lub nextmap.amxx 
    Super Mod Awatar seba
    Dołączył
    Jun 2007
    Wiek
    4
    Posty
    13,379
    Odpowiada za to
    Kod:
    		set_task(18.0, "voteNextmap", 987456, "", 0, "b")
    oraz sprawdzanie
    Kod:
    		if (timeleft < 1 || timeleft > 129)
    		{
    			g_selected = false
    			return
    		}
    więc vote nigdy nie jest w tym samym momencie. Aczkolwiek możesz to poprawić zamieniając
    Kod:
    set_task(18.0, "voteNextmap", 987456, "", 0, "b")
    na
    Kod:
    set_task(120.0, "voteNextmap", 987456, "", 0, "d")
    Graczu CS'a, coś dla Ciebie...

    serwer CS - Puchatek 4FuN - IP: 193.33.176.104:27015
    nowy adres IP - nowa jakość - koniecznie zapisz nowy adres IP!

    ... jeżeli Ci mało, więcej znajdziesz na Puchatkowych serwerach


     

  11. #11 Odp: Mapchooser.amxx lub nextmap.amxx 
    el Wymiataczos Awatar Executor
    Dołączył
    May 2009
    Wiek
    15
    Posty
    696
    i kiedy sie bedzie pokazywac? Mam ustawione mp_timelimit 20
    Pomogłem? Postaw Gibona
    Nie wiesz jak?:
    Co to gibon i jak go dać
     

  12. #12 Odp: Mapchooser.amxx lub nextmap.amxx 
    Super Mod Awatar seba
    Dołączył
    Jun 2007
    Wiek
    4
    Posty
    13,379
    Zawsze 2 minuty przed końcem mapy.
    Graczu CS'a, coś dla Ciebie...

    serwer CS - Puchatek 4FuN - IP: 193.33.176.104:27015
    nowy adres IP - nowa jakość - koniecznie zapisz nowy adres IP!

    ... jeżeli Ci mało, więcej znajdziesz na Puchatkowych serwerach


     

  13. #13 Odp: Mapchooser.amxx lub nextmap.amxx 
    el Wymiataczos Awatar Executor
    Dołączył
    May 2009
    Wiek
    15
    Posty
    696
    Seba nie dziala ;/ Czy to napewno
    Kod:
    set_task(120.0, "voteNextmap", 987456, "", 0, "d")
    Na koncy b czy d?
    Pomogłem? Postaw Gibona
    Nie wiesz jak?:
    Co to gibon i jak go dać
     

  14. #14 Odp: Mapchooser.amxx lub nextmap.amxx 
    Super Mod Awatar peku33
    Dołączył
    Oct 2008
    Posty
    7,256
    Jeśli chodzi o wybór mapy polecam GALILEO.
    MA na serio DUUUUUŻO fajnych funkcji i świetnie się sprawdza z
    meta 1.19-p
    amx 1.81
    dproto 0.33
    najnowsze steamowe binarki
    PISANIE DO MNIE NA GG Z PROŚBĄ O JAKĄKOLWIEK POMOC NIE JEST MILE WIDZIANE! Numer: 6374959
     

  15. #15 Odp: Mapchooser.amxx lub nextmap.amxx 
    Adminus pospolitus
    Dołączył
    Jan 2008
    Wiek
    20
    Posty
    9,226
    flaga d na końcu ma być, d-set_task before timelimit
    Najlepszy hosting www tutaj
    Konfiguracja amxx, instalacja pluginów, pisanie pluginów AMXX. Więcej info na www.naven.com.pl
    Jebać steama.
     

  16. #16 Odp: Mapchooser.amxx lub nextmap.amxx 
    Super Mod Awatar seba
    Dołączył
    Jun 2007
    Wiek
    4
    Posty
    13,379
    Musi działać, testowane.
    Graczu CS'a, coś dla Ciebie...

    serwer CS - Puchatek 4FuN - IP: 193.33.176.104:27015
    nowy adres IP - nowa jakość - koniecznie zapisz nowy adres IP!

    ... jeżeli Ci mało, więcej znajdziesz na Puchatkowych serwerach


     

Podobne wątki

  1. [nextmap.amxx] WARNING
    By hincyk in forum Problemy i konfiguracja AMXX
    Odpowiedzi: 6
    Ostatni post / autor: 17-02-2010, 19:54
  2. amxx
    By Lelek919 in forum Problemy z CS 1.6
    Odpowiedzi: 1
    Ostatni post / autor: 01-07-2008, 07:04
  3. amxx
    By krysek in forum Amx Mod X
    Odpowiedzi: 2
    Ostatni post / autor: 21-04-2008, 17:50
  4. Problem z realnadedrop.amxx + dropallweapons.amxx
    By -=SFPT=-Mike in forum Amx Mod X
    Odpowiedzi: 6
    Ostatni post / autor: 24-03-2008, 17:58
  5. amxx
    By nigger1989 in forum Amx Mod X
    Odpowiedzi: 1
    Ostatni post / autor: 21-03-2008, 22:12
  6. AMXX MOD X
    By Marcinhoo in forum Amx Mod X
    Odpowiedzi: 7
    Ostatni post / autor: 22-02-2008, 05:53
  7. [amxx] mapchooser.amxx nie dziala
    By ciapek in forum Amx Mod X
    Odpowiedzi: 2
    Ostatni post / autor: 14-02-2008, 08:20
  8. admin_amxbans.amxx lub amxbans.amxx
    By maly93 in forum Amx Mod X
    Odpowiedzi: 4
    Ostatni post / autor: 12-02-2008, 15:54
  9. Opis konfiguracji AMXX (plik amxx.cfg)
    By seba in forum Amx Mod X
    Odpowiedzi: 0
    Ostatni post / autor: 14-01-2008, 00:37
  10. [AMXX] Gotowy AMXX WAR3FT
    By rAPTORs in forum Amx Mod X
    Odpowiedzi: 1
    Ostatni post / autor: 24-12-2007, 11:21

Odwiedzający znaleźli tę stronę szukając:

nextmap.amxx

cs 1.6 amx nextmap map hinzufügennextmap chooser cs1.6jak wyłaczyć mapchooser.amxxmapchooser4 ustawienia cvarmapchooser 3.amxxjak wyłączyc mapchoosermapchooser.amxcs 1.6 nextmap.amxxmapchooser problem z koncem mapynext map choosercs1.6 map chooseramx mapchooser mp3jak wylaczyc mapchooserjak wyłączyć mapchooser
Uprawnienia umieszczania postów
  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •