-C++ Outfity

Status
Zamknięty.

NygusDB

Advanced User
Zarejestrowany
Dołączył
Marzec 5, 2013
Posty
164
Liczba reakcji
7
Witam.

Chcia?bym, aby kto? pom?g? przerobi? mi skrypt outfit.cpp tak, ?eby nie wczytywa? id outfitu z pliku XML, tylko pobiera? id outfitu, kt?ry gracz ma na sobie. Mam oryginalny plik outfit.cpp.

Sam pr?bowa?em kombinowa? i my?l?, ?e trzeba przerobi? intValue na creature->getCurrentOutfit() albo co? podobnego, ale wywala mi ?e creature nie jest zadeklarowane.
[CPP] Outfit newOutfit;
newOutfit.outfitId = intValue;[/CPP]
 
Odp: Outfity

Ma pobiera? aktualny outfit przy jakie? konkretnej akcji? Na przyk?ad: przy wywo?ywaniu okienka z outfitami. Musisz bardziej opisa? Tw?j problem.
 
Ostatnia edycja:
Odp: Outfity

Tak, najlepiej by by?o gdyby pobiera? outfit przy wywo?aniu okienka.
 
Odp: Outfity

Spr?buj zamieni? ca?? funkcj? w protocolgame.cpp:
[lua]
void ProtocolGame::sendOutfitWindow()
[/lua]

na
[lua]
void ProtocolGame::sendOutfitWindow()
{
NetworkMessage_ptr msg = getOutputBuffer();
if(msg)
{
TRACK_MESSAGE(msg);
msg->AddByte(0xC8);
AddCreatureOutfit(msg, player, player->getDefaultOutfit(), true);

msg->AddByte(1);
msg->AddU16(player->getDefaultOutfit().lookType);
msg->AddString("Outfit");
msg->AddByte(player->getDefaultOutfit().lookAddons);
player->hasRequestedOutfit(true);
}
}
[/lua]

Chyba o to Ci chodzi xd.
 
Odp: Outfity

Dzia?a prawie dobrze. Prawie, bo nie zmienia addonu, co jest dla mnie wa?ne.
Og?lnie potrzebne jest mi do tego, aby da?o si? zmienia? str?j postaci poprzez addony, tak jak na rysunku, ale ?eby nie da?o si? zmienia? outfitu.
07273049174803650253.png
 
Odp: Outfity

Tego nie trzeba robi? w skryptach, tylko w grafikach. Rysujesz dany addon na postaci (polecam photoshopa/gimpa, poniewa? maj? warstwy), cieniujesz go i robisz drug?, bia?? wersj?. Obie wersje wrzucasz do spr i (chyba) dat i ustawiasz tak, jak s? ustawione normalne addony w tibi.
 
Odp: Outfity

Ja tak zrobi?em, ale chodzi o sam wyb?r ju? zrobionego addonu po zalogowaniu, ?eby gracz mia? mo?liwo?? jako takiego wyboru stroju dla danego outfitu. Na obrazkach jest ten sam outfit, tylko na 2 obrazku jest zaznaczony 1 addon.
 
Odp: Outfity

Hmm, to nie wiem. Pr?bowa?e? bawi? si? z tym na otclientcie ? Tam jest wi?ksze pole do popisu, bo masz ?r?d?a samego klienta, a w cipsoftowym ich nie masz.
 
Odp: Outfity

Tak, ale na pocz?tek wystarczy mi Cipsoftowy client. Te stroje to ostatnia rzecz w wygl?dzie kt?r? zmieniam. Je?li kto? pomo?e mi si? z tym upora? zostaje ju? tak naprawd? balans i pojawi si? 1 zapowied? mojego ots.
 
Odp: Outfity

[lua]
msg->AddByte(player->getDefaultOutfit().lookAddons);
[/lua]

na

[lua]
msg->AddByte(0x03);
[/lua]
 
Odp: Outfity

Nic si? nie zmieni?o.

---------- Tre?? dodana o 13:17 ----------

Spr?buje przebudowa? ca?y projekt.
 
Odp: Outfity

Nie, nie musisz robi? rebuildu bo w tym przypadku nic nie da. Spr?buj przywr?ci? oryginalny kod czyli:

Kod:
void ProtocolGame::sendOutfitWindow()
{
	NetworkMessage_ptr msg = getOutputBuffer();
	if(msg)
	{
		TRACK_MESSAGE(msg);
		msg->AddByte(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->AddByte((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->AddU16(it->lookType);
				msg->AddString(it->name);
				if(player->hasCustomFlag(PlayerCustomFlag_CanWearAllAddons))
					msg->AddByte(0x03);
				else if(!g_config.getBool(ConfigManager::ADDONS_PREMIUM) || player->isPremium())
					msg->AddByte(it->addons);
				else
					msg->AddByte(0x00);
			}
		}
		else
		{
			msg->AddByte(1);
			msg->AddU16(player->getDefaultOutfit().lookType);
			msg->AddString("Outfit");
			msg->AddByte(player->getDefaultOutfit().lookAddons);
		}

		player->hasRequestedOutfit(true);
	}
}

Dodaj numer tego outfitu do outfits.xml ustal tam z addonami i sprawd? czy dzia?a, je?eli nie to co? w tibia.dat mog?e? zjeba?.
 
Ostatnia edycja:
Odp: Outfity

Ok, zaraz zmieni? kod na oryginalny, ale w tym okienku addony (stroje ) si? zmieniaj?, tylko w grze nie. Zaraz dam odpowied? czy b?dzie dzia?a? oryginalny kod.

---------- Tre?? dodana o 13:38 ----------

Wracamy na start. Addony si? zmieniaj?, ale wczytuje id jak powinien oryginalny skrypt, czyli z pliku.

---------- Tre?? dodana o 19:11 ----------

Problem rozwi?zaned.
 
Status
Zamknięty.
Back
Do góry