×

Langue

Fermer
Atelier 801
  • Forums
  • Dev Tracker
  • Connexion
    • English Français
      Português do Brasil Español
      Türkçe Polski
      Magyar Română
      العربية Skandinavisk
      Nederlands Deutsch
      Bahasa Indonesia Русский
      中文 Filipino
      Lietuvių kalba 日本語
      Suomi עברית
      Italiano Česky
      Hrvatski Slovensky
      Български Latviešu
      Estonian
  • Langue
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Script] Classe Screen
[Script] Classe Screen
Jp_darkuss
« Citoyen »
1591468680000
    • Jp_darkuss#4806
    • Profil
    • Derniers messages
#1
  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

Classe Screen


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)
main:Render()

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!

  • Tela abre-fecha

    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)
    local close= screen:new(1, "<p><a href='event:close'><font color='#FFFFFF'>X</font></a></p>", nil, 200, 100, 15, 15, 0xFF6666, 0x111111, 1, true)
    local open= screen:new(2, "<p><a href='event:open'><font color='#66FF66'>Open</font></a></p>", nil, 20, 350, 35, 20, nil, nil, 0.8, true)
    eventTextAreaCallback= function(_, player, callback)
    if (callback=="open") then
    open:Remove(player)
    index:Render(player)
    close:Render(player)
    elseif (callback=="close") then
    open:Render(player)
    index:Remove(player)
    close:Remove(player)
    end
    end
    open:Render()

    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
      • Gamedroit#3347
      • Profil
      • Derniers messages
      • Tribu
    #2
      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.

    • ui.updateTextArea (id, texto, jogador)
       Atualiza o conteúdo de uma textarea.
       Parâmetros:
        - id (Int) : o id da textarea
        - texto (String) : o novo texto a ser mostrado
        - jogador (String) : o jogador que verá o novo texto (se nil, aplica-se para todos os jogadores) (valor padrão = nil)


    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
      • Jp_darkuss#4806
      • Profil
      • Derniers messages
    #3
      0
    Contistente3 a dit :
    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.

    • ui.updateTextArea (id, texto, jogador)
       Atualiza o conteúdo de uma textarea.
       Parâmetros:
        - id (Int) : o id da textarea
        - texto (String) : o novo texto a ser mostrado
        - jogador (String) : o jogador que verá o novo texto (se nil, aplica-se para todos os jogadores) (valor padrão = nil)


    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.

    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
      • Gamedroit#3347
      • Profil
      • Derniers messages
      • Tribu
    #4
      1
    Jp_darkuss a dit :
    Contistente3 a dit :
    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.

    • ui.updateTextArea (id, texto, jogador)
       Atualiza o conteúdo de uma textarea.
       Parâmetros:
        - id (Int) : o id da textarea
        - texto (String) : o novo texto a ser mostrado
        - jogador (String) : o jogador que verá o novo texto (se nil, aplica-se para todos os jogadores) (valor padrão = nil)


    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.

    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.

    Ainda assim não deixa de ser um bom script.
    • Forums
    • /
    • Transformice
    • /
    • Modules
    • /
    • [Script] Classe Screen
    © Atelier801 2018

    Equipe Conditions Générales d'Utilisation Politique de Confidentialité Contact

    Version 1.27