Muito bom!
aprovado :button_ok:
isso é um programa para fazer scripts?
extraindo já.
Sim é um programa para criar scripts, o executar é um debuger?
para ver se o script tem erros?
vou acompanhar novas versões...
Por joaohd, 05 de jul. de 2010 em Noticias - Arquivo
Muito bom!
aprovado :button_ok:
isso é um programa para fazer scripts?
extraindo já.
Sim é um programa para criar scripts, o executar é um debuger?
para ver se o script tem erros?
vou acompanhar novas versões...
Editado Julho 5 por felzan
info
Grupo: Marquês
Registrado: 08/05/08
Posts: 1.3k
Reputação: +168

Cara não estou conseguindo abrir o programa,
clico em wlua.exe e na mesma hora sem abrir nada aparece wlua.exe parou de funcionar...
info
Grupo: Visconde
Registrado: 03/02/09
Posts: 361
Reputação: +200
Char no Tibia: Fearless Man

@felzan
Sim, o botão executar é um debugger.
@Won Helder
Abra pelo XTSE.exe
flw
info
Grupo: Marquês
Registrado: 08/05/08
Posts: 1.3k
Reputação: +168

Mesmo erro... O que será?
Uso Win Vista Ultimate x86
Abraços!
info
Grupo: Visconde
Registrado: 03/02/09
Posts: 361
Reputação: +200
Char no Tibia: Fearless Man

Estranho porque foi testado no Windows Xp e Windows 7 Ultimate x64 ...
Talvez seja algo com as dll's ou o próprio wlua.exe. Procurarei uma solução.
flw
info
Grupo: Marquês
Registrado: 08/05/08
Posts: 1.3k
Reputação: +168

Vou baixar novamente, talvez tenha corrompido no download, sei lá...
OBS: Já tentei executar em modo de compatibilidade...
EDITED:
Ah cara me desculpa, não vi isso:
Ps: Algumas pessoas podem obter um erro devido à falta de lua5.1.dll. Caso aconteça, basta copiar a dll de algum servidor para a pasta do programa.
Agora funcionou!
Muito bom o programa,
Aprovadíssimo!
Editado Julho 5 por Won Helder
@para a próxima versão...
poderia ter uma parte, a esquerda, um tabela, com as funções, no lugar da janela de funções.
info
Grupo: Marquês
Registrado: 08/05/08
Posts: 1.3k
Reputação: +168

Dicas para Próxima Edição:
- 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
É isso cara, mas para a primeira edição es´ta muito bom, espero que dê uma olhada no que eu disse :smile_positivo:
Abraços!
info
Grupo: Visconde
Registrado: 03/02/09
Posts: 361
Reputação: +200
Char no Tibia: Fearless Man

Dicas anotadas!
Muitas das funções básicas não puderam ser implementadas porque usei um método que não dava suporte à elas (wx.wxTextCtrl), caso contrário teríamos já na versão 1.0 a distinção de cores e muitas outras features =x
flw
Cara ta sem a função "selecionar tudo", mais o programa é muito bom para primeira versao. Parabens
REP.++![]()
Att. Saymon
info
Grupo: Herói
Registrado: 25/06/08
Posts: 723
Reputação: +275
Gênero: Masculino
Char no Tibia: Diiva

Já tinha visto o programa, o Matheus tinha me passado ahaha ![]()
O programa ficou muito bom mesmo, com o tempo com certeza ele vai melhorando mais ainda... =)
Aah para quem quiser baixar já com a lua5.1.dll:
info
Grupo: Campones
Registrado: 09/06/10
Posts: 80
Reputação: +78
Char no Tibia: Dardnyti Elfresso

Muito bom o programa cara
espero pelas novas versões..
vai facilitar a vida dos iniciantes e, scripters ;x
abraçoo
info
Grupo: Campones
Registrado: 03/06/08
Posts: 85
Reputação: +27
Char no Tibia: Drunk Outlaw

Ótimo trabalho cara, aguardando novas versões!
Abraços.
info
Grupo: Visconde
Registrado: 03/02/09
Posts: 361
Reputação: +200
Char no Tibia: Fearless Man
Então... aqui estou novamente com mais um fruto de meus estudos em LUA.
Recentemente fui apresentado à um novo ambiente de programação em LUA, o wxLua. Bom, mas primeiro, devemos saber o que é o wxLua:
wxLua é um ambiente de programação LUA que tem como função principal a criação de uma interface gráfica para aplicação de scripts.
Abaixo segue um exemplo do que pode ser feito com o wxLua:
Obs: O script contém 352 linhas, podendo "bugar" o layout.
package.cpath = package.cpath..";./?.dll;./?.so;../lib/?.so;../lib/vc_dll/?.dll;../lib/bcc_dll/?.dll;../lib/mingw_dll/?.dll;" -- Socket package.cpath = "?.dll" -- Socket package.path = "?.lua" -- Socket require "wx" ----------------------------------------- -- Declaração dos ids usados no script -- ----------------------------------------- local ID_NEW = wx.wxID_HIGHEST + 1 local ID_OPEN = wx.wxID_HIGHEST + 2 local ID_SAVE = wx.wxID_HIGHEST + 3 local ID_SAVEAS = wx.wxID_HIGHEST + 4 local ID_EXIT = wx.wxID_HIGHEST + 5 local ID_CUT = wx.wxID_CUT local ID_COPY = wx.wxID_COPY local ID_PASTE = wx.wxID_PASTE local ID_UNDO = wx.wxID_UNDO local ID_REDO = wx.wxID_REDO local ID_FIND = wx.wxID_FIND local ID_SUBS = wx.wxID_HIGHEST + 6 local ID_GOTO = wx.wxID_HIGHEST + 7 local ID_FUNC = wx.wxID_HIGHEST + 8 local ID_DEBUG = wx.wxID_HIGHEST + 9 local ID_ABOUT = wx.wxID_ABOUT ---------------------------------------------- -- Criação do espaço para escrita do código -- ---------------------------------------------- local frame = wx.wxFrame(wx.NULL, wx.wxID_ANY, "X-Tibia Scripting environment", wx.wxDefaultPosition, wx.wxDefaultSize) local panel = wx.wxPanel(frame, wx.wxID_ANY) local mainSizer = wx.wxBoxSizer(wx.wxVERTICAL) local script = wx.wxTextCtrl(panel, wx.wxID_ANY, "", wx.wxDefaultPosition, wx.wxDefaultSize, wx.wxTE_MULTILINE) local listSizer = wx.wxBoxSizer(wx.wxHORIZONTAL) listSizer:Add(script, 5, wx.wxALL+wx.wxEXPAND, 5) mainSizer:Add(listSizer, 5, wx.wxALL+wx.wxEXPAND, 5) panel:SetSizer(mainSizer) mainSizer:SetSizeHints(panel) -------------------------------- -- Configurando a fonte usada -- -------------------------------- local font = wx.wxFont(10, wx.wxFONTFAMILY_MODERN, wx.wxFONTSTYLE_NORMAL, wx.wxFONTWEIGHT_NORMAL, false, "Andale Mono") script:SetFont(font) ----------------------------------- -- Adicionando os botões ao menu -- ----------------------------------- local menu = wx.wxMenuBar() local arquivo = wx.wxMenu({ {ID_NEW, "Novo\tCtrl+N", "Abre um novo arquivo"}, {ID_OPEN, "Abrir\tCtrl+O", "Abre um script salvo"}, { }, {ID_SAVE, "Salvar\tCtrl+S", "Salva o script ativo"}, {ID_SAVEAS, "Salvar como...\tCtrl+Shift+S", "Salva o script como..."}, { }, {ID_EXIT, "Sair\tCtrl+Q", "Encerra o programa"} }) local editar = wx.wxMenu({ {ID_CUT, "Recortar\tCtrl+X", "Recortar"}, {ID_COPY, "Copiar\tCtrl+C", "Copiar"}, {ID_PASTE, "Colar\tCtrl+V", "Colar"}, { }, {ID_UNDO, "Desfazer\tCtrl+Z", "Desfaz a ação"}, {ID_REDO, "Repetir\tCtrl+Y", "Refaz a ação"} }) local ferramentas = wx.wxMenu({ {ID_FUNC, "Funções\tF1", "Abre uma lista das funções existentes"}, { }, {ID_DEBUG, "Executar\tF5", "Executa o script"} }) local acerca = wx.wxMenu({ {ID_ABOUT, "Sobre...\tF11", "Informações do aplicativo"} }) menu:Append(arquivo, "Arquivo") menu:Append(editar, "Editar") menu:Append(ferramentas, "Ferramentas") menu:Append(acerca, "Info") ---------------------------------- -- 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_CUT then editor:Cut() elseif menu_id == ID_COPY then editor:Copy() elseif menu_id == ID_PASTE then editor:Paste() elseif menu_id == ID_UNDO then editor:Undo() elseif menu_id == ID_REDO then editor:Redo() end end frame:Connect(ID_CUT, wx.wxEVT_COMMAND_MENU_SELECTED, OnEditMenu) -- Cortar -- frame:Connect(ID_CUT, wx.wxEVT_UPDATE_UI, OnUpdateUIEditMenu) -- Cortar -- frame:Connect(ID_COPY, wx.wxEVT_COMMAND_MENU_SELECTED, OnEditMenu) -- Copiar -- frame:Connect(ID_COPY, wx.wxEVT_UPDATE_UI, OnUpdateUIEditMenu) -- Copiar -- frame:Connect(ID_PASTE, wx.wxEVT_COMMAND_MENU_SELECTED, OnEditMenu) -- Colar -- frame:Connect(ID_PASTE, wx.wxEVT_COMMAND_BUTTON_CLICKED, function (event) local editor = script event:Enable(editor and (wx.__WXGTK__ or editor:CanPaste())) end) -- Colar -- frame:Connect(ID_UNDO, wx.wxEVT_COMMAND_MENU_SELECTED, OnEditMenu) -- Desfazer -- frame:Connect(ID_UNDO, wx.wxEVT_UPDATE_UI, function (event) local editor = script event:Enable(editor and editor:CanUndo()) end) -- Desfazer -- frame:Connect(ID_REDO, wx.wxEVT_COMMAND_MENU_SELECTED, OnEditMenu) -- Refazer -- frame:Connect(ID_REDO, wx.wxEVT_UPDATE_UI, function (event) local editor = script event:Enable(editor and editor:CanRedo()) end) -- Refazer -- -- Botões do Menu Arquivo -- -- Botão "novo" -- function GetEditor(selection) local editor = nil if selection == nil then selection = script:GetSelection() end if (selection >= 0) and (selection < script:GetPageCount()) then editor = script:GetPage(selection):DynamicCast("wxTextCtrl") end return editor end frame:Connect(ID_NEW, wx.wxEVT_COMMAND_MENU_SELECTED, function() if script:GetValue() ~= "" then local saveFile = wx.wxFileDialog(frame, "Save file as", '', '', "Lua files (*.lua)|*.lua|", wx.wxSAVE) saveFile:ShowModal() local handle = io.open(saveFile:GetPath(), "w") if saveFile:GetPath() == '' then return true end handle:write(script:GetValue()) handle:close() SCRIPT_DIR = saveFile:GetPath() script:SetValue("") frame:SetStatusText("Untitled") else script:SetValue("") SCRIPT_DIR = nil frame:SetStatusText("Untitled") end end ) -- Botão "Abrir" -- function open(event) local openFile = wx.wxFileDialog(panel, "Open script", "", "", "Lua files (*.lua)|*.lua|Luai files (*.luai)|*.luai|System files (*.luas)|*.luas|", wx.wxOPEN + wx.wxFILE_MUST_EXIST) openFile:ShowModal() if openFile:GetPath() == '' then return end local handle = io.open(openFile:GetPath()) if not handle then return wx.wxMessageBox("Cannot open script " .. openFile:GetPath()) end script:SetValue(handle:read('*a')) SCRIPT_DIR = openFile:GetPath() end frame:Connect(ID_OPEN, wx.wxEVT_COMMAND_MENU_SELECTED, open) -- Botão "Salvar Como" -- frame:Connect(ID_SAVEAS, wx.wxEVT_COMMAND_MENU_SELECTED, function() local saveFile = wx.wxFileDialog(frame, "Save file as", '', '', "Lua files (*.lua)|*.lua|", wx.wxSAVE) saveFile:ShowModal() local handle = io.open(saveFile:GetPath(), "w") if saveFile:GetPath() == '' then return true end handle:write(script:GetValue()) handle:close() SCRIPT_DIR = saveFile:GetPath() end) -- Botão Salvar -- frame:Connect(ID_SAVE, wx.wxEVT_COMMAND_MENU_SELECTED, -- Socket function() if SCRIPT_DIR then local handle = io.open(SCRIPT_DIR, 'w') handle:write(script:GetValue()) handle:close() return true end local saveFile = wx.wxFileDialog(frame, "Save file as", '', '', "Lua files (*.lua)|*.lua|Luai files(*.luai)|*.luai|System files (*.luas)|*.luas|", wx.wxSAVE) saveFile:ShowModal() local handle = io.open(saveFile:GetPath(), "w") if saveFile:GetPath() == '' then return true end handle:write(script:GetValue()) handle:close() SCRIPT_DIR = saveFile:GetPath() return true end) -- Botão encerra programa -- function close(event) os.exit() panel:Close() end panel:Connect(ID_EXIT, wx.wxEVT_COMMAND_BUTTON_CLICKED, close) frame:Connect(ID_EXIT, wx.wxEVT_COMMAND_MENU_SELECTED, close) -- Botões Menu Ferramentas -- Botão "Funções" function showFunc(event) local dialog = wx.wxDialog(frame, wx.wxID_ANY, "OpenTibia Library") local txt = wx.wxTextCtrl(dialog, wx.wxID_ANY, "", wx.wxDefaultPosition, wx.wxDefaultSize, wx.wxTE_MULTILINE) local func = io.open("DATA/functions.lua") txt:SetFont(font) txt:SetValue(func:read('*a')) local mainSizer = wx.wxBoxSizer(wx.wxVERTICAL) local listSizer = wx.wxBoxSizer(wx.wxHORIZONTAL) listSizer:Add(txt, 5, wx.wxALL+wx.wxEXPAND, 5) mainSizer:Add(listSizer, 5, wx.wxALL+wx.wxEXPAND, 5) dialog:SetSizer(mainSizer) dialog:ShowModal() end frame:Connect(ID_FUNC, wx.wxEVT_COMMAND_MENU_SELECTED, showFunc) -- Botão executar script -- frame:Connect(ID_DEBUG, wx.wxEVT_COMMAND_MENU_SELECTED, function() local s, y = pcall(loadstring(script:GetValue())) a, i = loadstring(script:GetValue()) if not s then print(i) end end ) -- 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 1.0 </font> </td> </tr> </table> </body> </html> ]] local dlg = wx.wxDialog(frame, 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 frame:Connect(ID_ABOUT, wx.wxEVT_COMMAND_MENU_SELECTED, DisplayAbout) -- Criação do ambiente frame:SetMenuBar(menu) frame:CreateStatusBar(1) frame:SetStatusText("Untitled",0) frame:Show() wx.wxGetApp():MainLoop()E também algumas fotos do programa:
Menu do programa
Menu arquivo
Menu editar
Funções
Info
Como é a primeira versão e ainda não sei muito sobre o assunto, o programa ficou bem básico, contendo apenas as funções:
Arquivo
► Novo, Abrir, Salvar, Salvar como e exit
Editar
► Copiar, Colar, Recortar, Desfazer, Refazer
Ferramentas
► Funções, Executar
Info
► Sobre o programa
Link do Scan: Scan
Link para download: X-Tibia Scripting Environment.rar
Ps: Algumas pessoas podem obter um erro devido à falta de lua5.1.dll. Caso aconteça, basta copiar a dll de algum servidor para a pasta do programa.
Bom, é isso.
Aguardem novas versões...
Agradecimentos: MatheusMkalo, Socket
flw
Editado Julho 5 por apocarai