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

Скрипт покупки LvL

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

Давно на форуме видел тему из скриптом для покупки lvl в донат шопе

Помогите найти(((

  • Upvote 1

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


Ссылка на сообщение
Поделиться на другие сайты
public final class L2DonateLvlInstance extends L2FolkInstance
{
public L2DonateLvlInstance(int objectId, L2NpcTemplate template)
{
super(objectId, template);
}

@Override
public void onAction(L2PcInstance player)
{
if (!canTarget(player))
{
return;
}

if (getObjectId() != player.getTargetId())
{
player.setTarget(this);

player.sendPacket(new MyTargetSelected(getObjectId(), 0));

player.sendPacket(new ValidateLocation(this));
}
else
{
if (!canInteract(player))
{
player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
return;
}

NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
TextBuilder sb = new TextBuilder();
sb.append("<html><body>");
sb.append("<a action=\"bypass -h npc_" + getObjectId() + "_levelup 1\">Поднять уровнь</a>");
sb.append("</body></html>");
html.setHtml(sb.toString());
player.sendPacket(html);
}
player.sendPacket(new ActionFailed());
}
        
@Override
public void onBypassFeedback(L2PcInstance player, String command)
{
if (command.startsWith("levelup"))
{
                    String[] com = command.split(" ");
                    byte i = Byte.parseByte(com[1]);
                    if(player.getInventory().getItemByItemId(4037).getCount() > 10)
                    {
                        player.getInventory().destroyItemByItemId("Donatelevel", 4037, 10, player, this);
                        player.getStat().addLevel(i);
                    }
}
else
{
super.onBypassFeedback(player, command);
}
}
}

Начало положил) html с полем ввода, сообщения и т.д. дело 5 минут) После того как пост увидел, решил хоть чем-то помочь и написал на скорую руку)

Изменено пользователем 0qD0ku
  • Upvote 1

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


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

Давно на форуме видел тему из скриптом для покупки lvl в донат шопе

Помогите найти(((

1) http://forummaxi.ru/topic/60636-increaselevel/

2) http://forummaxi.ru/topic/60646-buylevel/

а сам метод повышения уровня придется доделать.

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


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

1) http://forummaxi.ru/topic/60636-increaselevel/

2) http://forummaxi.ru/topic/60646-buylevel/

а сам метод повышения уровня придется доделать.

Чем Вам мой метод не подошел?

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


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

Чем Вам мой метод не подошел?

Знал бы я... что с ним делать(

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


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

Донат шоп имеется?

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


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

Чем Вам мой метод не подошел?

player.getStat().addLevel(i); чтото похожее в тех 2 скриптах . для повышения уровня нужно считать  exp  и производить изменения . но все зависит от сборки.

данный метод player.getStat().addLevel(i); может дать только визуальное повышения уровня и если чар получает +exp лвл слетает, вот так вот.

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


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

player.getStat().addLevel(i); чтото похожее в тех 2 скриптах . для повышения уровня нужно считать  exp  и производить изменения . но все зависит от сборки.

данный метод player.getStat().addLevel(i); может дать только визуальное повышения уровня и если чар получает +exp лвл слетает, вот так вот.

Ты точно проверил ?) 

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


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

в пв так можно сделать

 String LEVEL = "20";

 byte lvl = Byte.parseByte(LEVEL);
 if ((lvl >= 1) && (lvl <= 81))
 {
                long pXp = player.getExp();
                long tXp = net.sf.l2j.gameserver.model.base.Experience.LEVEL[lvl];
 
                if (pXp > tXp)
                {
                  player.removeExpAndSp(pXp - tXp, 0);
                } else if (pXp < tXp)
                {
                  player.addExpAndSp(tXp - pXp, 0);
                }
 }
по сути если +1 лвл, тогда плеер.гетлвл+1
Изменено пользователем Demoncool

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


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

 

в пв так можно сделать

 String LEVEL = "20";

 byte lvl = Byte.parseByte(LEVEL);
 if ((lvl >= 1) && (lvl <= 81))
 {
                long pXp = player.getExp();
                long tXp = net.sf.l2j.gameserver.model.base.Experience.LEVEL[lvl];
 
                if (pXp > tXp)
                {
                  player.removeExpAndSp(pXp - tXp, 0);
                } else if (pXp < tXp)
                {
                  player.addExpAndSp(tXp - pXp, 0);
                }
 }
по сути если +1 лвл, тогда плеер.гетлвл+1

 

Ребятки вы вручную выполняете работу метода addlevel)

public boolean addLevel(byte value)
	{
		if ((getLevel() + value) > (Experience.MAX_LEVEL - 1))
		{
			if (getLevel() < (Experience.MAX_LEVEL - 1))
			{
				value = (byte) (Experience.MAX_LEVEL - 1 - getLevel());
			}
			else
			{
				return false;
			}
		}
		
		boolean levelIncreased = ((getLevel() + value) > getLevel());
		value += getLevel();
		setLevel(value);
		
		// Sync up exp with current level
		if ((getExp() >= getExpForLevel(getLevel() + 1)) || (getExpForLevel(getLevel()) > getExp()))
		{
			setExp(getExpForLevel(getLevel()));
		}
		
		if (!levelIncreased)
		{
			return false;
		}
		
		getActiveChar().getStatus().setCurrentHp(getActiveChar().getStat().getMaxHp());
		getActiveChar().getStatus().setCurrentMp(getActiveChar().getStat().getMaxMp());
		
		return true;
	}
  • Upvote 1

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


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

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

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

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

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

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

Войти

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

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

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

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

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