Перейти к содержанию
Авторизация  
diamond1369

Неправильно работает ПА

Рекомендуемые сообщения

Приветствую, мб кто сталкивался с проблемой, что прем аккаунт работает только с целыми числами, т.е. только х2, х3, х10. Но отказывается работать с х1.5 или х1.8, к примеру. Точнее сказать, работает, но если поставить х1.5, то дроп будет падать как с х2, хотя в дроп листе будет писать как и должно, то есть х1.5. Кто уловил мыслю, помогите. HF, сборка асгард. Помню, такая проблема была и у ребов, кто на них сидит, как вы с этим справились?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас в cfg есть возможность редактировать премиум-рейты отдельно? adena/rate, drop/rate, spoil/rate и так далее?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас в cfg есть возможность редактировать премиум-рейты отдельно? adena/rate, drop/rate, spoil/rate и так далее?

я понял к чему вы клоните, если через это сделать, все равно криво падает :) Тут надо именно с конфигом према разобраться, думал сначала что интовское значение стоит, и оно округляет, но нифига, все "вроде бы" верно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я понял к чему вы клоните, если через это сделать, все равно криво падает :) Тут надо именно с конфигом према разобраться, думал сначала что интовское значение стоит, и оно округляет, но нифига, все "вроде бы" верно.

 

Конфиг премиум-сервиса в студию пожалуйста)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

RateBonusValue = 1.5;1.5;1.5 - так записывается в конфиге. Или вы имели ввиду скрипт явовский?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

RateBonusValue = 1.5;1.5;1.5 - так записывается в конфиге. Или вы имели ввиду скрипт явовский?

 

Отпишите в ЛС, дам вам готовый скрипт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Могу посоветовать только выкинуть эту сборку. Ничем от гринд-тим не отличается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну а все же, неужели никто не сталкивался с этим на данных сборках?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

исходники есть? если есть от смотреть в каких переменных хранятся рейты и не идет ли где случаем их округление до ближайшего целого.

если исходников нет - смириться с текущим положением или менять сборку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Исходники есть, куда смотреть, в яве я не силен, знаю только омновы. Может у кого-то есть рабочий скрипт па? Буду премного благодарен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Исходники есть, куда смотреть, в яве я не силен, знаю только омновы. Может у кого-то есть рабочий скрипт па? Буду премного благодарен.

 

Дал скрипты в ЛС.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я надеюсь вы знаете как адаптировать скрипт под свою сборку.

Если не сможете то в скайп l2green.ru

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почитайте что такое INT и что такое DOUBLE

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Думал в бд столбец возвращает интовское значение, оказалось все нормально. Вот код код самого скрипта ПА: 

package services;


import java.util.Date;


import core.gameserver.Config;
import core.gameserver.dao.AccountBonusDAO;
import core.gameserver.data.htm.HtmCache;
import core.gameserver.data.xml.holder.ItemHolder;
import core.gameserver.model.Player;
import core.gameserver.model.actor.instances.player.Bonus;
import core.gameserver.network.authcomm.AuthServerCommunication;
import core.gameserver.network.authcomm.gspackets.BonusRequest;
import core.gameserver.network.l2.components.SystemMsg;
import core.gameserver.network.l2.s2c.ExBR_PremiumState;
import core.gameserver.scripts.Functions;
import core.gameserver.utils.Log;


public class RateBonus extends Functions
{
public void list()
{
Player player = getSelf();
if(Config.SERVICES_RATE_TYPE == Bonus.NO_BONUS)
{
show(HtmCache.getInstance().getNotNull("npcdefault.htm", player), player);
return;
}


String html;
if(player.getNetConnection().getBonus() >= 0.)
{
int endtime = player.getNetConnection().getBonusExpire();
if(endtime >= System.currentTimeMillis() / 1000L)
html = HtmCache.getInstance().getNotNull("scripts/services/RateBonusAlready.htm", player).replaceFirst("endtime", new Date(endtime * 1000L).toString());
else
{
html = HtmCache.getInstance().getNotNull("scripts/services/RateBonus.htm", player);


String add = "";
for(int i = 0; i < Config.SERVICES_RATE_BONUS_DAYS.length; i++)
add += "<a action=\"bypass -h scripts_services.RateBonus:get " + i + "\">" //
+ (int) (Config.SERVICES_RATE_BONUS_VALUE[i] * 100 - 100) + //
"% for " + Config.SERVICES_RATE_BONUS_DAYS[i] + //
" days - " + Config.SERVICES_RATE_BONUS_PRICE[i] + //
" " + ItemHolder.getInstance().getTemplate(Config.SERVICES_RATE_BONUS_ITEM[i]).getName() + "</a><br>";


html = html.replaceFirst("%toreplace%", add);
}
}
else
html = HtmCache.getInstance().getNotNull("scripts/services/RateBonusNo.htm", player);


show(html, player);
}


public void get(String[] param)
{
Player player = getSelf();
if(Config.SERVICES_RATE_TYPE == Bonus.NO_BONUS)
{
show(HtmCache.getInstance().getNotNull("npcdefault.htm", player), player);
return;
}
int i = Integer.parseInt(param[0]);
if(!player.getInventory().destroyItemByItemId(Config.SERVICES_RATE_BONUS_ITEM[i], Config.SERVICES_RATE_BONUS_PRICE[i]))
{
if(Config.SERVICES_RATE_BONUS_ITEM[i] == 57)
player.sendPacket(SystemMsg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
else
player.sendPacket(SystemMsg.INCORRECT_ITEM_COUNT);
return;
}
if(Config.SERVICES_RATE_TYPE == Bonus.BONUS_GLOBAL_ON_AUTHSERVER && AuthServerCommunication.getInstance().isShutdown())
{
list();
return;
}
Log.add(player.getName() + "|" + player.getObjectId() + "|rate bonus|" + Config.SERVICES_RATE_BONUS_VALUE[i] + "|" + Config.SERVICES_RATE_BONUS_DAYS[i] + "|", "services");
double bonus = Config.SERVICES_RATE_BONUS_VALUE[i];
int bonusExpire = (int) (System.currentTimeMillis() / 1000L) + Config.SERVICES_RATE_BONUS_DAYS[i] * 24 * 60 * 60;
switch(Config.SERVICES_RATE_TYPE)
{
case Bonus.BONUS_GLOBAL_ON_AUTHSERVER:
AuthServerCommunication.getInstance().sendPacket(new BonusRequest(player.getAccountName(), bonus, bonusExpire));
break;
case Bonus.BONUS_GLOBAL_ON_GAMESERVER:
AccountBonusDAO.getInstance().insert(player.getAccountName(), bonus, bonusExpire);
break;
}
player.getNetConnection().setBonus(bonus);
player.getNetConnection().setBonusExpire(bonusExpire);
player.stopBonusTask();
player.startBonusTask();
if(player.getParty() != null)
player.getParty().recalculatePartyData();
player.sendPacket(new ExBR_PremiumState(player, true));
//give premium item
if(Config.GET_PREMIUM_ITEM)
if(Functions.getItemCount(player, Config.GET_PREMIUM_ITEM_ID) == 0)
Functions.addItem(player, Config.GET_PREMIUM_ITEM_ID, 1);
show(HtmCache.getInstance().getNotNull("scripts/services/RateBonusGet.htm", player), player);
}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Закажи скрипт под заказ на свою сборку и все. Голову будешь долго ломать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...