Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!
Paylaşım için teşekkürler.
Paylaşım için teşekkürler.
Paylaşım için teşekkürler, sistemi biraz inceleme fırsatım oldu. Her level range'i arası için ayrı bir array oluşturulmuş. Aslında buna gerek yok.
constants.cpp
constants.h'a da ekleme yaparsınız.
char_hunting.cpp
Bu gibi sistemde benim açımdan değiştirilmesi gereken çok şey var, yine de paylaşım için teşekkürler. Üzerinde çalışarak güzel hale getirilebilir.
NOT: Eğer verdiğim düzenlemeyi yaparsanız levelrange arraylerini kullanan SendRandomItemPacket fonksiyonunu da düzenlemeniz gerek.
constants.cpp
C++:
constexpr std::array<std::array<int, 2>, 5> THuntingRandomItem_Ranges = {{ // level range'ini belirtir
{{1, 20}},
{{21, 40}},
{{41, 60}},
{{61, 80}},
{{81, 90}},
}};
constexpr std::array<std::array<std::array<int, 2>, 10>, 5> THuntingRandomItems = {{ // her range'de verilicek random item ve count'u belirtir.
{{{{100, 1}}, {{200, 2}}, {{300, 3}}, {{400, 4}}, {{500, 5}}, {{600, 6}}, {{700, 7}}, {{800, 8}}, {{900, 9}}, {{1000, 10}}}},
{{{{1100, 11}}, {{1200, 12}}, {{1300, 13}}, {{1400, 14}}, {{1500, 15}}, {{1600, 16}}, {{1700, 17}}, {{1800, 18}}, {{1900, 19}}, {{2000, 20}}}},
{{{{2100, 21}}, {{2200, 22}}, {{2300, 23}}, {{2400, 24}}, {{2500, 25}}, {{2600, 26}}, {{2700, 27}}, {{2800, 28}}, {{2900, 29}}, {{3000, 30}}}},
{{{{3100, 31}}, {{3200, 32}}, {{3300, 33}}, {{3400, 34}}, {{3500, 35}}, {{3600, 36}}, {{3700, 37}}, {{3800, 38}}, {{3900, 39}}, {{4000, 40}}}},
{{{{4100, 41}}, {{4200, 42}}, {{4300, 43}}, {{4400, 44}}, {{4500, 45}}, {{4600, 46}}, {{4700, 47}}, {{4800, 48}}, {{4900, 49}}, {{5000, 50}}}},
}};
constants.h'a da ekleme yaparsınız.
char_hunting.cpp
C++:
void CHARACTER::SetRewardRandomItemFromTable()
{
BYTE bMissionLevel = GetQuestFlag("hunting_system.level");
DWORD itemVnum, itemCount;
auto it = std::find_if(THuntingRandomItem_Ranges.begin(), THuntingRandomItem_Ranges.end(),
[bMissionLevel](const auto& range){
return bMissionLevel >= std::get<0>(range) && bMissionLevel <= std::get<1>(range);
});
if (it != THuntingRandomItem_Ranges.end()) {
int randItem = number(0,9); // array length - 1
itemVnum = THuntingRandomItems[std::distance(THuntingRandomItem_Ranges.begin(), it)][randItem][0];
itemCount = THuntingRandomItems[std::distance(THuntingRandomItem_Ranges.begin(), it)][randItem][1];
}
SetQuestFlag("hunting_system.reward_rand", itemVnum);
SetQuestFlag("hunting_system.reward_rand_count", itemCount);
return;
}
NOT: Eğer verdiğim düzenlemeyi yaparsanız levelrange arraylerini kullanan SendRandomItemPacket fonksiyonunu da düzenlemeniz gerek.
Paylaşım için teşekkürler
Paylaşım için teşekkürler
Paylaşım için teşekkürler.
Paylaşım için teşekkürler.
Paylaşım için teşekkürler
Paylaşım için teşekkürler.
Paylaşım için teşekkürler.
paylaşım için teşekkürler.
Paylaşım için teşekkürler![]()
Paylaşım için teşekkürler.
Paylaşım için teşekkürler cano.
Paylaşım için teşekkürler.
Paylaşım için teşekkürler
Paylaşım için teşekkürler.
Paylaşım için teşekkürler.
Paylaşım için teşekkürler, sistemi biraz inceleme fırsatım oldu. Her level range'i arası için ayrı bir array oluşturulmuş. Aslında buna gerek yok.
constants.cpp
C++:constexpr std::array<std::array<int, 2>, 5> THuntingRandomItem_Ranges = {{ // level range'ini belirtir {{1, 20}}, {{21, 40}}, {{41, 60}}, {{61, 80}}, {{81, 90}}, }}; constexpr std::array<std::array<std::array<int, 2>, 10>, 5> THuntingRandomItems = {{ // her range'de verilicek random item ve count'u belirtir. {{{{100, 1}}, {{200, 2}}, {{300, 3}}, {{400, 4}}, {{500, 5}}, {{600, 6}}, {{700, 7}}, {{800, 8}}, {{900, 9}}, {{1000, 10}}}}, {{{{1100, 11}}, {{1200, 12}}, {{1300, 13}}, {{1400, 14}}, {{1500, 15}}, {{1600, 16}}, {{1700, 17}}, {{1800, 18}}, {{1900, 19}}, {{2000, 20}}}}, {{{{2100, 21}}, {{2200, 22}}, {{2300, 23}}, {{2400, 24}}, {{2500, 25}}, {{2600, 26}}, {{2700, 27}}, {{2800, 28}}, {{2900, 29}}, {{3000, 30}}}}, {{{{3100, 31}}, {{3200, 32}}, {{3300, 33}}, {{3400, 34}}, {{3500, 35}}, {{3600, 36}}, {{3700, 37}}, {{3800, 38}}, {{3900, 39}}, {{4000, 40}}}}, {{{{4100, 41}}, {{4200, 42}}, {{4300, 43}}, {{4400, 44}}, {{4500, 45}}, {{4600, 46}}, {{4700, 47}}, {{4800, 48}}, {{4900, 49}}, {{5000, 50}}}}, }};
constants.h'a da ekleme yaparsınız.
char_hunting.cpp
Bu gibi sistemde benim açımdan değiştirilmesi gereken çok şey var, yine de paylaşım için teşekkürler. Üzerinde çalışarak güzel hale getirilebilir.C++:void CHARACTER::SetRewardRandomItemFromTable() { BYTE bMissionLevel = GetQuestFlag("hunting_system.level"); DWORD itemVnum, itemCount; auto it = std::find_if(THuntingRandomItem_Ranges.begin(), THuntingRandomItem_Ranges.end(), [bMissionLevel](const auto& range){ return bMissionLevel >= std::get<0>(range) && bMissionLevel <= std::get<1>(range); }); if (it != THuntingRandomItem_Ranges.end()) { int randItem = number(0,9); // array length - 1 itemVnum = THuntingRandomItems[std::distance(THuntingRandomItem_Ranges.begin(), it)][randItem][0]; itemCount = THuntingRandomItems[std::distance(THuntingRandomItem_Ranges.begin(), it)][randItem][1]; } SetQuestFlag("hunting_system.reward_rand", itemVnum); SetQuestFlag("hunting_system.reward_rand_count", itemCount); return; }
NOT: Eğer verdiğim düzenlemeyi yaparsanız levelrange arraylerini kullanan SendRandomItemPacket fonksiyonunu da düzenlemeniz gerek.
Rica ederim efenim
0214 21:55:15365 ::
uiHunting.py(line:139) LoadWindow
ui.py(line:3500) GetChild
HuntingWindow.LoadWindow.BindObject - <type 'exceptions.KeyError'>:'item_area'
0214 21:55:15365 :: ============================================================================================================
0214 21:55:15365 :: Abort!!!!
uiHunting.py(line:139) LoadWindow
ui.py(line:3500) GetChild
HuntingWindow.LoadWindow.BindObject - <type 'exceptions.KeyError'>:'item_area'
0214 21:55:15365 :: ============================================================================================================
0214 21:55:15365 :: Abort!!!!
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 30
- Görüntüleme
- 2K
- Cevaplar
- 52
- Görüntüleme
- 4K
- Cevaplar
- 21
- Görüntüleme
- 866
- Cevaplar
- 47
- Görüntüleme
- 2K
ilaç gibi geldi