void TangibleObjectImplementation::fillAttributeList(AttributeListMessage* alm, CreatureObject* object) { SceneObjectImplementation::fillAttributeList(alm, object); if (maxCondition > 0) { StringBuffer cond; cond << (maxCondition-(int)conditionDamage) << "/" << maxCondition; alm->insertAttribute("condition", cond); } alm->insertAttribute("volume", volume); if (!craftersName.isEmpty()) { alm->insertAttribute("crafter", craftersName); } if (!objectSerial.isEmpty()) { alm->insertAttribute("serial_number", objectSerial); } if(useCount > 1) alm->insertAttribute("quantity", useCount); if (gameObjectType == SceneObjectType::PLAYERLOOTCRATE) { if( isSliceable() ){ alm->insertAttribute( "lock_mechanism", "@obj_attr_n:slicable" ); } else{ alm->insertAttribute( "lock_mechanism", "@obj_attr_n:broken" ); } } }
/* uint8 ContainerImplementation::checkPermission(CreatureObject* player) { if (!isASubChildOf(player)) { if (parent == NULL || !getParent().get()->isCellObject()) return 0; else { BuildingObject* building = cast<BuildingObject*>( parent->getParent().get()); // TODO: Do this properly! if (building->isPublicStructure()) return 1; if (!building->isOnAdminList(player->getFirstName())) return 0; } } if (locked) return 0; return 2; } */ void ContainerImplementation::fillObjectMenuResponse(ObjectMenuResponse* menuResponse, CreatureObject* player) { TangibleObjectImplementation::fillObjectMenuResponse(menuResponse, player); if (checkContainerPermission(player, ContainerPermissions::MOVECONTAINER && getParent().get() != NULL && getParent().get()->checkContainerPermission(player, ContainerPermissions::MOVEOUT) && !(_this.getReferenceUnsafeStaticCast()->isRecycleToolObject()) && !(_this.getReferenceUnsafeStaticCast()->isAntiDecayKitObject()))) menuResponse->addRadialMenuItem(50, 3, "@base_player:set_name"); //Set Name if (isSliceable() && isContainerLocked() && player->hasSkill("combat_smuggler_novice")) menuResponse->addRadialMenuItem(69, 3, "@slicing/slicing:slice"); // Slice }