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

Cкрипт Аугментаций

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

Всем привет! Скачал скрипт для дон шопа а мне нужна только аугментация, примерно видно где описание выполнения скрипта(попробовал поудалял все лишнее и сервер выдал кучю ошибок).

Нужно вытянуть только скрипт аугментаций.

Буду рад любым вариантам так как новичок.

 

package custom.servicem;

 

import java.io.File;

import java.io.FileReader;

import java.io.LineNumberReader;

import java.util.HashMap;

import java.util.Map;

 

import java.sql.SQLException;

import java.sql.Connection;

import java.sql.PreparedStatement;

 

import ru.catssoftware.gameserver.network.SystemChatChannelId;

import ru.catssoftware.gameserver.network.serverpackets.CreatureSay;

import ru.catssoftware.gameserver.datatables.CharNameTable;

import ru.catssoftware.gameserver.datatables.ItemTable;

import ru.catssoftware.gameserver.handler.IVoicedCommandHandler;

import ru.catssoftware.gameserver.handler.VoicedCommandHandler;

import ru.catssoftware.gameserver.model.L2World;

import ru.catssoftware.gameserver.datatables.SkillTable;

import ru.catssoftware.gameserver.network.serverpackets.PledgeSkillList;

import ru.catssoftware.gameserver.model.actor.instance.L2NpcInstance;

import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance;

import ru.catssoftware.gameserver.model.quest.Quest;

import ru.catssoftware.gameserver.model.quest.QuestState;

import ru.catssoftware.gameserver.util.PcAction;

 

import ru.catssoftware.gameserver.model.itemcontainer.Inventory;

import ru.catssoftware.L2DatabaseFactory;

import ru.catssoftware.gameserver.model.L2ItemInstance;

 

public class ServiceManager extends Quest {

 

private static String qn = "ServiceManager";

private final static int ID_NPC_MANAGER = 50024; // ID Менеджера (NPC)

private static class Price {

private int []_itemId;

private int []_prices;

public Price(int []items, int[]count) {

_itemId = items;

_prices = count;

}

}

 

/**

* Настройки смены ника:

*/

int priceChangeNameId = 9303;

int priceChangeNameCount = 15;

 

int priceChangeColorNameId = 9303;

int priceChangeColorNameCount = 10;

 

int priceItemIdAugment = 9303;

int priceItemCountAugment = 40;

int attributes;

int skill;

int level;

 

int ItemIdClan = 9303;

int ClanLevel6 = 5;

int ClanLevel7 = 5;

int ClanLevel8 = 5;

int ClanCrpPrice = 5;

int ClanCrpCount = 10000;

int ClanSkillsCount = 30;

String str = "";

 

private static Map<Integer, Price> _premiumPrice = new HashMap<Integer, Price>();

 

private static Map<Integer, Price> _heroPrice = new HashMap<Integer, Price>();

 

private static Price _NoblesPrice = new Price(new int[] {9303}, new int [] {5});

 

private String colorTable = "<html><body><br>Смена цвета: <font color=74bff5>"+priceChangeColorNameCount+" "+(ItemTable.getInstance().getItemName(priceChangeColorNameId))+"</font><br><center>";

public ServiceManager() {

super(-1,qn,"custom");

// ================= ЦЕНЫ НА ДВОРЯНСТВО ========

// РґРЅРё, new Price(new int[] {через , РР” предметов},new int[] {через , количество});

_premiumPrice.put(1,new Price(new int[] { 9303},new int[] {1}));

_premiumPrice.put(7,new Price(new int[] { 9303},new int[] {5}));

_premiumPrice.put(14,new Price(new int[] { 9303},new int[] {10}));

_premiumPrice.put(31,new Price(new int[] { 9303},new int[] {20}));

 

 

// ================ ЦЕНЫ РќРђ ГЕРОРР—Рњ ===============

_heroPrice.put(1, new Price(new int[] { 9303},new int[] {2}));

_heroPrice.put(7, new Price(new int[] {9303},new int[] {15}));

_heroPrice.put(31, new Price(new int[] {9303},new int[] {50}));

 

// ================ Список цветов ника и титула ===============

/* _colorPrice.put(1, new ColorId(new int[] {FFFF00},new int[] {голубым}));

_colorPrice.put(2, new ColorId(new int[] {000000},new int[] {черным}));

_colorPrice.put(3, new ColorId(new int[] {FF0000},new int[] {синим}));

_colorPrice.put(4, new ColorId(new int[] {FF00FF},new int[] {розовым}));

_colorPrice.put(5, new ColorId(new int[] {808080},new int[] {серым}));

_colorPrice.put(6, new ColorId(new int[] {008000},new int[] {зеленым}));

_colorPrice.put(7, new ColorId(new int[] {00FF00},new int[] {лаймовым}));

_colorPrice.put(8, new ColorId(new int[] {800000},new int[] {темно-синим}));

_colorPrice.put(9, new ColorId(new int[] {008080},new int[] {оливковым}));

_colorPrice.put(10, new ColorId(new int[] {800080},new int[] {пурпурным}));

_colorPrice.put(11, new ColorId(new int[] {808000},new int[] {сине-зелёным}));

_colorPrice.put(12, new ColorId(new int[] {FFFFFF},new int[] {белым}));

_colorPrice.put(13, new ColorId(new int[] {00FFFF},new int[] {желтым}));

_colorPrice.put(14, new ColorId(new int[] {C0C0C0},new int[] {серебряным}));

_colorPrice.put(15, new ColorId(new int[] {17A0D4},new int[] {золотым}));

*/

 

// Таблица цветов из colors.table

File f = new File(getScriptFile());

try {

LineNumberReader lnr = new LineNumberReader(new FileReader(f.getParent()+"/colors.table"));

String line;

while((line=lnr.readLine())!=null) {

String []colors = line.split("\t");

for(int i=0;i<colors.length;i++)

colorTable+="<a action=\"bypass -h Quest "+qn+" colorname "+colors+"\"><font color=\""+colors+"\">Выбрать цвет ника</font></a> - <a action=\"bypass -h Quest "+qn+" colortitle "+colors+"\"><font color=\""+colors+"\">Выбрать цвет титула</font></a><br>";

}

} catch(Exception e) {

System.out.println("Error reading "+f.getParent()+"/colors.table");

}

}

 

public void criticalTo(L2PcInstance player, String text)

{

CreatureSay cs = new CreatureSay(0, SystemChatChannelId.Chat_Critical_Announce, "", text);

player.sendPacket(cs);

}

private void updateAugment(L2PcInstance player, int attributes, int skill, int level) {

L2ItemInstance item = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);

if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND) == null)

{

criticalTo(player, "Вы должны одеть оружие.");

}

else if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).isAugmented())

{

criticalTo(player, "В оружие уже присутствует аугументация.");

}

else if (!checkMoney(player, priceItemIdAugment, priceItemCountAugment, true))

{

criticalTo(player, "У Вас недостаточно денег.");

}

else

{

try

{

Connection con = L2DatabaseFactory.getInstance().getConnection();

PreparedStatement stm = con.prepareStatement("REPLACE INTO item_attributes VALUES(?,?,?,?)");

stm.setInt(1, item.getObjectId());

stm.setInt(2, attributes*65536+1);

stm.setInt(3, skill);

stm.setInt(4, level);

stm.execute();

criticalTo(player, "Аугументация прошла успешно. Вам нужно перезайти.");

stm.close();

}

catch (SQLException e)

{

_log.error("error creating augment shop data table ", e);

}

}

}

private boolean checkMoney(L2PcInstance player, Price price) {

for(int i=0;i<price._itemId.length;i++) // Проверяем средства

if(player.getInventory().getItemByItemId(price._itemId)==null ||

player.getInventory().getItemByItemId(price._itemId).getCount() < price._prices) {

return false; // Нет денег? Сории

}

for(int i=0;i<price._itemId.length;i++) // Отнимаем средства у населения

if(!player.destroyItemByItemId(qn, price._itemId, price._prices, null, true)) {

return false;

}

return true;

}

 

