EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   Skills Question (https://www.eqemulator.org/forums/showthread.php?t=34098)

NatedogEZ 06-06-2014 11:47 PM

Just open the SLN file.. and hit compile :) after you have made whatever changes to the source files.

NickW 06-07-2014 08:56 AM

Quote:

Originally Posted by NatedogEZ (Post 231058)
Just open the SLN file.. and hit compile :) after you have made whatever changes to the source files.

Gotcha, thanx. So I recompiled the skill_caps.cpp and entity.cpp

http://i59.tinypic.com/123phs4.jpg

http://i58.tinypic.com/30bpuuv.jpg

Still no change in-game though. No matter which zone I try there is never anything on track..

http://i62.tinypic.com/2gvlycj.jpg

Was there another step after recompiling those files?.. :confused:

lerxst2112 06-07-2014 03:46 PM

You need to select build to build the solution (F7), then you need to copy the newly built executables to your server directory.

NickW 06-07-2014 05:48 PM

Quote:

Originally Posted by lerxst2112 (Post 231072)
You need to select build to build the solution (F7), then you need to copy the newly built executables to your server directory.

http://i60.tinypic.com/1z1tlwh.jpg

http://i59.tinypic.com/33xyg6c.jpg

http://i59.tinypic.com/24mwdxj.jpg

Still no change. Nothing on track regardless of track skill/distance/zone/mobs. I think the gods are against me..

lerxst2112 06-07-2014 06:12 PM

You know, you could just say you did it, the giant screen shots add nothing to the conversation.

NatedogEZ 06-08-2014 01:19 AM

This does work... but there are a few other areas you NEED to change!



client_packet.cpp
Code:

void Client::Handle_OP_TrackTarget(const EQApplicationPacket *app)
{
        int PlayerClass = GetClass();

        if((PlayerClass != RANGER) && (PlayerClass != DRUID) && (PlayerClass != BARD) && (PlayerClass != WARRIOR))
                return;

        if (app->size != sizeof(TrackTarget_Struct))
        {
                LogFile->write(EQEMuLog::Error, "Invalid size for OP_TrackTarget: Expected: %i, Got: %i",
                        sizeof(TrackTarget_Struct), app->size);
                return;
        }

        TrackTarget_Struct *tts = (TrackTarget_Struct*)app->pBuffer;

        TrackingID = tts->EntityID;
}

void Client::Handle_OP_Track(const EQApplicationPacket *app)
{
        if(GetClass() != RANGER && GetClass() != DRUID && GetClass() != BARD && GetClass() != WARRIOR)
                return;

        if( GetSkill(SkillTracking)==0 )
                SetSkill(SkillTracking,1);
        else
                CheckIncreaseSkill(SkillTracking, nullptr, 15);

        if(!entity_list.MakeTrackPacket(this))
                LogFile->write(EQEMuLog::Error, "Unable to generate OP_Track packet requested by client.");

        return;
}


Notice all I did was add Warrior to those 2 functions .. plus I added warrior to the one you posted earlier as well..


Hopefully this helps :)








This is it working on a warrior
http://i.imgur.com/hfdUdUE.png

NickW 06-08-2014 08:43 AM

Quote:

Originally Posted by NatedogEZ (Post 231079)
This does work... but there are a few other areas you NEED to change!



client_packet.cpp
Code:

void Client::Handle_OP_TrackTarget(const EQApplicationPacket *app)
{
        int PlayerClass = GetClass();

        if((PlayerClass != RANGER) && (PlayerClass != DRUID) && (PlayerClass != BARD) && (PlayerClass != WARRIOR))
                return;

        if (app->size != sizeof(TrackTarget_Struct))
        {
                LogFile->write(EQEMuLog::Error, "Invalid size for OP_TrackTarget: Expected: %i, Got: %i",
                        sizeof(TrackTarget_Struct), app->size);
                return;
        }

        TrackTarget_Struct *tts = (TrackTarget_Struct*)app->pBuffer;

        TrackingID = tts->EntityID;
}

void Client::Handle_OP_Track(const EQApplicationPacket *app)
{
        if(GetClass() != RANGER && GetClass() != DRUID && GetClass() != BARD && GetClass() != WARRIOR)
                return;

        if( GetSkill(SkillTracking)==0 )
                SetSkill(SkillTracking,1);
        else
                CheckIncreaseSkill(SkillTracking, nullptr, 15);

        if(!entity_list.MakeTrackPacket(this))
                LogFile->write(EQEMuLog::Error, "Unable to generate OP_Track packet requested by client.");

        return;
}


Notice all I did was add Warrior to those 2 functions .. plus I added warrior to the one you posted earlier as well..


Hopefully this helps :)








This is it working on a warrior
http://i.imgur.com/hfdUdUE.png

It works! Thank you everybody. I seriously love this community. So damn helpful! :D

Quote:

Originally Posted by lerxst2112 (Post 231076)
You know, you could just say you did it, the giant screen shots add nothing to the conversation.

As for the screenshots. If they bother people. I will most definitely stop using them. When people who understand what's going on are trying to help someone who is clueless. In other words me.. They usually assume the person isn't following their directions correctly. And that's why it isn't working for them. The screenshots are my attempt to show exactly how I did what, where, etc.. In case i did screw something up. :)

That was my thought process anyway..

AdrianD 07-24-2015 07:44 AM

Those screen shots help people like me who do not have the knowhow or experience to do it without a little hand holding. Don't shun it unless you want to keep the community small.

I know I necro'd this... to SHOW you I was researching it before I start a new thread with my own question! BFD, don't read it then...


All times are GMT -4. The time now is 02:23 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.