Submissão de sub-modos para #Grounds - Sub-modos & Documentação |
Sebafrancuz « Consul » 1491674940000
| 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bem-vindo aos sub-modos do #grounds! O que é #grounds? ㅤ#Grounds é um minigame semi-oficial desenvolvido por Bolodefchoco que traz como objetivo utilizar os poderes de cada piso para que você possa entrar na toca o mais rápido possível. O que são os sub-modos do #grounds? ㅤOs sub-modos não seguem a jogabilidade original do modulo #grounds. São diversos joguinhos (dos quais você só pode jogar em salas, não no cafofo) que podem ser executados por meio do nome da sala. [Um exemplo de sistema é o #circuit0uno] ㅤAtualmente, existem os seguintes sub-modos:
Como eu posso jogar os sub-modos? ㅤVocê irá precisará utilizar o nome da sala, apenas. ㅤUtilize #groundsNúmero aleatório*Nome do sub-modo ㅤComo, por exemplo: #grounds666*xmas Como eu posso enviar um sub-modo? ㅤEste tópico foi aberto especialmente para os desenvolvedores que desejam seu minigame apto para serem jogados em sala, como um sub-modo. ㅤVocê poderá enviar seu minigame tanto por mensagem privada aqui, ou, se desejar open source ou não se importar que os outros possam jogar, aqui no tópico. ㅤNo entanto, você deverá seguir algumas regras dentro do seu código: * -> Você não deve mudar o nome da variável
ENVIO ABERTO #grounds0*Jokenpo - Desenvolvido por Bolodefchoco
#grounds0*Click - Desenvolvido por Bolodefchoco
#grounds0*Presents - Desenvolvido por Bolodefchoco e idealizado por Ruamorangos
#grounds0*Chat - Desenvolvido por Bolodefchoco
#grounds0*CannonUp - Desenvolvido por Bolodefchoco e idealizado por Byontr
#grounds0*Xmas - Desenvolvido por Bolodefchoco e arte por Bogkitty
#grounds0*Signal - Desenvolvido por Bolodefchoco e arte por Flindix
#grounds0*Bootcamp+ - Desenvolvido por Bolodefchoco e idealizado por Mquk
#grounds0*Map - Desenvolvido por Bolodefchoco
#grounds0*Godmode - Desenvolvido por Bolodefchoco e idealizado por Mcqv
#grounds0*Sharpie - Desenvolvido por Bolodefchoco, inicialmente Sharpiepoops
ㅤVocê poderá utilizar as variáveis e funções a seguir para um melhor desempenho do seu modulo dentro do #grounds, uma vez que fazem parte de tal jogo. Vale salientar que a source informada não é exatamente a mesma que se encontra no módulo, mas apenas um pedaço para que seu script não pare. ㅤCaso você tenha dúvida de como utilizá-los, pergunte no tópico. #VARIÁVEIS • system.newGameTimer Pode ser utilizado para verificar quando você poderá executar um novo tfm.exec.newGame. Há um limite de uma execução a cada 6 segundos e utiliza-se este timer. • system.officialMode Seu primeiro index, [1], informa o modo de jogo oficial, caso exista, como vanilla, defilante, bootcamp, etc... O segundo index, [2], contém um texto relacionado a cada modo. • system.isRoom Verifica se a sala é um cafofo ou uma sala "#" Valor: (Boolean) true para sala "#", false para cafofo • system.roomAdmins Armazena os administradores da sala [O nome da sala poderá conter @Nome, onde Nome será um administrador]. Sua estrutura na tabela é [Nome] = true, onde Nome é o índice. • system.miscAttrib Contém um número [1-99] informado no nome da sala. exemplo: o valor da variável na sala "#grounds0*game#69" será "69", enquanto "#grounds0*game#666" será "99" e "#grounds0*game#-5" será "1" • system.roomNumber Armazena o número da sala • system.roomAttributes Armazena os argumentos passados pelo nome da sala • _G.currentTime Uma forma mais fácil de trabalhar com o tempo da partida. Valor: (Float) o tempo atual da partida
• _G.leftTime Uma forma mais fácil de trabalhar com o tempo restante da partida. Valor: (Float) o tempo restante para a próxima partida
#FUNÇÕES • system.setAdmins ( ) Retorna uma tabela com os administradores fixos do módulo. Útil para system.roomAdmins = system.setAdmins(). Retorna: (Table) lista de administradores fixos do módulo • system.isPlayer ( n ) Verifica se o jogador inserido é, de fato, um jogador. Isso evita que fakes e souris atrapalhem seu jogo. O método de verificação checa se o jogador é souris ou não e se sua data de registro no jogo é maior que 5 dias. Parâmetros: - n (String) : o nome do jogador a ser verificado Retorna: (Boolean) true se é um jogador e false se não passou nas verificações • system.players ( alivePlayers ) Faz um controle dos jogadores na sala Parâmetros: - alivePlayers (String) : caso true, a função retornará uma tabela com o nome de todos os jogadores vivos Retorna: #1 (Int) o total de jogadores vivos #2 (Int) o total de jogadores na sala • system.loadTable ( s ) Carrega uma tabela de acordo com a string inserida exemplo: system.loadTable("system.isPlayer")("Bolodefchoco") Parâmetros: - s (String) : a string a ser transformada Retorna: (Table) a tabela referente a string dada • system.getTranslation ( s ) Carrega o dado pedido da tabela translations em forma de string. (Utiliza-se a variável langue presente em todos os submodos) exemplo: system.getTranslation("welcome") -- Onde translations = {en = { welcome = "Hi" }} Parâmetros: - s (String) : o caminho na tabela de traduções Retorna: (Table) a string referente ao caminho dado • system.looping ( f, tick ) Faz um looping que executa a função tick vezes por segundo Parâmetros: - f (Function) : a função a ser executada - tick (Integer) : repetições por segundo Retorna: (Table) a tabela com os timers inseridos • math.isNegative ( x, iN, iP ) Retorna um parâmetro de acordo com o sinal do número informado Parâmetros: - x (Number) : o número para ter o sinal verificado - iN (String) : o parâmetro a ser retornado caso o número informado seja negativo - iP (String) : o parâmetro a ser retornado caso o número informado seja positivo Retorna: (String) o parâmetro de acordo com o sinal do número informado • math.percent ( x, y, v ) Realiza a porcentagem entre os números x e y Parâmetros: - x (Number) : o número atual - y (Number) : o número final - v (Number) : o número máximo (valor padrão = 100) Retorna: (Number) o valor de quantos porcento x é de y com o valor máximo retornável v • math.pythag ( x1, y1, x2, y2, range ) Verifica se uma coordenada está dentro de um círculo imaginário Parâmetros: - x1 (Number) : o ponto X da coordenada - y1 (Number) : o ponto Y da coordenada - x2 (Number) : o ponto X do círculo - y2 (Number) : o ponto Y do círculo - range (Number) : o raio do círculo Retorna: (Boolean) true se a coordenada está dentro do círculo e false se a coordenada está fora do círculo • math.setLim ( value, min, max ) Cria um limite para o valor dado, onde ele nunca será menor ou maior que os valores especificados Parâmetros: - value (Number) : o número a ser controlado - min (Number) : o número mínimo (caso value < min, value = min) - max (Number) : o número máximo (caso value > max, value = max) Retorna: (Number) o valor especificado controlado numa cadeia • string.split ( value, pattern, f ) Fragmenta uma string por meio de um padrão Parâmetros: - value (String) : a string a ser fragmentada - pattern (String) : o padrão a ser seguido - f (Function) : a função ser realizada com o valor fragmentado (valor padrão = nil) Retorna: (Table) a tabela com as strings fragmentadas • string.nick ( player ) Normaliza o nome de um jogador exemplo: string.nick("BoLOdefCHOco") Parâmetros: - player (String) : a string do nome do jogador a ser normalizada Retorna: (String) nome do jogador normalizado • table.find ( list, value, index, f ) Verifica se um valor existe dentro de uma tabela Parâmetros: - list (Table) : a tabela que deve ou não conter o valor a ser especificado - value (String) : o valor a ser identificado na tabela - index (Int) : índice da sub-tabela, caso você queira encontrar o valor dentro de uma (valor padrão = nil) - f (Function) : função a ser executada no valor da verificação atual (valor padrão = nil) Retorna: #1 (Boolean) true se o valor foi encontrado e false se o valor não foi encontrado #2 (Int) o índice na tabela onde o valor foi encontrado • table.turnTable ( x ) Transforma um valor em tabela caso o valor especificado não seja uma Parâmetros: - x (String) : a informação a ser transformada em tabela Retorna: (Table) a tabela referente ao valor especificado • table.random ( t ) Retorna um valor aleatório de uma tabela Parâmetros: - t (Table) : a tabela que terá um valor aleatório retornado Retorna: (String) um valor aleatório da tabela • table.shuffle ( t ) Embaralha os valores de uma tabela Parâmetros: - t (Table) : a tabela que terá os valores embaralhados Retorna: (Table) a tabela embaralhada • deactivateAccents ( str ) Remove os acentos do texto inserido Parâmetros: - str (String) : a string a ter os acentos removidos Retorna: (String) a string com os acentos removidos • normalizedTime ( time ) Normaliza o tempo inserido, fazendo com que ele se transforme em números de 0.5 em 0.5 e não sejam tão quebrados. Parâmetros: - time (Number) : o número com o tempo a ser transformado Retorna: (Number) o número normalizado • normalizeTranslation ( ) Normaliza a tabela de tradução, isto é: Caso uma tradução não exista numa linguagem, ela será, por padrão, a mensagem em inglês. [esta mensagem é automaticamente executada quando um modulo é iniciando, porém ainda faz parte da API caso seu uso seja necessário] • disableChatCommand ( command ) Desativa o comando no chat, além do mesmo em letras minúsculas e maiúsculas Parâmetros: - command (String) : o comando, sem "!" • xml.parse ( currentXml ) Captura todos os atributos na tag de parâmetros Parâmetros: - currentXml (String) : a string do xml atual que pode ser obtida com tfm.get.room.xmlMapInfo.xml Retorna: (Table) a tabela com o formato atributo="valor" • xml.attribFunc ( currentXml, funcs ) Permite realizar funções de acordo com os atributos presentes na tag de parâmetros do mapa atual Parâmetros: - currentXml (String) : a string do xml atual que pode ser obtida com tfm.get.room.xmlMapInfo.xml - funcs (Table) : a tabela que informa o atributo e a função a ser realizada. O atributo deverá estar no índice attribute e a função(valor) deverá estar no índice func. exemplo: {[1] = { attribute = "mapname", func = function(texto) if texto ~= "" then ui.setMapName(texto) end end }} • xml.addAttrib ( currentXml, out, launch ) Insere um atributo na tag de parâmetros do XML do mapa atual Parâmetros: - currentXml (String) : a string do xml atual que pode ser obtida com tfm.get.room.xmlMapInfo.xml - out (Table) : a tabela que informa o atributo e o valor a serem adicionados. O atributo deverá estar no índice tag e o valor deverá estar no índice value. exemplo: {[1] = { tag = "mapname", value = "texto do mapa" }} - launch (Boolean) : caso true, o novo XML será carregado, caso false, o novo XML será retornado. (valor padrão = false) Retorna: (String) o novo XML • xml.getCoordinates ( s ) Captura as coordenadas dadas num atributo, seja por axis ou valores exatos. exemplo: "x;10", "y;10", "10,20", "10,20,30,40,50,60" Parâmetros: - s (String) : a string com as coordenadas a serem coletadas Retorna: (Int) Caso haja axis (x; ou y;), o valor será x ou 0, y ou 0, caso contrário, será retornado uma Table com todas as coordenadas [ímpares são x : 1, 3.., pares são y: 2, 4...] #RECRIADOS • table.concat ( list, sep, f, i, j ) Exerce a função do table.concat oficial (iterar uma tabela numa string), porém foi adicionado um parâmetro f que permite você alterar como o valor será colocado na string. Parâmetros: - list (Table) : a tabela a ser iterada numa string - sep (String) : o separador de valores da tabela na string (valor padrão = "") - f (Function) : a função a ser executada com o valor da tabela na string (valor padrão = nil) exemplo: table.concat({"a","b","c","d"}," ",function(indice, valor) return "{ " .. indice .. " : " .. valor .. " }" end) - i (Int) : o índice onde a iteração deverá ser iniciada (valor padrão = 1) - j (Int) : o índice onde a iteração deverá ser finalizada (valor padrão = #list) Retorna: (String) a string com a tabela iterada • tfm.exec.newGame ( code ) Carrega um mapa, porém com um limite de 1 carregamento a cada 6 segundos. Parâmetros: - code (String) : Código do mapa a ser carregado Retorna: (Boolean) true caso o mapa tenha sido carregado e false caso o tempo de nova execução não esteja zerado • tfm.exec.chatMessage ( txt, n ) Agora não há mais limite para o tamanho do texto. Parâmetros: - txt (String) : O texto a ser mostrado no chat - n (String) : O jogador que verá o texto (valor padrão = nil) Execute seu submodo Code Lua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 -- Dernière modification le 1499965140000 |
Mescouleur « Citoyen » 1491695880000
| 0 | ||
*I N A C R E DI T Á V E L* Boa sorte para todos e um imenso gj para Bolodefchoco |
Contistente2 « Citoyen » 1491953220000
| 0 | ||
Impressionamente :V |
Sebafrancuz « Consul » 1492020900000
| 1 | ||
#signal atualizado! Dernière modification le 1492021440000 |
Jellymichey « Censeur » 1493153100000
| 0 | ||
não dá para voar direito na nuvem conserta alguém |
Blowtex « Citoyen » 1493154960000
| 0 | ||
Jellymichey a dit : O tópico se refere aos sub-modos do modulo #grounds, desde a apresentação dos existentes até um convite para que novos sejam desenvolvidos, tanto é que existe uma pequena API com funções para que você tenha uma liberdade maior no ambiente. Assuntos específicos do modulo #grounds devem ser tratados em seu respectivo tópico. |
Kevingamer60 « Citoyen » 1493158380000
| 0 | ||
gostei dos sub-modos :) |
Thanos 1493160600000
| | ||
[Modéré par Excasr, raison : offtopic - não pertinente ao tópico] |
Elvis 1493167140000
| | ||
[Modéré par Excasr, raison : offtopic - não pertinente ao tópico] |
Brenower « Censeur » 1493167740000
| 0 | ||
sobre o signal flindex noob só desenha coisa feia igual a cara dele Dernière modification le 1493603940000 |
Sebafrancuz « Consul » 1493936580000
| 5 | ||||
Novo submodo! #Bootcamp+ #grounds0*Bootcamp+ - Desenvolvido por Bolodefchoco e idealizado por Mquk
|
Sebafrancuz « Consul » 1496248620000
| 1 | ||
» Todos os bugs conhecidos foram consertados, em todos os submodos. » Todos os códigos, inclusive o do próprio #grounds foram aperfeiçoados e estão mais leves. » A API conta com novas funções, tais como: system.newGameTimer, tfm.exec.newGame, system.roomNumber, system.getTranslation, system.looping, table.shuffle, xml.parse, xml.getCoordinates Aproveite (: |
Sebafrancuz « Consul » 1497623160000
| 2 | |||||||||
Novo comando em #chat: !unlock [Title] Dois novos submodos: #Map e #Godmode #grounds0*Map - Desenvolvido por Bolodefchoco
#grounds0*Godmode - Desenvolvido por Bolodefchoco e idealizado por Mcqv (Reppam)
Nova função na API: normalizeTranslation() Atualização da API e um novo código para que você possa executar seu submodo sem complicações. Espie Code Lua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 --[[ API ]]-- #GROUNDS AGORA É OPEN SOURCE! PEÇA JÁ O SCRIPT! /C BOLODEFCHOCO |
Sebafrancuz « Consul » 1498419840000
| 1 | ||||
Novo submodo! #Sharpie #grounds0*Sharpie - Desenvolvido por Bolodefchoco, inicialmente Sharpiepoops
|
Grastfetry « Consul » 1505505000000
| 0 | ||
Trancado a pedido do criador do module. |