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

Менеджер Перерождения Для Lucera.

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

Всем привет!

Собственно, попросили в одной из тем помочь с переносом L2Rebirth Manager'a на Lucera.

На работоспособность не проверял, компиляция и запуск проходят на "ура".

P.S. Адаптирован первый найденный в интернете менеджер перерождений, если у вас есть более лучший вариант - могу адаптировать и его.

Установка:

 

Идем сюда:

ru.catssoftware.gameserver.model.actor.instance

 

Создаем класс: L2RebirthMasterInstance

 

И копируем туда данный код:

 

/* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ru.catssoftware.gameserver.model.actor.instance;
import ru.catssoftware.gameserver.datatables.ItemTable;
import ru.catssoftware.gameserver.model.L2ItemInstance;
import ru.catssoftware.gameserver.model.L2Skill;
import ru.catssoftware.gameserver.model.base.ClassId;
import ru.catssoftware.gameserver.model.base.Experience;
import ru.catssoftware.gameserver.network.SystemMessageId;
import ru.catssoftware.gameserver.network.serverpackets.SystemMessage;
import ru.catssoftware.gameserver.network.serverpackets.NpcHtmlMessage;
import ru.catssoftware.gameserver.templates.chars.L2NpcTemplate;
/**
* Rebirth Npc's Instance
*
* @author HanWikq
* @ Adapted for Lucera: Warframe.
*/
public class L2RebirthMasterInstance extends L2FolkInstance
{
int itemId=57 ; // item ID which should be given, should be in this format: "int itemId= ???;"
int count=1 ; // how many of the item should be given?, should be in this format: "int count= ???;"
 int _maxRebirths=3; // how many rebirths are allowed?should be in this format: "int _maxRebirths= ???;"
public L2RebirthMasterInstance(int objectId, L2NpcTemplate template)
{
super(objectId, template);
}
@Override
public void onBypassFeedback(L2PcInstance player, String command)
{
if (command.startsWith("Rebirth"))
{
ClassId classId = player.getClassId();
int jobLevel = classId.level();
if (player.getLevel() >= 80 && jobLevel == 3)
{
L2ItemInstance item = ItemTable.getInstance().createItem("Rebirth Item", itemId, count, player);
player.getInventory().addItem("Rebirth Item", item.getItemId(), count, player, null);
long pXp = player.getExp();
long tXp = Experience.LEVEL[1];
player.removeExpAndSp(pXp - tXp, 0);
ClassId _baseClass = classId;
for (ClassId child : ClassId.values())
{
 if (classId.childOf(child))
 {
 _baseClass = child;
 for (ClassId child2 : ClassId.values())
 {
 if (_baseClass.childOf(child2))
 {
 _baseClass = child2;
 for (ClassId child3 : ClassId.values())
 {
	 if (_baseClass.childOf(child3))
	 _baseClass = child3;
 }
 }
 }
 }
}
for (L2Skill skill : player.getAllSkills())
 player.removeSkill(skill);
player.setClassId(_baseClass.getId());
if (player.isSubClassActive()) player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
else player.setBaseClass(player.getActiveClass());
player.broadcastUserInfo();
player.rewardSkills();
player.sendSkillList();
// system sound for 1st and 2nd occupation
player.sendPacket(new SystemMessage(SystemMessageId.CLASS_TRANSFER));
// Update the overloaded status of the L2PcInstance
player.refreshOverloaded();
// Update the expertise status of the L2PcInstance
player.refreshExpertisePenalty();
player.sendMessage("You have been reborn");
}
else
player.sendMessage("You are to low level, you need to be atleast be 85 with completed third class occupation");
}
}
}

 

Теперь добавляем в БД любого NPC и ставим ему тип L2RebirthMaster.

P.S. Так же можно связать и сделать через команду.

 

Конфиги:

int itemId=57 ; // Какой предмет (id) за Перерождение.

int count=1 ; // Сколько предметов (Количество).

int _maxRebirths=3; // Максимальное количество Перерождений.

Изменено пользователем Warframe
  • Upvote 2

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


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

Можешь бесплатно сделать под lucera квест на крылья и беффер? (я скину квест тебе)

Изменено пользователем DieOrDie

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


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

зачем делать такой хардкодинг?))

На нём вся люцера )

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


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

зачем делать такой хардкодинг?))

 

Вопрос не ко мне, я лишь адаптировал то, что нашел :)

Изменено пользователем Warframe

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


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

Пример диалога:

<HTML>
<BODY>
Hello,welcome to the rebirth manager<br>
<a action="bypass -h npc_%objectId%_Rebirth">Make a rebirth.</a>
</BODY>
</HTML>

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


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

А под фрозен можешь сделать?

 

Могу, но под фрозен уже вроде бы есть готовые.

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


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

А можно подробнее, что делает этот нпц?)

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


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

А можно подробнее, что делает этот нпц?)

Cбрасывает скиллы и класс до первоначальных.

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

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


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

А можно подробнее, что делает этот нпц?)

Перерождение,тебе дают скил и сливают до определёный лвл
  • Upvote 2

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


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

Автор, пожалуйста переделайте под ПВ буду вам очень благодарен.

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


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

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

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

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

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

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

Войти

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

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

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

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

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