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

Nostalrius 7.7

Last edited:
Thank you so much for this release! You are the man.

I have a question. So I've successfully got it running with otclient. However I'm getting constant kicks and a message saying "invalid ping". I've read that I should enable the ping system in the client but I haven't figured out how to do this. Can someone please point me in the right direction?
 
Thank you so much for this release! You are the man.

I have a question. So I've successfully got it running with otclient. However I'm getting constant kicks and a message saying "invalid ping". I've read that I should enable the ping system in the client but I haven't figured out how to do this. Can someone please point me in the right direction?

You need enable ping system
on otclient folder \src\client\game.cpp

look for
C++:
 if(version >= 770) {

inside this function add this
C++:
enableFeature(Otc::GameClientPing);

after compile again ur OTC.
 
Initial testing of real files. Melee range for sure the interval is 2000ms.
If monster can't reach the target its 1000ms ( as if no pathing found )
If monster is far away but can reach the target its still 2000ms

( The dragon is set to 100% chance for aoe, frontal and self healing )

1st video showing 1000ms spam when it can't reach target

2nd vid showing a far away dragon that found a path to summon and even tho range is pretty high, it stops casting every second and changes to 2s interval.

Not sure what else would trigger the 1000ms cooldown, perhaps target swap too? Would explain the demon video going ape spam. Need more testing and perhaps try to run a debugger now that I've set the files again.

Edit:

Seems like when something gets in path of the monster it also goes 1000ms?

If something gets in the path the monster would change target, you might get wrong results with some weird interaction with GM. Also would you mind kite the dragon with a player? You can tweak damage numbers.
 
You need enable ping system
on otclient folder \src\client\game.cpp

look for
C++:
 if(version >= 770) {

inside this function add this
C++:
enableFeature(Otc::GameClientPing);

after compile again ur OTC.
You also can enable it without recompile:
in modules\game-things\things.lua, inside load() function add:
Code:
g_game.enableFeature(GameClientPing)
 

simple script


maybe this can be done with two lines 🤔🤔

C++:
void MagicField::onStepInField(Creature* creature)

C++:
if (id == ITEM_POISONFIELD_PVP || id == ITEM_POISONFIELD_PERSISTENT || id == ITEM_POISONFIELD_NOPVP) {
        g_game.addMagicEffect(creature->getPosition(), CONST_ME_GREEN_RINGS);
🤔
 
i added my old field tests into this issue if ppl are interested


aswell push/destroy tests here
 
Last edited:
Initial testing of real files. Melee range for sure the interval is 2000ms.
If monster can't reach the target its 1000ms ( as if no pathing found )
If monster is far away but can reach the target its still 2000ms

( The dragon is set to 100% chance for aoe, frontal and self healing )

1st video showing 1000ms spam when it can't reach target

2nd vid showing a far away dragon that found a path to summon and even tho range is pretty high, it stops casting every second and changes to 2s interval.

Not sure what else would trigger the 1000ms cooldown, perhaps target swap too? Would explain the demon video going ape spam. Need more testing and perhaps try to run a debugger now that I've set the files again.

Edit:

Seems like when something gets in path of the monster it also goes 1000ms?

So they can combo spells? And no cooldowns?

I think after changing to normal random, they still cast on a 1000ms cooldown for attacks and spells even at close range.

Maybe do as per previous post and add the spell casting inside the next available hit check that adds 2 seconds isntead of every 1s?
 
maybe this can be done with two lines 🤔🤔

C++:
void MagicField::onStepInField(Creature* creature)

C++:
if (id == ITEM_POISONFIELD_PVP || id == ITEM_POISONFIELD_PERSISTENT || id == ITEM_POISONFIELD_NOPVP) {
        g_game.addMagicEffect(creature->getPosition(), CONST_ME_GREEN_RINGS);
🤔

This works, but isn't a good solution either, consider moving everything to the data and not in the sources, this can be done simple in the items.srv file by adding a new attribute. I was going to do this, but really haven't had time for such a low priority issue, there's a more important one right now.
 
How do you fix t he issue with not bein able to shoot runes on monsters standing on a field (Error not enough room when using a rune on them).

I can roll back that commit, but what was it supposed to fix?
 
How do you fix t he issue with not bein able to shoot runes on monsters standing on a field (Error not enough room when using a rune on them).

I can roll back that commit, but what was it supposed to fix?

It was supposed to fix the issue of not being able to cast spells on items that are not blocking projectiles but are blocking player movement, which is wrong.
 
So they can combo spells? And no cooldowns?

I think after changing to normal random, they still cast on a 1000ms cooldown for attacks and spells even at close range.

Maybe do as per previous post and add the spell casting inside the next available hit check that adds 2 seconds isntead of every 1s?

I am talking about Cip files. Not nostalrius.

So further observations. The 1000ms attack cd is VERY rare, and no idea what triggers it under normal circumstances. But safest bet would be to keep any attacking on 2000ms interval - because thats 99% of scenarios when monster can reach target - even at longer distance. The spells used by monsters have no internal cooldown, meaning monster can use unlimited number of spells at any attack decision time - like seen on my videos. FWave, GFB, Heal at every attack tick.

There isn't any separate defense cooldown either.

When monster are outside aggro range, but close enough to be not idle. They uses spells on 1000ms interval.

Have tested with players characters as well.
 
There is another problem with latest fix about fields, see:
36005
If you throw a field under a table it does nothing.
 
It was supposed to fix the issue of not being able to cast spells on items that are not blocking projectiles but are blocking player movement, which is wrong.

Do you have a new commit? or just better to roll it back at this time?

I am talking about Cip files. Not nostalrius.

So further observations. The 1000ms attack cd is VERY rare, and no idea what triggers it under normal circumstances. But safest bet would be to keep any attacking on 2000ms interval - because thats 99% of scenarios when monster can reach target - even at longer distance. The spells used by monsters have no internal cooldown, meaning monster can use unlimited number of spells at any attack decision time - like seen on my videos. FWave, GFB, Heal at every attack tick.

There isn't any separate defense cooldown either.

When monster are outside aggro range, but close enough to be not idle. They uses spells on 1000ms interval.

Have tested with players characters as well.

Yes, but I want to get that behaviour into Nostalrius.

Seems monsters just always cast spells on the 1000ms cooldown, not 2000ms like you show on Real CIP files.
 
This is how it's supposed to be:
36007
If you throw a field under a table, barrel or another unwalkable object -> "There is not enough room" and a poff.
 
This is how it's supposed to be:
View attachment 36007
If you throw a field under a table, barrel or another unwalkable object -> "There is not enough room" and a poff.

This is what fixed the last commit, but since stairs have the same flags as magic fields it doesn't allow spell casts over fields or any other item that matches these flags, CipSoft had AvoidDamageTypes on their attributes and I had removed it since the server did not need it, I will be reimplementing that attribute to bring real behavior on rune using and spells without these sort of issues.
 
Back
Top