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

Donate Shop Lucera 1.7 Помощь

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

вот такая вот беда что не так кто знает?????

 

 

вот КОД

 

 

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 с которым можно говорить.

}

 

}

post-8790-0-36284300-1381270419_thumb.png

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


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

Проблема в том что если не изменяю файл, то норм все без ошибок если изменяю ID все пипец ошибка!!!!

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


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

notepad ++ юзай, это возможно при сохранении ошибки появляются

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


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

notepad ++ юзай, это возможно при сохранении ошибки появляются

 

да да именно так )

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


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

люсю 1.7 сложно настроить я неделю парил себе мозги и не доконца настроил)

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


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

люсю 1.7 сложно настроить я неделю парил себе мозги и не доконца настроил)

 

Пожалуйста, не отвечайте в теме, если вы не понимаете, о чем говорите. Уже не первый раз людей с толку сбиваете.

 

ТС, на следующий раз - засовывайте код в теги code, и под спойлер. Код не читабелен, но из ошибки: Читайте о типах и кодировках

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

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


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

notepad++

Кодировки>Кодировки>Крилица>Windows-1251

 

Измени кодировку и всё...

 

больше там ничего не надо :Р а ID меняется легко.

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


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

кодировка норм стоит, дело не в ней!

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


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

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

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

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

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

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

Войти

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

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

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

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

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