Postado Dezembro 2, 2016 8 anos 2 minutos atrás, MarcosWalker disse: up Este tipo de post é considerado flood! Que isso não se repita. Teste o script que eu lhe enviei! @This life is filled with hurt When happiness doesn't work Trust me and take my hand When the lights go out you will understand
Postado Dezembro 2, 2016 8 anos Autor 2 minutos atrás, login12 disse: Este tipo de post é considerado flood! Que isso não se repita. Teste o script que eu lhe enviei! Não havia visto que você tinha comentado, desculpe. Irei testar 22 minutos atrás, login12 disse: Troque suas duas funções, por estas: ReturnValue ConjureSpell::internalConjureItem(Player* player, uint32_t conjureId, uint32_t conjureCount, bool transform/* = false*/, uint32_t reagentId/* = 0*/) { if(!transform) { Item* newItem = Item::CreateItem(conjureId, conjureCount); if(!newItem) return RET_NOTPOSSIBLE; ReturnValue ret = g_game.internalPlayerAddItem(player, player, newItem, true); if(ret != RET_NOERROR) delete newItem; g_game.startDecay(newItem); return ret; } if(!reagentId) return RET_NOTPOSSIBLE; std::list<Container*> containers; Item *item = NULL, *fromItem = NULL; for(int32_t i = SLOT_FIRST; i < SLOT_LAST; ++i) { if(!(item = player->getInventoryItem((slots_t)i))) continue; if(!fromItem && item->getID() == reagentId) fromItem = item; else if(Container* container = item->getContainer()) containers.push_back(container); } if(!fromItem) { for(std::list<Container*>::iterator cit = containers.begin(); cit != containers.end(); ++cit) { for(ItemList::const_reverse_iterator it = (*cit)->getReversedItems(); it != (*cit)->getReversedEnd(); ++it) { if((*it)->getID() == reagentId) { fromItem = (*it); break; } if(Container* tmp = (*it)->getContainer()) containers.push_back(tmp); } } } if(!fromItem) return RET_YOUNEEDAMAGICITEMTOCASTSPELL; if((fromItem->isStackable() || fromItem->hasCharges()) && fromItem->getSubType() > 1) { item = Item::CreateItem(conjureId, conjureCount); ReturnValue ret = g_game.internalPlayerAddItem(NULL, player, item, false); if(ret != RET_NOERROR) return ret; g_game.transformItem(fromItem, reagentId, (int32_t)(fromItem->getItemCount() - 1)); } else g_game.transformItem(fromItem, conjureId, conjureCount); g_game.startDecay(item); return RET_NOERROR; } bool ConjureSpell::ConjureItem(const ConjureSpell* spell, Creature* creature, const std::string&) { Player* player = creature->getPlayer(); if(!player) return false; if(!player->hasFlag(PlayerFlag_IgnoreSpellCheck) && player->getZone() == ZONE_HARDCORE) { player->sendCancelMessage(RET_CANNOTCONJUREITEMHERE); g_game.addMagicEffect(player->getPosition(), MAGIC_EFFECT_POFF); return false; } ReturnValue result = RET_NOTPOSSIBLE; if(spell->getReagentId() != 0) { if((result = internalConjureItem(player, spell->getConjureId(), spell->getConjureCount(), true, spell->getReagentId())) == RET_NOERROR) { spell->postSpell(player); g_game.addMagicEffect(player->getPosition(), MAGIC_EFFECT_WRAPS_RED); return true; } } else if((result = internalConjureItem(player, spell->getConjureId(), spell->getConjureCount())) == RET_NOERROR) { spell->postSpell(player); g_game.addMagicEffect(player->getPosition(), MAGIC_EFFECT_WRAPS_RED); return true; } player->sendCancelMessage(result); g_game.addMagicEffect(player->getPosition(), MAGIC_EFFECT_POFF); return false; } Erro: 1517 C:\Users\xx\spells.cpp prototype for 'ReturnValue ConjureSpell::internalConjureItem(Player*, uint32_t, uint32_t, bool, uint32_t)' does not match any in class 'ConjureSpell' 238 C:\Users\xx\spells.h static ReturnValue ConjureSpell::internalConjureItem(Player*, uint32_t, uint32_t, bool, uint32_t, slots_t, bool) 238 C:\Users\xx\spells.h *** [obj//spells.o] Error 1
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.