• 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!

[OTClient Mod] Tool Monstermaker

MagicWall

Veteran OT User
Joined
Oct 12, 2008
Messages
124
Solutions
6
Reaction score
344
I prepared mod for OTClient who may help with creating monsters for TFS 1.3, in fact it need tests and probably it have some issues, but all sources is open.

A few months earlier I showed several screenshots:
[Showoff] OTClient Monster Maker

In fact, I created it in boring journeys from one city to another and I had to look for motivation to end it.

How it's look like
tools_monstermaker_1.png
tools_monstermaker_2.png
tools_monstermaker_3.png
tools_monstermaker_4.png
tools_monstermaker_5.png
tools_monstermaker_6.png
tools_monstermaker_7.png
tools_monstermaker_8.png
tools_monstermaker_9.png
tools_monstermaker_10.png
tools_monstermaker_11.png


Features
  • Easy to use monster creator with UI interface including:
    • Set monster general information
    • Set monster Flags
    • Set monster Script
    • Set monster Attacks
    • Set monster Defences
    • Set monster Elements
    • Set monster Immunities
    • Set monster Summons
    • Set monster Voices
    • Set monster Loot
  • Fast monster outfit preview
  • Generate monster XML files
  • Generate link for monsters.xml
  • Load monsters data from XML files (parse XML monster file)
Limitations
  • Problem with some outfit id who cause client crash.
  • This version may not 100% work properly.
  • It may not support all monster features.
IMPORTANT TIP
Start creating your monster from outfit, or save your work before change outfit.
Why?
Because in some outfit ids client crash and you may lose all your work.


Error:
tools_monstermaker_error_1.png


Download:

Tool Monstermaker

Credits

@Moj mistrz for this tutorial:
How to make a monster?
 
create lua module to be able to edit all of options so we can make tfs 0.36 0.4 1.0 1.2 within changing few lines of base code and not needing to compile again
 
Hello, can you create mode please for auto looting in otclient? its like candybot have targets and auto walk, but dont have auto loot...
 
Thats a great job actually, but why as mod to otc? You could create separate application and it would be really nice and useful for everyone.
 
Thats a great job actually, but why as mod to otc? You could create separate application and it would be really nice and useful for everyone.

In fact, I'm started doing it in OTClient from 2 reasons:
  1. I was making it on Windows Tablet Atom x5 and 2gb RAM, it's very handy but not much powerful, especially with Win 10. And additional I was have on it OTClient, downloaded sublime and start make it. Lua Interpreter is faster and more comfortable than Java compiler.
  2. Additionally I want to show how OTClient powerful and versatility. Now we have [asamy] OTClient Map Editor (but he need updates and rebuild) + this OTClient Monster Maker, so OTClient may be in future dedicated tool for newbie build OTS.
Ok, but in fact I thinking about rewrite it, probably in one from them (I have a experience with them):
  1. Java + JavaFX
  2. Java + Android SDK
But now I waiting for eventually bugs, etc. to avoid fix bugs in both codes.

Hello, can you create mode please for auto looting in otclient? its like candybot have targets and auto walk, but dont have auto loot...

I don't want making it again. Candybot is great module, from I learned a lot, but I have a bit another approach to bot design (my direction is something like Elfbot). So I started to make similar things like Elfbot scripts parser.
 
Can you send me some mods that you already have? I wanna make better gameplay with tibia 7.6...
 
Hello,
Firstly i have to thank you for this Module, i learned a lot with it! The UI interation and .otui functions, it is really nice, thanks for share!

Secondly, i was wondering if you recommend the code that you use to load monsters. Im doing a Bestiary and have to use the monsters data. But i guess(i looked in source files, but i don't know much C++) OTC don't have a monster class to use their userData(~what is sad~ and i don't have the knowledge to add it). I looked for some modules that could use that and the closest is this one. I think can load the monsters.xml file and load each monster entry and add to a table to OTC can use it.

I know TFS load all monsters and store they MonsterTypes(i think userData) here i can do a protocol to pass this to OTC and read it too right? (would require C++ editions, but i think i can do, not sure)

I can read all monsterTypes in onStartup(TFS) save to a table, serialize(transform in string), pass the string with opCode and deserialize to table again and use it in OTC.(not sure)

What way you think is good? Would you recommend some way to do?

Again, thanks for your codes and support in OTC Section!
 
Last edited:
Hello,
Firstly i have to thank you for this Module, i learned a lot with it! The UI interation and .otui functions, it is really nice, thanks for share!

Secondly, i was wondering if you recommend the code that you use to load monsters. Im doing a Bestiary and have to use the monsters data. But i guess(i looked in source files, but i don't know much C++) OTC don't have a monster class to use their userData(~what is sad~ and i don't have the knowledge to add it). I looked for some modules that could use that and the closest is this one. I think can load the monsters.xml file and load each monster entry and add to a table to OTC can use it.

I know TFS load all monsters and store they MonsterTypes(i think userData) here i can do a protocol to pass this to OTC and read it too right? (would require C++ editions, but i think i can do, not sure)

I can read all monsterTypes in onStartup(TFS) save to a table, serialize(transform in string), pass the string with opCode and deserialize to table again and use it in OTC.(not sure)

What way you think is good? Would you recommend some way to do?

Again, thanks for your codes and support in OTC Section!

I think best way is use opcodes, why?
1) Because this is easy (register and using opcodes is easy in otclient - you may realize it using only lua).
2) You don't need update OTClient data (if you want to add new monster).
3) You don't need to write additional file parsers.
4) You have always current data.
5) You have some monster data to use in TFS side.
6) You don't increase OTClient data size.

Example in code - How to register opcodes:
Register / unregister opcodes

Example in code - How to create opcode parse function:
Opcode parse function

Functions - Read opcode data:
Read opcode data

About get data from files, I'm used own parser written in lua for load data from .xml files.
How it's looks:
monstermaker parse xml file
 
Last edited:
I think best way is use opcodes, why?
1) Because this is easy (register and using opcodes is easy in otclient - you may realize it using only lua).
2) You don't need update OTClient data (if you want to add new monster).
3) You don't need to write additional file parsers.
4) You have always current data.
5) You have some monster data to use in TFS side.
6) You don't increase OTClient data size.

Example in code - How to register opcodes:
Register / unregister opcodes

Example in code - How to create opcode parse function:
Opcode parse function

Functions - Read opcode data:
Read opcode data

About get data from files, I'm used own parser written in lua for load data from .xml files.
How it's looks:
monstermaker parse xml file
Thanks for the reply! I will use opcodes, i've worked with them sometime ago, isn't a problem. I will look deeper in you XML parser, never did something like that, im sure i will learn a lot! Thanks!
 
Back
Top