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

Collision System

Also, I know this isn't exactly what your talking about but it is possible to make a player a collision? Like if me and Printer are fighting Flatlander on tibia and he goes to ewave me and Printer is standing in front of me. Could Printer take the hit and keep it from going past him?

I mean, why cant we help people like that? Just more food for thought.. trying to help give some interesting ideas.
 
Also, I know this isn't exactly what your talking about but it is possible to make a player a collision? Like if me and Printer are fighting Flatlander on tibia and he goes to ewave me and Printer is standing in front of me. Could Printer take the hit and keep it from going past him?

I mean, why cant we help people like that? Just more food for thought.. trying to help give some interesting ideas.

I already have this on my server.

My projectiles have a 'Max Distance'.

For example:
Heavy Magic Missile:
Projectile Speed: 100ms (time it takes to progress one tile)
Max Distance: 8 (Will travel 8 tiles, unless it hits a object (wall, player, other projectile, etc)

So if you shoot a Heavy magic Missile 2 sqm north, and 1 sqm west. It would look like this:
(3 is player position, 2 is target position)
{0, 0, 0, 0, 0}
{0, 0, 0, 0, 0}
{0, 2, 0, 0, 0}
{0, 0, 0, 0, 0}
{0, 0, 3, 0, 0}

Since it has a max distance of 8, it would calculate the trail, which would be as follows:
{0, 0, 0, 0, 0}
{1, 0, 0, 0, 0} Turn 8
{0, 1, 0, 0, 0} Turn 7
{0, 1, 0, 0, 0} Turn 6
{0, 0, 1, 0, 0} Turn 5
{0, 0, 1, 0, 0} Turn 4
{0, 0, 0, 1, 0} Turn 3
{0, 0, 0, 1, 0} Turn 2
{0, 0, 0, 0, 1} Turn 1
{0, 0, 0, 0, 3}

It would progress each row per turn each 100 ms, the projectile is slowed down so it is a fluid slow-moving projectile over those tiles.
The projectile does not go perfectly straight (When at a diagonal like this), but it will 100% hit the tile you clicked on as long as it is within the max distance.

It will be easier to see when I have the video.

The issues that arise from these projectiles are as follows:
  1. The slower projectiles are incredibly easy to dodge.
  2. If your projectile has no width to it (You can make bigger projectiles to fix this) it will look like it is skipping around/through objects when going over corner-wise paths.
  3. Since the projectile stops only at max distance, if it was a Great Fireball or something it would be incredibly hard to make it land where you wanted it to. (You could always make the max-distance be your target location to fix this)

Cool things you can do with these projectiles are:
  1. You can have "Tracking Projectiles" that follow creatures. (It is funny and scary to literally be running away from a Projectile that is following you, as it turns and tracks you)
  2. You can have projectiles have a % chance to hit trees or bushes if they are in between you and your target.
  3. You can make "Live Projectiles" that follow your character, then when you target something, they fly towards it.
Of course, some players won't like that they have to "lead" their targets, "aim" their spells, or actually use human thought while doing combat.
But the server I am making is not for those people, they can play one of the hundreds of other Tibia Servers.

My server (and probably also whitevo's server, and maybe Printer's future servers if there are any) are for people who want something new, exciting, and challenging.
 
Um.. not EXACTLY what im talking about however that is cool too ;)

Im saying that currently on tibia if I use firewave then it hits the following area 1335 right?

So lets say 2 people are fighting and player 1 is 1 sqm away in front of player 2. instead of hitting 1335 the spell would hit

00100
01110
01010
11011

So it does damage till it his the player then treats him as a wall... everything behind him would be unscathed

Also when using bolts or arrows it would be a small wood explosion.. tiny fragments really.. people would take like 1/2 the original damage just because the fact that they lose power when they are projectiles like that. And the object isn't hitting as hard as intended.
 
Um.. not EXACTLY what im talking about however that is cool too ;)

Im saying that currently on tibia if I use firewave then it hits the following area 1335 right?

So lets say 2 people are fighting and player 1 is 1 sqm away in front of player 2. instead of hitting 1335 the spell would hit

00100
01110
01010
11011

So it does damage till it his the player then treats him as a wall... everything behind him would be unscathed

Also when using bolts or arrows it would be a small wood explosion.. tiny fragments really.. people would take like 1/2 the original damage just because the fact that they lose power when they are projectiles like that. And the object isn't hitting as hard as intended.

This is incredibly easy to do.

Fire Wave already is blocked by walls. It does a check for "isSightClear" between the tile being damaged and the start position.

You would simply add more identifiers to this. Instead of checking each tile if it blocks sight, you could check if it blocks movement. "isPathClear".
If the path is not clear, then it could be blocked.

My projectiles can be blocked by bushes, trees, creatures, walls, or anything else you want. You could make them go up stairs or down stairs, etc.
 
I couldn't stairhop demons that way... however if you could get monsters to chase players up and down stairs that would be so epic
 
I couldn't stairhop demons that way... however if you could get monsters to chase players up and down stairs that would be so epic
Quite easy.
By default monster onThink() is activated even when players get in radius regardless which floor they are.
All you have to do is make them step on the tiles which move them down. (yes onStepIn activates even for monsters)

For up, extra functions should be created, but nothing too hard.
 
Last edited:
Have you extended AStar algorithm to make monster follow players multifloor ? :D
 
Have you extended AStar algorithm to make monster follow players multifloor ? :D

Had to change a lot of things.
  1. In the monster's xml file you can determine if a monster can target creatures upstairs or not.
  2. In the updateTargetList function I added the ability to add targets on seperate floors.
  3. In the followCreature functions I removed the checks that made sure the monster was on the same floor
  4. In the getPathMatching function I added Z position checks.
  5. In the __queryAdd function I added the ability for monsters to walk on stairs/holes if they can go up/down floors.
  6. In the getBestNode function I added better intelligence for choosing the best node, so it is possible for creatures to find the correct path.
  7. I also had to remove multiple checks through-out the source that would remove targets, or follow creatures if they were not on the same floor.
It was actually fairly annoying to add :). I still need to make it so monsters can use Ladders though. (I will have to label all ladders in the items.xml, then add the option when doing __queryAdd)

I guess end-game monsters might need to be able to use shovels, picks, machetes, and other tools if you set it in the monster's xml file. (You should be able to make monsters as smart or dumb as you want)
 
preferably smarter than player.

That isn't really possible :p. (To make monsters smarter than players)
What you can do, is basically let Monsters Cheat. (Which is what most Strategy Games do, the computer gets to cheat when you get to harder difficulties)

In tibia, they simply give monsters infinite mana, and allow them to see slightly off-screen.
Tibia isn't really about creatures being strategically hard to kill. It is more about throwing lots of stupid monsters at you and hoping something interesting happens.

My server is different, my monsters are meant to be strategically hard, and I am trying to not just spam monsters everywhere like tibia does. I want each monster to be a difficult and exciting encounter.
My monsters have access to a huge amount of information, they know your strengths, your weaknesses, and how to exploit them. And they can learn from their mistakes, and try new things over time. (And I can always add to their list of available strategies over time, to keep things fresh and exciting)
 
Just let monsters read the players.. if there is mages make them chase at all times.. if they are knight make them run constantly... I mean you could make the creatures almost as smart if you give them different conditional attack functions.

Alternatively if its a boss you could just play the boss.. then it will be as smart as a human.. well as smart as you so however smart that is.. and no that's not a jab at anyone but we all know some people are smarter than others.. just saying
 
Had to change a lot of things.
  1. In the monster's xml file you can determine if a monster can target creatures upstairs or not.
  2. In the updateTargetList function I added the ability to add targets on seperate floors.
  3. In the followCreature functions I removed the checks that made sure the monster was on the same floor
  4. In the getPathMatching function I added Z position checks.
  5. In the __queryAdd function I added the ability for monsters to walk on stairs/holes if they can go up/down floors.
  6. In the getBestNode function I added better intelligence for choosing the best node, so it is possible for creatures to find the correct path.
  7. I also had to remove multiple checks through-out the source that would remove targets, or follow creatures if they were not on the same floor.
It was actually fairly annoying to add :). I still need to make it so monsters can use Ladders though. (I will have to label all ladders in the items.xml, then add the option when doing __queryAdd)

I guess end-game monsters might need to be able to use shovels, picks, machetes, and other tools if you set it in the monster's xml file. (You should be able to make monsters as smart or dumb as you want)
Sounds cool :D I will pay some attention to Astar only, I was once eager to solve this case, happy you owned it ;)
 
7DLUlCx.gif

Please fix the roof in the top left of the picture. I can't sleep.
 
Back
Top