custom delevel

Support for the latest build of L2J Server, get help here with installations, upgrades, problems.
Do not post bugs reports here, use viewforum.php?f=77 instead.
There is no support for other server builds than the official provided by l2jserver.com
Forum rules
READ NOW: L2j Forums Rules of Conduct
Locked
atika000
Posts: 9
Joined: Tue Apr 05, 2011 8:42 pm

custom delevel

Post by atika000 »

Help again
I cant reply in my last topic..

I edited : but something is wrong
What did I miss? or wrote badly?
Help please, I m fool for java yet :-)

public class Delevel extends Quest
{
private final static int NPC = ExternalConfig.DELEVEL_NPC_ID;
private final static int ADENA = 57;
private final static int COST1 = 7500; // cost per level, price=7.5k*charlvl
private final static int COST2 = 100000; // cost per vitality level, price=10k*vitlvl
private final static int MINLVL = 20; // minimum level requirement
private final static int KARMA = 0; // 0=don't allow karma, more=max value

String LVL_TOO_LOW = "<html><body><title>Delevel Manager</title><center><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br>Well now, aren't you a little too young for this? Why don't you come back later when you have gained some levels? <font color=LEVEL>(minimum requirements: level %MINLVL%)</font><br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32></center></body></html>";
String WELCOME = "<html><body><title>Delevel Manager</title><center><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br>I welcome You, young warrior! I am Delevel manager, and, as my name says, I offer players like You to decrease their <font color=LEVEL>character level</font> and <font color=LEVEL>vitality level</font>! Of course, this costs money, after all I have earn living somehow.<button value=\"I'm ready!\" action=\"bypass -h Quest Delevel talk\" width=180 height=24 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"/><br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32></center></body></html>";
String DONE = "<html><body><title>Delevel Manager</title><center><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br>So You really want to do this? Alright then, as You wish.<br><font color=LEVEL>The requirements are as follows:</font> You must be at least <font color=LEVEL>level %MINLVL%</font> and must have no more than <font color=LEVEL>%KARMA% Karma</font>, otherwise I won't help You. <br1>You are now level <font color=LEVEL>%LEVEL%</font>, which means decreasing 1 level will cost You <font color=LEVEL>%PRICE1% Adena</font>.<br1>Your Vitality level is <font color=LEVEL>%VITLVL%</font>, decreasing 1 level of Vitality will cost you <font color=LEVEL>%PRICE2% Adena</font>.<br><button value=\"Decrease 1 level\" action=\"bypass -h Quest Delevel level\" width=264 height=24 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"/><br1><button value=\"Decrease 1 vitality level\" action=\"bypass -h Quest Delevel vitality\" width=264 height=24 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"/></center></body></html>";

@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState st = player.getQuestState(getName());
String htmltext = "";

final int PRICE1 = COST1 * player.getLevel();
final int PRICE2 = COST2 * player.getVitalityLevel();
final int VITALITY = player.getVitalityPoints();

if (event.equalsIgnoreCase("talk"))
{
htmltext = DONE;
htmltext = htmltext.replace("%MINLVL%", String.valueOf(MINLVL));
htmltext = htmltext.replace("%KARMA%", String.valueOf(KARMA));
htmltext = htmltext.replace("%LEVEL%", String.valueOf(player.getLevel()));
htmltext = htmltext.replace("%PRICE1%", String.valueOf(PRICE1));
htmltext = htmltext.replace("%VITLVL%", String.valueOf(player.getVitalityLevel()));
htmltext = htmltext.replace("%PRICE2%", String.valueOf(PRICE2));
}
else if (event.equalsIgnoreCase("level"))
{
if (player.getKarma() > KARMA)
{
player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "A szolgaltatasaim a karmasoknak nem jar!"));
}
else if (player.getLevel() < MINLVL)
{
player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Bocsi, " + player.getName() + ", tul kicsi vagy!"));
}
else if (st.getQuestItemsCount(ADENA) < PRICE1)
{
player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Bocsi, " + player.getName() + ", nincs eleg penzed!"));
}
else
{
st.takeItems(ADENA, PRICE1);
player.removeExpAndSp((player.getExp() - Experience.LEVEL[player.getStat().getLevel() - 1]), 0);
player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Gratulalok " + player.getName() + ", Sikeresen visszaleptel egy szintet!"));
htmltext = DONE;
htmltext = htmltext.replace("%MINLVL%", String.valueOf(MINLVL));
htmltext = htmltext.replace("%KARMA%", String.valueOf(KARMA));
htmltext = htmltext.replace("%LEVEL%", String.valueOf(player.getLevel()));
htmltext = htmltext.replace("%PRICE1%", String.valueOf(COST1 * player.getLevel()));
htmltext = htmltext.replace("%VITLVL%", String.valueOf(player.getVitalityLevel()));
htmltext = htmltext.replace("%PRICE2%", String.valueOf(COST2 * player.getVitalityLevel()));
}
}

else if (event.equalsIgnoreCase("vitality"))
{
if (player.getKarma() > KARMA)
{
player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "I don't offer my services to Karma players!"));
return "";
}
else if (player.getLevel() < MINLVL)
{
player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Sorry, " + player.getName() + ", Your level is too low!"));
return "";
}
else if (st.getQuestItemsCount(ADENA) < PRICE2)
{
player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Sorry, " + player.getName() + ", You don't have enough money!"));
return "";
}
else if (VITALITY < 240)
{
player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Sorry, " + player.getName() + ", Your Vitality level can't be decreased anymore!"));
return "";
}
else if (VITALITY < 2000)
{
st.takeItems(ADENA, PRICE2);
player.setVitalityPoints(1, true);
player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Congratulations, " + player.getName() + ", Your Vitality has been decreased!"));
}
else if (VITALITY < 13000)
{
st.takeItems(ADENA, PRICE2);
player.setVitalityPoints(241, true);
player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Congratulations, " + player.getName() + ", Your Vitality has been decreased!"));
}
else if (VITALITY < 17000)
{
st.takeItems(ADENA, PRICE2);
player.setVitalityPoints(2001, true);
player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Congratulations, " + player.getName() + ", Your Vitality has been decreased!"));
}
else if (VITALITY > 17000)
{
st.takeItems(ADENA, PRICE2);
player.setVitalityPoints(13001, true);
player.sendPacket(new CreatureSay(npc.getObjectId(), 0, "Delevel Manager", "Congratulations, " + player.getName() + ", Your Vitality has been decreased!"));
}
htmltext = DONE;
htmltext = htmltext.replace("%MINLVL%", String.valueOf(MINLVL));
htmltext = htmltext.replace("%KARMA%", String.valueOf(KARMA));
htmltext = htmltext.replace("%LEVEL%", String.valueOf(player.getLevel()));
htmltext = htmltext.replace("%PRICE1%", String.valueOf(COST1 * player.getLevel()));
htmltext = htmltext.replace("%VITLVL%", String.valueOf(player.getVitalityLevel()));
htmltext = htmltext.replace("%PRICE2%", String.valueOf(COST2 * player.getVitalityLevel()));
}
st.exitQuest(true);
return htmltext;
}

@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
@SuppressWarnings("unused")
QuestState st = player.getQuestState(getName());
String htmltext = "";
if (player.getLevel() < MINLVL)
{
htmltext = LVL_TOO_LOW;
htmltext = htmltext.replace("%MINLVL%", String.valueOf(MINLVL));
}
else
{
final Quest q = QuestManager.getInstance().getQuest(getName());
st = q.newQuestState(player);
htmltext = WELCOME;
}
return htmltext;
}

public Delevel(int questId, String name, String descr)
{
super(questId, name, descr);
addStartNpc(NPC);
addFirstTalkId(NPC);
addTalkId(NPC);
if (ExternalConfig.DELEVEL_NPC_ENABLE)
{
this.addSpawn(NPC, 82168, 148356, -3475, 77778, true, 0);
}
}

public static void main(String[] args)
{
new Delevel(-1, "Delevel", "custom");
System.out.println("===================================");
System.out.println("Delevel Manager successfully loaded");
System.out.println("===================================");
}
}
atika000
Posts: 9
Joined: Tue Apr 05, 2011 8:42 pm

Re: custom delevel

Post by atika000 »

NPC html? where? It's my first npc is based on java..
hope
Posts: 1160
Joined: Thu Aug 30, 2007 5:17 pm

Re: custom delevel

Post by hope »

use code tags please
atika000
Posts: 9
Joined: Tue Apr 05, 2011 8:42 pm

Re: custom delevel

Post by atika000 »

Sorry, what?
hope
Posts: 1160
Joined: Thu Aug 30, 2007 5:17 pm

Re: custom delevel

Post by hope »

when you make a post you will see the options at the top of the text box
User avatar
jurchiks
Posts: 6769
Joined: Sat Sep 19, 2009 4:16 pm
Location: Eastern Europe

Re: custom delevel

Post by jurchiks »

It's my script (viewtopic.php?f=73&t=16883)
The htmls are embedded in the script in case you can't see them.
If you have problems, FIRST TRY SOLVING THEM YOURSELF, and if you get errors, TRY TO ANALYZE THEM, and ONLY if you can't help it, THEN ask here.
Otherwise you will never learn anything if all you do is copy-paste!
Discussion breeds innovation.
Locked