Opublikowano 3 Marca3 Mar Witam serdecznie, przychodzę dzis z pytaniem, gdzie tu przykombinować aby zwiększyć ilość bitych mobów i tak samo przywolywanych. Na plikach martysamy gdy klikne pelerynke (przywoluje może polowe spota, a gdy potworow jest duzo, to czasem 5x musze kliknac zeby agro zlapaly pojedyncze jednostki) Tak samo dotyczy bicia, przy atakowaniu duzego spota gdy moby są zgrupowane, dmg otrzymuje doslownie kilka, przez co bicie spota np. z 200 potworami zajmuje mase czasu, gdzie w rzeczywistosci schodza na jednego hita). Ktos ma pomysl co tu mozna zrobic i ewentualnie jakie konsekwencje sie będą z tym wiązały? Ale wydaje mi sie ze na innych aktualnie stojących serwerach ten problem jest rozwiązany. Edytowane 3 Marca3 Mar przez ouiai
Opublikowano 3 Marca3 Mar 27 minut temu, ouiai napisał(a):Tak samo dotyczy bicia, przy atakowaniu duzego spota gdy moby są zgrupowane, dmg otrzymuje doslownie kilka, przez co bicie spota np. z 200 potworami zajmuje mase czasu, gdzie w rzeczywistosci schodza na jednego hita)Może takie rozwiązanie może ci pomócw bince wyszukaj : ActorInstanceCollisionDetection.cppi znajdź: int iMaxHitCount = (0 == c_rAttackData.iHitLimitCount? 16: c_rAttackData.iHitLimitCount);i zmień liczbę:z 16 na 32Jeszcze też poszukaj:if (iCurrentHitCount> 16)I też zmień z 16 na 32"16 i 32 = jest to liczba mobów dotkniętych trafieniem. Możesz modyfikować tyle, ile chcesz, ale nie polecam ustawiania wartości większej niż 32"__________________________________________________________________________________________________________Efekt przed:Efekt po:
Opublikowano 3 Marca3 Mar Autor 5 minut temu, Januszek napisał(a):Może takie rozwiązanie może ci pomócw bince wyszukaj : ActorInstanceCollisionDetection.cppi znajdz: int iMaxHitCount = (0 == c_rAttackData.iHitLimitCount? 16: c_rAttackData.iHitLimitCount);i zmień liczbę 16 na 32Jeszcze też poszukaj:if (iCurrentHitCount> 16)I też zmień z 16 na 32"16 i 32 = liczba mobów dotkniętych trafieniem. Możesz modyfikować tyle, ile chcesz, ale nie polecam ustawiania wartości większej niż 32"__________________________________________________________________________________________________________Efekt przed:Efekt po:Supereancko, a czemu nie dac np 64 tylko 32 max sie trzymac?I czy wiesz może gdzie w kodzie (i czy) jest taki limit na ilosc przyciaganych mobów przez pelerynke?
Opublikowano 3 Marca3 Mar 4 minuty temu, ouiai napisał(a):Supereancko, a czemu nie dac np 64 tylko 32 max sie trzymac?I czy wiesz może gdzie w kodzie (i czy) jest taki limit na ilosc przyciaganych mobów przez pelerynke?Akurat maksymalnie do 32 bo czytałem że mogą wystąpić różne błędy i jakieś niestabilności (może ktoś bardziej doświadczony wypowiedzieć się w tej kwestii dlaczego lepiej nie dawać powyżej 32)Hmm.. Moge podpowiedzieć jak modyfikować zasięg przywoływania mobów:Wyszukaj w char_state.cpp taką fraze: if (fDist >= 4000.0f) { SetVictim(NULL); if (pkChrProtege) if (DISTANCE_APPROX(GetX() - pkChrProtege->GetX(), GetY() - pkChrProtege->GetY()) > 1000) Follow(pkChrProtege, number(150, 400)); return; }a w niej masz:if (fDist >= 4000.0f)I tu może zmienić np. z 4000 na 5000Potem przejdź do: char_battle.cpp i wyszukaj: struct FuncAggregateMonster { LPCHARACTER m_ch; FuncAggregateMonster(LPCHARACTER ch) { m_ch = ch; } void operator()(LPENTITY ent) { if (ent->IsType(ENTITY_CHARACTER)) { LPCHARACTER ch = (LPCHARACTER) ent; if (ch->IsPC()) return; if (!ch->IsMonster()) return; if (ch->GetVictim()) return; if (DISTANCE_APPROX(ch->GetX() - m_ch->GetX(), ch->GetY() - m_ch->GetY()) < 5000) if (ch->CanBeginFight()) ch->BeginFight(m_ch); } } };I w tej frazie: if (DISTANCE_APPROX(ch->GetX() - m_ch->GetX(), ch->GetY() - m_ch->GetY()) < 5000)Możesz zmienić np. z 5000 na 6000