Ir para conteúdo

Featured Replies

Postado
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

  • Respostas 7
  • Visualizações 914
  • Created
  • Última resposta

Top Posters In This Topic

Postado
  • 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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo