cacaa 117 #1 Oluşturuldu: Ağustos 30, 2018 Merhabalar arkadaşlar ufak bir sorunum var. Party içerisinde bulunan adama townda dahi olsa kutudan item aldığında gidiyor. Bu mesafe olayını nasıl ayarlayabiliriz? Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
PENTAGRAM 926 #2 Ağustos 30, 2018 tarihinde gönderildi Alıntı Merhabalar arkadaşlar ufak bir sorunum var. Party içerisinde bulunan adama townda dahi olsa kutudan item aldığında gidiyor. Bu mesafe olayını nasıl ayarlayabiliriz? CUser::GetLootUser fonksiyonuna mesafe kontrolünü ekleyebilirsin. Düşen kutunun koordinatları _LOOT_BUNDLE içerisine aktarılıyor. struct _LOOT_BUNDLE { uint32 nBundleID; std::vector<_LOOT_ITEM> Items; float x, z, y;// kutunun düştüğü konum time_t tDropTime; }; Fonksiyonun imzası şu şekilde; CUser * CUser::GetLootUser(_LOOT_BUNDLE * pBundle, _LOOT_ITEM * pItem) İlerleyen kısımlarda isInParty ile başlayan kısıma şöyle bir düzeltme yapabilirsin; // If we're dealing with items: // - if we're in a party: // distribute the item to the next player in the party in round-robin fashion, // whilst ensuring that user can actually hold the item. // - if not in a party: // simply ensure that we can hold the item. if (isInParty()) { for(int i = 0; i < 8; i++){ auto pMember = GetItemRoutingUser(pItem->nItemID, pItem->sCount); if(pMember == nullptr || !pMember->isInRange(pBundle->x, pBundle->z, RANGE_50M)) continue; // This ensures the user can hold the item. return pMember; } return nullptr; // herkes uzakta, veya yakında olanların envanterleri dolu. } Yukarıdaki kodu kafadan taslak olarak yazdım, daha optimize bir şekilde yazılabilir. Buradaki GetItemRoutingUser, partideki sıradan çekilen, eşyanın gideceği kullanıcı. Kolay gelsin. 2 Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
cacaa 117 #3 Konu Sahibi Ağustos 30, 2018 tarihinde gönderildi Teşekkür ederim 🙂 Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş