Ir para conteúdo

Featured Replies

Postado
  • Autor

Zipter, o código está correto.

Deixa eu explicar corretamente.

Ele usa a talkaction !spells na primeira vez.
Quando eu do OK na TALKACTION(Janela), eu tento por de novo e não vai.
Ai eu acrescentei a função:

player->sendOutfitWindow();

E quando eu coloquei lá, foi na primeira vez e a pareceu a janela pra dar OK na outfit, aí deu pra ir de novo.
Sem essa função, só vai na primeira, na segunda vez não vai..
Então na função sendOutfit, deve ter alguma função que tipo coloca: Deu ok, pode de novo, se não deu OK, deu um return false..

Entendeu? 

Eu queria modificar essa função:

void ProtocolGame::sendOutfitWindow()
{
	NetworkMessage_ptr msg = getOutputBuffer();
	if(msg)
	{
		TRACK_MESSAGE(msg);
		msg->put<char>(0xC8);
		AddCreatureOutfit(msg, player, player->getDefaultOutfit(), true);

		std::list<Outfit> outfitList;
		for(OutfitMap::iterator it = player->outfits.begin(); it != player->outfits.end(); ++it)
		{
			if(player->canWearOutfit(it->first, it->second.addons))
				outfitList.push_back(it->second);
		}

 		if(outfitList.size())
		{
			msg->put<char>((size_t)std::min((size_t)OUTFITS_MAX_NUMBER, outfitList.size()));
			std::list<Outfit>::iterator it = outfitList.begin();
			for(int32_t i = 0; it != outfitList.end() && i < OUTFITS_MAX_NUMBER; ++it, ++i)
			{
				msg->put<uint16_t>(it->lookType);
				msg->putString(it->name);
				if(player->hasCustomFlag(PlayerCustomFlag_CanWearAllAddons))
					msg->put<char>(0x03);
				else if(!g_config.getBool(ConfigManager::ADDONS_PREMIUM) || player->isPremium())
					msg->put<char>(it->addons);
				else
					msg->put<char>(0x00);
			}
		}
		else
		{
			msg->put<char>(1);
			msg->put<uint16_t>(player->getDefaultOutfit().lookType);
			msg->putString("Your outfit");
			msg->put<char>(player->getDefaultOutfit().lookAddons);
		}

		player->hasRequestedOutfit(true);
	}



Pois assim eu posso deixar lá no Script a função player->sendOutfitWindow
E nessa função de vez por tudo isso, só fazer nada..
Só que se eu apago a função toda nessa ai em cima em spoiler, o negocio não funciona..
Quando der, se você poder me ajudar eu agradeço..
Não precisa ter muita pressa, nas suas horas vagas..
Obrigado :)

Editado por lucasromero (veja o histórico de edições)

  • Respostas 19
  • Visualizações 2.8k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Hm, em game.cpp, tenta trocar: bool Game::playerRequestOutfit(uint32_t playerId) {         Player* player = getPlayerByID(playerId);        if(!player || player->isRemoved())             return f

  • função: playerRequestOutfit arquivo: game.cpp

Postado

Ah, compreendo. Nesse caso, tente assim:

bool Game::playerRequestOutfit(uint32_t playerId)
{   
    std::string text = "!spells";   
    Player* player = getPlayerByID(playerId); 
    if(!player || player->isRemoved())       
        return false;    
    g_talkActions->onPlayerSay(player, CHANNEL_DEFAULT, text, false);
    player->hasRequestedOutfit(true);
    return true;
}
  • 3 months later...
Postado

tenta assim

 

bool Game::playerRequestOutfit(uint32_t playerId)
{   
    std::string text = "!spells";   
    Player* player = getPlayerByID(playerId); 
    if(!player || player->isRemoved())       
        return false;    
    g_talkActions->onPlayerSay(player, CHANNEL_DEFAULT, text, false);
    return true;
}
  • 6 years later...
Postado

desculpa por abrir o tópico novamente, mais como seria se eu fizesse isso no TFS 1.3 ?

 

 

void Game::playerRequestOutfit(uint32_t playerId)
{
    if (!g_config.getBoolean(ConfigManager::ALLOW_CHANGEOUTFIT)) {
        return;
    }

    Player* player = getPlayerByID(playerId);
    if (!player) {
        return;
    }
    
    player->sendOutfitWindow();
}

Editado por Damatio (veja o histórico de edições)

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.6k

Informação Importante

Confirmação de Termo