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

Footprint System instead of Exiva

Tenzhiro

Fool of a Took!
Joined
May 4, 2010
Messages
342
Solutions
4
Reaction score
344
Hello there!

Currently busy revamping a few functions to be more immersive, I handled Levitate already to be able to use a rope to go up and down levels.
My next stop is doing something instead of Exiva.

Exiva, magic wise, is a very powerful spell, to focus your magic to find someone specific in this wide world should only be possible with a Palantiri (in Middle-Earth)
-----------------------

I had an idea to make players leave behind Footprints, like the ones in the snow, and only on certain tiles, they disappear after a minute to not fill all tiles with footprints.
In short, players can examine Footprints to see which way someone went. This could give hints to what kind of Race the footprints belong to, and players can guess if this was the player they are searching for.

My problem is that I do not know where to start, adding footprints seems easy enough but to have it connected to a player and what not is messing with my logic 😓

I'm humbly asking more experienced programmers to direct me in the right way.
Any suggestions on how to handle this as efficiently as possible are highly appreciated!
 
Hello there!

Currently busy revamping a few functions to be more immersive, I handled Levitate already to be able to use a rope to go up and down levels.
My next stop is doing something instead of Exiva.

Exiva, magic wise, is a very powerful spell, to focus your magic to find someone specific in this wide world should only be possible with a Palantiri (in Middle-Earth)
-----------------------

I had an idea to make players leave behind Footprints, like the ones in the snow, and only on certain tiles, they disappear after a minute to not fill all tiles with footprints.
In short, players can examine Footprints to see which way someone went. This could give hints to what kind of Race the footprints belong to, and players can guess if this was the player they are searching for.

My problem is that I do not know where to start, adding footprints seems easy enough but to have it connected to a player and what not is messing with my logic 😓

I'm humbly asking more experienced programmers to direct me in the right way.
Any suggestions on how to handle this as efficiently as possible are highly appreciated!
I'd connect footprints actionid (moveevent onstepin) with player e.g. 10000+player id so searching spell might read playername from playerid = footstep aid - 10000.
Direction of player walking also may be connected to Aid e.g. aid 4xxxx (action ids between 40000-49999) = player of playerid (4xxxx-40000) was walking north; aid 3xxxx = Player walking East and so on..
Player moving diagonally would not leave footprints.
I'd make them invisible, but they would reveal once caster use his exiva spell which may uncover steps in certain radius.
 
Last edited:
so create a sprites for footprints and add them onto the tile when player stepping along with settings decay in items and make them overload each other e.g if player s steps on footprints then remove those and add new ones (because transform would not reset decay time) :)
 
so create a sprites for footprints and add them onto the tile when player stepping along with settings decay in items and make them overload each other e.g if player s steps on footprints then remove those and add new ones (because transform would not reset decay time) :)
At my first thought I would just add an actionid to a basic ground tile and spawn the footprint sprite on tiles with actionid's e.g. >20000 and < 60000 (this is the range of ids this system could use) within certain radius from player only once the spell is cast by player.
On cast spell - scan area within a radius to find any tile with aid >20000 and < 60000 and put on them correct tile items (directional footprints based on the direction read by first aid number) which will have decay time of e.g. 20s and same aid as basic ground tile. Then function onLook on footprints will describe who went here during last 5 minutes or so. Once footsteps are revealed by spell, ground aid would be set to 0.
The only bad thing would be that 5 minutes is the time after which ground id should be set to 0 (5 minutes after the footprint aid is set by stepping player) by addevent function (potential lag/bug situation). For example if a single player sets a footprint aid every 20-30 steps or has a 2-3% chance of leaving one, this still gives a bunch of addevents of aid's removal for a single player. Once there are many of them, this may cause lags.

The other, simpler way is to make an invisible sprite of a footprint with actionid and that has decay time e.g. 5 minutes and if spell is cast it is transformed to visible footprint of same actionid as invisible one. (Something like "nothing special", but onLook it would print a ground item that is under it).

The system also gives an opportunity to create additional features to different items e.g. boots that prevent or reduce the chance of leaving a footprint.
 