private boolean checkMoney(L2PcInstance player, int itemId, int count, boolean destroy)

{

if(player.getInventory().getItemByItemId(itemId)==null || player.getInventory().getItemByItemId(itemId).getCount() < count)

return false; // Нет денег? Сории

 

if(destroy && !player.destroyItemByItemId(qn, itemId, count, null, true))

return false;

 

return true;

}

 

@Override

public String onAdvEvent(String event, L2NpcInstance npc, L2PcInstance player) {

 

String []args = event.split(" "); // Разбираем строку параметров

if(args[0].equals("premiumlist")) { // Формируем список доступных дней премиума

String html = "<html><body><br>Покупка премиума:<br><center>";

for(int days : _premiumPrice.keySet()) {

html+="<a action=\"bypass -h Quest "+qn+" premium "+days+"\">На "+days+" дней</a> -";

Price price = _premiumPrice.get(days);

for(int i=0;i<price._itemId.length;i++) { // Формируем список стоимости

if(i!=0) // Добавляем ,

html+=",";

html+=price._prices+" "+ItemTable.getInstance().getTemplate(price._itemId).getName();

}

 

}

html+="</center></body></html>";

return html;

}

else if(args[0].equals("herolist")) { // Список достпуного геройства, аналогично премиуму

String html = "<html><body><br>Покупка Геройства:<br><center>";

for(int days : _heroPrice.keySet()) {

html+="<a action=\"bypass -h Quest "+qn+" hero "+days+"\">На "+days+" дней</a> -";

Price price = _heroPrice.get(days);

for(int i=0;i<price._itemId.length;i++) { // Формируем список стоимости

if(i!=0) // Добавляем ,

html+=",";

html+=price._prices+" "+ItemTable.getInstance().getTemplate(price._itemId).getName();

}

 

}

html+="</center></body></html>";

return html;

}

 

else if(args[0].equals("premium")) { // Выдаем премиум

if(player.getPremiumService()!=0) // Проверяем а не премимум ли чар?

return "already-premium.htm";

int numDays = Integer.parseInt(args[1]); // В Java массивы нумеруются с 0

Price price = _premiumPrice.get(numDays); // Ищем цену в списке цен

if(price==null) // Не нашли. Что-то тут не то...

return "invalid-param.htm";

if(!checkMoney(player,price)) // Проверяем деньги

return "no-money.htm";

 

PcAction.addPremiumServices(player, numDays, player.getAccountName()); // Выдаем премиум

// Показываем .premium меню

IVoicedCommandHandler premium = VoicedCommandHandler.getInstance().getVoicedCommandHandler("premium");

if(premium!=null)

premium.useVoicedCommand("premium", player, null);

else

return "success.htm";

}

else if(args[0].equals("noblese")) { // Дворянство

if(player.isNoble()) // Игрок уже нубл

return "already-noble.htm";

if(!checkMoney(player, _NoblesPrice)) // Проверяем Деньги

return "Nobless.htm";

player.setNoble(true); // Даем нубла

return "success.htm";

}

else if(args[0].equals("hero")) { // Геройство

if(player.isHero())

return "already-hero.htm";

int numDays = Integer.parseInt(args[1]);

Price price = _heroPrice.get(numDays); // Ищем цену в списке цен

if(price==null) // Не нашли. Что-то тут не то...

return "invalid-param.htm";

if(!checkMoney(player, price)) // Проверяем Деньги

return "no-money.htm";

PcAction.addHeroStatus(player, numDays); // Даем героя России.

return "success.htm";

}

else if(args[0].equals("colorname")) {

String colorsid = args[1];

if (!checkMoney(player, priceChangeColorNameId, priceChangeColorNameCount, true))

{

criticalTo(player, "У Вас не хватает денег!");

}

else

{

player.getAppearance().setNameColor(colorsid);

L2World.getInstance().removeFromAllPlayers(player);

player.store();

L2World.getInstance().addToAllPlayers(player);

player.broadcastUserInfo();

criticalTo(player, "Вы успешно сменили цвет ника!");

}

}

else if(args[0].equals("colortitle")) {

String colorsid = args[1];

if (!checkMoney(player, priceChangeColorNameId, priceChangeColorNameCount, true))

{

criticalTo(player, "У Вас не хватает денег!");

}

else

{

player.getAppearance().setTitleColor(colorsid);

L2World.getInstance().removeFromAllPlayers(player);

player.store();

L2World.getInstance().addToAllPlayers(player);

player.broadcastUserInfo();

criticalTo(player, "Вы успешно сменили цвет титула!");

}

}

else if(args[0].equals("augment")) {

updateAugment(player, Integer.parseInt(args[1].substring(0,5)), Integer.parseInt(args[1].substring(6,10)), Integer.parseInt(args[1].substring(11,13)));

}

else if(args[0].equals("clanlevel6")) {

if (!player.isClanLeader())

{

criticalTo(player, "Вы не глава клана. Только глава клана может это сделать.");

}

else if (player.getClan().getLevel() != 5)

{

criticalTo(player, "У Вас не верный уровень клана. Можете только при уровне клана 5");

}

else if (!checkMoney(player, ItemIdClan, ClanLevel6, true))

{

criticalTo(player, "У Вас не хватает денег!");

}

else

{

player.getClan().changeLevel(6);

L2World.getInstance().removeFromAllPlayers(player);

player.store();

L2World.getInstance().addToAllPlayers(player);

player.broadcastUserInfo();

criticalTo(player, "Вы успешно повысили левел клана до 6 уровня!");

}

}

else if(args[0].equals("clanlevel7")) {

if (!player.isClanLeader())

{

criticalTo(player, "Вы не глава клана. Только глава клана может это сделать.");

}

else if (player.getClan().getLevel() != 6)

{

criticalTo(player, "У Вас не верный уровень клана. Можете только при уровне клана 6");

}

else if (!checkMoney(player, ItemIdClan, ClanLevel7, true))

{

criticalTo(player, "У Вас не хватает денег!");

}

else

{

player.getClan().changeLevel(7);

L2World.getInstance().removeFromAllPlayers(player);

player.store();

L2World.getInstance().addToAllPlayers(player);

player.broadcastUserInfo();

criticalTo(player, "Вы успешно повысили левел клана до 7 уровня!");

}

}

else if(args[0].equals("clanlevel8")) {

if (!player.isClanLeader())

{

criticalTo(player, "Вы не глава клана. Только глава клана может это сделать.");

}

else if (player.getClan().getLevel() != 7)

{

criticalTo(player, "У Вас не верный уровень клана. Можете только при уровне клана 7");

}

else if (!checkMoney(player, ItemIdClan, ClanLevel8, true))

{

criticalTo(player, "У Вас не хватает денег!");

}

else

{

player.getClan().changeLevel( 8);

L2World.getInstance().removeFromAllPlayers(player);

player.store();

L2World.getInstance().addToAllPlayers(player);

player.broadcastUserInfo();

criticalTo(player, "Вы успешно повысили левел клана до 8 уровня!");

}

}

else if(args[0].equals("clanrepa")) {

if (!player.isClanLeader())

{

criticalTo(player, "Вы не являетесь лидером клана");

}

else if (!checkMoney(player, ItemIdClan, ClanCrpPrice, true))

{

criticalTo(player, "У Вас не хватает денег!");

}

else

{

player.getClan().setReputationScore(player.getClan().getReputationScore()+ClanCrpCount, true);

criticalTo(player, "Ваш клан получил "+ClanCrpCount+" очков репутации! Сделайте релог.");

}

}

else if(args[0].equals("clanskills")) {

if (!player.isClanLeader())

{

criticalTo(player, "Вы не являетесь лидером клана");

}

else if (player.getClan().getLevel() != 8)

{

criticalTo(player, "У Вас не верный уровень клана. Можете только при уровне клана 8");

}

else if (!checkMoney(player, ItemIdClan, ClanSkillsCount, true))

{

criticalTo(player, "У Вас не хватает денег!");

}

else

{

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(370,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(371,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(372,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(373,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(374,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(375,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(376,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(377,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(378,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(379,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(380,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(381,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(382,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(383,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(384,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(385,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(386,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(387,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(388,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(389,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(390,3));

player.getClan().addNewSkill(SkillTable.getInstance().getInfo(391,1));

criticalTo(player, "Ваш клан получил все Клановые Способности. Вам нужно перезайти.");

player.getClan().addSkillEffects(true);

player.getClan().broadcastToOnlineMembers(new PledgeSkillList(player.getClan()));

}

}

else if(args[0].startsWith("changeName"))

{

String htmltext;

 

if (args.length==1 || args.length>2)

{

htmltext = "<html><body>Смена имени: <font color=74bff5>"+priceChangeNameCount+" "+(ItemTable.getInstance().getItemName(priceChangeNameId))+"</font>";

htmltext += "<img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br><img src=\"L2UI.SquareBlank\" width=260 height=2><br1>";

htmltext += "<center>Введите желаемое имя:</center>";

htmltext += "<center><edit var=\"nick\" width=200 length=\"16\"><br></center>";

htmltext += "<center><button value=\"Изменить\" action=\"bypass -h Quest "+ qn +" changeName $nick\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalOn\" fore=\"L2UI_ch3.Btn1_normal\"><br></center>";

htmltext += "<center><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32></center></body></html>";

return htmltext;

}

else if (args.length==2)

{

String name = args[1];

if (!name.matches("[a-zA-Z0-9!%:?()_+-@\\[\\]^]{3,16}") || name.contains("ADM") || name.contains("GM"))

{

criticalTo(player, "Ваш ник не соответствует правилам.");

}

else if (CharNameTable.getInstance().getByName(name) != null)

{

criticalTo(player, "Это имя уже занято!");

}

else if (player.getClanId()!=0)

{

criticalTo(player, "Вы должны выйти из клана, прежде чем менять ник. После вы можете войти обратно.");

}

else if (!checkMoney(player, priceChangeNameId, priceChangeNameCount, true))

{

return "no-money.htm";

}

else

{

player.setName(name);

L2World.getInstance().removeFromAllPlayers(player);

player.changeName(name);

player.store();

L2World.getInstance().addToAllPlayers(player);

player.broadcastUserInfo();

criticalTo(player, "Вы успешно сменили свой ник! Пожалуйста перезайдите.");

}

}

 

}

else if(args[0].equals("colorlist"))

{

colorTable = "<tr><td>"+colorTable+"</td></tr>";

colorTable += "<center></body></html>";

return colorTable;

}

else if(args[0].equals("clanlist"))

{

String html = "clanlist.htm";

return html;

}

else if(args[0].equals("active"))

{

String htmltext = "active.htm";

 

return htmltext;

}

else if(args[0].equals("passive"))

{

String htmltext = "passive.htm";

return htmltext;

}

else if(args[0].equals("chance"))

{

String htmltext = "chance.htm";

return htmltext;

}

return "donate.htm";

}

 

@Override

public String onFirstTalk(L2NpcInstance npc, L2PcInstance player) {

return onTalk(npc, player);

}

@Override

public String onTalk(L2NpcInstance npc, L2PcInstance player) {

 

QuestState qs = player.getQuestState(qn);

if(qs==null)

qs = newQuestState(player);

 

return "donate.htm";

}

 

public static void main(String[] args) {

ServiceManager ps = new ServiceManager();

ps.addFirstTalkId(ID_NPC_MANAGER); // Мы не хотим писать диалог для этого НПЦ

ps.addStartNpc(ID_NPC_MANAGER); // Автоматический контроль состояния квеста

ps.addTalkId(ID_NPC_MANAGER); // NPC с которым можно говорить.

}

 

}

 

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

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


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

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

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

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

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

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

Войти

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

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

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

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

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