Ir para conteúdo

[Arquivado]X-Tibia Scripting Environment


joaohd

Posts Recomendados

Não há como abrir diretamente pelo wlua.exe pois ele é apenas o executável da biblioteca wxlua. Eu inseri o arquivo na pasta para que não houvesse a necessidade de baixar um interpretador que possua a biblioteca wxlua.

 

Para abrir indiretamente pelo wlua.exe, você tem que arrastar o arquivo XTSE.wlua até o wlua.exe. O XTSE.exe é um simples comando Batch que faz isso. No executável está escrito isto:

 

wlua.exe "XTSE.wlua"

 

flw

Link para o comentário
Compartilhar em outros sites

Vc não entendeu, perguntei se tem diferença abrir pelo XTSE.wlua ou pelo XTSE.exe.

Mas pelo q eu vi não tem.

 

Essa biblioteca é meio chata de trabalhar, sem falar que são muitas classes.

Link para o comentário
Compartilhar em outros sites

muito bom para a primeira versão.

 

assim como o won helder escreveu:

 

- Distinção por cores (Assim como Tem no Notepad +++)

- Clicar na função e ela aparecer em vez de uma lista de funções

- Lista com todos os Item ID (Sempre que atualizar a versão do Tibia é só trocar o items.xml na pasta do programa)

- Pesquisa de Funções (Você digita doPlayerAdd, por exemplo, e aparece todas as funções que tenha isso)

- Ajuda com as terminações, tipo se você colocou if, então obrigatoriamente tem que ter then end etc etc.

- Lista de funções (onUse, onStepIn, onSay) etc etc

 

Seria uma boa fazer isso e não é dificil implementar.

 

muito bom pelo menos vejo que o xtibia está "andando" não sei pra onde, mas ta.

 

Vc não entendeu, perguntei se tem diferença abrir pelo XTSE.wlua ou pelo XTSE.exe.

Mas pelo q eu vi não tem.

 

Essa biblioteca é meio chata de trabalhar, sem falar que são muitas classes.

 

tem diferença sim.

a questão é que um é o programa e o outro apenas abre com o programa.

 

bem essa é a diferença.

Link para o comentário
Compartilhar em outros sites

Já estou trabalhando na versão 2.0 mas infelizmente está bem difícil =x

Só consegui implantar a lista lateral com as funções que, ao clicar, são inseridas ao script.

 

 

flw

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

dou uma dica.

 

já que é um programa opensource então compile o arquivo em luac só assim fica facil editar e re-compilar o programa sem contar que o proprio arquivo se alto-inicializa e nele mesmo pode ser editado.

 

 

quando vai sair a nova versão do programa?

Link para o comentário
Compartilhar em outros sites

Eu ja estou mexendo na nova versão mas tive que reformular todo o script. Surgiram problemas quanto ao botão executar, à colorização das keywords e ainda não consegui implementar a função de busca dos itens mediante o arquivo items.xml.

 

 

 

flw

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

Ahashashahsah eita comedinhasss, gostou desse botãozinho hein...

 

Bom, como prometido, aqui está a versão não finalizada ainda:

 

 

require "wx"


function fileExists(filePatch)
return io.open(filePatch) and true or false
end
-------------------------------------
-- Declaração das Variáveis usadas --
-------------------------------------
if fileExists("DATA/functions.lua") then
	if fileExists("DATA/logo.jpg") then

local ID_NOVO     = wx.wxID_HIGHEST + 1
local ID_ABRIR    = wx.wxID_HIGHEST + 2
local ID_SALVAR   = wx.wxID_HIGHEST + 3
local ID_SALVARC  = wx.wxID_HIGHEST + 4
local ID_SAIR     = wx.wxID_HIGHEST + 5

local ID_FUNCLIST = wx.wxID_HIGHEST + 10

local ID_CORTAR   = wx.wxID_CUT
local ID_COPIAR   = wx.wxID_COPY
local ID_COLAR    = wx.wxID_PASTE
local ID_SELECT   = wx.wxID_SELECTALL
local ID_UNDO     = wx.wxID_UNDO
local ID_REDO     = wx.wxID_REDO
local ID_FIND     = wx.wxID_FIND -- Implementar
local ID_SUBS     = wx.wxID_HIGHEST + 6 -- Implementar
local ID_GOTO     = wx.wxID_HIGHEST + 7 -- Implementar

local ID_FUNC     = wx.wxID_HIGHEST + 8
local ID_DEBUG    = wx.wxID_HIGHEST + 9
local ID_ABOUT    = wx.wxID_ABOUT


