EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   General::General Discussion (https://www.eqemulator.org/forums/forumdisplay.php?f=586)
-   -   Any Race/Class combo classic servers? (https://www.eqemulator.org/forums/showthread.php?t=37374)

rencro 10-21-2013 12:23 AM

I just compiled this today on my code and it worked fine..I equipped two Silver Fire Wedding Rings (30hp apiece) and went into W Freeport and let them beat me down near death then ran to guards, put on my fungi, and all was good..

Im not using : (werewolf,bixie,kerran,brownie,banshee,any of the pirates)

I'll post the code blocks..

common/item.cpp
Code:

AT -- about line 1893ish (sorry have other custom code)

bool Item_Struct::IsEquipable(uint16 Race, uint16 Class_) const
.
.
.
for (unsigned int CurrentRace = 1; CurrentRace <= PLAYER_RACE_COUNT; ++CurrentRace)
        {
                if (Races_ % 2 == 1)
                {
                                if (CurrentRace == Race_)
                        {
                                        IsRace = true;
                                break;
                        }
                }
                Races_ >>= 1;
        }
       
        return (IsRace && IsClass);

CHANGE TO --

for (unsigned int CurrentRace = 1; CurrentRace <= PLAYER_RACE_COUNT; ++CurrentRace)
        {
                if (Races_ % 2 == 1)
                {
                                if (CurrentRace == Race_)
                        {
                                        IsRace = true;
                                break;
                        }
                }
                Races_ >>= 1;
        }
        if (Race_ == 69) {IsRace = true;} //davood

        return (IsRace && IsClass);

common/races.cpp
Code:

AT -- about line 74

uint32 GetArrayRace(uint16 race) {
.
.
.
                case FROGLOK2:
                        return Array_Race_FROGLOK;
                case DRAKKIN:
                        return Array_Race_DRAKKIN;

                default:
                        return Array_Race_UNKNOWN;

CHANGE TO --

                case FROGLOK2:
                        return Array_Race_FROGLOK;
                case DRAKKIN:
                        return Array_Race_DRAKKIN;
                case ALAKAMIN_PYRILEN:
                case ALAKAMIN_GELIDRAN:
                case ALAKAMIN_SHILLISKIN:
                case ALAKAMIN_BEHOLDER:
                case ALAKAMIN_HARPYR:
                case ALAKAMIN_SATYR:
                case ALAKAMIN_AVIAK:
                case ALAKAMIN_SIREN:
                case ALAKAMIN_MINOTAUR:
                case ALAKAMIN_FUNGOID:
                case ALAKAMIN_KOBOLD:
                case ALAKAMIN_GOBLIN:
                case ALAKAMIN_ORC:
                case ALAKAMIN_ULTRATAUR:
                case ALAKAMIN_BAZU:
                case ALAKAMIN_FAERIE:
                case ALAKAMIN_GARGOYLE:
                case ALAKAMIN_ZOMBIE:
                case ALAKAMIN_GNOLL:
                case ALAKAMIN_IMP:
                case ALAKAMIN_SCRYKIN:
                case ALAKAMIN_GOLEM:       
                        return Array_Race_SHROUD; // davood

                default:
                        return Array_Race_UNKNOWN;

common/races.h
Code:

In the Defines --

#define FROGLOK2                74        // Not sure why /who all reports race as 74 for frogloks
#define DRAKKIN                        522 // 32768
#define EMU_RACE_NPC        131069 // was 65533
#define EMU_RACE_PET        131070 // was 65534
#define EMU_RACE_UNKNOWN 131071 // was 65535


#define human_1                        1
#define barbarian_1                2

CHANGE TO --


#define FROGLOK2                74        // Not sure why /who all reports race as 74 for frogloks
#define DRAKKIN                        522 // 32768
#define EMU_RACE_NPC        131069 // was 65533
#define EMU_RACE_PET        131070 // was 65534
#define EMU_RACE_UNKNOWN 131071 // was 65535
//davood custom races
#define ALAKAMIN_PYRILEN 408
#define ALAKAMIN_GELIDRAN 417
#define ALAKAMIN_SHILLISKIN 467
#define ALAKAMIN_BEHOLDER 469
#define ALAKAMIN_HARPYR 527
#define ALAKAMIN_SATYR 529
#define ALAKAMIN_AVIAK 558
#define ALAKAMIN_SIREN 564
#define ALAKAMIN_MINOTAUR 574
#define ALAKAMIN_FUNGOID 456
#define ALAKAMIN_KOBOLD 455
#define ALAKAMIN_GOBLIN 433
#define ALAKAMIN_ORC 458
#define ALAKAMIN_ULTRATAUR 470
#define ALAKAMIN_BAZU 409
#define ALAKAMIN_FAERIE 473
#define ALAKAMIN_GARGOYLE 464
#define ALAKAMIN_ZOMBIE 471
#define ALAKAMIN_GNOLL 524
#define ALAKAMIN_IMP 46
#define ALAKAMIN_SCRYKIN 495
#define ALAKAMIN_GOLEM 374 // davood


#define human_1                        1
#define barbarian_1                2

zone/client.cpp (NOTE--There are two locations need editing in this file)
Code:

AT -- about line 6200

void Client::SendStatsWindow(Client* client, bool use_window)
.
.
.
                case 130: race_Name = "Vah Shir";        break;
                case 330: race_Name = "Froglok";        break;
                case 522: race_Name = "Drakkin";        break;

                default: break;
        }
        /*##########################################################
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                H/M/E String

CHANGE TO --

                case 130: race_Name = "Vah Shir";        break;
                case 330: race_Name = "Froglok";        break;
                case 522: race_Name = "Drakkin";        break;
                //davood
                case 408: race_Name = "Pyrilen"; break;
                case 417: race_Name = "Gelidran"; break;
                case 467: race_Name = "Shilliskin"; break;
                case 469: race_Name = "Beholder"; break;
                case 527: race_Name = "Harpyr"; break;
                case 529: race_Name = "Satyr"; break;
                case 558: race_Name = "Aviak"; break;
                case 564: race_Name = "Siren"; break;
                case 574: race_Name = "Minotaur"; break;
                case 456: race_Name = "Fungoid"; break;
                case 455: race_Name = "Kobold"; break;
                case 433: race_Name = "Goblin"; break;
                case 458: race_Name = "Orc"; break;
                case 470: race_Name = "Ultrataur"; break;
                case 409: race_Name = "Bazu"; break;
                case 473: race_Name = "Faerie"; break;
                case 464: race_Name = "Gargoyle"; break;
                case 471: race_Name = "Zombie"; break;
                case 524: race_Name = "Gnoll"; break;
                case 46: race_Name = "Imp"; break;
                case 495: race_Name = "Scrykin"; break;
                case 374: race_Name = "Golem"; break;


                default: break;
        }
        /*##########################################################
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                H/M/E String

THEN AT -- about line 7100

const char* Client::GetRacePlural(Client* client) {
.
.
.
                case VAHSHIR:
                        return "Vah Shir"; break;
                case FROGLOK:
                        return "Frogloks"; break;
                case DRAKKIN:
                        return "Drakkin"; break;
                       
                default:
                        return "Races"; break;

CHANGE TO --

                case VAHSHIR:
                        return "Vah Shir"; break;
                case FROGLOK:
                        return "Frogloks"; break;
                case DRAKKIN:
                        return "Drakkin"; break;
                //davood
                case ALAKAMIN_PYRILEN:
                        return "Pyrilen"; break;
                case ALAKAMIN_GELIDRAN:
                        return "Gelidran"; break;
                case ALAKAMIN_SHILLISKIN:
                        return "Shilliskin"; break;
                case ALAKAMIN_BEHOLDER:
                        return "Beholder"; break;
                case ALAKAMIN_HARPYR:
                        return "Harpyr"; break;
                case ALAKAMIN_SATYR:
                        return "Satyr"; break;
                case ALAKAMIN_AVIAK:
                        return "Aviak"; break;
                case ALAKAMIN_SIREN:
                        return "Siren"; break;
                case ALAKAMIN_MINOTAUR:
                        return "Minotaur"; break;
                case ALAKAMIN_FUNGOID:
                        return "Fungoid"; break;
                case ALAKAMIN_KOBOLD:
                        return "Kobold"; break;
                case ALAKAMIN_GOBLIN:
                        return "Goblin"; break;
                case ALAKAMIN_ORC:
                        return "Orc"; break;
                case ALAKAMIN_ULTRATAUR:
                        return "Ultrataur"; break;
                case ALAKAMIN_BAZU:
                        return "Bazu"; break;
                case ALAKAMIN_FAERIE:
                        return "Faerie"; break;
                case ALAKAMIN_GARGOYLE:
                        return "Gargoyle"; break;
                case ALAKAMIN_ZOMBIE:
                        return "Zombie"; break;
                case ALAKAMIN_GNOLL:
                        return "Gnoll"; break;
                case ALAKAMIN_IMP:
                        return "Imp"; break;
                case ALAKAMIN_SCRYKIN:
                        return "Scrykin"; break;
                case ALAKAMIN_GOLEM:
                        return "Golem"; break;

                       
                default:
                        return "Races"; break;


knowom 10-21-2013 01:13 AM

There are a few different Gnoll texture types in the game brown, white, and black could the "choose face" option be made to let you pick between the different model types I think that would be rather cool.

I mean that would be similar to how Vah Shir and Froglok were done the choose face option did a bit more than simply alter the face textures in those character models.

Davood 10-21-2013 01:05 PM

I use extra sql tables to drtermine pkayer texture selection

when they zone it checks the db and sets the appropriate texture

also..all of this is done via perl and event_zone

Fadedspirit 10-21-2013 01:16 PM

@rencro

Like I said, I copied & pasted Davood's code just to see if i was really messing something up and nothing changed.

I'm thinking I've got a compiler issue going on, as I intentionally messed up the IsEquippable() method yet nothing happened.

I tried putting log events in, but none of them showed up :x.

I even double checked based on dateTime stamps on files to see which ones were being built, but still no changes were being seen.

I'll keep working on it though.



As for the /face thing, if there is code in the source to handle that it probably is possible, but you'd still need on_enter_zone events in perl to check your current texture each time you zone :-D!

Davood 10-21-2013 04:42 PM

I have a question fadedspirit.

what are the final 3 lines of your compiler output?

if the date time stamp of the exes isnt changing then it isn't actually compiling??? or skipping? maybe a config issue

rencro 10-21-2013 05:57 PM

Its almost like the old code is still running...Are you copying over to the server folder from the bin folder while the server is stopped(is this possible?? dunno)

Just for giggles how about deleting the "Build" directory and rerunning cmake?? Then recompile, then grab the files from the release folder (or debug if you built debug mode)

just taking shots in the dark, sorry..

Fadedspirit 10-21-2013 06:06 PM

Quote:

Originally Posted by rencro (Post 225161)
Its almost like the old code is still running...Are you copying over to the server folder from the bin folder while the server is stopped(is this possible?? dunno)

Just for giggles how about deleting the "Build" directory and rerunning cmake?? Then recompile, then grab the files from the release folder (or debug if you built debug mode)

just taking shots in the dark, sorry..

Yea, I'm trying a lot of things at the moment. Fairly certain it is a build error with my compiler. Just got home so haven't identified what it is just yet :-x.

Cheers

Davood 10-21-2013 06:30 PM

can you please read my last post.

what do the final 3 lines of your compile operation say?

Fadedspirit 10-21-2013 06:33 PM

Boom, got it working.


My VS2012 was borked and needed a reinstall. Kept telling me it had "compatibility issues with the current OS" of which is Server 2008 R2 (of which vs2012 is compatible with).

A quick 20minute repair, and everything is building correctly now :D!


Woot :]

knowom 10-21-2013 07:11 PM

Congrats glad you got that headache all straightened out.

Fadedspirit 10-22-2013 04:42 PM

Quote:

Originally Posted by knowom (Post 225165)
Congrats glad you got that headache all straightened out.

Now i just wish someone could point me in the direction of forcing Luclin models off when people join my server. Was a guide on a server years ago (Vekk/Zekk?) where it only allowed you to use the old models.

Apparently that was custom proprietary code that none are willing to share :confused:.

knowom 10-22-2013 07:10 PM

Quote:

Originally Posted by Fadedspirit (Post 225175)
Now i just wish someone could point me in the direction of forcing Luclin models off when people join my server. Was a guide on a server years ago (Vekk/Zekk?) where it only allowed you to use the old models.

Apparently that was custom proprietary code that none are willing to share :confused:.

Why do you want to force them to use the old models it's only seen on the clients end anyway? I don't get why that would matter to you honestly. Personally I prefer the older models though I can't see why you'd want to force them on users.

Davood 10-23-2013 02:26 PM

Its probably not going to be a popular choice.. but it might br possible hy disbling the expansions after velious.

Keggers 10-28-2013 05:21 PM

Quote:

Originally Posted by Tabaluga_Dragon (Post 224841)
Make a server like that I for one would check it out.

Your wish, granted.

<===Fadedspirit :)


All times are GMT -4. The time now is 12:19 PM.

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