Guten Tag,
uns ist die Nacht aufgefallen das sich der Bonus sobald man ein Pet ruft einfach verdoppelt! Es sei gesagt das wir das Pet nicht über eine Quest rufen sondern mittels einem extra subtype (COSTUME_PET) ist also angelegt wie das Mount Costume System (Das funktioniert)!
Wir haben das Pet Siegel aus der Quest entfernt wir haben die ganze Quest aus der Quest List genommen nur um zu sehen ob es daran irgendwie liegen kann! Leider alles ohne Erfolg!
Ich bin mir sicher das es am Source liegt und zwar in der item.cpp an dieser Funktion
hier hab ich eingetragen
- bool CItem::EquipTo(LPCHARACTER ch, BYTE bWearCell)
- {
- if (!ch)
- {
- sys_err("EquipTo: nil character");
- return false;
- }
- // ¿ëÈ¥¼® ½½·Ô index´Â WEAR_MAX_NUM º¸´Ù Å.
- if (IsDragonSoul())
- {
- if (bWearCell < WEAR_MAX_NUM || bWearCell >= WEAR_MAX_NUM + DRAGON_SOUL_DECK_MAX_NUM * DS_SLOT_MAX)
- {
- sys_err("EquipTo: invalid dragon soul cell (this: #%d %s wearflag: %d cell: %d)", GetOriginalVnum(), GetName(), GetSubType(), bWearCell - WEAR_MAX_NUM);
- return false;
- }
- }
- else
- {
- if (bWearCell >= WEAR_MAX_NUM)
- {
- sys_err("EquipTo: invalid wear cell (this: #%d %s wearflag: %d cell: %d)", GetOriginalVnum(), GetName(), GetWearFlag(), bWearCell);
- return false;
- }
- }
- if (ch->GetWear(bWearCell))
- {
- sys_err("EquipTo: item already exist (this: #%d %s cell: %d %s)", GetOriginalVnum(), GetName(), bWearCell, ch->GetWear(bWearCell)->GetName());
- return false;
- }
- if (GetOwner())
- RemoveFromCharacter();
- ch->SetWear(bWearCell, this); // ¿©±â¼ ÆÐŶ ³ª°¨
- m_pOwner = ch;
- m_bEquipped = true;
- m_wCell = INVENTORY_MAX_NUM + bWearCell;
- #ifndef ENABLE_IMMUNE_FIX
- DWORD dwImmuneFlag = 0;
- for (int i = 0; i < WEAR_MAX_NUM; ++i)
- {
- if (m_pOwner->GetWear(i))
- {
- // m_pOwner->ChatPacket(CHAT_TYPE_INFO, "unequip immuneflag(%u)", m_pOwner->GetWear(i)->m_pProto->dwImmuneFlag); // always 0
- SET_BIT(dwImmuneFlag, m_pOwner->GetWear(i)->m_pProto->dwImmuneFlag);
- }
- }
- m_pOwner->SetImmuneFlag(dwImmuneFlag);
- #endif
- if (IsDragonSoul())
- {
- DSManager::instance().ActivateDragonSoul(this);
- }
- else
- {
- ModifyPoints(true);
- StartUniqueExpireEvent();
- if (-1 != GetProto()->cLimitTimerBasedOnWearIndex)
- StartTimerBasedOnWearExpireEvent();
- // ACCESSORY_REFINE
- StartAccessorySocketExpireEvent();
- // END_OF_ACCESSORY_REFINE
- }
- ch->BuffOnAttr_AddBuffsFromItem(this);
- #ifdef ENABLE_PET_FOLLOW_SYSTEM
- if (IsPetItem())
- {
- CPetSystem* petSystem = ch->GetPetSystem();
- if (petSystem)
- petSystem->Summon(GetValue(0), this, 0, false);
- }
- #endif
- m_pOwner->ComputeBattlePoints();
- #ifdef ENABLE_MOUNT_COSTUME_SYSTEM
- if (IsMountItem())
- ch->MountSummon(this);
- #endif
- m_pOwner->UpdatePacket();
- Save();
- return (true);
- }
Vielleicht hät da wer ne Lösung oder zumindest nen Ansatz parat
Edit:
Gerade ebend Probiert die Stelle mit dem Pet auszukommentieren da bekomm ich nur noch den Boni was ich bekommen soll aber das Pet wird nicht gerufen also liegt es definitiv hier dran