diff --git a/data/events/scripts/player.lua b/data/events/scripts/player.lua index b65cb56..d858ba0 100644 --- a/data/events/scripts/player.lua +++ b/data/events/scripts/player.lua @@ -92,10 +92,6 @@ function Player:onMoveCreature(creature, fromPosition, toPosition) end function Player:onReportBug(message, position, category) - if self:getAccountType() == ACCOUNT_TYPE_NORMAL then - return false - end - local name = self:getName() local file = io.open("data/reports/bugs/" .. name .. " report.txt", "a") diff --git a/data/globalevents/scripts/startup.lua b/data/globalevents/scripts/startup.lua index 06f4ab9..beaa0d2 100644 --- a/data/globalevents/scripts/startup.lua +++ b/data/globalevents/scripts/startup.lua @@ -70,7 +70,4 @@ function onStartup() addEvent(setBloomingGriffinclaw, 10000) end end - - -- temporary - Game.setGameState(GAME_STATE_CLOSED) end diff --git a/src/behaviourdatabase.cpp b/src/behaviourdatabase.cpp index 416559a..3ba6dfe 100644 --- a/src/behaviourdatabase.cpp +++ b/src/behaviourdatabase.cpp @@ -837,7 +837,7 @@ void BehaviourDatabase::checkAction(const NpcBehaviourAction* action, Player* pl int32_t itemId = evaluate(action->expression, player, message); const ItemType& it = Item::items[itemId]; - if (it.stackable) { + if (it.stackable && !it.isRune()) { do { int32_t count = std::min(100, amount); amount -= count; diff --git a/src/item.cpp b/src/item.cpp index acf2f1b..214664a 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -823,7 +823,7 @@ bool Item::hasProperty(ITEMPROPERTY prop) const uint32_t Item::getWeight() const { uint32_t weight = getBaseWeight(); - if (isStackable()) { + if (isStackable() && !isRune()) { return weight * std::max(1, getItemCount()); } return weight; @@ -840,8 +840,6 @@ std::string Item::getDescription(const ItemType& it, int32_t lookDistance, } if (it.isRune()) { - uint32_t charges = std::max(static_cast(1), static_cast(item == nullptr ? it.charges : item->getCharges())); - if (it.runeLevel > 0) { s << " for level " << it.runeLevel; } @@ -851,7 +849,7 @@ std::string Item::getDescription(const ItemType& it, int32_t lookDistance, } s << " for magic level " << it.runeMagLevel; - s << ". It's an \"" << it.runeSpellName << "\"-spell (" << charges << "x). "; + s << ". It's an \"" << it.runeSpellName << "\"-spell (" << subType << "x). "; } else if (it.isDoor() && item) { if (item->hasAttribute(ITEM_ATTRIBUTE_DOORLEVEL)) { s << " for level " << item->getIntAttr(ITEM_ATTRIBUTE_DOORLEVEL); @@ -1022,7 +1020,7 @@ std::string Item::getNameDescription(const ItemType& it, const Item* item /*= nu const std::string& name = (item ? item->getName() : it.name); if (!name.empty()) { - if (it.stackable && subType > 1) { + if (it.stackable && !it.isRune() && subType > 1) { if (it.showCount) { s << subType << ' '; }