[DUV]Sobre Timers e Gamemodes
#1

Primeiramente vou esclarecer uma coisa, Copiei sim a idйia do CrazyBob's Cops'n Robbers. Й bom falar de uma vez antes que o povo comece a falar. Vamos ao que interessa:

Se possнvel poderiam me mandar uma base para trocar da gamemode 0 para gamemode 1 apуs um tempo?
Vou explicar melhor:
Apуs se passar uma semana (INGAME, Cerca de 604800 ms), trocaria da gamemode 0 para gamemode 1...
Trocar de gamemode eu jб sei, mas nгo sei a parte do Timer, jб que, posso admitir, sou um lixo em timer
Alguйm se candidata?
Reply
#2

Bem...eu nгo sei se й permitido ajudar uma pessoa numa idйia que outro server teve, por isso se for proibido, alguйm me avise por favor


@PsyShotter


Fiz o comando /DefinirNomeGM usando KcmD, para mudб-lo basta adaptar ao seu sistema de comandos ou params


Isto deve resolver o seu problema, coloque:


pawn Код:
//No Topo do GM:

new NovoGM[25];



//No OnGameModeInit:

SetTimer("TrocarGM", 604800000, true); //1 SEMANA =D




//No OnPlayerCommandText:

if(strcmp("/DefinirNomeGM", cmdtext, true, 13) == 0)
    {
        new Foco[256];
        Foco = KcmD(1, cmdtext);
        if(!strlen(Foco))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "Digite /DefinirNomeGM [Nome-Do-Novo-GM]");
            return 1;
        }
        format(NovoGM, sizeof(NovoGM), Foco);
        SendClientMessage(playerid, 0xFFFFFFFF, "[INFO] Vocк Redefiniu o Nome do Novo GM !");
        return 1;
    }




//No Final do GM:

forward TrocarGM();
public TrocarGM()
{
    new string[35];
    SendClientMessageToAll(0x8D8DFFAA, "[AVISO] Passou-se 1 semana e o GameMode estб mudando automaticamente :O !");
    format(string, 35, "/rcon changemode %s", NovoGM);
    SendRconCommand(string);
    return 1;
}


stock KcmD(param, cmdtext[])
{
    new string[128], pos, var;
    format(string, sizeof(string), "%s ", cmdtext);

    while((pos = strfind(string, " ", true)) != -1)
    {
        if(var == param) return string;
        var++;

        strdel(string, 0, pos + 1);
        if(strcmp(string, " ", true, pos) == 0) goto end;
    }

end:
    string[0] = '\0';
    return string;
}
Reply
#3

Ou assim:
pawn Код:
new gamemodestexts[][] =
{
    {"C And R"},
    {"Ventura's DM~MG"}
};
new gamemodesnames[][] =
{
    {"copsandrobbers"},
    {"lvdm"}
};

forward NextGameMode(time);
public NextGameMode(time)
{
    new game;
    if(!strcmp(gamemodestexts[0],ReturnServerStringVar("gamemodetext"),false)) game = 1;
    if(!strcmp(gamemodestexts[1],ReturnServerStringVar("gamemodetext"),false)) game = 2;
    new string[64];
    format(string, sizeof string, "changemode %s", gamemodesnames[game - 1]);    
    SetTimer("NextGameMode", time, false);
    SendRconCommand(string);
    return 1;
}

ReturnServerStringVar(const varname[])
{
    new str[64];
    GetServerVarAsString(varname, str, sizeof(str));
    return str;
}
Reply
#4

Creio que isto nгo й proibido, jб que nгo estou roubando uma idйia.
Isto que eles utilizam й somente uma idйia que qualquer um pode ter tido, e nгo ъnica ^^

@Topic:
Obrigado pelos codes, mais tarde irei testar, jб que ainda estou terminando o GM Nє 1 (Serгo 4 :X)
Pelo que analisei os cуdigos, parecem que funcionam. Sу nгo entendi o CMD "/definirnomeGM"
Reply
#5

o comando "/definirnomeGM" vai definir qual serб o proximo GM, se vc usar o comando: "/definirnomeGM lvdm" o proximo GM a rodar no server depois do tempo de uma semana serб o LVDM. Etendeu??
Reply
#6

Criaram a idйia de criar um servidor em RPG.
Entгo se eu criar um server em RPG estou copiando o criador da idйia ?
Odeio essa de "ahh esse tal server jб tem"
Idaн se eu quero colocar no meu, eu tive a idйia tambйm, nгo posso ?

Coisa de troll e noob.
Reply
#7

Simples;

Lб no Sever.CFG

GameMode0 GameModeAtual
GameMode1 OutroGamemode
GameMode2 Outro GameMode
pawn Код:
if(!strcmp(cmdtext,"/trocar", true))
{
    SendRconCommand("gmx");
    return true;
}
Reply
#8

@bruno:
Exatamente isto que eu tinha imaginado. Thx
@Crodoviu:
Isso nгo й RPG. '-'
@Garfield:
Isso eu sei fazer, mas eu queria automбtico
Reply
#9

pawn Код:
if(!strcmp(cmdtext,"/trocar", true))
{
    SetTimer("BotaSetTimer", 604800000, true);
    return true;
}
public BotaSetTimer() return SendRconCommand("gmx");
Reply
#10

Porque ao invйs de vocк botar um timer que conta de 1 б 604800 vocк nгo coloca um relуgio no servidor e sempre que for domingo бs 00:00 o mode troca para um outro, numa funзгo random? Assim, vocк nгo desperdiзa tempo e pode usar somente 1 timer...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)