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

[OTCv8] Auras and wings

Consegui colocar na minha fonte otx2, mas tem que ser reposicionado. Eu uso sprites 8.60, terei que fazer isso dentro do OTCv8, não é? mesmo quando você tem montarias você tem que subir um pouco mais.


image.png
Pode ser útil.

 
I managed to put it in my otx2 source, but it has to be repositioned. I use 8.60 sprites, I'll have to do this within OTCv8, won't I? even when you have mounts you have to go a little higher.


image.png
Could you share it with the community?
 
I still don't know why I haven't announced it yet or made a release, but Mehah does have "attachedeffects"

1.- need this in your server
by mehah

2.- edit this in client
by mehah

3.- and Enable Feature

LUA:
g_game.enableFeature(GameItemShader)
g_game.enableFeature(GameCreatureShader)
g_game.enableFeature(GameCreatureAttachedEffect)

mehah have :
  • attachEffect (Apng(ThingExternalTexture) // dat effect(ThingCategoryEffect) // dat outfit (ThingCategoryCreature) WITH OFFSET
  • shader (map // creature // item // widget )
4.- Edit
A] Client
edit this .lua game_attachedeffects/effects.lua with these functions

Code:
--[[
    register(id, name, thingId, thingType, config)
    config = {
        speed, disableWalkAnimation, shader, drawOnUI, opacity
        duration, loop, transform, hideOwner, size{width, height}
        offset{x, y, onTop}, dirOffset[dir]{x, y, onTop},
        onAttach, onDetach
    }
]] --

B] Server
Example :
LUA:
        player:setShader("Outfit - Rainbow")
        player:attachEffectById(7) -- id is game_attachedeffects/effects.lua
        player:attachEffectById(8) -- id is game_attachedeffects/effects.lua
        player:attachEffectById(9, true) -- Temporary Effect -- id is game_attachedeffects/effects.lua
        player:setMapShader('Map - Heat', true)
LUA:
        item:setShader(<shader name>)
I test in 1.5 nekiro 8.00 and work perfectly


View attachment 75449
Could you make this aura available?
 
Very good this wings system it will help many projects. Blessed be the one who invented the bone system and the wing positioning system through otclient, everything is working perfectly ;)

@frenzy02 @Vagnerking
Take this aura here, I'm kind :)
I exported it in versions 8.0, 8.60, and 10.98.
outfit_1492_.png
______________________________________________________
 

Attachments

Very good this wings system it will help many projects. Blessed be the one who invented the bone system and the wing positioning system through otclient, everything is working perfectly ;)

@frenzy02 @Vagnerking
Take this aura here, I'm kind :)
I exported it in versions 8.0, 8.60, and 10.98.
View attachment 84693
______________________________________________________
How did you reposition these wings? Can you help me?
 
I still don't know why I haven't announced it yet or made a release, but Mehah does have "attachedeffects"

1.- need this in your server
by mehah

2.- edit this in client
by mehah

3.- and Enable Feature

LUA:
g_game.enableFeature(GameItemShader)
g_game.enableFeature(GameCreatureShader)
g_game.enableFeature(GameCreatureAttachedEffect)

mehah have :
  • attachEffect (Apng(ThingExternalTexture) // dat effect(ThingCategoryEffect) // dat outfit (ThingCategoryCreature) WITH OFFSET
  • shader (map // creature // item // widget )
4.- Edit
A] Client
edit this .lua game_attachedeffects/effects.lua with these functions

Code:
--[[
    register(id, name, thingId, thingType, config)
    config = {
        speed, disableWalkAnimation, shader, drawOnUI, opacity
        duration, loop, transform, hideOwner, size{width, height}
        offset{x, y, onTop}, dirOffset[dir]{x, y, onTop},
        onAttach, onDetach
    }
]] --

B] Server
Example :
LUA:
        player:setShader("Outfit - Rainbow")
        player:attachEffectById(7) -- id is game_attachedeffects/effects.lua
        player:attachEffectById(8) -- id is game_attachedeffects/effects.lua
        player:attachEffectById(9, true) -- Temporary Effect -- id is game_attachedeffects/effects.lua
        player:setMapShader('Map - Heat', true)
LUA:
        item:setShader(<shader name>)
I test in 1.5 nekiro 8.00 and work perfectly


