Jump to content

Stanley Sathler

MTA Contributors
  • Posts

    563
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Stanley Sathler

  1. MySQL, Rodrigo, é um sistema gerenciador de banco de dados. Se quiser usar um resource que utiliza MySQL, o primeiro passo é garantir que o MySQL esteja instalado e rodando na sua máquina. Para instalar o MySQL, você pode seguir dois caminhos diferentes: Instala o XAMPP, que vai instalar, além do MySQL, Apache e mais algumas ferramentas (caso você use a opção de instalação padrão); Instala apenas o MySQL. Um bom link é este, do DevMedia. É importante ressaltar também que você provavelmente vai precisar configurar o usuário e senha do seu MySQL em algum lugar do resource.
  2. Na verdade, muitos servidores têm. A diferença é que lá são chamados de Táxi.
  3. Olá @Lord Henry A questão da licença depende diretamente de tudo que estiver incluído no seu resource e que seja de terceiros. Consideremos um "resource simples" um resource que possui apenas algumas linhas de código e nada mais; nem uma textura, nem um modelo 3D, nem mesmo um arquivo de áudio sequer. Se o código deste resource simples foi construído por você, do zero, então a licença que ele tem é você quem decide. Isso quer dizer que, se você quiser vender, não há nada de errado nisso. No entanto, se o seu resource possui alguma coisa que foi feito por uma outra pessoa, mesmo que o código tenha sido desenvolvido por você, você passa a depender da licença de cada coisa dessa lista.
  4. Por mais que o BonSay tenha tido a melhor intenção do mundo em te ajudar (acredito nisso), a solução do n3wage com tabela é sem comparação. Porém, como você quer basear os dias da semana no horário do jogo, a "gambiarra" (assim por ele dito) do Hornet fica sendo a melhor opção. Isso porque o getTime() não tem esse controle de dias de semana. Aí, para você não resetar a semana toda vez que o script parar, importante salvar o dia da semana toda vez que o evento "onResourceStop" for chamado. Você pode usar o setAccount() do MTA (não quero sugerir o uso de queries diretas com dbExec() e companhia). Crie uma conta qualquer, "myServerManager", onde você pode salvar esse tipo de informação.
  5. LeSilver, então talvez seja porque o [editor] esteja faltando. Você pode baixar os resources clicando aqui. Baixe-os e coloque-os na pasta MTA San Andreas 1.5\server\mods\deathmatch\resources.
  6. n3wage, cara, por sorte eu li essa micro nota de rodapé. Onde eu trabalho definimos um padrão de sempre usar dois espaços, então acabei me acostumando. No começo foi difícil, mas uma hora vai. Então, eu na verdade até sabia dessa diferença entre pairs() e ipairs(). O que na época achei estranho foi a ordem com que as funções navegavam em meu array. Parecia que em algum momento, a ordem da minha tabela era alterada, sabe? Ela não era lida na mesma sequência em que foi declarada. Eu declarei minha tabela com esta ordem: Ammo, Primary e Secondary. Mas quando usava pairs(), é como se fosse lida nesta ordem: Secondary, Ammo, Primary. Eu chequei, e não estava em ordem alfabética, que foi a primeira coisa que me veio à cabeça quando vi a ordem ser alterada. Aí queria saber o quê que estava acontecendo... o porquê da ordem ser alterada, sacou? Na verdade o problema nem era no pairs(), porque se formos pensar, quando eu uso a função para reordenar a tabela, eu uso um pairs() no resultado retornado. Se o problema fosse no pairs(), ia avacalhar a ordem de novo. É como se a minha tabela já fosse armazenada na memória erroneamente. E sim, a gambiarra era pra fazer exatamente o que você disse, forçar uma reordenação na forma correta. E essa gambiarra continua lá no código.... hahahaha.
  7. Você fica sempre nessa tela preta? Ou chega a sair dela? Tive esse problema uma vez e descobri que a minha pasta MTA San Andreas 1.5\server\mods\deathmatch\resources não tinha o resource [editor]. O estranho é que eu podia jurar que a instalação já tinha vindo sem ela....
  8. Oi pessoal, Primeiramente, extremamente feliz em ver a seção de Programação ficando finalmente movimentada, já que no passado era uma das mais abandonadas. Vocês têm alguma ideia do porquê do ipairs() tratar uma tabela associativa de forma incorreta? O que quero dizer, é: table = { ammo = "Ammo", primary = "Primary Weapons", secondary = "Secondary Weapons" } Se eu dou um pairs(tabela), a interação meio que me devolve uma ordem do tipo primary, ammo, secondary. Pensei "ah, deve estar ordenando as chaves por ordem alfabética" (já que minha tabela não consistia apenas nestes valores), mas em ordem alfabética não é, afinal, o "items" vinha primeiro e, o "ammo", só no final. Li em vários lugares, mas não encontrei uma resposta concreta. Como resolução final, precisei fazer uma gambiarra do tipo: table = { ammo = {"Ammo", 1}, primary = {"Primary", 2}, secondary = {"Secondary", 3} } function iAmHandsome() local reordered = {} for i, item in pairs(table) do table.insert(reordered, item[2], item[1]) end return reordered end Alguma ideia do porquê isso acontecer? E uma alternativa que não seja essa putaria que eu fiz?
  9. Saml1er and Necktrox, I did it using getResourceGUIElement(). I was in doubt about how guiRoot would work, but now I know that it's the same that the function above. So, as I asked before: yes, it's a table. In this way, I can say that I used Necktrox's suggestion or Saml1er's second suggestion (which is the same). And I would to thank all you guys, because you helped me a lot. Regards, Stanley Sathler.
  10. Hornet, and where can I learn more about guiRoot itself? I mean, I have read about element tree, but didn't find anything about guiRoot there. It's because I don't know how I can access the elements under guiRoot. Is it a table? An object? How can I, for example, access the window elements? Could you show me an example code? Thanks in advance, Stanley Sathler.
  11. Que orgulho essa comunidade brasileira, meu Deus. Muitíssimo obrigado, n3wage e Hornet. Nunca havia pensado nisso e, se fosse parar pra pensar, talvez demorasse para conseguir algo, sinceramente. Vou aplicar no meu conceito e volto com qualquer resultado. Enquanto aguardava a resposta, usei variáveis globais, então vou ter que fazer umas mudanças, hehe.
  12. Hey guys, Is there a way to get all GUI elements? I mean, I would like to get a table containing all GUI elements created in my server, doesn't matter if is visible or not. If I want to retrieve all vehicles in my server, I use getElementsByType("vehicle"). Same for players, markers, etc. Is there something similar for CEGUI elements? Regards, Stanley Sathler.
  13. RooTs, o primeiro release estável conterá somente as mesmas features, talvez com algumas adições a mais, como as que já haviam sido implementadas quando o Dead Walkers começou a ser desenvolvido com o objetivo de ser um servidor. Dentre essas pequenas adições, posso citar o suporte a coletes, sons utilizando recursos do Sound3D para tornar o barulho das armas mais realistas no mapa (com variações de volume conforme distância), zumbis mais realistas (cambaleando) e, se até lá eu encontrar um modelador 3D, talvez mais algumas brincadeiras como adição de silenciadores. Ah, conforme o desenvolvimento progride, sugestões de fácil implementação também podem ser incluídas, portanto, estou aberto caso queira dar algumas, hehe. @Edição: 08/dez, 12:47 O link da última postagem encontra-se desatualizado. A reconstrução agora foi aplicada à branch master. https://github.com/StanleySathler/deadwalkers/
  14. Pessoal, passando apenas para avisar que o Dead Walkers continua recebendo updates, porém sofreu mudanças drásticas no seu contexto geral. Ele agora não é mais baseado no MTA:DayZ. Ele está sendo construído totalmente do zero, visto que, após análise, percebi que é menos custoso refazer tudo do que tentar melhorar o código já existente. Também quero fazer com que o gamemode funcione como uma API: modular, exportando funções que poderão ser usadas por outros módulos (addons) sem que o código do game em si seja modificado. Assim ficará mais fácil instalar qualquer addon. Com o login feito, agora pode-se realmente trabalhar no núcleo do jogo. O ultimo commit pode ser encontrado em: https://github.com/StanleySathler/deadw ... om_scratch Quem quiser ajudar, só dar um fork no projeto e partir para o abraço. Qualquer ajuda será bem-vinda.
  15. n3wage, nunca reescrevi uma função assim, nativa do Multi Theft Auto. Como eu poderia começar? Eu não sei como o adicionador de eventos do MTA funciona por debaixo dos panos. Você já fez algo parecido? Btw, valeu pela ajuda, realmente estava me confundindo.
  16. Oiiiie miguxos! Galera, tem tanto tempo que não desenvolvo nada em Lua para o MTA que esqueci uma coisa que podia jurar que era possível (e ainda posso), mas que, nas minhas tentativas, retornou erro: Eu tenho um addEventHandler que, como vocês já sabem, recebe um callback no 3o argumento (callback: função chamada). Dependendo do evento usado, o callback recebe uma lista de parâmetros (por exemplo, quando usamos o evento onClientGUIClick, o callback recebe button, state, absoluteX e absoluteY). Isso tudo por padrão. A questão é: eu consigo passar um argumento meu para o callback? Isto é, além dos argumentos padrões que a função recebe (conforme dito, button, state, absoluteX e absoluteY), eu gostaria de passar mais um ou dois argumentos. O que eu tentei, foi: addEventHandler("onClientGUIClick", myButton, myCallbackFunction, true, "normal", myCustomArg) Só que não rolou muito...
  17. edit: Esse return dentro do table.sort retorna eles ordenados para a tabela né? Sim, Felipe. A propósito, n3wage teve a manha criando esse código. Típico da programação funcional tão aclamada do JavaScript. Passei no tópico mais para parabenizar isso.
  18. Gostei do canal, Dolinho. Você soa como um cara muito humilde, e isso é bom. Também gostei muito da musiquinha de fundo, acho que contribuiu para essa vibe "zen" do vídeo. Boa sorte com tudo!
  19. ixjf, got it now! Yes, I don't understand so much things about event-based style, which makes me see less clearly some situations. But your last suggestion looks the same gave by Miki, right? Anyway, at the end of all, I followed steps indicated by anumaz. I didn't know about shared type, and seems it is enough for me in this specific situation. Can you give me some more advice? I don't know, maybe it isn't the best way to take. By the way, thanks to everybody who answered me. I got a lof of knowledge with these posts.
  20. "Para os desenvolvedores parece bom". O negócio é para não-desenvolvedores. Por isso são servidores prontos e pré-configurados. E eu não achei lá tão exorbitante... se comparar com o câmbio brasileiro, o Euro tá salgado. Mas se comparar com quem já é europeu (português, por exemplo), 20,00€ eu acho um preço tranquilo. Eu gostei da ideia da empresa. Nunca tinha visto venda de servidores com gamemodes pré-desenvolvidos. Achei inovador. Boa sorte, TopRed.
  21. Guys, I'm sorry by the time. Have been working a lot in the last days. Saml1er, I did a similar thing when creating a Naval Battle for the university. Btw, loved your suggestion just because it's normally a challenge work with sockets in C (at least for me, I love it). But, in this case, create a UDP Server maybe isn't the best and simplest way. ixjf, I didn't think about LuaVMs. It's because I don't know so much about how C/C++ works together interpreting Lua. You gave me good infos about this subject. Just one question: what do you mean with "only required"? Which type of situations? Anumaz, I tried it before but didn't work. Maybe I did something wrong. I'll try the ways suggested by Moose and MIKI and I'll return with the results. If these doesn't work, I'll try IIYAMA suggestion.
  22. If MIKI is right about what you want to do, there is what you need: getPlayerName() getPlayerSerial() onPlayerJoin()
  23. Stronger, mas o upgrade é tão rapidinho. ._. E sim, emite uma mensagem de término. Enfim, pela data, presumo já ter resolvido este problema. Venho apenas para lhe sugerir que, conforme as regras do sub-fórum, pedir que você tenta ser sempre o mais descritivo possível no título dos tópicos, evitando títulos do tipo "Help", "Dúvida", "Ajuda". Você poderia ter posto como título, por exemplo, "Resource legalsystem funciona no MTA 1.5?". Assim podemos ter noção exata do que seu tópico se trata. (:
×
×
  • Create New...