[Script] Classe Screen |
Jp_darkuss « Citoyen » 1591468680000
| 0 | ||
Vim apresentar mais um script para desenvolvimento de modules/minigames, etc. Desta vez uma classe, nomeada de "Screen". Essa classe facilita a criação de textAreas e sua manipulação. Acessem o script pelos links abaixo! Script Versão Linha única Code Lua 1 --[[ Class Screen by Jp_darkuss#4806 Manipulação de textArea ]] local screen= {} screen.__index= screen function screen:new(id, text, player, x, y, width, height, background, border, opacity, static) local object= { id= id, text= text, player= player, x= x or 0, y= y or 0, width= width or 100, height= height or 100, background= background or nil, border= border or nil, opacity= opacity or 1, static= static or false } object.update= function(player) player= player or object.player ui.addTextArea(object.id, object.text, player, object.x, object.y, object.width, object.height, object.background, object.border, object.opacity, object.static) end return setmetatable(object, self) end function screen:Render(player) self.update(player) end function screen:Remove(player) player= player or self.player ui.removeTextArea(self.id, player) end function screen:Move(x, y, player) self.x, self.y= x or self.x, y or self.y self.update(player) end function screen:Background(color, player) self.background= color self.update(player) end function screen:Border(color, player) self.border= color self.update(player) end function screen:Opacity(level, player) self.opacity= level self.update(player) end function screen:Text(text, player) self.text= text self.update(player) end function screen:Static(static, player) self.static= static self.update(player) end Para poder usar vamos inicialmente criar um objeto, usando o Método screen:new() (Method) screen:new(id, text, player [, x, y, width, height, background, border, opacity, static]) => object Cria um manipulador de textAreas Parâmetros: - id (int): o id de sua textArea - text (string): o texto de sua textArea - player (string): a quem sua textArea deverá aparecer por padrão (nil para todos) - x (int): a coordenada horizontal de sua textArea (valor padrão: 0) - y (int): a coordenada vertical de sua textArea (valor padrão: 0) - width (int): a largura de sua textArea (valor padrão: 100) - height (int): a altura de sua textArea (valor padrão: 100) - background (hexadecimal code: 0xcode): a cor de fundo de sua textArea (valor padrão: nil) - border (hexadecimal code: 0xcode): a cor da borda de sua TextArea (valor padrão: nil) - opacity (number): a opacidade de sua textArea (valor padrão: 1) - static (boolean): se sua textArea deve ou não ser estática (seguir jogador) (valor padrão: false) Retorna: Uma tabela, com todos os dados inseridos em screen:new() e seus métodos Vamos criar uma tela: Code Lua 1 2 local main= screen:new(0, "Tela Principal", nil, 100, 100, 100, 100) Agora vamos ver os métodos da sua textArea: Métodos (Method) object:Render([player]) => void Faz sua tela aparecer Parâmetros: - player (string): a quem quer que a tela apareça (nil para o valor padrão) (Method) object:Remove([player]) => void Remove sua textArea Parâmetros: - player (string): a quem quer que a tela seja removida (nil para o valor padrão) (Method) object:Move(x, y [, player]) => void Move sua textArea para as coordenadas descritas Parâmetros: - x (int): a coordenada horizontal para onde quer que a textArea seja movida (nil para não mover nesse eixo) - y (int): a coordenada vertical para onde quer que a textArea seja movida (nil para não mover nesse eixo) - player (string): a quem quer que a tela seja removida (nil para o valor padrão) (Method) object:Text(text [, player]) => void Altera o texto de sua textArea Parâmetros: - text (string): o novo texto - player (string): a quem quer que a tela seja reescrita (nil para o valor padrão) (Method) object:Background(color [, player]) => void Muda a cor de fundo de sua textArea Parâmetros: - color (hexadecimal code: 0xcode): a nova cor de fundo de sua textArea - player (string): a quem quer que a tela tenha seu fundo alterado (nil para o valor padrão) (Method) object:Border(color [, player]) => void Muda a cor da borda de sua textArea Parâmetros: - color (hexadecimal code: 0xcode): a nova cor da borda de sua textArea - player (string): a quem quer que a tela tenha sua borda alterada (nil para o valor padrão) (Method) object:Static(static [, player]) => void Muda a estatividade de sua textArea Parâmetros: - static (boolean): se sua textArea deve ou não ser estática - player (string): a quem quer que a tela sofra alteração na estatividade (nil para o valor padrão) (Method) object:Opacity(level [, player]) => void Muda a opacidade de sua textArea Parâmetros: - level (number): o nível de opacidade de sua textArea - player (string): a quem quer que a tela tenha a opacidade alterada (nil para o valor padrão) Vamos ver agora outro exemplo! Code Lua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 local index= screen:new(0, "<p align='center'><font color='#000000'>Tela inicial!</font></p>", nil, 200, 100, 400, 200, 0x66FF66, 0x111111, 0.8, true) Espero que tenham gostado. O script está em fase inicial, e receberá atualizações! Tópico aberto para críticas e sugestões! Dernière modification le 1591469160000 |
Gamedroit « Citoyen » 1591588380000
| 0 | ||
Eu não utilizaria, mas é legal. Para atualizar o texto da textarea você poderia utilizar a função abaixo em vez de ficar recriando ela toda vez que mudar o texto.
PS: Não utilizaria pois não é realmente necessário usar uma classe para mudar o x, y e outras propriedades da textarea. Eu acredito que esta classe tem baixa performance. |
Jp_darkuss « Citoyen » 1591629000000
| 0 | ||
Contistente3 a dit : Realmente é melhor usar esse função. Essa classe eu não recomendaria em pequenas aplicações, seria mais viável usar scripts que usaria muito do recurso textArea. |
Gamedroit « Citoyen » 1592098620000
| 1 | ||
Jp_darkuss a dit : Ainda assim não deixa de ser um bom script. |