View attachment 75449

when i activate g_game.enableFeature(GameItemShader), the screen goes black.

1726499345188.webp
C++:
ERROR: no thing at pos:32085 32200 7, stackpos:1
C++ stack traceback:
        [C++]: ProtocolGame::getMappedThing
        ./otclient(+0x4204af) [0x55eec47164af]
        ./otclient(+0x249911) [0x55eec453f911]
        ./otclient(+0x23c15d) [0x55eec453215d]
        ./otclient(+0x35255a) [0x55eec464855a]
        ./otclient(+0x3908f4) [0x55eec46868f4]
        ./otclient(+0x34f4f2) [0x55eec46454f2]
        ./otclient(+0x20668a) [0x55eec44fc68a]
        ./otclient(+0x20adeb) [0x55eec4500deb]
ERROR: ProtocolGame::parseCreatureMove: no creature found to move
C++ stack traceback:
        [C++]: ProtocolGame::parseCreatureMove
        ./otclient(+0x249911) [0x55eec453f911]
        ./otclient(+0x23c15d) [0x55eec453215d]
        ./otclient(+0x35255a) [0x55eec464855a]
        ./otclient(+0x3908f4) [0x55eec46868f4]
        ./otclient(+0x34f4f2) [0x55eec46454f2]
        ./otclient(+0x20668a) [0x55eec44fc68a]
        ./otclient(+0x20adeb) [0x55eec4500deb]
        ./otclient(+0x3a3ecc) [0x55eec4699ecc]
ERROR: no thing at pos:32085 32199 7, stackpos:1
C++ stack traceback:
        [C++]: ProtocolGame::getMappedThing
        ./otclient(+0x4204af) [0x55eec47164af]
        ./otclient(+0x249911) [0x55eec453f911]
        ./otclient(+0x23c15d) [0x55eec453215d]
        ./otclient(+0x35255a) [0x55eec464855a]
        ./otclient(+0x3908f4) [0x55eec46868f4]
        ./otclient(+0x34f4f2) [0x55eec46454f2]
        ./otclient(+0x20668a) [0x55eec44fc68a]
        ./otclient(+0x20adeb) [0x55eec4500deb]
ERROR: ProtocolGame::parseCreatureMove: no creature found to move
C++ stack traceback:
        [C++]: ProtocolGame::parseCreatureMove
        ./otclient(+0x249911) [0x55eec453f911]
        ./otclient(+0x23c15d) [0x55eec453215d]
        ./otclient(+0x35255a) [0x55eec464855a]
        ./otclient(+0x3908f4) [0x55eec46868f4]
        ./otclient(+0x34f4f2) [0x55eec46454f2]
        ./otclient(+0x20668a) [0x55eec44fc68a]
        ./otclient(+0x20adeb) [0x55eec4500deb]
        ./otclient(+0x3a3ecc) [0x55eec4699ecc]
ERROR: no thing at pos:32085 32200 7, stackpos:1
C++ stack traceback:
        [C++]: ProtocolGame::getMappedThing
        ./otclient(+0x4204af) [0x55eec47164af]
        ./otclient(+0x249911) [0x55eec453f911]
        ./otclient(+0x23c15d) [0x55eec453215d]
        ./otclient(+0x35255a) [0x55eec464855a]
        ./otclient(+0x3908f4) [0x55eec46868f4]
        ./otclient(+0x34f4f2) [0x55eec46454f2]
        ./otclient(+0x20668a) [0x55eec44fc68a]
        ./otclient(+0x20adeb) [0x55eec4500deb]
ERROR: ProtocolGame::parseCreatureMove: no creature found to move
C++ stack traceback:
        [C++]: ProtocolGame::parseCreatureMove
        ./otclient(+0x249911) [0x55eec453f911]
        ./otclient(+0x23c15d) [0x55eec453215d]
        ./otclient(+0x35255a) [0x55eec464855a]
        ./otclient(+0x3908f4) [0x55eec46868f4]
        ./otclient(+0x34f4f2) [0x55eec46454f2]
        ./otclient(+0x20668a) [0x55eec44fc68a]
        ./otclient(+0x20adeb) [0x55eec4500deb]
        ./otclient(+0x3a3ecc) [0x55eec4699ecc]
