• 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!
  • If you're using Gesior 2012 or MyAAC, please review this thread for information about a serious security vulnerability and a fix.

Thief system ideas

Icaraii

Active Member
Joined
Jan 5, 2020
Messages
347
Solutions
1
Reaction score
48
Hello guys, could you guys give me a few thief system ideas? I have a few ideas but I have no idea how to do it on tibia engine. For example, the player can enter stealthly in a store and take the values, but if he gets caught he would go to jail. In jail he needs to find a way out. But I have no idea how to do the "get caught" part in tibia engine.

Also do you guys have any suggestion to how should lockpicking work?

All ideas are welcome.
 
Last edited:

Terotrificy

Advanced OT User
Joined
Oct 18, 2020
Messages
329
Solutions
12
Reaction score
158
Location
Santiago, Chile.
Hello guys, could you guys give me a few thief system ideas? I have a few ideas but I have no idea how to do it on tibia engine. For example, the player can enter stealthly in a store and take the values, but if he gets caught he would go to jail. In jail he needs to find a way out. But I have no idea how to do the "get caught" part in tibia engine.
All ideas are welcome.
Use the invisibility of spell or stealth ring and set a movement id in specific sqms from stores where you should be forced to pass on in order to "steal" anything in the back of the store, so everytime you want to pass through that sqm it should check if you have invisible flag or not:

A) If you are not invisible, go to jail or teleport you back to the store's door.
B) If invisible, add a math.random() so you decide what's your success probability (1/4 i.e = 25%), so even invisible you might still get caught and send to the jail 75% of the time.
You might of course add more tiles with checks for that, traps, etc. That's what came to my mind briefly.
 

Shadowsong

Game Developer & Graphic Designer
Joined
Feb 23, 2010
Messages
3,445
Solutions
21
Reaction score
2,979
Location
Bosnia & Herzegovina
YouTube
ShivaShadowsong
You could create a new flag for your NPCs which are supposed to be monitoring for thievery and set it on them, then, in your action script which "steals" some item or movement script which moves that item from the world to the player's inventory, make it check all creatures in radius of the position item is being stolen from (getSpectators), and if any NPCs with thief monitoring flag are in range - check if they are looking towards the player.

If yes, they catch the player and do whatever you wanna do with thieves. Of course, you can also make the entire script be bypassed if the player is invisible via stealth ring or some spell if you want to, etc.
I think this is a more general approach than setting movement scripts on tiles around all of the places in the world, but you could do that too as Tetrotrificy suggested.
 
OP
OP
I

Icaraii

Active Member
Joined
Jan 5, 2020
Messages
347
Solutions
1
Reaction score
48
Use the invisibility of spell or stealth ring and set a movement id in specific sqms from stores where you should be forced to pass on in order to "steal" anything in the back of the store, so everytime you want to pass through that sqm it should check if you have invisible flag or not:

A) If you are not invisible, go to jail or teleport you back to the store's door.
B) If invisible, add a math.random() so you decide what's your success probability (1/4 i.e = 25%), so even invisible you might still get caught and send to the jail 75% of the time.
You might of course add more tiles with checks for that, traps, etc. That's what came to my mind briefly.
Very interesting. I was thinking to do something more active aswel, for example, if the player stand on the line of sight of a specific npc, he would be caught and send to jail.
Post automatically merged:

You could create a new flag for your NPCs which are supposed to be monitoring for thievery and set it on them, then, in your action script which "steals" some item or movement script which moves that item from the world to the player's inventory, make it check all creatures in radius of the position item is being stolen from (getSpectators), and if any NPCs with thief monitoring flag are in range - check if they are looking towards the player.

If yes, they catch the player and do whatever you wanna do with thieves. Of course, you can also make the entire script be bypassed if the player is invisible via stealth ring or some spell if you want to, etc.
I think this is a more general approach than setting movement scripts on tiles around all of the places in the world, but you could do that too as Tetrotrificy suggested.
Thats exactly what I had on my mind, but I had no idea if that was possible, thanks for showing me a way.
 

nasu

Member
Joined
Jan 20, 2008
Messages
98
Reaction score
12
GitHub
KrwawyOrk
I can suggest ideas from well-known game systems:

 

Custom Enjoyer

Active Member
Joined
Nov 21, 2021
Messages
64
Reaction score
42
Im pretty sure there is a beta of one ots which has that thief system working on NPC houses
It is plahdaria/phalmaria idk the name because i forgot but similiar to that
But instead of going to jail, on beginner island NPC hits you to red hp, on mainland NPC can kill you for stealing loot (so you need to do it with 2 people so 1 takes NPC aggro, 2nd person steal loot from NPC houses)
 

Nemphis

Veteran OT User
Joined
Jun 22, 2009
Messages
606
Reaction score
355
Location
Sweden
Use the invisibility of spell or stealth ring and set a movement id in specific sqms from stores where you should be forced to pass on in order to "steal" anything in the back of the store, so everytime you want to pass through that sqm it should check if you have invisible flag or not:

A) If you are not invisible, go to jail or teleport you back to the store's door.
B) If invisible, add a math.random() so you decide what's your success probability (1/4 i.e = 25%), so even invisible you might still get caught and send to the jail 75% of the time.
You might of course add more tiles with checks for that, traps, etc. That's what came to my mind briefly.

Maybe if A), the NPC just tells you that you are not allowed to enter and you just get stopped. But if your ring/spell runs out while inside the area something would happen.

B) could also be a module window popping up giving you simple math questions such as which is bigger 4/5 or 5/4 and stuff like this. if you fail the your "lockpick" breaks, you make a noise and gets noticed
 

Michael 4463

Premium User
Premium User
Joined
Nov 15, 2007
Messages
810
Solutions
7
Reaction score
333
Location
Santiago, Chile (Australian)
CALLBACK_CREATURE_APPEAR - start an event that checks npc:getDirection(), the creatures' position, a defined line/scope of sight, maybe this can be tiered depending on the alertness of the NPC
CALLBACK_CREATURE_DISAPPEAR - end the event
CALLBACK_CREATURE_SAY - include something to catch thieves if they speak

In addition to the above, I'd probably start calculating a rolling ~3-5 second tile-per-second movement average for each character generally, and then use that variable inside the NPC event too (move too fast makes too much sound so you get caught)

That is the direction i'd probably try to take anyway!
 
OP
OP
I

Icaraii

Active Member
Joined
Jan 5, 2020
Messages
347
Solutions
1
Reaction score
48
Im pretty sure there is a beta of one ots which has that thief system working on NPC houses
It is plahdaria/phalmaria idk the name because i forgot but similiar to that
But instead of going to jail, on beginner island NPC hits you to red hp, on mainland NPC can kill you for stealing loot (so you need to do it with 2 people so 1 takes NPC aggro, 2nd person steal loot from NPC houses)
Interesting aswel
Post automatically merged:

Maybe if A), the NPC just tells you that you are not allowed to enter and you just get stopped. But if your ring/spell runs out while inside the area something would happen.

B) could also be a module window popping up giving you simple math questions such as which is bigger 4/5 or 5/4 and stuff like this. if you fail the your "lockpick" breaks, you make a noise and gets noticed
Yeah I don't think there is another way to do the lockpicking
Post automatically merged:

CALLBACK_CREATURE_APPEAR - start an event that checks npc:getDirection(), the creatures' position, a defined line/scope of sight, maybe this can be tiered depending on the alertness of the NPC
CALLBACK_CREATURE_DISAPPEAR - end the event
CALLBACK_CREATURE_SAY - include something to catch thieves if they speak

In addition to the above, I'd probably start calculating a rolling ~3-5 second tile-per-second movement average for each character generally, and then use that variable inside the NPC event too (move too fast makes too much sound so you get caught)

That is the direction i'd probably try to take anyway!
That's something I like, I feel more imersive that way
 

Evil Puncker

I know nothing
TFS Developer
Joined
May 30, 2009
Messages
8,474
Solutions
258
Reaction score
4,409
how come no one mentioned runescape thieving skill? :D

 

andu

Sold 649 scripts, 25 maps and 9 events!
Joined
Aug 7, 2009
Messages
967
Solutions
17
Reaction score
338
GitHub
olrios
Twitch
olrios
Make a monster what cannot see invisible, that monster casts every second a aoe spell. If non-invisible player is in that spell's range then that player is teleported to xyz.
Spell needs a loop to check tiles for players and another loop to check for stacks of players on one tile. Quite simple.

In monster xml file you can make it have invisible health bar and name, and also you can make it untargetable. For players it would looks like a normal item or wall.

On my server lockpicking is quite simple. You can train it from 0-100. You are able to open doors without keys what have actionid 100 times higher then your lockpicking skill. For example Black Knight key is actionid 5010. So you need atleast 51 lockpicking skill (5010 / 100 = 50.1 rounded up = 51)
 
Last edited:
OP
OP
I

Icaraii

Active Member
Joined
Jan 5, 2020
Messages
347
Solutions
1
Reaction score
48
Make a monster what cannot see invisible, that monster casts every second a aoe spell. If non-invisible player is in that spell's range then that player is teleported to xyz.
Spell needs a loop to check tiles for players and another loop to check for stacks of players on one tile. Quite simple.

In monster xml file you can make it have invisible health bar and name, and also you can make it untargetable. For players it would looks like a normal item or wall.

On my server lockpicking is quite simple. You can train it from 0-100. You are able to open doors without keys what have actionid 100 times higher then your lockpicking skill. For example Black Knight key is actionid 5010. So you need atleast 51 lockpicking skill (5010 / 100 = 50.1 rounded up = 51)
Very interesting, but the monster would follow the player, wouldn't it?
 
Top