[GameMode] Gamemode Torcidas Organizadas - MySQL
#1

Gamemode


Fui postar ele no GT(Gta Torcidas), e Apagaram o tуpico, e depois fui falar a verdade para eles, eles me baniram permanente, estou com raiva do GT atй agora...

Jб que nгo pretendo fazer mais nada para ele, resolvi postar-lo aqui.

Ele й feito em MySQL, a minha principal desistкncia de continuar com este gamemode, й o cansaзo, eu estou sem tempo, e com certeza foi o projeto mais cansativo(nгo o maior), vocкs verгo no topo do gamemode os 'change-logs', Verгo que ele foi mudado por completo vбrias vezes.

De y_ini foi para -> DOF2 dele para o MySQL, e mudar o salvamento todo, й uma tarefa bem dнficil...

Alйm das mudanзas em salvamento, foi feito mudanзas no salvamento de Processador de comandos.

De zCMD converti para y_cmd.

Porque converti?

simples, zCMD й tгo antigo quanto qualquer outro processador de comandos, aposto eu que й o Processador de comandos mais antigo aqui no fуrum (2009 a ъltima atualizaзгo), e fazendo testes de velocidades, obtive 20 Ms com y_cmd, e 1950 MS com zCMD.

Alйm disso nгo foi fбcil converter mais de 80 Comandos(agora tem mais de 100), para y_cmd, entгo foi bem trabalhoso este Gamemode.

Atualmente, este gamemode contйm 40 Times( 40 Torcidas), estгo descrita na parte 'Arrays' do Gamemode.
Todos os sistemas que contйm(alguns sу vocк vendo), estгo dentro do Gamemode.

Tem profissхes, e coloquei apenas traficante(pode vender drogas e comprar no morro.), um sistema de guardar drogas(tipo mochila), o salбrio do Traficante й R$ 350,00 entгo eu queria deixar bem real a economia do servidor, e tem vбrias coisas muito inovadoras.

Й Bem dнficil descrever o gamemode, por ele ser completo sem ser enorme, Se alguйm abrir ele e fazer concertos(completar os sistemas), e fazer um pouquinho mais, acho que pode abrir um servidor...

Oque falta?

Falta definir as 40 posiзхes para as 40 torcidas do jogo, falta definir coisas bбsicas.

Falta criar a pasta Logs em Script files, pois contйm o sistema de /bug /sugestao para reportar-los...

Falta colocar a operaзгo UPDATE nos comandos /setgm e /tirargm ... eu jб deixei um de exemplo, porйm nгo tive tempo para colocar-lo(Estou fazendo isto a hora que tenho tempo).

As torcidas sгo definidas assim:

"Torcida do Sгo Paulo"
"Torcida do Flamengo"


-- Sobre MySQL

Vocк terб que configura-lo entre as linhas 54 - 57. terб que criar uma tabela chamada 'contas', e colocar 43 Itens dentro dela, Basta vocк procurar no Gamemode 'INSERT INTO', nгo vou falar um por um, atй porque й bastante coisa, Eu tentava criar relacionamentos entre as tabelas, para separar melhor e nгo deixar 43 itens, mas nгo deu, dava muito erro, no prуprio Plugin. Use a versгo r33.

--


Vou deixar tudo que tem dentro do Pasta em que desenvolvi, nгo tudo, vou deixar as minhas anotaзхes de fora, mas aproveitem.

Como jб falei, os sistemas(nгo todos) estгo no change-log do Gamemode.


Download:

Pastebin Source <-

Mediafire Pasta e tudo <-

Crйditos:

Dolpin - Criador, Idealizador e desenvolver do mesmo.
BlueG - Criador do plugin/include 'MySQL'.
Incognito - Criador do Plugin 'Streamer'
****** - Criador do plugin/include 'sscanf' e da Include 'y_commads'.
Kalcor - Criador do Samp.



Me desculpem pelo tуpico mal organizado, nгo tive tempo de arrumar-lo.

Espero que nгo apaguem o tуpico. #ironia
Reply
#2

O Tуpico ficou mal de ler, mas o cуdigo vi sу os sistemas e gostei.

Parabйns.
Reply
#3

Parece um bom modo de jogo.
Reply
#4

Poderia estar melhor de script, ja que usa YSI use por completo e melhora imenso muitos sistemas dai.
Reply
#5

Quote:
Originally Posted by PT
Посмотреть сообщение
Poderia estar melhor de script, ja que usa YSI use por completo e melhora imenso muitos sistemas dai.
Descordo, vou usar y_ini em vez de MySQL? sу porque usei y_commands? Nгo vai fazer diferenзa se usar um ou outro.

Me fale qual sistema estб falho(tirando do rpt), e onde posso melhorar? sempre quero melhorar...
Reply
#6

Quote:
Originally Posted by Dolpin
Посмотреть сообщение
Descordo, vou usar y_ini em vez de MySQL? sу porque usei y_commands? Nгo vai fazer diferenзa se usar um ou outro.

Me fale qual sistema estб falho(tirando do rpt), e onde posso melhorar? sempre quero melhorar...
foreach para os loops


ja foi discutido e provado que esta:

pawn Код:
for(new i = 0; i < GetMaxPlayers(); i++)
nao e a melhor forma de fazer loops ( sem querer iniciar outra discussao )


pawn Код:
EscreverLog(playerid, lognome[], texto[])
{
        new ArquivoLog[60], File:Log, a, m, d, h, mi, s;
        getdate(a, m, d);
        gettime(h, mi, s);
        format(ArquivoLog, sizeof(ArquivoLog), "Logs/%s.txt", lognome);
        if(fexist(ArquivoLog))
        {
                Log = fopen(ArquivoLog, io_append);
        }
        else Log = fopen(ArquivoLog, io_write);
        format(Texto, sizeof(Texto), "[%02d/%02d/%02d] [%02d:%02d:%02d]: {%s} %s\r\n", d, m, a, h, mi, s, Nome(playerid), texto);
        fwrite(Log, Texto);
        fclose(Log);
        return 1;
}
usar y_ini para sistemas de salvamento que nao usa MySQL nao й mб ideia.

Tem muito mais coisas, porem basta voce olhar a YSI ver as funcoes dela e ver o que pode melhorar.

pawn Код:
public AtualizarHoras(playerid)
{
        new AnoS, MesS, DiaS, HorasS, MinutoS, SegundoS, Mess[3];
        getdate(AnoS, MesS, DiaS);
        gettime(HorasS, MinutoS, SegundoS);
        switch(MesS)
        {
            case 1: Mess = "01";
        case 2: Mess = "02";
        case 3: Mess = "03";
        case 4: Mess = "04";
        case 5: Mess = "05";
        case 6: Mess = "06";
        case 7: Mess = "07";
        case 8: Mess = "08";
        case 9: Mess = "09";
        case 10: Mess = "10";
        case 11: Mess = "11";
        case 12: Mess = "12";
        }
        format(Texto, sizeof(Texto), "%02d/%s/%d", DiaS, Mess, AnoS);
        TextDrawSetString(Data, Texto);
        format(Texto, sizeof(Texto), "%02d:%02d:%02d", HorasS, MinutoS, SegundoS);
        TextDrawSetString(Horas, Texto);
        SetWorldTime(HorasS);
        return 1;
}
ainda me pergunto para que aquele case ali.
Reply
#7

Quote:
Originally Posted by PT
Посмотреть сообщение
foreach para os loops


ja foi discutido e provado que esta:

pawn Код:
for(new i = 0; i < GetMaxPlayers(); i++)
nao e a melhor forma de fazer loops ( sem querer iniciar outra discussao )


pawn Код:
EscreverLog(playerid, lognome[], texto[])
{
        new ArquivoLog[60], File:Log, a, m, d, h, mi, s;
        getdate(a, m, d);
        gettime(h, mi, s);
        format(ArquivoLog, sizeof(ArquivoLog), "Logs/%s.txt", lognome);
        if(fexist(ArquivoLog))
        {
                Log = fopen(ArquivoLog, io_append);
        }
        else Log = fopen(ArquivoLog, io_write);
        format(Texto, sizeof(Texto), "[%02d/%02d/%02d] [%02d:%02d:%02d]: {%s} %s\r\n", d, m, a, h, mi, s, Nome(playerid), texto);
        fwrite(Log, Texto);
        fclose(Log);
        return 1;
}

usar y_ini para sistemas de salvamento que nao usa MySQL nao й mб ideia.

Tem muito mais coisas, porem basta voce olhar a YSI ver as funcoes dela e ver o que pode melhorar.

pawn Код:
public AtualizarHoras(playerid)
{
        new AnoS, MesS, DiaS, HorasS, MinutoS, SegundoS, Mess[3];
        getdate(AnoS, MesS, DiaS);
        gettime(HorasS, MinutoS, SegundoS);
        switch(MesS)
        {
            case 1: Mess = "01";
        case 2: Mess = "02";
        case 3: Mess = "03";
        case 4: Mess = "04";
        case 5: Mess = "05";
        case 6: Mess = "06";
        case 7: Mess = "07";
        case 8: Mess = "08";
        case 9: Mess = "09";
        case 10: Mess = "10";
        case 11: Mess = "11";
        case 12: Mess = "12";
        }
        format(Texto, sizeof(Texto), "%02d/%s/%d", DiaS, Mess, AnoS);
        TextDrawSetString(Data, Texto);
        format(Texto, sizeof(Texto), "%02d:%02d:%02d", HorasS, MinutoS, SegundoS);
        TextDrawSetString(Horas, Texto);
        SetWorldTime(HorasS);
        return 1;
}
ainda me pergunto para que aquele case ali.
Sim, estб certo sobre os loops, mas nгo percebo grande diferenзa entre um e outro, й que acostumei com um...

Sobre o escrever log, й melhor que usar MySQL e y_ini sу para escrever um 'log'...

YSI й muito extensa, mas y_ini mostra falhas comigo, e as outras nгo vejo grande utilidade, apenas a y_commands da YSI me impressiona.

#edit

Sim, posso ter outra forma usando:

pawn Код:
Mess = MesS == 1 ? ("01") : MesS == 2 ? ("02") ...
Mas gosto de entender meu prуprio cуdigo, nгo deixar-lo confuso.
Reply
#8

Quote:
Originally Posted by Dolpin
Посмотреть сообщение
#edit

Sim, posso ter outra forma usando:

pawn Код:
Mess = MesS == 1 ? ("01") : MesS == 2 ? ("02") ...
Mas gosto de entender meu prуprio cуdigo, nгo deixar-lo confuso.
?? wtf

pawn Код:
public AtualizarHoras(playerid)
{
    new AnoS, MesS, DiaS, HorasS, MinutoS, SegundoS, Mess[3];
    getdate(AnoS, MesS, DiaS);
    gettime(HorasS, MinutoS, SegundoS);
   
    format(Texto, sizeof(Texto), "%02d/%02d/%04d", DiaS, Mess, AnoS);
    TextDrawSetString(Data, Texto);
    format(Texto, sizeof(Texto), "%02d:%02d:%02d", HorasS, MinutoS, SegundoS);
    TextDrawSetString(Horas, Texto);
    SetWorldTime(HorasS);
    return 1;
}
tendeu agora porque falei do switch?

#edit

pawn Код:
//OnPlayerSpawn(playerid)
switch(Dados[playerid][Torcida])
{
    case 1: SetPlayerPos(playerid, 1833.7756, -1842.5320, 13.5781);
    case 2..40: SetPlayerPos(playerid, 0.0, 0.0, 0.0);
    default: SetPlayerPos(playerid, 1830.4520,-1842.7332,13.5781);
}
outro caso.
Reply
#9

Bom trabalho, poderia ter optado por usar outros recursos, melhorando o script como o PT disse.
Mas no geral o cуdigo nгo estб ruim, parabйns Pedex
Reply
#10

Nгo tinha visto esse tуpico ainda, vocк postou bem na йpoca que eu viajei hehe.

Poxa, meus parabйns, pelo pouco que li achei interessante, irei apurar o cуdigo e ver se estб tгo bom quanto aparenta.

Gostaria que vocк me contactasse por PM, quando possнvel.

Parabйns mais uma vez, abraзos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)