- Хроники
- Interlude
- Chaotic Throne: High Five
- Исходники
- Отсутствуют
- Сборка
- interlude
Привет всем, добрые люди. Посоветуйте, живые робочие исходники желательно interlude ну на крайний случай HF. (лоу рейт) Что актуально на 2024? Спасибо!
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
если есть желание, возможности и знания лезть "глубоко в исходники", то в целом, без разницы что братьбесполезно покупать сборку от разрабов, если ты потом хочешь сам глубоко влезать в исходники, а разрабы их не продают, или ценник неадекватный. Я потому отказался от Люцеры
А зачем лесть в исходы, если можно через скрипты реализовывать?бесполезно покупать сборку от разрабов, если ты потом хочешь сам глубоко влезать в исходники, а разрабы их не продают, или ценник неадекватный. Я потому отказался от Люцеры
не все можно сделать через скрипты, и не всё можно самостоятельно пофикситьА зачем лесть в исходы, если можно через скрипты реализовывать?
public int rollDrop(int n, int n2, double d) {
Party party;
if (d <= 0.0 || n <= 0 || n2 <= 0) {
return 0;
}
int n3 = 1;
d *= this.getRateQuestsDrop();
if (Config.ALT_PARTY_BONUS_FOR_QUESTS && this.getQuest().getParty() != 0 && (party = this.getPlayer().getParty()) != null) {
d *= Config.ALT_PARTY_BONUS[party.getMemberCountInRange(this.getPlayer(), Config.ALT_PARTY_DISTRIBUTION_RANGE) - 1];
}
if (d > 100.0) {
if ((double)((int)Math.ceil(d / 100.0)) <= d / 100.0) {
d = Math.nextUp(d);
}
n3 = (int)Math.ceil(d / 100.0);
d /= (double)n3;
}
return Rnd.chance(d) ? Rnd.get(n * n3, n2 * n3) : 0;
}
/**
* Этот метод рассчитывает количество дропнутых вещей в зависимости от рейтов.
* <br><br>
* Следует учесть, что контроль за верхним пределом вещей в квестах, в которых
* нужно набить определенное количество предметов не осуществляется.
* <br><br>
* Ни один из передаваемых параметров не должен быть равен 0
*
* @param min минимальное количество при рейтах 1х
* @param max максимальное количество при рейтах 1х
* @param calcChance шанс при рейтах 1х, в процентах
* @return количество вещей для дропа, может быть 0
*/
public int rollDrop(final int min, final int max, double calcChance) {
if (calcChance <= 0 || min <= 0 || max <= 0) {
return 0;
}
int dropmult = 1;
calcChance *= getRateQuestsDrop();
if (getQuest().getParty() > Quest.PARTY_NONE) {
final Player player = getPlayer();
if (player.getParty() != null) {
calcChance *= AllSettingsConfig.ALT_PARTY_BONUS[player.getParty().getMemberCountInRange(player, AllSettingsConfig.ALT_PARTY_DISTRIBUTION_RANGE) - 1];
}
}
if (calcChance > 100) {
if ((int) Math.ceil(calcChance / 100) <= calcChance / 100) {
calcChance = Math.nextUp(calcChance);
}
dropmult = (int) Math.ceil(calcChance / 100);
calcChance /= dropmult;
}
return Rnd.chance(calcChance) ? Rnd.get(min * dropmult, max * dropmult) : 0;
}
calcChance /= dropmult;
Ну это если копать на столько глубоко) не думаю что у ТСа хватит знаний на это.не все можно сделать через скрипты, и не всё можно самостоятельно пофиксить
как пример, если захочешь пофиксить один бесячий баг, с формулами квестов (где у тебя шансы и количество считаются отдельно), придётся лезть в QuestState (фиксить там), и разбирать практически каждый квест (потому что где то есть есть подвязки с Rnd.chance(*)), и переписывать в нём логику, что без исходников на руках не сделаешь
если разобрать пример выше:
Метод из люцеры:
Код:public int rollDrop(int n, int n2, double d) { Party party; if (d <= 0.0 || n <= 0 || n2 <= 0) { return 0; } int n3 = 1; d *= this.getRateQuestsDrop(); if (Config.ALT_PARTY_BONUS_FOR_QUESTS && this.getQuest().getParty() != 0 && (party = this.getPlayer().getParty()) != null) { d *= Config.ALT_PARTY_BONUS[party.getMemberCountInRange(this.getPlayer(), Config.ALT_PARTY_DISTRIBUTION_RANGE) - 1]; } if (d > 100.0) { if ((double)((int)Math.ceil(d / 100.0)) <= d / 100.0) { d = Math.nextUp(d); } n3 = (int)Math.ceil(d / 100.0); d /= (double)n3; } return Rnd.chance(d) ? Rnd.get(n * n3, n2 * n3) : 0; }
Метод из jts (для наглядности):
Код:/** * Этот метод рассчитывает количество дропнутых вещей в зависимости от рейтов. * <br><br> * Следует учесть, что контроль за верхним пределом вещей в квестах, в которых * нужно набить определенное количество предметов не осуществляется. * <br><br> * Ни один из передаваемых параметров не должен быть равен 0 * * @param min минимальное количество при рейтах 1х * @param max максимальное количество при рейтах 1х * @param calcChance шанс при рейтах 1х, в процентах * @return количество вещей для дропа, может быть 0 */ public int rollDrop(final int min, final int max, double calcChance) { if (calcChance <= 0 || min <= 0 || max <= 0) { return 0; } int dropmult = 1; calcChance *= getRateQuestsDrop(); if (getQuest().getParty() > Quest.PARTY_NONE) { final Player player = getPlayer(); if (player.getParty() != null) { calcChance *= AllSettingsConfig.ALT_PARTY_BONUS[player.getParty().getMemberCountInRange(player, AllSettingsConfig.ALT_PARTY_DISTRIBUTION_RANGE) - 1]; } } if (calcChance > 100) { if ((int) Math.ceil(calcChance / 100) <= calcChance / 100) { calcChance = Math.nextUp(calcChance); } dropmult = (int) Math.ceil(calcChance / 100); calcChance /= dropmult; } return Rnd.chance(calcChance) ? Rnd.get(min * dropmult, max * dropmult) : 0; }
В окончательном расчете происходит
что в целом, делит шанс, на dropmult, и при разных значениях questrate, может быть абсолютно разный шанс и он будет меньше 100%, при этом он будет плавать в зависимости от разных questrate (что я уже указал), если верно подобрать, то можно добиться шанса в 99%, при этом количество предметом в данном коде умножается вполне себе адекватно.Код:calcChance /= dropmult;
А зачем лесть в исходы, если можно через скрипты реализовывать?
если есть желание, возможности и знания лезть "глубоко в исходники", то в целом, без разницы что брать
про люцеру можно сказать, что там обуфка не настолько сильная, было бы желание (что-то менять) - можно за декомпилить и собрать обратно (в т.ч. и по одному классу), реверс-инжиниринг это тоже своего рода "искусство".
как говорится "кто хочет - ищет возможности, не хочет - ищет оправдания".
Даже не думай, это еще то дерьмо.А у кого то есть на продажу l2jorion 29,30?
Мне чел советовалДаже не думай, это еще то дерьмо.
А у кого то есть на продажу l2jorion 29,30?
А исходники есть?Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
А исходники есть?
А исходники есть?
это v30?Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Не знаю, одни из последних ревизий либо крайний. Я так понял проект заброшен этого ориона. На мой взгляд лучше те что я тебе в личку кидалэто v30?
Вот один из последних AcisЯ так понял Орион этот какой то мутный не очень о нем отзыв
хороших нет, есть в меру кривые, из всех, что сейчас в шаре, нужно годик поковыряться точно, чтобы выйти в свой первый благополучный старт, с набитием шишек)брать надо изначально исходники, которые максимально хорошие
Печально что даже по сути платные сборки кривые(хороших нет, есть в меру кривые, из всех, что сейчас в шаре, нужно годик поковыряться точно, чтобы выйти в свой первый благополучный старт, с набитием шишек)
ок, разжую. под хорошими имелось ввиду наименее плохие, где меньше критичных багов, общий объем правок меньше, и базово качество кода более грамотное. Очевидно, что не все сборки одинаково кривые по начинке и качеству кода.хороших нет, есть в меру кривые, из всех, что сейчас в шаре, нужно годик поковыряться точно, чтобы выйти в свой первый благополучный старт, с набитием шишек)
А можно поинтересоваться, откуда этот нейминг, 407? 407 версия акисов на 21й jdk. а эти на 11, что следовательно...)))Вот один из последних AcisВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрациялибо что в личку кидал на этих исходах ветка. А лучше на хф brawery делай. В общем выбора полно