Jump to content

Como faço um sistema de gamemode que rode noClient


Recommended Posts

Boa noite, eu estou querendo fazer um sistema como o do ffs, que tem um "menu" e você escolhe o modo de jogo.

Já fiz o menu e etc, só não sei como fazer um sistema que quando o player clique em um modo de jogo, o gamemode inicie só pra ele e pras pessoas que também clicaram no mesmo modo de jogo, exemplo: No menu o player escolhe o modo de jogo de corrida, e então, o gamemode de corrida inicia só pro player que escolheu o modo de jogo de corrida, depois outro player no menu escolhe o modo de jogo de corrida também, e então, o player vai entrar no mesmo gamemode de corrida que o player anterior está, porque os dois escolheram os mesmo modo.

A minha dúvida é como eu faço esse sistema kkkk, como eu faço pra um gamemode iniciar no client, pra iniciar só pros players que escolheram tal modo, igual no exemplo acima, pq o "normal" quando um gamemode inicia, é iniciar no server e para todos, então não faria sentido um player escolher o modo de jogo corrida e o gamemode corrida iniciar pra todos que estão no servidor e não só pro player que escolheu o modo de jogo corrida.

Sei que pedir um código completo disso tudo é pedir muito kkk, então eu só quero saber como eu faço isso e o que eu uso pra fazer isso

Desde já agradeço pela ajuda, uma boa noite ❤️

Link to comment
Posted (edited)

Eu trabalhei com muitos sistemas desse modelo, para Multi GameMode especificamente o melhor resultado é você criar o gerenciador de arquivos(mapas) fora mta, em um webservice php por exemplo, já para as arenas a melhor opção é utilizar eventos com base em resourceRoot, vai precisar tbm fazer tudo que o mta já faz nativamente porém fazendo alguns override em funções para conseguir carregar mapas e scripts com êxito, resumindo baixar mapas e script utilizando fetchremote e controlar o sistema utilizando eventos com resourceRoot, caso deseja comprar um sistema pode entrar em contato comigo, tenho um pronto, tmj.

Edited by Lord Henry
  • Thanks 1
Link to comment
  • Other Languages Moderators

Ou você pode simplesmente usar um elementData no jogador, onde cada gamemode só funciona nos jogadores que possuam um valor específico nesse elementData.

É claro que isso será muito complexo, visto que todos os resources que dependem do gamemode precisarão fazer essa verificação de data também, o que vai prejudicar seu desempenho no servidor.

Outra alternativa seria existir uma tabela global de jogadores onde cada jogador entra em um índice diferente após escolher o Gamemode no painel de login. Então cada gamemode e cada resource que dependa de gamemode irá verificar essa tabela usando um call (exports).

gamemodeDeGeral = {
    ["Freeroam"] = {},
    ["Race"] = {},
    ["DM"] = {},
    ["DayZ"] = {},
    ["RPG"] = {},
}

addEventHandler("onPlayerLogin", root, function(thePlayer)
    table.insert(gamemodeDeGeral["Freeroam"], thePlayer) -- Exemplo para inserir um player que acabou de logar no Freeroam.
end)

addEventHandler("onPlayerLogout", root, function(thePlayer)
    for i,p in pairs (gamemodeDeGeral["Freeroam"]) do
        if (p == thePlayer) then
            gamemodeDeGeral["Freeroam"][i] = nil -- Exemplo para remover um player da tabela Freeroam ao deslogar.
            return
        end
    end
end)

 

  • Thanks 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...