forward switchmode();
forward StopChangemodeTimer();
static
changemodetimer,
currentmode
;
enum smode
{
Mode[50],
Time
}
static const ModeInfo[][smode] =
{
{"Gamemode 1", 300000},
{"Gamemode 2", 300000},
{"Gamemode 3", 300000},
{"Gamemode 4", 300000}
};
public OnGameModeInit()
{
new
randmode = random( sizeof (ModeInfo) );
currentmode = randmode;
changemodetimer = SetTimer("switchmode", ModeInfo[currentmode][Time], false);
return 1;
}
public OnGameModeExit()
{
KillTimer(changemodetimer);
currentmode = 0;
return 1;
}
public StopChangemodeTimer()
{
KillTimer(changemodetimer);
return 1;
}
public switchmode()
{
new
modestring[50],
randmode = random( sizeof (ModeInfo) )
;
format(modestring, sizeof(modestring), "The Next mode will be %s!", ModeInfo[currentmode][Mode]);
SendClientMessageToAll(0x32CD32FF, modestring);
format(modestring,sizeof(modestring), "changemode %s", ModeInfo[currentmode][Mode]);
SendRconCommand(modestring);
currentmode = randmode;
changemodetimer = SetTimer("switchmode", ModeInfo[currentmode][Time], false);
return 1;
}
randmode = random( sizeof (ModeInfo) )
if(randmode < sizeof(ModeInfo)) {
randmode++;
}
else {
randmode = 0;
}
public switchmode()
{
new
modestring[50]
;
if(randmode < sizeof(ModeInfo)) {
randmode++;
}
else {
randmode = 0;
}
format(modestring, sizeof(modestring), "The Next mode will be %s!", ModeInfo[currentmode][Mode]);
SendClientMessageToAll(0x32CD32FF, modestring);
format(modestring,sizeof(modestring), "changemode %s", ModeInfo[currentmode][Mode]);
SendRconCommand(modestring);
currentmode = randmode;
changemodetimer = SetTimer("switchmode", ModeInfo[currentmode][Time], false);
return 1;
}
|
If you're going to load multiple gamemodes in sequence, why not just do it from the server.cfg? It has multiple gamemode support just for this.
But if you want the names and stuff, yea keep it like you have it above. |
public switchmode()
{
new
modestring[50],
randmode
;
if(randmode < sizeof(ModeInfo))
{
randmode++;
}
else
{
randmode = 0;
}
format(modestring, sizeof(modestring), "The Next mode will be %s!", ModeInfo[currentmode][Mode]);
SendClientMessageToAll(0x32CD32FF, modestring);
format(modestring,sizeof(modestring), "changemode %s", ModeInfo[currentmode][Mode]);
SendRconCommand(modestring);
currentmode = randmode;
changemodetimer = SetTimer("switchmode", ModeInfo[currentmode][Time], false);
return 1;
}
random( sizeof (ModeInfo) );
#include <a_samp>
new changemodetimer, currentmode = 0;
enum smode
{
Mode[50],
Time
}
stock const ModeInfo[][smode] =
{
{"Gamemode 1", 300000}, //Make sure this ("Gamemode 1") is the first one in your server otherwise the sequence will be mixed
{"Gamemode 2", 300000},
{"Gamemode 3", 300000},
{"Gamemode 4", 300000}
};
public OnGameModeInit()
{
changemodetimer = SetTimer("switchmode", ModeInfo[currentmode][Time], false); //This timer will be started everytime a new Gamemode is loaded
return 1;
}
public OnGameModeExit()
{
KillTimer(changemodetimer); //This will prevent errors if you manually change the Gamemode
return 1;
}
forward switchmode();
public switchmode()
{
new modestring[50];
//This works like a loop, so when it reach the last Gamemode it will change to the first again
if(currentmode < sizeof(ModeInfo))
++currentmode;
else
currentmode = 0;
format(modestring, sizeof(modestring), "The Next mode will be %s!", ModeInfo[currentmode][Mode]);
SendClientMessageToAll(0x32CD32FF, modestring);
format(modestring,sizeof(modestring), "changemode %s", ModeInfo[currentmode][Mode]);
SendRconCommand(modestring);
return 1;
}