Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   [Share]Гол. Команда Вознаграждение За Лвл. (https://forum.zone-game.info/showthread.php?t=9823)

MeGaPk 24.08.2010 18:43

[Share]Гол. Команда Вознаграждение За Лвл.
 
Собсна написал голосовой lvl-reward.
"Предоставляю" демо версию, но в руках человека, который умеет делать по примерам, спокойно доработает.
Пока он только даёт на 10, 20, 30 - ых уровнях вознагрождение. Так же могу позже написать чтоб давало "рандомное" вознагрождение.
Сразу говорю, код возможно громоздкий, но прост в редактировании.
Собсна вот гайд по его установке:

Заходим сюда: CORE\java\net\sf\l2j\gameserver\handler\voicedcomm andhandlers
Создаем файлик lvlrew.java с таким содержанием:

Код:

package net.sf.l2j.gameserver.handler.voicedcommandhandlers;

import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.serverpackets.InventoryUpdate;

/**
* Demo-Version Level Reward System.
* Full Version you can buy in ICQ: 15181158
* @author MeGaPk
*/
public class lvlrew implements IVoicedCommandHandler
{
private static String[] VOICED_COMMANDS = { "lvlrew" };

public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
{
int CheckItem = 9999;
int ItemRew1 = 57; // 10 lvl
int ItemCount1 = 50000; // 10 lvl
int ItemRew2 = 57; // 20 lvl
int ItemCount2 = 800000; // 20 lvl
int ItemRew3 = 57; // 30 lvl
int ItemCount3 = 57; // 30 lvl
if (command.equalsIgnoreCase("lvlrew"))
{
if (activeChar.getInventory().getItemByItemId(CheckItem) == null)
{
InventoryUpdate iu = new InventoryUpdate();
activeChar.getInventory().addItem("lvlRew", CheckItem, 1, activeChar, null);
activeChar.getInventory().updateDatabase();
activeChar.sendPacket(iu);
}


if (activeChar.getLevel() > 9 && activeChar.getInventory().getInventoryItemCount(CheckItem, 0) == 1)
{
InventoryUpdate iu = new InventoryUpdate();
activeChar.getInventory().addItem("lvlRew", CheckItem, 1, activeChar, null);
activeChar.getInventory().addItem("lvlRew", ItemRew1, ItemCount1, activeChar, null);
activeChar.sendPacket(iu);
activeChar.sendMessage("You get 10 lvl! I give you " + ItemCount1 + " Adena");

}
if (activeChar.getLevel() > 19 && activeChar.getInventory().getInventoryItemCount(CheckItem, 0) == 2)
{
InventoryUpdate iu = new InventoryUpdate();
activeChar.getInventory().addItem("lvlRew", CheckItem, 1, activeChar, null);
activeChar.getInventory().addItem("lvlRew", ItemRew2, ItemCount2, activeChar, null);
activeChar.sendPacket(iu);
activeChar.sendMessage("You get 20 lvl! I give you " + ItemCount2 + " Adena");
}
if (activeChar.getLevel() > 29 && activeChar.getInventory().getInventoryItemCount(CheckItem, 0) == 3)
{
InventoryUpdate iu = new InventoryUpdate();
activeChar.getInventory().addItem("lvlRew", CheckItem, 1, activeChar, null);
activeChar.getInventory().addItem("lvlRew", ItemRew3, ItemCount3, activeChar, null);
activeChar.sendPacket(iu);
activeChar.sendMessage("You get 30 lvl! I give you " + ItemCount3 + " Adena");
}
}
return true;
}
public String[] getVoicedCommandList()
{
return VOICED_COMMANDS;
}
}

Затем лезем в эту папку: CORE\java\net\sf\l2j\gameserver\handler
заходим в кавайный файлик VoicedCommandHandler.java и ищим нечто чёрное и кодерное О_о.... А именно Строчку:

Код:

registerVoicedCommandHandler(new version())
И снизу добавляем:

Код:

registerVoicedCommandHandler(new lvlrew())
После этого, мы зальём в Базу данных этот MySql запрос (Он служит, как защита от делвла + от прокачки саба).

Код:

INSERT INTO `etcitem` VALUES ('9999', '123', 'flase', 'quest', '0', 'stackable', 'paper', 'none', '-1', '0', '0', 'false', 'false', 'false', 'false', 'IT', 'none');
И всё! Установка завершена, компилим и радуемся новведению!
Если надо, сами вынесите в конфиг.
Настройка выдачи регулируется в самом lvlrew.java, в строчках:

Код:

int CheckItem = 9999;
int ItemRew1 = 57; // 10 lvl
int ItemCount1 = 50000; // 10 lvl
int ItemRew2 = 57; // 20 lvl
int ItemCount2 = 800000; // 20 lvl
int ItemRew3 = 57; // 30 lvl
int ItemCount3 = 57; // 30 lvl

P/S: В Не Демо Версии автоматом выдаёт при достижении лвла, вплоть до Какого захотите, приобрести можно у меня в ICQ: 15181158


Текущее время: 07:00. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot