OTClient 1.0

Sytes

Member
Joined
Nov 8, 2012
Messages
10
Reaction score
14
A lot of things have changed since last time 10 years ago when in was active in the ot scene.

I’m mostly back because of nostalgia and I miss the times, but everyone is more or less divided and split.

Was so shocked to see a 5k tibia client....... on an era where games like Tibia is dead, thought it was a joke and people actually paid for it.

Stuff like this wouldn’t have happened if only people came together.

I can’t do much codes, but I’d rather contribute with funds, small or big to people like you Mehah, who works for free, and i will keep on doing it.
 
OP
Mehah

Mehah

Excellent OT User
Joined
Jun 25, 2015
Messages
119
Reaction score
621
I come to present the new lighting system that is still under development, some adjustments are missing.

as i don't know opengl and i don't intend to learn for now, i remade the light system using the same algorithm that uses bubble textures and yes the performance is ok.

light.png
light2.png
light3.png


Bonus (Performance Test)
otclient.exe = new light system
otclient8x6.exe = old light system
perforamance.png
 
Last edited:
OP
Mehah

Mehah

Excellent OT User
Joined
Jun 25, 2015
Messages
119
Reaction score
621
the new light system is already on github.

Version 1 = Old light system
Version 2 = New Light System

- Versions to be made
Version 3 = Multiple lights in the same SQM
Version 4 = Light system with lock, the lights do not pass through the walls.

light1.png

Note: there are some visual defects that I already know and that I will correct in the future.
 

nugo

Australia OT Mapper
Joined
Apr 1, 2009
Messages
351
Solutions
4
Reaction score
154
Anyone run into issues trying to compile using this


I think that compiling guide is outdated (you need 2019 now to compile mehans) + getting missing includes errors
 
Last edited:

Sopago

Member
Joined
Dec 15, 2020
Messages
31
Reaction score
11
GitHub
Sopago
Anyone run into issues trying to compile using this


I think that compiling guide is outdated (you need 2019 now to compile mehans) + getting missing includes errors
Can u screen the errors? perhaps i have run into similar problems, but i have managed to compile it.
 

nugo

Australia OT Mapper
Joined
Apr 1, 2009
Messages
351
Solutions
4
Reaction score
154
Can u screen the errors? perhaps i have run into similar problems, but i have managed to compile it.
Im a retard, i figured it out. Heres my little personal guide maybe it helps someone. I was following the guide so well i was compiling edubarts client instead of mehans by mistake haha. Its written for me for the future so dont expect great detail.


Create folder in C drive - Call it What ever - You need MSV2019 (not 2017)
1. Open Git Bash here in the created folder and paste "git clone microsoft/vcpkg (https://github.com/Microsoft/vcpkg)"
2. Open directory vcpkg in file explorer
3. In directory vcpkg open power shell (type power shell in adress bar)
4. paste .\bootstrap-vcpkg.bat - wait for install to finish
5. paste .\vcpkg integrate install - wait for install to finish (anti virus prob go ape shit)
6. open directory vcpkg if not already inand git bash here "git clone --recursive mehah/otclient (https://github.com/mehah/otclient.git)" (this will create otlcient directory with sources)
7. in the same directory vcpkg open power shell and paste this command (for 64 bit client) " .\vcpkg install boost-iostreams:x64-windows boost-asio:x64-windows boost-system:x64-windows boost-variant:x64-windows boost-lockfree:x64-windows luajit:x64-windows glew:x64-windows boost-filesystem:x64-windows boost-uuid:x64-windows physfs:x64-windows openal-soft:x64-windows libogg:x64-windows libvorbis:x64-windows zlib:x64-windows opengl:x64-windows"
8. Step 7 takes a while go watch netflix or something Gyazo (https://gyazo.com/3baf4b0e75d4673cdcbf7dc4294c01b7)
9. Open vc14/otclient.vcxproj. This should launch Visual Studio.
10. Choose build configuration from the drop downs Release and x64. For best performance choose Release & x64.
11. Menu > Build > Build
12. Cry tears of joys its now all over
 
Last edited:
OP
Mehah

Mehah

Excellent OT User
Joined
Jun 25, 2015
Messages
119
Reaction score
621
News:

[Anti-Aliasing Option]
OFF:
1615519897192.png
ON:
1615519933833.png

[Render Scale System + Anti-Aliasing ON]
50%:
1615520097296.png
100%:
1615519983148.png

200%
1615520004954.png

note: the rendering scale system is a fake, it is not the real one (upscaling / downscale), but at 200% it gives a slight improvement in the visual.

 
Last edited:

gmstrikker

Active Member
Joined
Jul 30, 2014
Messages
452
Solutions
1
Reaction score
48
how to compile this on debian?
 
OP
Mehah

Mehah

Excellent OT User
Joined
Jun 25, 2015
Messages
119
Reaction score
621
First of all I apologize for the delay, I have been very busy lately and starting next week I will be even more, but as promised, I will show you version 3 of the Lighting system, some adjustments are missing, like the border and with some minimal visual bugs .


Version 3 is on this branch for testing:
 
OP
Mehah

Mehah

Excellent OT User
Joined
Jun 25, 2015
Messages
119
Reaction score
621
The new light system is now in the cache-for-all branch, with some improvements, but some adjustments are still missing, I decided to hurry even with some minor defects, but it is better than the previous versions.


[3.0 vs 3.1]
1616542131905.png1616542039069.png

1616542194079.png1616542212999.png


v1.png
1616542260490.png
 

gmstrikker

Active Member
Joined
Jul 30, 2014
Messages
452
Solutions
1
Reaction score
48
couldn't compile your sources:
Code:
In file included from /home/strikker/otclient/src/client/thing.h:26:0,
                 from /home/strikker/otclient/src/client/animatedtext.h:29,
                 from /home/strikker/otclient/src/client/luafunctions.cpp:23:
/home/strikker/otclient/src/framework/../framework/graphics/framebuffer.h:67:26: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const bool canUpdate();
                          ^
/home/strikker/otclient/src/framework/../framework/graphics/framebuffer.h:78:29: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint8_t flushTime();
                             ^
In file included from /home/strikker/otclient/src/client/global.h:30:0,
                 from /home/strikker/otclient/src/client/declarations.h:28,
                 from /home/strikker/otclient/src/client/thing.h:28,
                 from /home/strikker/otclient/src/client/animatedtext.h:29,
                 from /home/strikker/otclient/src/client/luafunctions.cpp:23:
/home/strikker/otclient/src/client/position.h: In constructor ‘Position::Position()’:
/home/strikker/otclient/src/client/position.h:36:20: error: ‘_UI16_MAX’ was not declared in this scope
     Position() : x(_UI16_MAX), y(_UI16_MAX), z(_UI8_MAX) {}
                    ^~~~~~~~~
/home/strikker/otclient/src/client/position.h:36:48: error: ‘_UI8_MAX’ was not declared in this scope
     Position() : x(_UI16_MAX), y(_UI16_MAX), z(_UI8_MAX) {}
                                                ^~~~~~~~
In file included from /home/strikker/otclient/src/client/global.h:30:0,
                 from /home/strikker/otclient/src/client/declarations.h:28,
                 from /home/strikker/otclient/src/client/thing.h:28,
                 from /home/strikker/otclient/src/client/animatedtext.h:29,
                 from /home/strikker/otclient/src/client/luafunctions.cpp:23:
/home/strikker/otclient/src/client/position.h: In member function ‘bool Position::isMapPosition() const’:
/home/strikker/otclient/src/client/position.h:195:63: warning: comparison is always true due to limited range of data type [-Wtype-limits]
     bool isMapPosition() const { return x >= 0 && y >= 0 && z >= 0 && x < _UI16_MAX&& y < _UI16_MAX&& z <= Otc::MAX_Z; }
                                                             ~~^~~~
/home/strikker/otclient/src/client/position.h:195:75: error: ‘_UI16_MAX’ was not declared in this scope
     bool isMapPosition() const { return x >= 0 && y >= 0 && z >= 0 && x < _UI16_MAX&& y < _UI16_MAX&& z <= Otc::MAX_Z; }
                                                                           ^~~~~~~~~
/home/strikker/otclient/src/client/position.h: In member function ‘bool Position::isValid() const’:
/home/strikker/otclient/src/client/position.h:196:42: error: ‘_UI16_MAX’ was not declared in this scope
     bool isValid() const { return !(x == _UI16_MAX && y == _UI16_MAX && z == _UI8_MAX); }
                                          ^~~~~~~~~
/home/strikker/otclient/src/client/position.h:196:78: error: ‘_UI8_MAX’ was not declared in this scope
     bool isValid() const { return !(x == _UI16_MAX && y == _UI16_MAX && z == _UI8_MAX); }
                                                                              ^~~~~~~~
/home/strikker/otclient/src/client/position.h: In member function ‘bool Position::coveredUp(int8)’:
/home/strikker/otclient/src/client/position.h:269:29: error: ‘_UI16_MAX’ was not declared in this scope
         if(nx >= 0 && nx <= _UI16_MAX && ny >= 0 && ny <= _UI16_MAX && nz >= 0 && nz <= Otc::MAX_Z) {
                             ^~~~~~~~~
/home/strikker/otclient/src/client/position.h: In member function ‘bool Position::coveredDown(int8)’:
/home/strikker/otclient/src/client/position.h:281:29: error: ‘_UI16_MAX’ was not declared in this scope
         if(nx >= 0 && nx <= _UI16_MAX && ny >= 0 && ny <= _UI16_MAX && nz >= 0 && nz <= Otc::MAX_Z) {
                             ^~~~~~~~~
In file included from /home/strikker/otclient/src/client/thing.h:29:0,
                 from /home/strikker/otclient/src/client/animatedtext.h:29,
                 from /home/strikker/otclient/src/client/luafunctions.cpp:23:
/home/strikker/otclient/src/client/thingtype.h: In member function ‘bool ThingType::isOpaque()’:
/home/strikker/otclient/src/client/thingtype.h:211:61: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
     bool isOpaque() { return isFullGround() || hasTexture() && getTexture(0)->isOpaque(); }
                                                ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/strikker/otclient/src/client/mapview.h:31:0,
                 from /home/strikker/otclient/src/client/creature.h:31,
                 from /home/strikker/otclient/src/client/luafunctions.cpp:26:
/home/strikker/otclient/src/client/lightview.h: At global scope:
/home/strikker/otclient/src/client/lightview.h:34:35: error: ‘_UI8_MAX’ was not declared in this scope
     MAX_AMBIENT_LIGHT_INTENSITY = _UI8_MAX
                                   ^~~~~~~~
/home/strikker/otclient/src/client/lightview.h: In constructor ‘PositionLight::PositionLight(int8, int8, float)’:
/home/strikker/otclient/src/client/lightview.h:45:47: error: ‘_UI8_MAX’ was not declared in this scope
         Position::x = x, Position::y = y, z = _UI8_MAX;
                                               ^~~~~~~~
In file included from /home/strikker/otclient/src/client/creature.h:34:0,
                 from /home/strikker/otclient/src/client/luafunctions.cpp:26:
/home/strikker/otclient/src/client/tile.h: At global scope:
/home/strikker/otclient/src/client/tile.h:93:32: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const int getDrawElevation() { return m_drawElevation; }
                                ^
/home/strikker/otclient/src/client/tile.h:155:37: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const bool hasBorderShadowColor() { return m_borderShadowColor != Color::white; }
                                     ^
/home/strikker/otclient/src/client/tile.h:157:26: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const bool isCovered() { return m_covered; };
                          ^
/home/strikker/otclient/src/client/tile.h:158:27: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const bool blockLight() { return m_countFlag.hasNoWalkableEdge && !hasGround(); };
                           ^
/home/strikker/otclient/src/client/tile.h:159:26: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const bool hasGround() { return getGround() != nullptr; };
                          ^
CMakeFiles/otclient.dir/build.make:2534: recipe for target 'CMakeFiles/otclient.dir/src/client/luafunctions.cpp.o' failed
make[2]: *** [CMakeFiles/otclient.dir/src/client/luafunctions.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/otclient.dir/all' failed
make[1]: *** [CMakeFiles/otclient.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
 
OP
Mehah

Mehah

Excellent OT User
Joined
Jun 25, 2015
Messages
119
Reaction score
621
couldn't compile your sources:
Code:
In file included from /home/strikker/otclient/src/client/thing.h:26:0,
                 from /home/strikker/otclient/src/client/animatedtext.h:29,
                 from /home/strikker/otclient/src/client/luafunctions.cpp:23:
/home/strikker/otclient/src/framework/../framework/graphics/framebuffer.h:67:26: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const bool canUpdate();
                          ^
/home/strikker/otclient/src/framework/../framework/graphics/framebuffer.h:78:29: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint8_t flushTime();
                             ^
In file included from /home/strikker/otclient/src/client/global.h:30:0,
                 from /home/strikker/otclient/src/client/declarations.h:28,
                 from /home/strikker/otclient/src/client/thing.h:28,
                 from /home/strikker/otclient/src/client/animatedtext.h:29,
                 from /home/strikker/otclient/src/client/luafunctions.cpp:23:
/home/strikker/otclient/src/client/position.h: In constructor ‘Position::Position()’:
/home/strikker/otclient/src/client/position.h:36:20: error: ‘_UI16_MAX’ was not declared in this scope
     Position() : x(_UI16_MAX), y(_UI16_MAX), z(_UI8_MAX) {}
                    ^~~~~~~~~
/home/strikker/otclient/src/client/position.h:36:48: error: ‘_UI8_MAX’ was not declared in this scope
     Position() : x(_UI16_MAX), y(_UI16_MAX), z(_UI8_MAX) {}
                                                ^~~~~~~~
In file included from /home/strikker/otclient/src/client/global.h:30:0,
                 from /home/strikker/otclient/src/client/declarations.h:28,
                 from /home/strikker/otclient/src/client/thing.h:28,
                 from /home/strikker/otclient/src/client/animatedtext.h:29,
                 from /home/strikker/otclient/src/client/luafunctions.cpp:23:
/home/strikker/otclient/src/client/position.h: In member function ‘bool Position::isMapPosition() const’:
/home/strikker/otclient/src/client/position.h:195:63: warning: comparison is always true due to limited range of data type [-Wtype-limits]
     bool isMapPosition() const { return x >= 0 && y >= 0 && z >= 0 && x < _UI16_MAX&& y < _UI16_MAX&& z <= Otc::MAX_Z; }
                                                             ~~^~~~
/home/strikker/otclient/src/client/position.h:195:75: error: ‘_UI16_MAX’ was not declared in this scope
     bool isMapPosition() const { return x >= 0 && y >= 0 && z >= 0 && x < _UI16_MAX&& y < _UI16_MAX&& z <= Otc::MAX_Z; }
                                                                           ^~~~~~~~~
/home/strikker/otclient/src/client/position.h: In member function ‘bool Position::isValid() const’:
/home/strikker/otclient/src/client/position.h:196:42: error: ‘_UI16_MAX’ was not declared in this scope
     bool isValid() const { return !(x == _UI16_MAX && y == _UI16_MAX && z == _UI8_MAX); }
                                          ^~~~~~~~~
/home/strikker/otclient/src/client/position.h:196:78: error: ‘_UI8_MAX’ was not declared in this scope
     bool isValid() const { return !(x == _UI16_MAX && y == _UI16_MAX && z == _UI8_MAX); }
                                                                              ^~~~~~~~
/home/strikker/otclient/src/client/position.h: In member function ‘bool Position::coveredUp(int8)’:
/home/strikker/otclient/src/client/position.h:269:29: error: ‘_UI16_MAX’ was not declared in this scope
         if(nx >= 0 && nx <= _UI16_MAX && ny >= 0 && ny <= _UI16_MAX && nz >= 0 && nz <= Otc::MAX_Z) {
                             ^~~~~~~~~
/home/strikker/otclient/src/client/position.h: In member function ‘bool Position::coveredDown(int8)’:
/home/strikker/otclient/src/client/position.h:281:29: error: ‘_UI16_MAX’ was not declared in this scope
         if(nx >= 0 && nx <= _UI16_MAX && ny >= 0 && ny <= _UI16_MAX && nz >= 0 && nz <= Otc::MAX_Z) {
                             ^~~~~~~~~
In file included from /home/strikker/otclient/src/client/thing.h:29:0,
                 from /home/strikker/otclient/src/client/animatedtext.h:29,
                 from /home/strikker/otclient/src/client/luafunctions.cpp:23:
/home/strikker/otclient/src/client/thingtype.h: In member function ‘bool ThingType::isOpaque()’:
/home/strikker/otclient/src/client/thingtype.h:211:61: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
     bool isOpaque() { return isFullGround() || hasTexture() && getTexture(0)->isOpaque(); }
                                                ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/strikker/otclient/src/client/mapview.h:31:0,
                 from /home/strikker/otclient/src/client/creature.h:31,
                 from /home/strikker/otclient/src/client/luafunctions.cpp:26:
/home/strikker/otclient/src/client/lightview.h: At global scope:
/home/strikker/otclient/src/client/lightview.h:34:35: error: ‘_UI8_MAX’ was not declared in this scope
     MAX_AMBIENT_LIGHT_INTENSITY = _UI8_MAX
                                   ^~~~~~~~
/home/strikker/otclient/src/client/lightview.h: In constructor ‘PositionLight::PositionLight(int8, int8, float)’:
/home/strikker/otclient/src/client/lightview.h:45:47: error: ‘_UI8_MAX’ was not declared in this scope
         Position::x = x, Position::y = y, z = _UI8_MAX;
                                               ^~~~~~~~
In file included from /home/strikker/otclient/src/client/creature.h:34:0,
                 from /home/strikker/otclient/src/client/luafunctions.cpp:26:
/home/strikker/otclient/src/client/tile.h: At global scope:
/home/strikker/otclient/src/client/tile.h:93:32: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const int getDrawElevation() { return m_drawElevation; }
                                ^
/home/strikker/otclient/src/client/tile.h:155:37: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const bool hasBorderShadowColor() { return m_borderShadowColor != Color::white; }
                                     ^
/home/strikker/otclient/src/client/tile.h:157:26: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const bool isCovered() { return m_covered; };
                          ^
/home/strikker/otclient/src/client/tile.h:158:27: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const bool blockLight() { return m_countFlag.hasNoWalkableEdge && !hasGround(); };
                           ^
/home/strikker/otclient/src/client/tile.h:159:26: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const bool hasGround() { return getGround() != nullptr; };
                          ^
CMakeFiles/otclient.dir/build.make:2534: recipe for target 'CMakeFiles/otclient.dir/src/client/luafunctions.cpp.o' failed
make[2]: *** [CMakeFiles/otclient.dir/src/client/luafunctions.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/otclient.dir/all' failed
make[1]: *** [CMakeFiles/otclient.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
Use VS With vcpkg
 

gmstrikker

Active Member
Joined
Jul 30, 2014
Messages
452
Solutions
1
Reaction score
48
Use VS With vcpkg

I'm not using VS (visual studio?)

I'm using linux

I just running:
Code:
rm -rf build && mkdir -p build && cd build && cmake .. && make

How to do it on linux?
 

Acubens

Old Penguin
Joined
May 6, 2008
Messages
1,112
Solutions
7
Reaction score
113
Location
YurOTS Land
I like alot, i have a little question, there will be any protection method in the future to encrypt files? and some updater module?

Grettings!
 
OP
Mehah

Mehah

Excellent OT User
Joined
Jun 25, 2015
Messages
119
Reaction score
621
I'm not using VS (visual studio?)

I'm using linux

I just running:
Code:
rm -rf build && mkdir -p build && cd build && cmake .. && make

How to do it on linux?
I imagined, I do not use Linux, but I will soon correct these errors pointed out by you.

I like alot, i have a little question, there will be any protection method in the future to encrypt files? and some updater module?

Grettings!
not on my part, the community has to start moving.
 

gmstrikker

Active Member
Joined
Jul 30, 2014
Messages
452
Solutions
1
Reaction score
48
I imagined, I do not use Linux, but I will soon correct these errors pointed out by you.


not on my part, the community has to start moving.

Okey :(

Post here when u fix ;)

---

What about:
Code:
3- Possible True OTML, using HTML and CSS writing. (Maybe I won't have time for this)

Is it done? Did u start?

I think its so important ^^
 

mrianura

Active Member
Joined
Jan 31, 2015
Messages
37
Reaction score
30
Okey :(

Post here when u fix ;)

---

What about:
Code:
3- Possible True OTML, using HTML and CSS writing. (Maybe I won't have time for this)

Is it done? Did u start?

I think its so important ^^
I think, that's stupid idea, whole widget management would be changed and we will have web browser instead of otclient. Current approach is a way better than Css+HTML
 

gmstrikker

Active Member
Joined
Jul 30, 2014
Messages
452
Solutions
1
Reaction score
48
I think, that's stupid idea, whole widget management would be changed and we will have web browser instead of otclient. Current approach is a way better than Css+HTML

A lot of people know web tecs, with this feature a lot of web front ends could make a lot of stuff for otc
 
Top