bug report module
* change modules authors and website * avoid anchors recursivity crash * update README
This commit is contained in:
parent
69614da8cb
commit
788a831f24
1
BUGS
1
BUGS
|
@ -1,6 +1,5 @@
|
|||
== CRASHS
|
||||
modules recursivity makes client crash, it should generate a warning
|
||||
anchors recursivity makes the client crash
|
||||
|
||||
== P1 BUGS (affects game play)
|
||||
sometimes minimap desync Z pos
|
||||
|
|
|
@ -13,7 +13,7 @@ Beyond of it's flexibility with scripts, otclient comes with tons of other featu
|
|||
the creation of new client side stuff in otserv that was not possible before. These include,
|
||||
sound system, graphics effects with shaders, particle engines, modules/addons system, animated textures,
|
||||
styleable user interface, transparency, multi language, in game lua terminal, an OpenGL 1.1/2.0 ES engine that make possible to
|
||||
run on mobile platforms like Android, iPhone and iPad and much more. Otclient is also flexible enough to
|
||||
run on mobile platforms like Androi/iPhon/iPad and much more. Otclient is also flexible enough to
|
||||
create tibia tools like map editors just using scripts, because it wasn't designed to be just a
|
||||
client, instead otclient was designed to be a combination of a framework and tibia APIs.
|
||||
|
||||
|
@ -50,7 +50,7 @@ We are currently needing help in the following areas:
|
|||
* Designing new UI themes or improving the current one
|
||||
* Translating the client to other languages
|
||||
* Documenting lua APIs and creating tutorials
|
||||
* Scripting in lua new modules or improving the current ones
|
||||
* Scripting with lua new modules or improving the current ones
|
||||
* Porting otclient to other otserv protocols (8.54, 8.7, 9.x, etc)
|
||||
* Spreading otclient project over the web and bring it to new possible contributors
|
||||
* Testing the client itself to report bugs and missing features in our bug tracker
|
||||
|
|
2
TODO
2
TODO
|
@ -3,12 +3,10 @@ game_shaders (with shader manager)
|
|||
game_map (with save/load/options)
|
||||
game_minimap (with all tibia functionality)
|
||||
game_playertrade
|
||||
game_ruleviolations
|
||||
|
||||
== NOTABLE FEATURES
|
||||
make left panel optional
|
||||
must close last container when opening a new containers
|
||||
add options "Copy Text", "Copy Name", "Message" in console labels with a popupmenu
|
||||
move chat tabs
|
||||
save/load mini windows states/location when restarting the client
|
||||
graphics options menu
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: client
|
||||
description: Initialize the client and setups its main window
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
autoload: true
|
||||
autoload-priority: 100
|
||||
reloadable: false
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: client_background
|
||||
description: Handles the background of the login screen
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- client_topmenu
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: client_entergame
|
||||
description: Manages enter game and character list windows
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- client_topmenu
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: client_locales
|
||||
description: Translates texts to selected language
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: baxnie
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- client_topmenu
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: client_modulemanager
|
||||
description: Manage other modules
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- client_topmenu
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: client_options
|
||||
description: Create the options window
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- client_topmenu
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: client_terminal
|
||||
description: Terminal for executing lua functions
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
@onLoad: |
|
||||
dofile 'terminal'
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: client_topmenu
|
||||
description: Create the top menu
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
@onLoad: |
|
||||
dofile 'topmenu'
|
||||
|
|
|
@ -2,7 +2,7 @@ Module
|
|||
name: core_lib
|
||||
description: Contains core lua classes, functions and constants used by other modules
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
website: www.otclient.info
|
||||
autoload: true
|
||||
autoload-priority: 10
|
||||
reloadable: false
|
||||
|
|
|
@ -2,7 +2,7 @@ Module
|
|||
name: core_styles
|
||||
description: Contains ui styles used by other modules
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
website: www.otclient.info
|
||||
autoload: true
|
||||
autoload-priority: 20
|
||||
reloadable: false
|
||||
|
|
|
@ -2,7 +2,7 @@ Module
|
|||
name: game
|
||||
description: Create the game interface, where the ingame stuff starts
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game_tibiafiles
|
||||
|
@ -27,6 +27,7 @@ Module
|
|||
- game_playertrade
|
||||
- game_questlog
|
||||
- game_ruleviolation
|
||||
- game_bugreport
|
||||
|
||||
@onLoad: |
|
||||
importStyle 'styles/items.otui'
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_battle
|
||||
description: Manage battle window
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: andrefaramir
|
||||
website: www.otclient.info
|
||||
icon: battle.png
|
||||
|
||||
dependencies:
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
BugReport = {}
|
||||
|
||||
local bugReportWindow
|
||||
local bugTextEdit
|
||||
local HOTKEY = 'Ctrl+Z'
|
||||
|
||||
function BugReport.init()
|
||||
importStyle 'bugreport.otui'
|
||||
|
||||
bugReportWindow = createWidget('BugReportWindow', rootWidget)
|
||||
bugReportWindow:hide()
|
||||
|
||||
bugTextEdit = bugReportWindow:getChildById('bugTextEdit')
|
||||
|
||||
Keyboard.bindKeyDown(HOTKEY, BugReport.show)
|
||||
end
|
||||
|
||||
function BugReport.terminate()
|
||||
Keyboard.unbindKeyDown(HOTKEY)
|
||||
bugReportWindow:destroy()
|
||||
bugReportWindow = nil
|
||||
bugTextEdit = nil
|
||||
end
|
||||
|
||||
function BugReport.doReport()
|
||||
g_game.reportBug(bugTextEdit:getText())
|
||||
bugReportWindow:hide()
|
||||
TextMessage.displayEventAdvance(tr('Bug report sent.'))
|
||||
end
|
||||
|
||||
function BugReport.show()
|
||||
bugTextEdit:setText('')
|
||||
bugReportWindow:show()
|
||||
bugReportWindow:raise()
|
||||
bugReportWindow:focus()
|
||||
end
|
|
@ -0,0 +1,15 @@
|
|||
Module
|
||||
name: game_bugreport
|
||||
description: Bug report interface (Ctrl+Z)
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
||||
@onLoad: |
|
||||
dofile 'bugreport'
|
||||
BugReport.init()
|
||||
|
||||
@onUnload: |
|
||||
BugReport.terminate()
|
|
@ -0,0 +1,40 @@
|
|||
BugReportWindow < MainWindow
|
||||
!text: tr('Report Bug')
|
||||
size: 280 250
|
||||
&onEnter: BugReport.doReport
|
||||
@onEscape: self:hide()
|
||||
|
||||
Label
|
||||
id: bugLabel
|
||||
!text: tr('Please use this dialog to only report bugs. Do not report rule violations here!')
|
||||
text-wrap: true
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
height: 32
|
||||
|
||||
MultilineTextEdit
|
||||
id: bugTextEdit
|
||||
anchors.top: bugLabel.bottom
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: sendButton.top
|
||||
margin-top: 4
|
||||
margin-bottom: 8
|
||||
|
||||
Button
|
||||
id: sendButton
|
||||
!text: tr('Send')
|
||||
anchors.bottom: cancelButton.bottom
|
||||
anchors.right: cancelButton.left
|
||||
margin-right: 10
|
||||
width: 80
|
||||
&onClick: BugReport.doReport
|
||||
|
||||
Button
|
||||
id: cancelButton
|
||||
!text: tr('Cancel')
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.right: parent.right
|
||||
width: 80
|
||||
@onClick: self:getParent():hide()
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_combatcontrols
|
||||
description: Combat controls window
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_console
|
||||
description: Manage chat window
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart, andrefaramir, baxnie
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_containers
|
||||
description: Manage containers
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart, baxnie
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_healthbar
|
||||
description: Displays health and mana points
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_hotkeys
|
||||
description: Manage client hotkeys
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: andrefaramir
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_inventory
|
||||
description: View local player equipments window
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: baxnie, edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_minimap
|
||||
description: Manage minimap
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_npctrade
|
||||
description: NPC trade interface
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: andrefaramir, baxnie
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_outfit
|
||||
description: Change local player outfit
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: baxnie, edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -1,7 +1,46 @@
|
|||
PlayerTrade = {}
|
||||
|
||||
-- g_game.inspectTrade(counterOffer, index)
|
||||
-- g_game.acceptTrade()
|
||||
-- g_game.rejectTrade()
|
||||
|
||||
local tradeWindow
|
||||
|
||||
local function createTrade()
|
||||
if tradeWindow then
|
||||
tradeWindow:destroy()
|
||||
tradeWindow = nil
|
||||
end
|
||||
|
||||
tradeWindow = createWidget('TradeWindow', rootWidget)
|
||||
end
|
||||
|
||||
local function onOwnTrade(name, items)
|
||||
local firstItem = items[1]
|
||||
|
||||
local tradeItemWidget = tradeWindow:getChildById('tradeItem')
|
||||
tradeItemWidget:setItem(firstItem)
|
||||
end
|
||||
|
||||
local function onCounterTrade(name, items)
|
||||
|
||||
end
|
||||
|
||||
local function onCloseTrade()
|
||||
tradeWindow:destroy()
|
||||
tradeWindow = nil
|
||||
end
|
||||
|
||||
function PlayerTrade.init()
|
||||
importStyle 'tradewindow.otui'
|
||||
|
||||
connect(g_game, { onOwnTrade = onGameOwnTrade,
|
||||
onCounterTrade = onGameCounterTrade,
|
||||
onCloseTrade = onGameCloseTrade })
|
||||
end
|
||||
|
||||
function PlayerTrade.terminate()
|
||||
disconnect(g_game, { onOwnTrade = onGameOwnTrade,
|
||||
onCounterTrade = onGameCounterTrade,
|
||||
onCloseTrade = onGameCloseTrade })
|
||||
end
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_playertrade
|
||||
description: Allow to trade items with players
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -4,9 +4,6 @@ local questLogButton
|
|||
local questLogWindow
|
||||
local questLineWindow
|
||||
|
||||
-- g_game.requestQuestLog()
|
||||
-- g_game.requestQuestLine(questId)
|
||||
|
||||
local function onGameQuestLog(quests)
|
||||
QuestLog.destroyWindows()
|
||||
|
||||
|
@ -84,4 +81,7 @@ function QuestLog.terminate()
|
|||
disconnect(g_game, { onQuestLine= onGameQuestLine })
|
||||
|
||||
QuestLog.destroyWindows()
|
||||
|
||||
questLogButton:destroy()
|
||||
questLogButton = nil
|
||||
end
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_questlog
|
||||
description: View game quests status
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_ruleviolation
|
||||
description: Rule violation interface
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
description: Rule violation interface (Ctrl+Y)
|
||||
author: andrefaramir
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_skills
|
||||
description: Manage skills window
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: baxnie, edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -15,15 +15,15 @@ local function onGameEditText(id, itemId, maxLength, text, writter, time)
|
|||
textEdit:setText(text)
|
||||
textEdit:setEnabled(writeable)
|
||||
|
||||
local desc = tr('You read the following')
|
||||
local desc = ''
|
||||
if #writter > 0 then
|
||||
desc = desc .. tr(', written by \n%s\n', writter)
|
||||
desc = tr('You read the following, written by \n%s\n', writter)
|
||||
|
||||
if #time > 0 then
|
||||
desc = desc .. tr('on %s.\n', time)
|
||||
end
|
||||
elseif #time > 0 then
|
||||
desc = desc .. tr(', written on %s.\n', time)
|
||||
desc = tr('You read the following, written on %s.\n', time)
|
||||
end
|
||||
|
||||
if #text == 0 and not writeable then
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_textbooks
|
||||
description: Allow to edit text books and lists
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_textmessage
|
||||
description: Manage game text messages
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: edubart
|
||||
website: www.otclient.info
|
||||
|
||||
dependencies:
|
||||
- game
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Module
|
||||
name: game_viplist
|
||||
description: Manage vip list window
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
author: baxnie, edubart
|
||||
website: www.otclient.info
|
||||
|
||||
@onLoad: |
|
||||
dofile 'viplist'
|
||||
|
|
|
@ -86,12 +86,20 @@ void UIAnchorLayout::removeWidget(const UIWidgetPtr& widget)
|
|||
removeAnchors(widget);
|
||||
}
|
||||
|
||||
bool UIAnchorLayout::updateWidget(const UIWidgetPtr& widget, UIAnchorGroup& anchorGroup)
|
||||
bool UIAnchorLayout::updateWidget(const UIWidgetPtr& widget, UIAnchorGroup& anchorGroup, UIWidgetPtr first)
|
||||
{
|
||||
UIWidgetPtr parentWidget = getParentWidget();
|
||||
if(!parentWidget)
|
||||
return false;
|
||||
|
||||
if(first == widget) {
|
||||
logError("child '", widget->getId(), "' of parent widget '", parentWidget->getId(), "' is recursively anchored to itself, please fix this");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!first)
|
||||
first = widget;
|
||||
|
||||
Rect newRect = widget->getRect();
|
||||
bool verticalMoved = false;
|
||||
bool horizontalMoved = false;
|
||||
|
@ -125,7 +133,7 @@ bool UIAnchorLayout::updateWidget(const UIWidgetPtr& widget, UIAnchorGroup& anch
|
|||
if(it != m_anchorsGroups.end()) {
|
||||
UIAnchorGroup& hookedAnchorGroup = it->second;
|
||||
if(!hookedAnchorGroup.isUpdated())
|
||||
updateWidget(hookedWidget, hookedAnchorGroup);
|
||||
updateWidget(hookedWidget, hookedAnchorGroup, first);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ protected:
|
|||
bool internalUpdate();
|
||||
|
||||
private:
|
||||
bool updateWidget(const UIWidgetPtr& widget, UIAnchorGroup& anchorGroup);
|
||||
bool updateWidget(const UIWidgetPtr& widget, UIAnchorGroup& anchorGroup, UIWidgetPtr first = nullptr);
|
||||
std::map<UIWidgetPtr, UIAnchorGroup> m_anchorsGroups;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue