• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Developer IDE for OpenTibia [MinOTaur]

How interested are you in having this kind of tool?

  • Very!

    Votes: 24 61.5%
  • Quite interested.

    Votes: 6 15.4%
  • ...meeh..

    Votes: 1 2.6%
  • Nah, Not interested.

    Votes: 8 20.5%

  • Total voters
    39

MindRage

Toss Me
Joined
Nov 11, 2008
Messages
474
Reaction score
71
Im currently making a tool i call Minotaur.
Minotaur is a Integrated Development Environment that enables you to access the entire data from one program.

Here is a early screenshot.
Uniblaze.JPG

As you can see its not as detailed as i want it to be but teh picture explain a bit better than my words XD..

I will discuss the things in detail later.


Here is a list of what i will try to create:

  1. Scripting Enviorment
    This means syntax highlighting and function list.
  2. Scripting Interface
    Lua will be integrated in this enviorment as a scripting system for the IDE, or as a syntax checker for the script editor.
    Will maybe add plans to integrate more with IronPython once PyOT gets more usage.
  3. Map Editor
    The map will be loaded to be able to edit as in regular map editing programs.
    Since the map editor will also have APIs as plugins.
  4. Plugin System
    This is what makes the editor so good.
    The program is designed in the .net framework and will be able to extend anything as its tool.
    Every "Editor" window will be created. will be a DLL plugin that will be loaded so you can add any extra tool into the enviorment.
    All APIs allowed to access things in the editor such as XML file info and Map Editor will be accessed from a general DLL.
    Options such as Get .Dat info, Sprites or core features will be accessed trough the general dll.
  5. Compability with many verisions as possible
    The entire scripting system and XML loading system will be overrided with certain client verisions and TFS/opentibia verisions.
    This will also be extended to make PYots override to a python based system.
  6. XML Reading and integrating
    All XML files will be placed in a tree where they easily can be edited and read. Since this allows you to know all hidden features for creatures and NPCs even Item attributes with ease.
  7. [Optional] Server-based access, allowing secure way of development and live editing

    This is a hard but very very useful feature which i MIGHT integrate.
    A login based system that makes people able to access the data from another computer to ensure a secure way of making stuff.
    There will be a "Access" list for each member or group that allow them to edit maps and read maps on certain sections, or edit certain scripts.

Let me explain the interface so far:
giggdy.JPG

The Toolbar

Since i think its boring to have the old menu/toolbar style i will use a menu style where you can access things as quickly as you want.
For example, To switch between editors, they will be placed in the first place of the toolbar where there will be a list of available editors,
Plugin editors will be added to the list ofc but to enable editors they have to be enabled trough options. Due to they often can be corrupted.
Security in this case can be a mess..

But anyways everything will be accessed trought menus in the toolbar.

The Data browser

This sidebar will make you able to browse all of you data.
There will be two modes.
XML mode and Directory mode.
XML mode will read all you XML files and allow you to manipulate all XML values and also add/remove things.
This is the thing that i think will be most used for newbies, since they can access anything they want and avoid errors.
The directory mode gives you the ability to browse entire folders and scripts that arent within the XML files read.
This is mostly for those who can and uses multiple files for large systems, For a beggining this will be the Python way of editing before i integrate a way to find registered items/actions trough pure file reading.. though.. it would take alot of time...

The workspace

In this place all the open windows will be placed and accessible. The plugin windows will only appear in this place to make it easier to collect everything.

Since every editor is open on its own instance it will be able to open how many windows as you want of any kind :3
Even two map editors if you would want that... exept it will take alot of memory opening two maps..


The status bar
In the first bar called "label1" will be placed as a "Help" menu. It will show general information about the tool.
Instead of "tooltip" this will also be expanded futher descriptions.
Next there will be a progress bar for large processes such as loading XML files or maps. All these processes will be threaded if possible or runned to not make the applcation lag, It might take longer to run. but it will ensure the data to be safe and not be lost due to an "Doesn't respond" message.




And to experiment i will use a certain GUI option system i call "orbit selection".
Holding in right click will be opening a kind of "Right click" menu that you simply can select by moving the mouse.

it might not fit in very good, but it will be useful when mapping, You could basically map with only your mouse XD..



If you are interested in helping in this project since it is QUITE big. Just PM me. I could use some help in development when it comes to loading OTBM and .Dat files :3
 
Sounds awesome, (btw also add source editor plxxxx)
I hope it won't crash, it's fast and also got same features like all the other editors
 
Unfortunately, I can't offer any help with it, but I'm looking forward to see this thing go on. This would be REALLY handy for people like me, since I script, map, and make npcs and stuff, and it gets really boring to always switch windows and look for stuff in many folders.

Good project, good features, and good luck with it. :D
 
I like it! If you think you can pull this off, it would be great.

What I think is important is proper networking support, with your programming language, it shouldn't be any problems at all?

Many people are running linux servers without any desktop or GUI. If it would be possible to connect through etc sFTP to the linux workstation and work on the files there it would be great.

When you want to add an actionscript you could just click - create new - actionscript
and you would first be prompted to write name of actionscript, if its uniqueid or actionid, and the value. So it kinda modifies actions.xml for you, and then you get an empty document (with perhaps top lines auto generated with info written in actions.xml like which uniqueid is connected to the script).
 
I could make some kind of "upload" feature to a FTP.. but i dunno, It can be a plugin..

oh and the "Add button" adds a new action script with any kind you want. you can set the info in a "propertie" window
 
Erm, That may be hard to do.. i could use shell commands in some cases.. but class reading and all that.... its possible to someone else that can do it as a plugin XD...
 
Update:

Added XML support for Actions and Movements, Currently adding A syntax highlighter for LUA.

Going to use a library called scintilla to make an advanced syntax editing. It will also contain auto complete.
 
This will be awesome, any idea of how long it will take to complete?
 
Nice, You should make it scan lib folders for function, so if there are any new or custom functions it will also add it for auto complete and make it compare the functions that it already has so there are no repeated functions.
 
Compability with many verisions as possible
The entire scripting system and XML loading system will be overrided with certain client verisions and TFS/opentibia verisions.
This will also be extended to make PYots override to a python based system.
sexy. support the .sec map format too! Great idea everything in one place sure would be nice.
 
@soul4soul, Well, Just give me the structure map for .sec maps then i can plan a bit better to make a system compatible for both ;D

Well, havent worked for it on a week, but can tell the updates.



*Added SyntaxChecker
*Started on scripting interface.
*Added IronPython
*Added LuaInterface
*Added Directory loader to check for files. (auto checks for pyOT/tfs 0.2/0.3+)

Planning the plugin interface atm.

Since the rightclick looks alot like a dock for settings and such. it will be overridable and inheritable and accessible via the the Shared Assembly.
oh and Thanks to TibiaAPI i managed to load a sprite !! ;D
 
Might be a cool idea, but for the amount of people who would actually use it (relatively few) and the fact that OT is in itself very small basically says this tool won't be appreciated the way developers would appreciate other IDEs.

Either way, good luck!
 
I think this is a very good idea!!!
I map, script and other things, and changing windows waste my time, so this is very useful to me...
If you can add a source editing and a compiling tools too, it will be COMPLETE... xD


EDIT: New Idea.... In the Remere's Beta 3.0 they have an online team map editor, you could do that...
 
Last edited:
Okey, Syntax Highlighting and XML reading works.
kJ6N9.png

Setting up autocompletion after making a template for a Sample Server

Code:
<?xml version="1.0" encoding="utf-8" ?>

<Distribution Name="TFS 0.3.6">
  <Global Directory="data/lib">
    <SourceFunctions> <!--Lua script for debugging-->
      
    </SourceFunctions>
  </Global>

  <State Name="Action" Directory ="data/actions/scripts" XMLFile="data/actions/actions.xml">
    <SourceFunctions>
    </SourceFunctions>
    <XMLNode Name="actions">
      <XMLNode Name="action">
        <Attribute Name="value" ShowInTitle="1">string</Attribute>
        <Attribute Name="event">script buffer</Attribute>
        <Attribute Name="itemid">array</Attribute>
        <Attribute Name="actionid">array</Attribute>
        <Attribute Name="uniqueid">array</Attribute>
      </XMLNode>
    </XMLNode>
    <Template Name="onUse">
      function onUse(cid, item, fromPosition, itemEx, toPosition)
      end
    </Template>
  </State>
</Distribution>

Just a Beta how a server configuration is going to look like, Its basically going to eliminate all looking into sources and Documentation for xml,
so editing items will be alot faster when you have all attributes in.
Its also going to separate all enviorments into states so it simulates more the use of a otserver
tobad i cannot make it debug within the otserver enviorment so i have added server start/kill/restart button. Maybe will also include an ipchanger.


Please add suggestion and ideas to following subjects:

Lua Console:
Data Browser: <XML Editing and Opening>
File Browser:
Window Management
Syntax Highlighting and Autocompletion.

And anything else you want suggest about.


I wont start on Map Editing yet, since it's complex to make it render fast.
 
Last edited:
How hasn't this been done before .__.

You might also want to get some functional advice from the program "WinMerge". A lot of us could use that with this tool, too.
 
How hasn't this been done before .__.

You might also want to get some functional advice from the program "WinMerge". A lot of us could use that with this tool, too.

Hmm maybe, i dont know if its neccessary, It would be really hard to integrate since its made in c++, and this project is in .net
 
How would it be hard to integrate? I'm not talking about the whole program, lawl, I'm saying some things, such as differing lines highlighting, syntax checking, etc... I don't see why things like that couldn't be done in .net
 
Back
Top