Welcome to xTibia - Sua comunidade de Otserv e Tibia

Registre-se para utilizar nossas ferramentas e baixar conteúdos. Quando registrado e logado em sua conta, lhe garantimos uma experiência incrível em nossa comunidade!

deglorio

AJuda Estrutura correta

Boa tarde, estou tentando fazer um código para dar look na pokeball quando dar trade e aparecer os atributos.

			int32_t valuee = (1,50);	
			if(tradeItem->getIntegerAttribute("boost") >= valuee)
				ss << ", Boost: [" << tradeItem->getIntegerAttribute("boost", valuee) << "]";

Apareceu alguns erros e não sei como arrumar

no matching function for call to 'Item::getIntegerAttribute(const char [6], int32_t&)' 

candidates are: const int32_t* ItemAttributes::getIntegerAttribute(const std::string&) const 

 

Alguém me ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta

 

		int32_t valuee = (1,50);	
			if(tradeItem->getIntegerAttribute("boost") >= valuee) {
                std::ostringstream ss;
				ss << ", Boost: [" << tradeItem->getIntegerAttribute("boost", valuee) << "]";
                client->sendTextMessage(TextMessage(MESSAGE_STATUS_WARNING, ss.str()));
           }

se não funcionar,
Mande-me o cpp para eu analisar esse "getIntegerAttribute".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado (editado)

Cara, o que tu quer verificar? esse valor seu ta todo errado, como assim (1, 50) ???

 

O erro ta dizendo que não existe função com esse nome e com esses parametros. O correto é:

 

int32_t getIntegerAttribute(const std::string& key, bool &ok) const;

 

Se você quiser apenas verificar se ele tem o atributo tu tem que usar a função bool hasIntegerAttribute(const std::string& key) ou pode fazer direto com a getInteger mas usando o parametro booleano dela
Imagino que queria fazer algo assim:

    bool hasBoost;
    int32_t valuee =  tradeItem->getIntegerAttribute("boost", hasBoost);
    if(hasBoost && valuee >= 1 && valuee <= 50)
        ss << ", Boost: [" << valuee << "]";

 

Editado por dalvorsn

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 13/04/2016 at 12:32, dalvorsn disse:

Cara, o que tu quer verificar? esse valor seu ta todo errado, como assim (1, 50) ???

 

O erro ta dizendo que não existe função com esse nome e com esses parametros. O correto é:

 


int32_t getIntegerAttribute(const std::string& key, bool &ok) const;

 

Se você quiser apenas verificar se ele tem o atributo tu tem que usar a função bool hasIntegerAttribute(const std::string& key) ou pode fazer direto com a getInteger mas usando o parametro booleano dela
Imagino que queria fazer algo assim:


    bool hasBoost;
    int32_t valuee =  tradeItem->getIntegerAttribute("boost", hasBoost);
    if(hasBoost && valuee >= 1 && valuee <= 50)
        ss << ", Boost: [" << valuee << "]";

 

Não seria melhor e mais simples, fazer o onLook funcionar ao dar look no item de trade? Isso iria simplificar bastante, já que o código no onLook funciona perfeitamente!

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 horas atrás, BielLucena1291 disse:

Não seria melhor e mais simples, fazer o onLook funcionar ao dar look no item de trade? Isso iria simplificar bastante, já que o código no onLook funciona perfeitamente!

Não pelo fato de tu ter que reescrever todo o look, é bem mais chato que simplesmente adicionar uma string no look ja existente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora