- Хроники
- Interlude
- Исходники
- Присутствуют
- Сборка
- lucera 1.7
Добрый день. Хотел задать вопрос.
На сервере есть возможность приобрести Премиум аккаунт. При покупке премиума, он дается не на конкретного персонажа, а не весь аккаунт, с которого был куплен. Получается, что все последующие персонажи будут получать премиум автоматически(ну или предыдущие)
Как это исправить? В конфигах такой настройки нет. Там только вкл/выкл, рейты.
Покапался немного в файлах, нашел внутри по пути \game\data\scripts\custom\Services
файлик Services.java
в нем как раз все услуги, включая премиум аккаунт. Я вот тут скопировал часть.
Возможно ли всё это исправить на выдачу персонажу?
На сервере есть возможность приобрести Премиум аккаунт. При покупке премиума, он дается не на конкретного персонажа, а не весь аккаунт, с которого был куплен. Получается, что все последующие персонажи будут получать премиум автоматически(ну или предыдущие)
Как это исправить? В конфигах такой настройки нет. Там только вкл/выкл, рейты.
Покапался немного в файлах, нашел внутри по пути \game\data\scripts\custom\Services
файлик Services.java
в нем как раз все услуги, включая премиум аккаунт. Я вот тут скопировал часть.
// Премиум аккаунт
int premiumItemIt1 = 9558;
int premiumItemCount1 = 1;
int premiumItemIt2 = 9558;
int premiumItemCount2 = 2;
int premiumItemIt3 = 9558;
int premiumItemCount3 = 4;
int premiumItemIt4 = 9558;
int premiumItemCount4 = 5;
int premiumItemIt5 = 9558;
int premiumItemCount5 = 8;
public Services(int questId, String name, String descr)
{
super(questId, name, descr);
addStartNpc(ServicesNpcId);
addFirstTalkId(ServicesNpcId);
addTalkId(ServicesNpcId);
}
public static void main(String[] args)
{
new Services(-1, Services.class.getSimpleName(), "custom");
}
@Override
public String onFirstTalk(L2NpcInstance npc, L2PcInstance player)
{
if (player.getQuestState(getName()) == null)
{
newQuestState(player);
}
else if (player.isInCombat())
{
return "Services-Blocked.htm";
}
else if (player.getPvpFlag() == 1)
{
return "Services-Blocked.htm";
}
else if (player.getKarma() != 0)
{
return "Services-Blocked.htm";
}
else if (player.isDead() || player.isFakeDeath())
{
return "Services-Blocked.htm";
}
return "Services.htm";
}
@Override
public String onAdvEvent(String event, L2NpcInstance npc, L2PcInstance player)
{
String htmlText = event;
QuestState st = player.getQuestState(getName());
if (event.equals("getPremium1"))
{
if (player.getPremiumService() == 0)
{
if (st.getQuestItemsCount(premiumItemIt1) >= premiumItemCount1)
{
st.takeItems(premiumItemIt1, premiumItemCount1);
PcAction.addPremiumServices(player, 1, player.getAccountName());
player.broadcastUserInfo();
return "PremiumAccount-Success.htm";
}
return "PremiumAccount-NoItems.htm";
}
return "PremiumAccount-Alredy.htm";
}
if (event.equals("getPremium2"))
{
if (player.getPremiumService() == 0)
{
if (st.getQuestItemsCount(premiumItemIt2) >= premiumItemCount2)
{
st.takeItems(premiumItemIt2, premiumItemCount2);
PcAction.addPremiumServices(player, 3, player.getAccountName());
player.broadcastUserInfo();
return "PremiumAccount-Success.htm";
}
return "PremiumAccount-NoItems.htm";
}
return "PremiumAccount-Alredy.htm";
}
if (event.equals("getPremium3"))
{
if (player.getPremiumService() == 0)
{
if (st.getQuestItemsCount(premiumItemIt3) >= premiumItemCount3)
{
st.takeItems(premiumItemIt3, premiumItemCount3);
PcAction.addPremiumServices(player, 7, player.getAccountName());
player.broadcastUserInfo();
return "PremiumAccount-Success.htm";
}
return "PremiumAccount-NoItems.htm";
}
return "PremiumAccount-Alredy.htm";
}
if (event.equals("getPremium4"))
{
if (player.getPremiumService() == 0)
{
if (st.getQuestItemsCount(premiumItemIt4) >= premiumItemCount4)
{
st.takeItems(premiumItemIt4, premiumItemCount4);
PcAction.addPremiumServices(player, 14, player.getAccountName());
player.broadcastUserInfo();
return "PremiumAccount-Success.htm";
}
return "PremiumAccount-NoItems.htm";
}
return "PremiumAccount-Alredy.htm";
}
if (event.equals("getPremium5"))
{
if (player.getPremiumService() == 0)
{
if (st.getQuestItemsCount(premiumItemIt5) >= premiumItemCount5)
{
st.takeItems(premiumItemIt5, premiumItemCount5);
PcAction.addPremiumServices(player, 30, player.getAccountName());
player.broadcastUserInfo();
return "PremiumAccount-Success.htm";
}
return "PremiumAccount-NoItems.htm";
}
return "PremiumAccount-Alredy.htm";
}
int premiumItemIt1 = 9558;
int premiumItemCount1 = 1;
int premiumItemIt2 = 9558;
int premiumItemCount2 = 2;
int premiumItemIt3 = 9558;
int premiumItemCount3 = 4;
int premiumItemIt4 = 9558;
int premiumItemCount4 = 5;
int premiumItemIt5 = 9558;
int premiumItemCount5 = 8;
public Services(int questId, String name, String descr)
{
super(questId, name, descr);
addStartNpc(ServicesNpcId);
addFirstTalkId(ServicesNpcId);
addTalkId(ServicesNpcId);
}
public static void main(String[] args)
{
new Services(-1, Services.class.getSimpleName(), "custom");
}
@Override
public String onFirstTalk(L2NpcInstance npc, L2PcInstance player)
{
if (player.getQuestState(getName()) == null)
{
newQuestState(player);
}
else if (player.isInCombat())
{
return "Services-Blocked.htm";
}
else if (player.getPvpFlag() == 1)
{
return "Services-Blocked.htm";
}
else if (player.getKarma() != 0)
{
return "Services-Blocked.htm";
}
else if (player.isDead() || player.isFakeDeath())
{
return "Services-Blocked.htm";
}
return "Services.htm";
}
@Override
public String onAdvEvent(String event, L2NpcInstance npc, L2PcInstance player)
{
String htmlText = event;
QuestState st = player.getQuestState(getName());
if (event.equals("getPremium1"))
{
if (player.getPremiumService() == 0)
{
if (st.getQuestItemsCount(premiumItemIt1) >= premiumItemCount1)
{
st.takeItems(premiumItemIt1, premiumItemCount1);
PcAction.addPremiumServices(player, 1, player.getAccountName());
player.broadcastUserInfo();
return "PremiumAccount-Success.htm";
}
return "PremiumAccount-NoItems.htm";
}
return "PremiumAccount-Alredy.htm";
}
if (event.equals("getPremium2"))
{
if (player.getPremiumService() == 0)
{
if (st.getQuestItemsCount(premiumItemIt2) >= premiumItemCount2)
{
st.takeItems(premiumItemIt2, premiumItemCount2);
PcAction.addPremiumServices(player, 3, player.getAccountName());
player.broadcastUserInfo();
return "PremiumAccount-Success.htm";
}
return "PremiumAccount-NoItems.htm";
}
return "PremiumAccount-Alredy.htm";
}
if (event.equals("getPremium3"))
{
if (player.getPremiumService() == 0)
{
if (st.getQuestItemsCount(premiumItemIt3) >= premiumItemCount3)
{
st.takeItems(premiumItemIt3, premiumItemCount3);
PcAction.addPremiumServices(player, 7, player.getAccountName());
player.broadcastUserInfo();
return "PremiumAccount-Success.htm";
}
return "PremiumAccount-NoItems.htm";
}
return "PremiumAccount-Alredy.htm";
}
if (event.equals("getPremium4"))
{
if (player.getPremiumService() == 0)
{
if (st.getQuestItemsCount(premiumItemIt4) >= premiumItemCount4)
{
st.takeItems(premiumItemIt4, premiumItemCount4);
PcAction.addPremiumServices(player, 14, player.getAccountName());
player.broadcastUserInfo();
return "PremiumAccount-Success.htm";
}
return "PremiumAccount-NoItems.htm";
}
return "PremiumAccount-Alredy.htm";
}
if (event.equals("getPremium5"))
{
if (player.getPremiumService() == 0)
{
if (st.getQuestItemsCount(premiumItemIt5) >= premiumItemCount5)
{
st.takeItems(premiumItemIt5, premiumItemCount5);
PcAction.addPremiumServices(player, 30, player.getAccountName());
player.broadcastUserInfo();
return "PremiumAccount-Success.htm";
}
return "PremiumAccount-NoItems.htm";
}
return "PremiumAccount-Alredy.htm";
}
Возможно ли всё это исправить на выдачу персонажу?