ERROR: no thing at pos:32085 32201 7, stackpos:1
C++ stack traceback:
        [C++]: ProtocolGame::getMappedThing
        ./otclient(+0x4204af) [0x55eec47164af]
        ./otclient(+0x249911) [0x55eec453f911]
        ./otclient(+0x23c15d) [0x55eec453215d]
        ./otclient(+0x35255a) [0x55eec464855a]
        ./otclient(+0x3908f4) [0x55eec46868f4]
        ./otclient(+0x34f4f2) [0x55eec46454f2]
        ./otclient(+0x20668a) [0x55eec44fc68a]
        ./otclient(+0x20adeb) [0x55eec4500deb]
ERROR: ProtocolGame::parseCreatureMove: no creature found to move
C++ stack traceback:
        [C++]: ProtocolGame::parseCreatureMove
        ./otclient(+0x249911) [0x55eec453f911]
        ./otclient(+0x23c15d) [0x55eec453215d]
        ./otclient(+0x35255a) [0x55eec464855a]
        ./otclient(+0x3908f4) [0x55eec46868f4]
        ./otclient(+0x34f4f2) [0x55eec46454f2]
        ./otclient(+0x20668a) [0x55eec44fc68a]
        ./otclient(+0x20adeb) [0x55eec4500deb]
        ./otclient(+0x3a3ecc) [0x55eec4699ecc]
ERROR: no thing at pos:32085 32200 7, stackpos:1
C++ stack traceback:
        [C++]: ProtocolGame::getMappedThing
        ./otclient(+0x4204af) [0x55eec47164af]
        ./otclient(+0x249911) [0x55eec453f911]
        ./otclient(+0x23c15d) [0x55eec453215d]
        ./otclient(+0x35255a) [0x55eec464855a]
        ./otclient(+0x3908f4) [0x55eec46868f4]
        ./otclient(+0x34f4f2) [0x55eec46454f2]
        ./otclient(+0x20668a) [0x55eec44fc68a]
        ./otclient(+0x20adeb) [0x55eec4500deb]
ERROR: ProtocolGame::parseCreatureMove: no creature found to move
C++ stack traceback:
        [C++]: ProtocolGame::parseCreatureMove
        ./otclient(+0x249911) [0x55eec453f911]
        ./otclient(+0x23c15d) [0x55eec453215d]
        ./otclient(+0x35255a) [0x55eec464855a]
        ./otclient(+0x3908f4) [0x55eec46868f4]
        ./otclient(+0x34f4f2) [0x55eec46454f2]
        ./otclient(+0x20668a) [0x55eec44fc68a]
        ./otclient(+0x20adeb) [0x55eec4500deb]
        ./otclient(+0x3a3ecc) [0x55eec4699ecc]
Exiting application..

If I remove

1726499431370.webp

1726499451567.webp

If I relog, it goes back to being like this
1726499431370.webp

Does anyone know what it could be? TFS 1.5/7.72
LUA:
  g_game.enableFeature(GameSpritesU32)
        
        g_game.enableFeature(GameWingsAurasEffectsShader)
        g_game.enableFeature(GameFormatCreatureName)
        g_game.enableFeature(GameCreatureShader)
        g_game.enableFeature(GameCreatureAttachedEffect)
        --g_game.enableFeature(GameItemShader)
        g_game.enableFeature(GameCreatureShader)
        g_game.enableFeature(GameCreatureAttachedEffect)
        --g_game.enableFeature(GameItemShader)
        -- g_game.enableFeature(GameItemTooltipV8);

        if version >= 750 then
            g_game.enableFeature(GameSoul)
        end

        if version >= 760 then
            g_game.enableFeature(GameLevelU16)
        end

        if version >= 770 then
            g_game.enableFeature(GamePlayerMarket)
            g_game.enableFeature(GameFormatCreatureName)
            g_game.enableFeature(GameBot)
            g_game.enableFeature(GameClientPing)

            g_game.enableFeature(GameLooktypeU16)
            g_game.enableFeature(GameMessageStatements)
            g_game.enableFeature(GameLoginPacketEncryption)

            g_game.enableFeature(GameWritableDate)
            g_game.enableFeature(GamePlayerAddons)
            g_game.enableFeature(GamePlayerMounts)
            g_game.enableFeature(GameNewOutfitProtocol)

            g_game.enableFeature(GameExtendedOpcode)
        end
