Project 1999

Go Back   Project 1999 > Server Issues > Resolved Issues

Closed Thread
 
Thread Tools Display Modes
  #71  
Old 01-16-2014, 09:29 PM
joppykid joppykid is offline
Planar Protector

joppykid's Avatar

Join Date: Jan 2011
Posts: 1,217
Default

Quote:
Originally Posted by bigsykedaddy [You must be logged in to view images. Log in or Register.]
any update? I want ppl to see epic fists and I wanna see other ppls bubbles
__________________
Pyglet 60 Wizard
Sloppay 60 Monk
Jopp 60 Rogue
Kodiakk Wintergreen 60 Druid Founder of Dial A Port
Joppay 60 Paladin
Twitchay 60 Necro
  #72  
Old 01-29-2014, 09:44 PM
Sarius Sarius is offline
Fire Giant


Join Date: May 2013
Posts: 604
Default

Delay Velious, this is game breaking!
  #73  
Old 01-30-2014, 02:47 PM
diplo diplo is offline
Fire Giant

diplo's Avatar

Join Date: Aug 2012
Location: NYK
Posts: 727
Default

GIVE IT UP BROS ITS NOT GONNA HAPPEN!
__________________

[ANONYMOUS] dip|o the Conjurer
  #74  
Old 01-30-2014, 07:10 PM
Sinestria Sinestria is offline
Kobold


Join Date: Dec 2013
Posts: 105
Default

Don't give up! If they fixed TT they can fix this!!
  #75  
Old 02-01-2014, 02:38 AM
Tasslehofp99 Tasslehofp99 is offline
Planar Protector


Join Date: Apr 2011
Posts: 2,314
Default

rogue epic particle effect is bugged too...on live you could literally see a droplet of poison drip from tip of the dagger. On p99 its there but seems to be falling like 1000 times faster than it should, so what you get is a small blur of pixels that is hardly recognizable as anything more than a blur.


I tried turning fps down but it didn't fix it.
__________________
-Aftermath-
Tasslehof - 60 Druid
Barlow - 60 monk
Blueberrii - 60 Mage
Gigglepurr - 60 Shaman
Kids - 60 Rogue
Fornfamnad - 60 Cleric
  #76  
Old 02-01-2014, 01:57 PM
maximum maximum is offline
Planar Protector

maximum's Avatar

Join Date: Oct 2009
Location: Durham, NC
Posts: 1,159
Default

Quote:
Originally Posted by Tasslehofp99 [You must be logged in to view images. Log in or Register.]
rogue epic particle effect is bugged too...on live you could literally see a droplet of poison drip from tip of the dagger. On p99 its there but seems to be falling like 1000 times faster than it should, so what you get is a small blur of pixels that is hardly recognizable as anything more than a blur.

I tried turning fps down but it didn't fix it.
Noticed this too. Make a new bug thread and post some old Ragebringer screenshots.
__________________

Amax MNK / Amalgamax ROG / maximum
Begging (227)


EQ Map Archive (1,000+ images)
P99 WikiEQ Patch Chronology
  #77  
Old 07-21-2014, 08:02 AM
Sallan Sallan is offline
Sarnak

Sallan's Avatar

Join Date: Mar 2014
Location: Singapore
Posts: 476
Default

Any devs had more luck cracking this?
  #78  
Old 07-21-2014, 09:51 AM
Zaela Zaela is offline
Sarnak


Join Date: Jul 2014
Posts: 319
Default

Wow. Really?

Extra-specialness of the hand slot bit aside, the monk epic model is ultimately a weapon graphic like any other, IT159. Should be trivial to force it into the primary and secondary slots in outgoing WearChange and client spawn packets.

The only annoyance is that the EQEmu codebase has too many functions that send WearChange. I'm working under the assumption that only the ones that call GetEquipmentMaterial will matter (added lines in bold, going by the eqemu codebase as it looks right now):

Code:
int32 Mob::GetEquipmentMaterial(uint8 material_slot) const
{
	const Item_Struct *item;

	item = database.GetItem(GetEquipment(material_slot));
	if(item != 0)
	{
		if	// for primary and secondary we need the model, not the material
		(
			material_slot == MaterialPrimary ||
			material_slot == MaterialSecondary
		)
		{
			if(strlen(item->IDFile) > 2)
				return atoi(&item->IDFile[2]);
			else	//may as well try this, since were going to 0 anyways
				return item->Material;
		}
		else
		{
			return item->Material;
		}
	}
	else if ((material_slot == MaterialPrimary || material_slot == MaterialSecondary) && IsClient() && CastToClient()->MonkEpicEquipped())
	{
		return 159; //monk epic model
	}

	return 0;
}
Client::FillSpawnStruct doesn't call it just to be annoying, so let's go ahead and replace this part
Code:
	if ((inst = m_inv[MainPrimary]) && inst->IsType(ItemClassCommon)) {
		item = inst->GetItem();
		if (strlen(item->IDFile) > 2)
			ns->spawn.equipment[MaterialPrimary] = atoi(&item->IDFile[2]);
	}
	if ((inst = m_inv[MainSecondary]) && inst->IsType(ItemClassCommon)) {
		item = inst->GetItem();
		if (strlen(item->IDFile) > 2)
			ns->spawn.equipment[MaterialSecondary] = atoi(&item->IDFile[2]);
	}
with this:
Code:

	ns->spawn.equipment[MaterialPrimary] = GetEquipmentMaterial(MaterialPrimary);
	ns->spawn.equipment[MaterialSecondary] = GetEquipmentMaterial(MaterialSecondary);
New function wherever to save me typing:

Code:
bool Client::MonkEpicEquipped() const
{
	if (GetClass() == MONK)
	{
		ItemInst* inst = GetInv().GetItem(MainHands);
		if (inst && inst->GetItem()->ID == MONK_EPIC_ITEMID)
			return true;
	}
	return false;
}
Would also need to force a WearChange for the primary and secondary slots when the epic is equipped/unequipped from the hand slot to keep it all synced up. Bottom of Client::SwapItem:

Code:
	int matslot = SlotConvert2(dst_slot_id);
	if (dst_slot_id<22 && matslot != 0) {
		SendWearChange(matslot);
	}


	if ((dst_slot_id == MainHands || src_slot_id == MainHands)
		&& (dstitemid == MONK_EPIC_ITEMID || srcitemid == MONK_EPIC_ITEMID))
	{
		SendWearChange(MaterialPrimary);
		SendWearChange(MaterialSecondary);
	}


	// Step 7: Save change to the database
	if (src_slot_id == MainCursor){
		std::list<ItemInst*>::const_iterator s=m_inv.cursor_begin(),e=m_inv.cursor_end();
		database.SaveCursor(character_id, s, e);
	} else
		database.SaveInventory(character_id, m_inv.GetItem(src_slot_id), src_slot_id);
	if (dst_slot_id == MainCursor) {
		std::list<ItemInst*>::const_iterator s=m_inv.cursor_begin(),e=m_inv.cursor_end();
		database.SaveCursor(character_id, s, e);
	} else
		database.SaveInventory(character_id, m_inv.GetItem(dst_slot_id), dst_slot_id);

	if(RuleB(QueryServ, PlayerLogMoves)) { QSSwapItemAuditor(move_in, true); } // QS Audit

	// Step 8: Re-calc stats
	CalcBonuses();
	return true;
}
Haven't tested it I guess, but I know that if you shove IT159 onto an actual weapon or just do #wc 7 159 it works fine, same principle here.

Maybe this has already been tried, but I can't imagine any reason why it wouldn't work. May need a little finessing to be correct in all circumstances (think the above would show it in secondary when you have a 2H in primary).

tired
  #79  
Old 07-22-2014, 01:27 AM
Zaela Zaela is offline
Sarnak


Join Date: Jul 2014
Posts: 319
Default

^ Tested on my own test server. Works in all the general cases I could think of (equipping, unequipping, swapping weapons in while equipped, equipping two weapons and then epic and then unequipping weapons, logging in with epic equipped, logging in without it equipped and equipping it, having the other client log in while monk is already in zone with it equipped, etc).

Works. EZPZ 30 minute fix including testing. Does show bubbles in offhand if you have a 2H equipped but if you don't want that it's a one-line fix.
  #80  
Old 07-22-2014, 01:39 AM
khanable khanable is offline
Planar Protector

khanable's Avatar

Join Date: Apr 2010
Location: The Plane of Rustles
Posts: 2,711
Default

Hot damn if this works

Nice
__________________
hello i'm cucumbers
Closed Thread


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 11:37 AM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.