THEKpta
New Member
- Joined
- May 15, 2012
- Messages
- 4
- Reaction score
- 0
Hello!
Estou tentando fazer com que seja possivel conjurar runas na backpack (atualmente só e possível realizar isso se você estiver com ela nas mãos).
I'm trying to do possible conjuring runes on backpack (actually its posible just using blank runes on hands). I'm using TFS 1.2!
Anyone can help me?
Here is the block of code with this issue:
spells.cpp
Estou tentando fazer com que seja possivel conjurar runas na backpack (atualmente só e possível realizar isso se você estiver com ela nas mãos).
I'm trying to do possible conjuring runes on backpack (actually its posible just using blank runes on hands). I'm using TFS 1.2!
Anyone can help me?
Here is the block of code with this issue:
spells.cpp
C++:
bool ConjureSpell::conjureItem(Creature* creature) const
{
Player* player = creature->getPlayer();
if (!player) {
return false;
}
const uint32_t conjureCost = getManaCost(player);
const uint32_t soulCost = getSoulCost();
if (reagentId != 0) {
bool foundReagent = false;
Item* item = player->getInventoryItem(CONST_SLOT_LEFT);
if (item && item->getID() == reagentId) {
foundReagent = true;
// left arm conjure
int32_t index = player->getThingIndex(item);
g_game.internalRemoveItem(item);
Item* newItem = Item::CreateItem(conjureId, conjureCount);
if (!newItem) {
return false;
}
ReturnValue ret = g_game.internalAddItem(player, newItem, index);
if (ret != RETURNVALUE_NOERROR) {
delete newItem;
return false;
}
g_game.startDecay(newItem);
Spell::postCastSpell(player, conjureCost, soulCost);
}
item = player->getInventoryItem(CONST_SLOT_RIGHT);
if (item && item->getID() == reagentId && player->getMana() >= conjureCost) {
foundReagent = true;
// right arm conjure
int32_t index = player->getThingIndex(item);
g_game.internalRemoveItem(item);
Item* newItem = Item::CreateItem(conjureId, conjureCount);
if (!newItem) {
return false;
}
ReturnValue ret = g_game.internalAddItem(player, newItem, index);
if (ret != RETURNVALUE_NOERROR) {
delete newItem;
return false;
}
g_game.startDecay(newItem);
Spell::postCastSpell(player, conjureCost, soulCost);
}
if (!foundReagent) {
player->sendCancelMessage(RETURNVALUE_YOUNEEDAMAGICITEMTOCASTSPELL);
g_game.addMagicEffect(player->getPosition(), CONST_ME_POFF);
return false;
}
} else {
Item* newItem = Item::CreateItem(conjureId, conjureCount);
if (!newItem) {
return false;
}
ReturnValue ret = g_game.internalPlayerAddItem(player, newItem);
if (ret != RETURNVALUE_NOERROR) {
delete newItem;
return false;
}
g_game.startDecay(newItem);
Spell::postCastSpell(player, conjureCost, soulCost);
}
postCastSpell(player, true, false);
g_game.addMagicEffect(player->getPosition(), CONST_ME_MAGIC_RED);
return true;
}