-------------------------------------
-- Criação do ambiente de trabalho --
-------------------------------------
local editorID = 188
local janela      = wx.wxFrame(wx.NULL, wx.wxID_ANY, "X-Tibia Scripting environment") -- Área de trabalho
local painel      = wx.wxPanel(janela, wx.wxID_ANY) -- Painel de menus
local script      = wxstc.wxStyledTextCtrl(painel, editorID,
                                         wx.wxDefaultPosition, wx.wxDefaultSize,
                                         wx.wxSUNKEN_BORDER)
-- = wx.wxTextCtrl(painel, wx.wxID_ANY, "", wx.wxDefaultPosition, wx.wxSize(360,100), wx.wxTE_MULTILINE) -- Área para escrita do código

local mainSizer   = wx.wxBoxSizer(wx.wxVERTICAL) -- Tamanho vertical
local listSizer   = wx.wxBoxSizer(wx.wxHORIZONTAL) -- Tamanho horizontal
                   listSizer:Add(script, 5, wx.wxALL+wx.wxEXPAND, 5)
				mainSizer:Add(listSizer, 5, wx.wxALL+wx.wxEXPAND, 5)
				painel:SetSizer(mainSizer)
				mainSizer:SetSizeHints(painel)

--------------------------------------
-- Configurando a fonte a ser usada --
--------------------------------------

local font = wx.wxFont(10, wx.wxFONTFAMILY_MODERN, wx.wxFONTSTYLE_NORMAL, wx.wxFONTWEIGHT_NORMAL, false, "Andale Mono")
script:SetFont(font)




----------------------------------
-- Criação do painel de funções --
----------------------------------
function getFunctions()
local func = {}
local handle = io.open("DATA/functions.lua")
for i in io.lines("DATA/functions.lua") do
	table.insert(func, i)
end
return func
end


--[[function getTable(fileName)

   local table = {}
   local varNum = 1

   for line in io.lines(fileName) do
       table[varNum] = line
       varNum = varNum+1
   end

return table
end]]

-----------------------------------
-- Adicionando os botões ao menu --
-----------------------------------

local menu = wx.wxMenuBar()
local arquivo = wx.wxMenu({
                         {ID_NOVO, "Novo\tCtrl+N", "Abre um novo arquivo"},
                         {ID_ABRIR, "Abrir\tCtrl+O", "Abre um script salvo"},
                         { },
                         {ID_SALVAR, "Salvar\tCtrl+S", "Salva o script ativo"},
                         {ID_SALVARC, "Salvar como...\tCtrl+Shift+S", "Salva o script como..."},
                         { },
                         {ID_SAIR, "Sair\tCtrl+Q", "Encerra o programa"}
       })

local editar = wx.wxMenu({
                        {ID_CORTAR, "Recortar\tCtrl+X", "Recortar"},
                        {ID_COPIAR, "Copiar\tCtrl+C", "Copiar"},
                        {ID_COLAR, "Colar\tCtrl+V", "Colar"},
                        { },
					 {ID_SELECT, "Selecionar tudo\tCtrl+A", "Seleciona todo o conteúdo"},
					 { },
					 {ID_FIND, "Localizar...\tCtrl+F", "Localizar..."},
					 {ID_SUBS, "Substituir...", "Substituir..."},
					 {ID_GOTO, "Ir para...\tCtrl+G", "Ir para..."},
					 { },
                        {ID_UNDO, "Desfazer\tCtrl+Z", "Desfaz a ação"},
                        {ID_REDO, "Repetir\tCtrl+Y", "Refaz a ação"}
       })

local ferramentas = wx.wxMenu({
                             {ID_FUNC, "Adicionar função...", "Adiciona uma nova função à lista"},
                             { },
                             {ID_DEBUG, "Executar\tF5", "Executa o script"}
       })

local acerca = wx.wxMenu({
                        {ID_ABOUT, "Sobre...\tF11", "Informações do aplicativo"}
       })

local LIST_ID = wx.wxID_HIGHEST + 10


local list    = wx.wxListBox(painel, LIST_ID, wx.wxDefaultPosition, wx.wxSize(100,100), getFunctions("DATA/functions.lua"))
               listSizer:Add(list, 2, wx.wxALL+wx.wxEXPAND, 5)
			list:SetFont(font)

painel:Connect(LIST_ID, wx.wxEVT_COMMAND_LISTBOX_SELECTED,
       function(event)
           script:AppendText(event:GetString())
       end)



----------------------------------
-- Adicionando ações aos botões --
----------------------------------

-- Botões do Menu Editar --
function OnUpdateUIEditMenu(event) -- enable if there is a valid focused editor
   local editor = script
   event:Enable(editor ~= nil)
end


function OnEditMenu(event)
   local menu_id = event:GetId()
   local editor = script
   if editor == nil then return end
   if     menu_id == ID_CORTAR       then editor:Cut()
   elseif menu_id == ID_COPIAR      then editor:Copy()
   elseif menu_id == ID_COLAR     then editor:Paste()
elseif menu_id == ID_SELECT then editor:SelectAll()
elseif menu_id == ID_UNDO      then editor:Undo()
   elseif menu_id == ID_REDO      then editor:Redo()
   end
end


janela:Connect(ID_CORTAR, wx.wxEVT_COMMAND_MENU_SELECTED, OnEditMenu) -- Cortar --
janela:Connect(ID_CORTAR, wx.wxEVT_UPDATE_UI, OnUpdateUIEditMenu) -- Cortar --

janela:Connect(ID_COPIAR, wx.wxEVT_COMMAND_MENU_SELECTED, OnEditMenu) -- Copiar --
janela:Connect(ID_COPIAR, wx.wxEVT_UPDATE_UI, OnUpdateUIEditMenu) -- Copiar --

janela:Connect(ID_COLAR, wx.wxEVT_COMMAND_MENU_SELECTED, OnEditMenu) -- Colar --
janela:Connect(ID_COLAR, wx.wxEVT_COMMAND_BUTTON_CLICKED,
       function (event)
           local editor = script
           event:Enable(editor and (wx.__WXGTK__ or editor:CanPaste()))
       end) -- Colar --

janela:Connect(ID_SELECT, wx.wxEVT_COMMAND_MENU_SELECTED, OnEditMenu) -- Cortar --
janela:Connect(ID_SELECT, wx.wxEVT_UPDATE_UI, OnUpdateUIEditMenu) -- Cortar --

janela:Connect(ID_UNDO, wx.wxEVT_COMMAND_MENU_SELECTED, OnEditMenu) -- Desfazer --
janela:Connect(ID_UNDO, wx.wxEVT_UPDATE_UI,
       function (event)
           local editor = script
           event:Enable(editor and editor:CanUndo())
       end) -- Desfazer --

janela:Connect(ID_REDO, wx.wxEVT_COMMAND_MENU_SELECTED, OnEditMenu) -- Refazer --
janela:Connect(ID_REDO, wx.wxEVT_UPDATE_UI,
       function (event)
           local editor = script
           event:Enable(editor and editor:CanRedo())
       end) -- Refazer --



menu:Append(arquivo, "&Arquivo")
menu:Append(editar, "&Editar")
menu:Append(ferramentas, "&Ferramentas")
menu:Append(acerca, "&Info")

-- Botões Menu "Acerca"

-- Botao "sobre" --
function DisplayAbout(event)
   local page = [[
       <html>
       <body bgcolor = "#FFFFFF">
       <table cellspacing = 4 cellpadding = 4 width = "100%">
           <tr>
           <td bgcolor = "#DCDCDC">
		<img src="DATA/Logo.jpg"><b> Tibia scripting environment</b>
           <p>
           <font size = 2>
               Visite: Xtibia.com<br>
           </font><font size = 1>
			Versão 2.0 BETA
		</font>
           </td>
         </tr>
       </table>
       </body>
       </html>
   ]]

local dlg = wx.wxDialog(janela, wx.wxID_ANY, "Acerca do X-Tibia Scripting Environment")

local html = wx.wxLuaHtmlWindow(dlg, wx.wxID_ANY,
                                   wx.wxDefaultPosition, wx.wxSize(360, 150),
                                   wx.wxHW_SCROLLBAR_NEVER)
local line = wx.wxStaticLine(dlg, wx.wxID_ANY)
local button = wx.wxButton(dlg, wx.wxID_OK, "OK")

button:SetDefault()

html:SetBorders(0)
html:SetPage(page)
html:SetSize(html:GetInternalRepresentation():GetWidth(),
html:GetInternalRepresentation():GetHeight())

local topsizer = wx.wxBoxSizer(wx.wxVERTICAL)
topsizer:Add(html, 1, wx.wxALL, 10)
topsizer:Add(line, 0, wx.wxEXPAND + wx.wxLEFT + wx.wxRIGHT, 10)
topsizer:Add(button, 0, wx.wxALL + wx.wxALIGN_RIGHT, 10)

dlg:SetAutoLayout(true)
dlg:SetSizer(topsizer)
topsizer:Fit(dlg)

dlg:ShowModal()
dlg:Destroy()
end

janela:Connect(ID_ABOUT, wx.wxEVT_COMMAND_MENU_SELECTED, DisplayAbout)

-- Criação do ambiente
janela:SetMenuBar(menu)
janela:CreateStatusBar(1)
janela:SetStatusText("Untitled",0)


janela:Show()
wx.wxGetApp():MainLoop()

else
print(
[[The following file is missing:
logo.jpg:DATA/logo.jpg]])
end
else
print(
[[The following file is missing:
functions.lua:DATA/functions.lua]])
end

 

 

 

 

Quem quiser ajudar, informe =D.

 

 

flw

Link para o comentário
Compartilhar em outros sites

  • 1 year later...
  • 6 years later...
Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...