Code:
#include <amxmodx>
public plugin_init()
{
register_plugin( "Shake Mapcyle", "1.0.0", "Arkshine" );
}
public plugin_cfg()
{
ShakeMapcyle();
}
stock ShakeMapcyle()
{
new const MapcycleFile[] = "mapcycle.txt";
new Map[ 64 ];
new h = fopen( MapcycleFile, "rb" );
new Array:SavedMaps = ArrayCreate( 64 );
while( !feof( h ) )
{
fgets( h, Map, charsmax( Map ) );
trim( Map );
if ( Map[0] ) { ArrayPushString( SavedMaps, Map ); }
}
fclose( h );
delete_file( MapcycleFile );
new Cnt;
new MapCnt;
new Rand;
new Rand2;
Cnt = MapCnt = ArraySize( SavedMaps );
while( Cnt )
{
Rand = random( MapCnt );
Rand2 = random( MapCnt );
if( Rand != Rand2 )
{
ArraySwap( SavedMaps, Rand, Rand2 );
Cnt--;
}
}
h = fopen( MapcycleFile, "wb" );
for( new i; i < MapCnt; ++i )
{
ArrayGetString( SavedMaps, i, Map, charsmax( Map ) );
fputs( h, Map );
fputc( h, '^n' );
}
fclose( h );
ArrayDestroy( SavedMaps );
}
It's basic but should be enough.
__________________