Post automatically merged:

Sorry, I hadn't noticed, despite having read the information several times;

WARNING: YOU MUST ENABLE THESE FEATURES IN THE CLIENT

lol, but my clothes problem remains!
 
Last edited:
I still don't know why I haven't announced it yet or made a release, but Mehah does have "attachedeffects"

1.- need this in your server
by mehah

2.- edit this in client
by mehah

3.- and Enable Feature

LUA:
g_game.enableFeature(GameItemShader)
g_game.enableFeature(GameCreatureShader)
g_game.enableFeature(GameCreatureAttachedEffect)

mehah have :
  • attachEffect (Apng(ThingExternalTexture) // dat effect(ThingCategoryEffect) // dat outfit (ThingCategoryCreature) WITH OFFSET
  • shader (map // creature // item // widget )
4.- Edit
A] Client
edit this .lua game_attachedeffects/effects.lua with these functions

Code:
--[[
    register(id, name, thingId, thingType, config)
    config = {
        speed, disableWalkAnimation, shader, drawOnUI, opacity
        duration, loop, transform, hideOwner, size{width, height}
        offset{x, y, onTop}, dirOffset[dir]{x, y, onTop},
        onAttach, onDetach
    }
]] --

B] Server
Example :
LUA:
        player:setShader("Outfit - Rainbow")
        player:attachEffectById(7) -- id is game_attachedeffects/effects.lua
        player:attachEffectById(8) -- id is game_attachedeffects/effects.lua
        player:attachEffectById(9, true) -- Temporary Effect -- id is game_attachedeffects/effects.lua
        player:setMapShader('Map - Heat', true)
LUA:
        item:setShader(<shader name>)
I test in 1.5 nekiro 8.00 and work perfectly


View attachment 75449
bro share your sources and client!!!
 
I added everything from github,
after selecting the outfit and pressing OK, nothing happens,
mounts work :P

I use OTCv8, nekiro 1.5 860


Code:
21:46:19:704 1>F:\Zarecki Ot - all copies itd\Engine\TFS-1.5-Downgrades-8.60\src\game.cpp(3193,95): warning C4100: "shader": formal parameter not referenced
21:46:19:770 1>(compiling source file "/src/game.cpp")
21:46:19:770 1>F:\Zarecki Ot - all copies itd\Engine\TFS-1.5-Downgrades-8.60\src\game.cpp(3193,85): warning C4100: "aura": formal parameter not referenced
21:46:19:770 1>(compiling source file "/src/game.cpp")
21:46:19:770 1>F:\Zarecki Ot - all copies itd\Engine\TFS-1.5-Downgrades-8.60\src\game.cpp(3193,74): warning C4100: "wings": formal parameter not referenced
21:46:19:770 1>(compiling source file "/src/game.cpp")


Code:
void Game::playerToggleOutfitExtension(uint32_t playerId, int mount, int wings, int aura, int shader)
{
    Player* player = getPlayerByID(playerId);
    if (!player) {
        return;
    }

    if (mount != -1)
        player->toggleMount(mount == 1);
}


1727293733645.webp
 
I added everything from github,
after selecting the outfit and pressing OK, nothing happens,
I tried to add code from OTCv8 github and I see it's missing a lot of things.
Ex. there is no way to add/remove aura/shader/wing from Lua.
I've got a commit that adds aura/shader/wing with all required functions to manage them from Lua + some bug fixes, but I've added it to Nekiro 8.0, so it also contains code to add mounts.
It's on my private github, so if you want access to this commit - it's free, it's just not ready for release, so it's not on my public forgottenserver fork - message me on Discord: gesior.pl
 
I tried to add code from OTCv8 github and I see it's missing a lot of things.
Ex. there is no way to add/remove aura/shader/wing from Lua.
I've got a commit that adds aura/shader/wing with all required functions to manage them from Lua + some bug fixes, but I've added it to Nekiro 8.0, so it also contains code to add mounts.
It's on my private github, so if you want access to this commit - it's free, it's just not ready for release, so it's not on my public forgottenserver fork - message me on Discord: gesior.pl
that datapack has all the functions you mentioned. they're used in its shop system if im not wrong it I had look at it yesterday
hasAura
hasShader
hasWing
 
hat datapack has all the functions you mentioned.
Yes. It has them all, but there is no .git to compare what they added and where.
Anyway, I made my changes public on separate repo:
When I prepare changes to add this to TFS 1.4 for 10.98, I will release it on my forgottenserver fork and remove auras-shaders-wings-mounts repo.
 
Yes. It has them all, but there is no .git to compare what they added and where.
Anyway, I made my changes public on separate repo:
When I prepare changes to add this to TFS 1.4 for 10.98, I will release it on my forgottenserver fork and remove auras-shaders-wings-mounts repo.
all a person has to do is search for mount but I agree it might be too hard for average user who only follows commits.
surprised we still have not automated this system in some way.
 
Well, as far as the repository of our @Gesior.pl is concerned, everything works, there is still the error mentioned above (it does not cause any problems, it is probably enough to remove these declarations because they do not refer to anything at the moment)


I need to work on repositioning, I don't know if it's normal for the name to move like that.
Does anyone have any suggestions on how to move a player's nickname?

_/Regards :)
Post automatically merged:

all a person has to do is search for mount but I agree it might be too hard for average user who only follows commits.
surprised we still have not automated this system in some way.

Unfortunately, the TFS 1.5 version for the lower version Nekiro 8.60, was not mounted, I had to add it myself, and also add otclientv8 (the current repository of this, which probably does not require it):P



And if you have mount in the source, it won't be difficult to add it :P
 
Last edited:
Hi, i implemented it into nekiro 1.5 772 downgrade to test. I was able to compile it and log in with those new features, however mounts, wings and aura were not visible after outfit selection (dont really care for mounts and wings). I tested the aura with outfit id that already existed if i'll see another outfit being rendered but nothing.
I even imported the aura png (that someone posted here) into my outfits with object builder and added that ID into auras.xml however it didnt even showup in outfit window (The existing monster outfit did but wasnt applied anyway). Any ideas why the aura is not rendering ?

