load random fs
#1

Just a simple question, how would I load a random FS from the folder filterscripts?

Thanks in advance.
Reply
#2

Add the filterscript's name that you want to use from the "filterscripts" folder to the filterscripts line in the server.cfg file Or use the RCON Admin command /rcon loadfs - to load filterscript manually
Reply
#3

Quote:
Originally Posted by VladimirMark
Посмотреть сообщение
Add the filterscript's name that you want to use from the "filterscripts" folder to the filterscripts line in the server.cfg file Or use the RCON Admin command /rcon loadfs - to load filterscript manually
No man, I mean like a function in the script, LoadNewFS(); and it loads a new FS everytime its used.
Reply
#4

pawn Код:
static const ScriptNames[][] =
{
    "script_name_1",
    "script_name_2",
    "script_name_3",
    "script_name_4"
    // more ...
};
static bool:Loaded[(sizeof(ScriptNames)) char];

LoadNewFS()
{
    static ScriptsLoaded;
    if(ScriptsLoaded >= sizeof(ScriptNames))
    {
        print("Warning: All scripts loaded!");
        return -1;
    }

    new p, rand;
    while(!p)
    {
        rand = random(sizeof(ScriptNames));
        if(!Loaded{rand})
        {
            Loaded{rand} = true;
            ScriptsLoaded++;
            p = 1;
        }
    }

    new cmd[45];
    format(cmd,sizeof(cmd),"loadfs %s",ScriptNames[rand]);
    SendRconCommand(cmd);
    return rand;
}
Reply
#5

Quote:
Originally Posted by Jefff
Посмотреть сообщение
pawn Код:
static const ScriptNames[][] =
{
    "script_name_1",
    "script_name_2",
    "script_name_3",
    "script_name_4"
    // more ...
};
static bool:Loaded[(sizeof(ScriptNames)) char];

LoadNewFS()
{
    static ScriptsLoaded;
    if(ScriptsLoaded >= sizeof(ScriptNames))
    {
        print("Warning: All scripts loaded!");
        return -1;
    }

    new p, rand;
    while(!p)
    {
        rand = random(sizeof(ScriptNames));
        if(!Loaded{rand})
        {
            Loaded{rand} = true;
            ScriptsLoaded++;
            p = 1;
        }
    }

    new cmd[45];
    format(cmd,sizeof(cmd),"loadfs %s",ScriptNames[rand]);
    SendRconCommand(cmd);
    return rand;
}
Thanks man , but lets say I want to unload the current fs loaded before loading a new one, will this work?
pawn Код:
stock LoadNewFS()
{
    new p, rand;
    while(!p)
    {
        rand = random(sizeof(ScriptNames));
        if(!Loaded{rand})
        {
            Loaded{rand} = true;
            p = 1;
        }
        else if(Loaded{rand})
        {
            new cmd[45];
            format(cmd,sizeof(cmd),"unloadfs %s",ScriptNames[rand]);
            SendRconCommand(cmd);
        }
    }

    new cmd[45];
    format(cmd,sizeof(cmd),"loadfs %s",ScriptNames[rand]);
    SendRconCommand(cmd);
    return rand;
}
Reply
#6

No this should work
pawn Код:
LoadNewFS()
{
    static ScriptsLoaded;
    if(ScriptsLoaded >= sizeof(ScriptNames))
    {
            print("Warning: All scripts loaded!");
            return -1;
    }

    new cmd[45], script = -1;
    if(ScriptsLoaded)
    {
        for(new i=0; i != sizeof(ScriptNames); i++)
            if(Loaded{i})
            {
                script = i;
                ScriptsLoaded--;
                Loaded{i} = false;
                format(cmd,sizeof(cmd),"unloadfs %s",ScriptNames[i]);
                SendRconCommand(cmd);
                break;
            }
    }

    new p, rand;
    while(!p)
    {
        rand = random(sizeof(ScriptNames));
        if(!Loaded{rand} && script != rand)
        {
            Loaded{rand} = true;
            ScriptsLoaded++;
            p = 1;
        }
    }

    format(cmd,sizeof(cmd),"loadfs %s",ScriptNames[rand]);
    SendRconCommand(cmd);
    return rand;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)