Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

Random map


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Hi!, I use this .sma but I would like that instead of using the maps.ini file, to create my own list of maps inside the same .sma, I don't know if it's possible

PHP Code:

#include <amxmodx>

#define DATA_FLAG "s"

new Array:g_mapName;
new 
g_mapNums;
new 
g_lastMap[32]

public 
plugin_init()
{
    
register_plugin("Random Map Change""1.0""siriusmd99")
    
    
g_mapName=ArrayCreate(32);
    
    
get_localinfo("lastMap"g_lastMap31)
    
set_localinfo("lastMap""")
    
    new 
maps_ini_file[64]
    
get_localinfo("amxx_configsdir",maps_ini_file,63);
    
format(maps_ini_file63"%s/maps.ini"maps_ini_file);
    
    if (!
file_exists(maps_ini_file))
        
get_cvar_string("mapcyclefile"maps_ini_file63)
    if (
loadSettings(maps_ini_file))
    
register_clcmd("say /randomgo""change_random_map")
}

public 
change_random_map()
{
    if (
has_flag(idDATA_FLAG))
    {    
    
//server_cmd( "changelevel de_dust2_largo" )
    
client_cmd(id"amx_map %a"ArrayGetStringHandle(g_mapNamerandom(g_mapNums)));    
    }
    return 
PLUGIN_CONTINUE    
}

stock bool:ValidMap(mapname[])
{
    if ( 
is_map_valid(mapname) )
        return 
true;
    
    new 
len strlen(mapname) - 4;
    
    if (
len 0)
        return 
false;
    
    if ( 
equali(mapname[len], ".bsp") )
    {
        
mapname[len] = '^0';
        
        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(currentMap31)
    
    new 
fp=fopen(filename,"r");
    
    while (!
feof(fp))
    {
        
buff[0]='^0';
        
szText[0]='^0';
        
        
fgets(fpbuffcharsmax(buff));
        
        
parse(buffszTextcharsmax(szText));
        
        
        if (
szText[0] != ';' &&
        
ValidMap(szText) &&
        !
equali(szTextg_lastMap) &&
        !
equali(szTextcurrentMap))
        {
          
ArrayPushString(g_mapNameszText);
          ++
g_mapNums;
        }
    }

    
fclose(fp);
    return 
g_mapNums
}

public 
plugin_end()
{
  new 
current_map[32]

  
get_mapname(current_map31)
  
set_localinfo("lastMap"current_map)


Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

×
×
  • Dodaj nową pozycję...