-------
EDIT:
solved with changes on page: [OTCv8] Auras and wings (https://otland.net/threads/otcv8-auras-and-wings.284325/page-2#post-2727031)

aura renders correctly. First time i did something wrong when manually creating aura from .png so it was working only when i was facing north :D however position was ok
1727446646559.webp
so i duplicated 32x32 outfit and replaced sprites from the aura.png without those sparks just those circles.
1727446732190.webp
now working in all direction but the position is somehow wrong so i'll have to fix that, but at least its working :D
edit2: fixed outfit offset in object builder

Also do you think that it will work with nekiro 772 downgrade if i only import "aura" parts of code into my sources without mounts ? ( so i could set aura in lua )

With the full implementation i guess i need
Code:
ProtocolGame:parseToggleMount
in order to trigger the outfit change if im right, because of this.
LUA:
    addGameTask(&Game::playerToggleOutfitExtension, player->getID(), mount, wings, aura, shader);

Almost forgot, for some reason its only working when i compile and run server in Windows. When i compile and run it inside docker i get segmentation fault when i try to login. Same code which is weird :D (worked in previous version)
 
Last edited:
I managed to get almost everything working 100%. GMs can use everything—auras, shaders, and wings. For regular players, I can add wings, and they can see them on the selection screen, but when they press OK, the wings don't appear. I've read everything here and made all the changes, but I can't find the solution. Considering that it works normally for GM characters, just not for regular players, has anyone else experienced this? A few days ago, it was working fine; could it be something related to the client?
Post automatically merged:

I added everything from github,
after selecting the outfit and pressing OK, nothing happens,
mounts work :P

I use OTCv8, nekiro 1.5 860


Code:
21:46:19:704 1>F:\Zarecki Ot - all copies itd\Engine\TFS-1.5-Downgrades-8.60\src\game.cpp(3193,95): warning C4100: "shader": formal parameter not referenced
21:46:19:770 1>(compiling source file "/src/game.cpp")
21:46:19:770 1>F:\Zarecki Ot - all copies itd\Engine\TFS-1.5-Downgrades-8.60\src\game.cpp(3193,85): warning C4100: "aura": formal parameter not referenced
21:46:19:770 1>(compiling source file "/src/game.cpp")
21:46:19:770 1>F:\Zarecki Ot - all copies itd\Engine\TFS-1.5-Downgrades-8.60\src\game.cpp(3193,74): warning C4100: "wings": formal parameter not referenced
21:46:19:770 1>(compiling source file "/src/game.cpp")


Code:
void Game::playerToggleOutfitExtension(uint32_t playerId, int mount, int wings, int aura, int shader)
{
    Player* player = getPlayerByID(playerId);
    if (!player) {
        return;
    }

    if (mount != -1)
        player->toggleMount(mount == 1);
}


View attachment 87324
How did you solve it?

With the GM, everything works fine for me... only players can't use it :(
Post automatically merged:

Man, I've already redone the process countless times and the same error repeats, I still can't resolve it.

Post automatically merged:

Is anyone available to help?



I added this commit before adding auras, wings, and shaders, so "everything" should work.
 
Last edited:
I managed to get almost everything working 100%. GMs can use everything—auras, shaders, and wings. For regular players, I can add wings, and they can see them on the selection screen, but when they press OK, the wings don't appear. I've read everything here and made all the changes, but I can't find the solution. Considering that it works normally for GM characters, just not for regular players, has anyone else experienced this? A few days ago, it was working fine; could it be something related to the client?
Post automatically merged:


How did you solve it?

With the GM, everything works fine for me... only players can't use it :(
Post automatically merged:





I added this commit before adding auras, wings, and shaders, so "everything" should work.
Look
Post
Post automatically merged:

Cześć, zaimplementowałem to w nekiro 1.5 772 downgrade, aby przetestować. Udało mi się to skompilować i zalogować z tymi nowymi funkcjami, jednak wierzchowce, skrzydła i aura nie były widoczne po wybraniu stroju (nie zależy mi na wierzchowcach i skrzydłach). Przetestowałem aurę z identyfikatorem stroju, który już istniał, czy zobaczę inny strój, który jest renderowany, ale nic.
Nawet zaimportowałem aurę png (którą ktoś tu zamieścił) do moich strojów za pomocą object builder i dodałem ten identyfikator do auras.xml, jednak nie pojawił się on nawet w oknie stroju (istniejący strój potwora pokazał, ale i tak nie został zastosowany). Macie jakieś pomysły, dlaczego aura się nie renderuje?

-------
REDAGOWAĆ:
rozwiązano ze zmianami na stronie: [OTCv8] Aury i skrzydła (https://otland.net/threads/otcv8-auras-and-wings.284325/page-2#post-2727031)

aura renderuje się poprawnie. Pierwszy raz zrobiłem coś źle podczas ręcznego tworzenia aury z .png, więc działało to tylko wtedy, gdy patrzyłem na północ, :D jednak pozycja była w porządku
View attachment 87357
więc zduplikowałem strój 32x32 i zamieniłem duszki z aura.png bez tych iskier, tylko te kółka.
View attachment 87358
teraz działa we wszystkich kierunkach, ale pozycja jest w jakiś sposób nieprawidłowa, więc będę musiał to naprawić, ale przynajmniej działa:D
edit2: naprawiono przesunięcie stroju w konstruktorze obiektów

Czy uważasz, że zadziała to z wersją nekiro 772, jeśli zaimportuję do źródeł tylko fragmenty kodu „aura” bez wierzchowców? (żebym mógł ustawić aurę w LUA)

Przy pełnej implementacji sądzę, że potrzebuję
Code:
ProtocolGame:parseToggleMount
w celu wywołania zmiany stroju, jeśli się nie mylę. Z tego powodu.
LUA:
 addGameTask(&Game::playerToggleOutfitExtension, player->getID(), wierzchowiec, skrzydła, aura, shader);

Prawie zapomniałem, z jakiegoś powodu działa tylko wtedy, gdy kompiluję i uruchamiam serwer w systemie Windows. Gdy kompiluję i uruchamiam go w dockerze, otrzymuję błąd segmentacji, gdy próbuję się zalogować. Ten sam kod, który jest dziwny:D (działał w poprzedniej wersji)
search features and find auraCenter, use it in modules/game_features and it should help with auras

Try IT:

GameAuraFrontAndBack
Or
GameDrawAuraOnTop
 
Last edited:

Similar threads

Back
Top