At my first thought I would just add an actionid to a basic ground tile and spawn the footprint sprite on tiles with actionid's e.g. >20000 and < 60000 (this is the range of ids this system could use) within certain radius from player only once the spell is cast by player.
On cast spell - scan area within a radius to find any tile with aid >20000 and < 60000 and put on them correct tile items (directional footprints based on the direction read by first aid number) which will have decay time of e.g. 20s and same aid as basic ground tile. Then function onLook on footprints will describe who went here during last 5 minutes or so. Once footsteps are revealed by spell, ground aid would be set to 0.
The only bad thing would be that 5 minutes is the time after which ground id should be set to 0 (5 minutes after the footprint aid is set by stepping player) by addevent function (potential lag/bug situation). For example if a single player sets a footprint aid every 20-30 steps or has a 2-3% chance of leaving one, this still gives a bunch of addevents of aid's removal for a single player. Once there are many of them, this may cause lags.

The other, simpler way is to make an invisible sprite of a footprint with actionid and that has decay time e.g. 5 minutes and if spell is cast it is transformed to visible footprint of same actionid as invisible one. (Something like "nothing special", but onLook it would print a ground item that is under it).

The system also gives an opportunity to create additional features to different items e.g. boots that prevent or reduce the chance of leaving a footprint.
but then you would have to add action id to every tile in the game. instead we can just iterate the event onStep for every special tile in game using movements instead. he said he want it explicitly on some tiles so best approach would be to use tileId rather than actionId
then its just figuring out tileItem on everystep and if footsteps() remove and after that Add outside of the if check so that we will overwrite any other footsteps on tile its actually pretty easy to do

I didnt think he wanted to use the spell at all in that case i would add a item shader and only display this item shader in packet to the player who sent exiva.
the shader would be transparency 0% normally the item should have a shader with 100% transparency
 
but then you would have to add action id to every tile in the game.
No, why? In the case of limiting footprints to certain tileset can be set inside moveevent - then player would have a % of chance or make footstep every x steps only while walking on them like on snow.

instead we can just iterate the event onStep for every special tile in game using movements instead.
Ok, didnt catch that he wanted specific tiles, but as you said, it would just be working while stepping on a ground tile from the group he sets.
he said he want it explicitly on some tiles so best approach would be to use tileId rather than actionId
I dont see the point here. How would you read the data of a player/race/whatever that left this certain step?

then its just figuring out tileItem on everystep and if footsteps() remove and after that Add outside of the if check so that we will overwrite any other footsteps on tile its actually pretty easy to do
Imo operating with actionid is easier and replacing a footstep in this case would work the same. But if deep data is not needed then just create a specific ground tile with tileid of every race and make them in two versions - visible and not.
I didnt think he wanted to use the spell at all in that case i would add a item shader and only display this item shader in packet to the player who sent exiva.
the shader would be transparency 0% normally the item should have a shader with 100% transparency
I have no experience in that but sounds pretty good.
 
No, why? In the case of limiting footprints to certain tileset can be set inside moveevent - then player would have a % of chance or make footstep every x steps only while walking on them like on snow.


Ok, didnt catch that he wanted specific tiles, but as you said, it would just be working while stepping on a ground tile from the group he sets.

I dont see the point here. How would you read the data of a player/race/whatever that left this certain step?


Imo operating with actionid is easier and replacing a footstep in this case would work the same. But if deep data is not needed then just create a specific ground tile with tileid of every race and make them in two versions - visible and not.

I have no experience in that but sounds pretty good.
so how will you add action ID to all items in the map? that just sounds awful

movement onStepIn/Out (creature< read race and everything else related to player
oh for me I was gonna add ItemId on top of the tile you are stepping on similar to snow step sprite but its just the 2 holes rest is alpha ( each ITEM ID for each race being unique ITEM) channeled. along with the footstep until spell is casted if its necessary i tought it would be better to show the foot steps anyways and the exiva would be working normally but the steps would give u better idea of not losing target idk
 
Back
Top