|
|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
| Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum) |
 |
|
 |

02-17-2009, 10:37 PM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
I just figured out why combat with weapons wasn't working for Drakkin. The bool for IsEquipable was being set to false every time because it had not been adjusted to use the new total of 16 races. I corrected it on my test server and now combat seems to work perfectly. The actual damage during combat isn't being reported yet, but that it is still working. We still need the OP_Damage opcode and structure corrected before the damage will display. At least with this change, it makes basic gameplay functional. I will commit the change tonight when I get home.
I also found that Drakkin weren't set to start with any language skills, so I added Common Tongue and the 2 Dragon languages to them since I figure they would probably be able to speak the Dragon ones due to their nature. I will also commit that tonight.
Drakkin also have a unique racial starting skill that is really a special AA that only they get. Depending on the Heritage they chose, they get a slightly different affect from it, but I think the AA is called Dragon Breath. For that to work properly, we would have to write new code to handle heritage and also implement the AAs. Heritage also defines some slight differences in starting resists from what I have read. None of this needs to be done any time soon, but I figured I would note it for later use.
I don't think the item database needs to be updated much, but I will probably update a small SQL change to change any item set to 32767 (Titanium ALL races) to 65535 (SoF ALL races). I know I have seen at least one item that was supposed to be ALL/ALL that wasn't because it didn't have Drakkin on it. It may have been set that way by GeorgeS tool at some point, but I am not sure. We will need to verify his tool is setting ALL races to 65535 now.
Last edited by trevius; 02-18-2009 at 06:42 AM..
|
 |
|
 |

02-18-2009, 04:07 AM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
LOL, I got combat damage working finally. ShowEQ was throwing me off, because they call OP_Damage OP_Action2. I finally saw it in some combat logs and tried it and it worked. All I had to do was add 5 more bytes to the end of the combat damage struct and it seems to work fine now.
That leaves AAs as what I consider to be the last major issue. They still aren't displaying properly yet. For now, I am going to try to get doors working properly and maybe adjust the objects structure, because it seems like heading is in the wrong place, since all objects face the same directions.
|

02-18-2009, 06:34 AM
|
|
Administrator
|
|
Join Date: Sep 2006
Posts: 1,348
|
|
I tried changing the order of when AAs are sent, did nothing. Either there's another packet, the opcodes are wrong or there's something that needs to be set in the player profile. I lean toward 1 or 3, hopefully 1 but I bet it's 3 =(
|

02-18-2009, 07:22 AM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
Yeah, I am pretty sure that the opcode to send AAs is correct. It could be option 1, but you are probably right that it is something in the player profile. I am going to work back through the PP anyway soon to try to align some of the areas that are harder to confirm. I am going to be using a Live packet as a reference, so it might not be too easy. The only good thing is that the difference from EQLive and SoF is only about 96 bytes in size (live is actually less now, which is rare for structures to shrink). I will just base the changes off of relative fields that we know are correct. Hopefully I can get it more accurately aligned and that may resolve a few issues. It is a big struct, so it may take a while to complete though lol.
|
 |
|
 |

02-18-2009, 08:31 AM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
Unfortunately, I just had to back out of the fix I put in for Drakkin to be able to use equipment and weapons and gain stats from them. It was working great for SoF, but the fix caused the same problem to start happening in Titanium. So, right now, it seems like only 1 or the other can work. I am sure there is a way to let both work properly, but I just don't know of a good solution right now. If anyone has a suggestion, it would help
Here is the piece of code that needs to be changed to work with both client versions:
/common/item.cpp
Code:
bool ItemInst::IsEquipable(int16 race, int16 class_) const
{
if (!m_item)
return false;
bool israce = false;
bool isclass = false;
if (m_item->Slots == 0) {
return false;
}
uint32 classes_ = m_item->Classes;
uint32 races_ = m_item->Races;
int32 race_ = 0;
#ifndef PACKETCOLLECTOR
race_ = GetArrayRace(race);
#endif
race_ = (race_==17? 15 : race_); // For SoF this should be: race_ = (race_==18? 16 : race_);
// @merth: can this be optimized? i.e., will (race & common->Races) suffice?
for (int cur_class = 1; cur_class<=PLAYER_CLASS_COUNT; cur_class++) {
if (classes_ % 2 == 1) {
if (cur_class == class_) {
isclass = true;
break;
}
}
classes_ >>= 1;
}
for (unsigned int cur_race = 1; cur_race <= PLAYER_RACE_COUNT; cur_race++) {
if (races_ % 2 == 1) {
if (cur_race == race_) {
israce = true;
break;
}
}
races_ >>= 1;
}
return (israce && isclass);
}
|
 |
|
 |

02-18-2009, 11:04 AM
|
|
Discordant
|
|
Join Date: Apr 2006
Posts: 374
|
|
I take it we need to copy the 2 spells_ text files from the SoF client and replace the old titanium ones with them in order to use the new spells from the new expansions?
Will the new files be compatable with old clients? If so is there any harm in making the switch now, or should I wait?
|
 |
|
 |

02-18-2009, 04:02 PM
|
|
Developer
|
|
Join Date: Mar 2007
Location: Ohio
Posts: 648
|
|
I started working on OP_Consume the other night (otherwise, client freezes when you right-click on food), but since I haven't really worked with the encoding/decoding of packets much, I'm not sure what we need to do in SoF_ops.h & SoF.cpp, but here's the new struct:
Code:
struct Consume_Struct
{
/*0000*/ int32 slot;
/*0004*/ int32 unknown4; // usually 0x0, but also saw 0x43
};
That's specifically from right-clicking though. Here are some captures from the log (after adding a hex output to client_packet.cpp):
Code:
Right-clicked food (Bread Crumbs*) from slot 24
3652 [02.09. - 02:28:02] [NET__ERROR] OP size error: OP_Consume expected:16 got:8
3652 [02.09. - 02:28:02] [NET__ERROR] 0000: 18 00 00 00 43 00 00 00 - | ....C...
Right-clicked drink (Skin of Milk) from slot 23
3652 [02.09. - 02:31:28] [NET__ERROR] OP size error: OP_Consume expected:16 got:8
3652 [02.09. - 02:31:28] [NET__ERROR] 0000: 17 00 00 00 00 00 00 00 - | ........
Right-clicked food (Misty Thicket Picnic [9662]) from slot 28
3652 [02.09. - 02:38:09] [NET__ERROR] OP size error: OP_Consume expected:16 got:8
3652 [02.09. - 02:38:09] [NET__ERROR] 0000: 1c 00 00 00 00 00 00 00 - | ........
If someone wants to finish it off before I have a chance to learn it, feel free.
As far as the items issue, 32768 is for Shrouds in Titanium. Here's an excerpt from my PHP editor (that I haven't worked on in forever):
items/index.php
Code:
// Class(es)
echo "Class: ";
if ($db_row[classes] == 65535) echo "ALL ";
elseif ($db_row[classes] == 0) echo "NONE ";
else {foreach ($ClassesShort as $key => $value) if ($db_row[classes] & pow(2, $key - 1)) echo $value . " ";};
echo "<br>\n";
includes/constants.php
Code:
// Race List
$Races = array(
1 => "HUM",
2 => "BAR",
4 => "ERU",
8 => "ELF",
16 => "HIE",
32 => "DEF",
64 => "HEF",
128 => "DWF",
256 => "TRL",
512 => "OGR",
1024 => "HFL",
2048 => "GNM",
4096 => "IKS",
8192 => "VAH",
16384 => "FRG",
32768 => "Shroud"
);
As a matter of fact, it looks like this actually got buried in the Wiki:
Quote:
races
* What race or races can use the item. Rememeber to add up the results.
o 0 = None
o 1 = Human
o 2 = Barbarian
o 4 = Erudite
o 8 = ELF
o 16 = HIE
o 32 = Dark Elf
o 64 = HEF
o 128 = Dwarf
o 256 = Troll
o 512 = Ogre
o 1024 = HFL
o 2048 = Gnome
o 4096 = Iksar
o 8192 = Vah Shir
o 16384 = Froglok
o 32768 = Shroud
* These are combined values, but with special meaning:
o 32767 = Any/All
o 65535 = Usually a container
|
So it sounds like we may need to convert the races in Titanium & 6.2 to delete that bit for the Drakken, then everything else should be fine.
Last edited by AndMetal; 02-19-2009 at 12:05 AM..
|
 |
|
 |
 |
|
 |

02-18-2009, 06:40 PM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
Quote:
Originally Posted by cubber
I take it we need to copy the 2 spells_ text files from the SoF client and replace the old titanium ones with them in order to use the new spells from the new expansions?
Will the new files be compatable with old clients? If so is there any harm in making the switch now, or should I wait?
|
Yeah, you would need to copy the spells_us.txt file from SoF into your server directory and replace the one from Titanium (maybe rename the titanium one first just to be safe). You don't need the spells_en.txt file in the server directory for anything. Another option would be to use the new feature that lets you load the spells file directly into your database. As far as I can tell, the Titanium and SoF spell files seem to line up very well, so there shouldn't be any expected issues by using the SoF file for Titanium users. Each client should work fine with their default spell file. I don't see a reason to wait to do this, but I would definitely keep an eye out for reports of issues with spells. If you want to be absolutely sure you won't have any issues with Titanium users, you can just open both the Titanium and SoF spell files and then scroll to the bottom of the Titanium file. Look at the last spell ID in the Titanium file and then find that same one in SoF. Then, just copy all spells after that ID from the SoF file into the Titanium one and then you should have 0 chance of having an issue on Titanium and everything should be functioning for SoF for the most part as well. You would only need to use that customized file on the server, and both clients should work properly with it.
|
 |
|
 |
| Thread Tools |
|
|
| Display Modes |
Hybrid Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 08:10 AM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |