-
Публикаций
788 -
Зарегистрирован
-
Посещение
-
Победитель дней
3 -
Отзывы
0%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент TIESTO
-
Да это же критик пытающийся себя проявить!
-
Сделай копию своего CommunityBoard, а этот залей с заменой и я уверен телепорт сработает. http://rghost.ru/7DVBt9r7N
-
Интерлюд.су х100 ведь есть на форуме поищите.
-
Да там 255_Tutorial не работает.
-
Попробуй java 7.21 поставить.
-
По попробуйка это http://rghost.ru/7QZPTJMSq
-
Воу да возим уже с другой соответствующий сборки Npc sql.
-
Ну тогда не правильно IP.
-
Если пускает на локалке, а на свой ип не пускает тогда надо открыть порты. ( у провайдера)
-
1) Установить java-JRE 7.21 2) Установить Navicat,MySQL. 3) Залить базу. 4) Нужно указать в StartGameserver оперативную память. 5) ЗАПУСК СБОРКИ.
-
http://forummaxi.ru/files/file/1068-global-gatekeeper-х100/
-
В основном на всех сборках не пашет. А вот играю на с4 хроник так там работает класс! вот и задумался....
-
Не гони! Всё работает, а именно уведомление Blue Gemstone не работает из-за патча?
-
Пробовал уже. Скинь в котором работает уже.
-
import sys from ru.catssoftware.gameserver.model.quest import State from ru.catssoftware.gameserver.model.quest import QuestState from ru.catssoftware.gameserver.model.quest.jython import QuestJython as JQuest qn = "255_Tutorial" # Начала приветствия в игре [voice, html] QTEXMTWO = { 0 : ["tutorial_voice_001a","tutorial_human_fighterWelcome.htm"], 10 : ["tutorial_voice_001b","tutorial_human_mageWelcome.htm"], 18 : ["tutorial_voice_001c","tutorial_elven_fighterWelcome.htm"], 25 : ["tutorial_voice_001d","tutorial_elven_mageWelcome.htm"], 31 : ["tutorial_voice_001e","tutorial_delf_fighterWelcome.htm"], 38 : ["tutorial_voice_001f","tutorial_delf_mageWelcome.htm"], 44 : ["tutorial_voice_001g","tutorial_orc_fighterWelcome.htm"], 49 : ["tutorial_voice_001h","tutorial_orc_mageWelcome.htm"], 53 : ["tutorial_voice_001i","tutorial_dwarven_fighterWelcome.htm"], } # table for Client Event Enable ( [html, x, y, z] CEEa = { 0 : ["tutorial_human_fighter007.htm",-71424,258336,-3109], 10 : ["tutorial_human_mage007.htm",-91036,248044,-3568], 18 : ["tutorial_elf007.htm",46112,41200,-3504], 25 : ["tutorial_elf007.htm",46112,41200,-3504], 31 : ["tutorial_delf007.htm",28384,11056,-4233], 38 : ["tutorial_delf007.htm",28384,11056,-4233], 44 : ["tutorial_orc007.htm",-56736,-113680,-672], 49 : ["tutorial_orc007.htm",-56736,-113680,-672], 53 : ["tutorial_dwarven_fighter007.htm",108567,-173994,-406], } # table for Question Mark Clicked (9 & 11) learning skills [html, x, y, z] QMCa = { 0 : ["tutorial_fighter017.htm",-83165,242711,-3720], 10 : ["tutorial_mage017.htm",-85247,244718,-3720], 18 : ["tutorial_fighter017.htm",45610,52206,-2792], 25 : ["tutorial_mage017.htm",45610,52206,-2792], 31 : ["tutorial_fighter017.htm",10344,14445,-4242], 38 : ["tutorial_mage017.htm",10344,14445,-4242], 44 : ["tutorial_fighter017.htm",-46324,-114384,-200], 49 : ["tutorial_fighter017.htm",-46305,-112763,-200], 53 : ["tutorial_fighter017.htm",115447,-182672,-1440], } # table for Question Mark Clicked (24) newbie lvl [html] QMCb = { 0 : "tutorial_human009.htm", 10 : "tutorial_human009.htm", 18 : "tutorial_elf009.htm", 25 : "tutorial_elf009.htm", 31 : "tutorial_delf009.htm", 38 : "tutorial_delf009.htm", 44 : "tutorial_orc009.htm", 49 : "tutorial_orc009.htm", 53 : "tutorial_dwarven009.htm", } # table for Question Mark Clicked (35) 1st class transfer [html] QMCc = { 0 : "tutorial_21.htm", 10 : "tutorial_21a.htm", 18 : "tutorial_21b.htm", 25 : "tutorial_21c.htm", 31 : "tutorial_21g.htm", 38 : "tutorial_21h.htm", 44 : "tutorial_21d.htm", 49 : "tutorial_21e.htm", 53 : "tutorial_21f.htm" } # table for Tutorial Close Link (26) 2nd class transfer [html] TCLa = { 1 : "tutorial_22w.htm", 4 : "tutorial_22.htm", 7 : "tutorial_22b.htm", 11 : "tutorial_22c.htm", 15 : "tutorial_22d.htm", 19 : "tutorial_22e.htm", 22 : "tutorial_22f.htm", 26 : "tutorial_22g.htm", 29 : "tutorial_22h.htm", 32 : "tutorial_22n.htm", 35 : "tutorial_22o.htm", 39 : "tutorial_22p.htm", 42 : "tutorial_22q.htm", 45 : "tutorial_22i.htm", 47 : "tutorial_22j.htm", 50 : "tutorial_22k.htm", 54 : "tutorial_22l.htm", 56 : "tutorial_22m.htm" } # table for Tutorial Close Link (23) 2nd class transfer [html] TCLb = { 4 : "tutorial_22aa.htm", 7 : "tutorial_22ba.htm", 11 : "tutorial_22ca.htm", 15 : "tutorial_22da.htm", 19 : "tutorial_22ea.htm", 22 : "tutorial_22fa.htm", 26 : "tutorial_22ga.htm", 32 : "tutorial_22na.htm", 35 : "tutorial_22oa.htm", 39 : "tutorial_22pa.htm", 50 : "tutorial_22ka.htm" } # table for Tutorial Close Link (24) 2nd class transfer [html] TCLc = { 4 : "tutorial_22ab.htm", 7 : "tutorial_22bb.htm", 11 : "tutorial_22cb.htm", 15 : "tutorial_22db.htm", 19 : "tutorial_22eb.htm", 22 : "tutorial_22fb.htm", 26 : "tutorial_22gb.htm", 32 : "tutorial_22nb.htm", 35 : "tutorial_22ob.htm", 39 : "tutorial_22pb.htm", 50 : "tutorial_22kb.htm" } class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onAdvEvent(self,event,npc,player): st = player.getQuestState(qn) classId = int(st.getPlayer().getClassId().getId()) string = event[0:2] htmltext = "" # USER CONNECTED # if string == "UC" : playerLevel = player.getLevel() if playerLevel < 6 and st.getInt("onlyone") == 0 : uc = st.getInt("ucMemo") if uc == 0 : st.set("ucMemo","0") st.startQuestTimer("QT",10000) st.set("ucMemo","0") st.set("Ex","-2") elif uc == 1 : st.showQuestionMark(1) st.playTutorialVoice("tutorial_voice_006") st.playSound("ItemSound.quest_tutorial") elif uc == 2 : if st.getInt("Ex") == 2 : st.showQuestionMark(3) st.playSound("ItemSound.quest_tutorial") if st.getQuestItemsCount(6353) == 1 : st.showQuestionMark(5) st.playSound("ItemSound.quest_tutorial") elif uc == 3 : st.showQuestionMark(12) st.playSound("ItemSound.quest_tutorial") st.onTutorialClientEvent(0) else : return # QUEST TIMER # elif string == "QT" : Ex = st.getInt("Ex") if Ex == -2 : if classId in QTEXMTWO.keys(): voice, htmltext = QTEXMTWO[classId] st.playTutorialVoice(voice) if st.getQuestItemsCount(5588) == 0 : st.giveItems(5588,1) st.startQuestTimer("QT",30000) st.set("Ex","-3") elif Ex == -3 : st.playTutorialVoice("tutorial_voice_002") st.set("Ex","0") elif Ex == -4 : st.playTutorialVoice("tutorial_voice_008") st.set("Ex","-5") # TUTORIAL CLOSE [N] # elif string == "TE" : if event[2:].isdigit() : event_id = int(event[2:]) if event_id == 0 : st.closeTutorialHtml() elif event_id == 1 : st.closeTutorialHtml() st.playTutorialVoice("tutorial_voice_006") st.showQuestionMark(1) st.playSound("ItemSound.quest_tutorial") st.startQuestTimer("QT",30000) st.set("Ex","-4") elif event_id == 2 : st.playTutorialVoice("tutorial_voice_003") htmltext = "tutorial_02.htm" st.onTutorialClientEvent(1) st.set("Ex","-5") elif event_id == 3 : htmltext = "tutorial_03.htm" st.onTutorialClientEvent(2) elif event_id == 5 : htmltext = "tutorial_05.htm" st.onTutorialClientEvent( elif event_id == 7 : htmltext = "tutorial_100.htm" st.onTutorialClientEvent(0) elif event_id == 8 : htmltext = "tutorial_101.htm" st.onTutorialClientEvent(0) elif event_id == 10 : htmltext = "tutorial_103.htm" st.onTutorialClientEvent(0) elif event_id == 12 : st.closeTutorialHtml() elif event_id == 23 : if classId in TCLb.keys(): htmltext = TCLb[classId] elif event_id == 24 : if classId in TCLc.keys(): htmltext = TCLc[classId] elif event_id == 25 : htmltext = "tutorial_22cc.htm" elif event_id == 26 : if classId in TCLa.keys(): htmltext = TCLa[classId] elif event_id == 27 : htmltext = "tutorial_29.htm" elif event_id == 28 : htmltext = "tutorial_28.htm" # CLIENT EVENT ENABLE [N] # elif string == "CE" : if event[2:].isdigit() : event_id = int(event[2:]) playerLevel = player.getLevel() if event_id == 1 : if playerLevel < 6 : st.playTutorialVoice("tutorial_voice_004") htmltext = "tutorial_03.htm" st.playSound("ItemSound.quest_tutorial") st.onTutorialClientEvent(2) elif event_id == 2 : if playerLevel < 6 : st.playTutorialVoice("tutorial_voice_005") htmltext = "tutorial_05.htm" st.playSound("ItemSound.quest_tutorial") st.onTutorialClientEvent( elif event_id == 8 : if playerLevel < 6 : if classId in CEEa.keys(): htmltext, x, y, z = CEEa[classId] st.playSound("ItemSound.quest_tutorial") st.addRadar(x,y,z) st.playTutorialVoice("tutorial_voice_007") st.set("ucMemo","1") st.set("Ex","-5") elif event_id == 30 : if playerLevel < 6 and st.getInt("Die") == 0: st.playTutorialVoice("tutorial_voice_016") st.playSound("ItemSound.quest_tutorial") st.set("Die","1") st.showQuestionMark( st.onTutorialClientEvent(0) elif event_id == 800000 : if playerLevel < 6 and st.getInt("sit") == 0: st.playTutorialVoice("tutorial_voice_018") st.playSound("ItemSound.quest_tutorial") st.set("sit","1") st.onTutorialClientEvent(0) htmltext = "tutorial_21z.htm" elif event_id == 40 : if playerLevel == 5 and player.getClassId().level() == 0: if st.getInt("lvl") < 5 : if not player.getClassId().isMage() or classId == 49: st.playTutorialVoice("tutorial_voice_014") st.showQuestionMark(9) st.playSound("ItemSound.quest_tutorial") st.set("lvl","5") elif playerLevel == 6 and st.getInt("lvl") < 6 and player.getClassId().level() == 0: st.playTutorialVoice("tutorial_voice_020") st.playSound("ItemSound.quest_tutorial") st.showQuestionMark(24) st.set("lvl","6") elif playerLevel == 7 and player.getClassId().isMage() and classId != 49: if st.getInt("lvl") < 7 and player.getClassId().level() == 0: st.playTutorialVoice("tutorial_voice_019") st.playSound("ItemSound.quest_tutorial") st.set("lvl","7") st.showQuestionMark(11) elif playerLevel == 10 : if st.getInt("lvl") < 10: st.playTutorialVoice("tutorial_voice_030") st.playSound("ItemSound.quest_tutorial") st.set("lvl","10") st.showQuestionMark(27) elif playerLevel == 15 : if st.getInt("lvl") < 15: st.playSound("ItemSound.quest_tutorial") st.set("lvl","15") st.showQuestionMark(17) elif playerLevel == 19 : if st.getInt("lvl") < 19: race = st.getPlayer().getRace().ordinal() if race != 5 and player.getClassId().level() == 0 : if classId in [0,10,18,25,31,38,44,49,52]: #st.playTutorialVoice("tutorial_voice_???") st.playSound("ItemSound.quest_tutorial") st.set("lvl","19") st.showQuestionMark(35) elif playerLevel == 35 : if st.getInt("lvl") < 35: race = st.getPlayer().getRace().ordinal() if race != 5 and player.getClassId().level() == 1 : if classId in [1,4,7,11,15,19,22,26,29,32,35,39,42,45,47,50,54,56]: #st.playTutorialVoice("tutorial_voice_???") st.playSound("ItemSound.quest_tutorial") st.set("lvl","35") st.showQuestionMark(34) elif event_id == 45 : if playerLevel < 6 : if st.getInt("HP") == 0: st.playTutorialVoice("tutorial_voice_017") st.playSound("ItemSound.quest_tutorial") st.set("HP","1") st.showQuestionMark(10) st.onTutorialClientEvent(800000) elif event_id == 57 : if playerLevel < 6 and st.getInt("Adena") == 0: st.playTutorialVoice("tutorial_voice_012") st.playSound("ItemSound.quest_tutorial") st.set("Adena","1") st.showQuestionMark(23) elif event_id == 6353 : if playerLevel < 6 and st.getInt("Gemstone") == 0: st.playTutorialVoice("tutorial_voice_013") st.playSound("ItemSound.quest_tutorial") st.set("Gemstone","1") st.showQuestionMark(5) # QUESTION MARK CLICKED [N] # elif string == "QM" : if event[2:].isdigit() : MarkId = int(event[2:]) if MarkId == 1 : st.playTutorialVoice("tutorial_voice_007") st.set("Ex","-5") if classId in CEEa.keys(): htmltext, x, y, z = CEEa[classId] st.addRadar(x,y,z) elif MarkId == 3 : htmltext = "tutorial_09.htm" elif MarkId == 5 : if classId in CEEa.keys(): htmltext, x, y, z = CEEa[classId] st.addRadar(x,y,z) htmltext = "tutorial_11.htm" elif MarkId == 7 : htmltext = "tutorial_15.htm" st.set("ucMemo","3") elif MarkId == 8 : htmltext = "tutorial_18.htm" elif MarkId == 9 : if classId in QMCa.keys(): htmltext, x, y, z = QMCa[classId] st.addRadar(x,y,z) elif MarkId == 10 : htmltext = "tutorial_19.htm" elif MarkId == 11 : if classId in QMCa.keys(): htmltext, x, y, z = QMCa[classId] st.addRadar(x,y,z) elif MarkId == 12 : htmltext = "tutorial_15.htm" st.set("ucMemo","4") elif MarkId == 13 : htmltext = "tutorial_30.htm" elif MarkId == 17 : htmltext = "tutorial_27.htm" elif MarkId == 23 : htmltext = "tutorial_24.htm" elif MarkId == 24 : if classId in QMCb.keys(): htmltext = QMCb[classId] elif MarkId == 26 : if st.getPlayer().getClassId().isMage() and classId != 49 : htmltext = "tutorial_newbie004b.htm" else : htmltext = "tutorial_newbie004a.htm" elif MarkId == 27 : htmltext = "tutorial_20.htm" elif MarkId == 34 : htmltext = "tutorial_28.htm" elif MarkId == 35 : if classId in QMCc.keys(): htmltext = QMCc[classId] if htmltext == "": return st.showTutorialHTML(str(htmltext)) return QUEST = Quest(255,qn,"Tutorial") Как сделать чтобы было уведомление?
-
Да тут в шопе есть рецы которые надо для х100 http://forummaxi.ru/files/file/1065-gm-shop-х100/
-
С помощью 2lfileditor в файле itemname-e
-
Советую 360 Total Security. Я им пользуюсь!
-
New-coins.ru New-coins.com New-coins.org
-
Читай тему там надаёшь ссылку на норм отображение. http://forummaxi.ru/topic/72674-редактирование-клиента/
-
Когда удаляю папку free то показывает диялог с ценами на телепорт. Когда обе папки Free, half диялог телепорта не открывает. Сылается на " Телепорт Free" и так обртано на " Телепорт" Я хз что делать. Я знаю что можно сделать бесплатно... кинув free html и в конфик труе бесплатно ставим и все. Но когда захожу в тп там нету телепорт нюблесс обмен камней на телепорт, задание. Просто хз как объяснить! Прошу кто хочет зайти на сервер качайте файлы. Может так проще понять будет. Авто рег стоит. https://yadi.sk/d/i2_k_dGheD8qo
-
package ru.catssoftware.gameserver.model.actor.instance; import java.util.Calendar; import java.util.StringTokenizer; import org.apache.log4j.Logger; import ru.catssoftware.Config; import ru.catssoftware.Message; import ru.catssoftware.gameserver.SevenSigns; import ru.catssoftware.gameserver.cache.HtmCache; import ru.catssoftware.gameserver.datatables.TeleportLocationTable; import ru.catssoftware.gameserver.instancemanager.CastleManager; import ru.catssoftware.gameserver.instancemanager.SiegeManager; import ru.catssoftware.gameserver.instancemanager.TownManager; import ru.catssoftware.gameserver.model.L2TeleportLocation; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.restriction.AvailableRestriction; import ru.catssoftware.gameserver.model.restriction.ObjectRestrictions; import ru.catssoftware.gameserver.network.SystemMessageId; import ru.catssoftware.gameserver.network.serverpackets.ActionFailed; import ru.catssoftware.gameserver.network.serverpackets.NpcHtmlMessage; import ru.catssoftware.gameserver.templates.chars.L2NpcTemplate; public class L2TeleporterInstance extends L2FolkInstance { private final static Logger _log = Logger.getLogger(L2TeleporterInstance.class.getName()); private static final int COND_ALL_FALSE = 0; private static final int COND_BUSY_BECAUSE_OF_SIEGE = 1; private static final int COND_OWNER = 2; private static final int COND_REGULAR = 3; public L2TeleporterInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } @Override public void onBypassFeedback(L2PcInstance player, String command) { if (ObjectRestrictions.getInstance().checkRestriction(player, AvailableRestriction.PlayerTeleport)) { player.sendMessage(Message.getMessage(player, Message.MessageId.MSG_NOT_ALLOWED_AT_THE_MOMENT)); return; } int condition = validateCondition(player); StringTokenizer st = new StringTokenizer(command, " "); String actualCommand = st.nextToken(); // Get actual command if (actualCommand.equalsIgnoreCase("goto")) { if(player.isImmobilized()) { player.actionFail(); return; } int npcId = getTemplate().getNpcId(); String filename = SevenSigns.SEVEN_SIGNS_HTML_PATH; int playerCabal = SevenSigns.getInstance().getPlayerCabal(player); boolean isSealValidationPeriod = SevenSigns.getInstance().isSealValidationPeriod(); int compWinner = SevenSigns.getInstance().getCabalHighestScore(); switch (npcId) { case 31103: // case 31104: // case 31105: // case 31106: // Exit Necropolises case 31107: // case 31108: // case 31109: // case 31110: // case 31120: // case 31121: // case 31122: // Exit Catacombs case 31123: // case 31124: // case 31125: // player.setIsIn7sDungeon(false); break; case 31095: // case 31096: // case 31097: // case 31098: // Enter Necropolises case 31099: // case 31100: // case 31101: // case 31102: // { boolean canPort = true; if (isSealValidationPeriod) { if (Config.ALT_STRICT_SEVENSIGNS) { if (compWinner == SevenSigns.CABAL_DAWN && playerCabal != SevenSigns.CABAL_DAWN) { player.sendPacket(SystemMessageId.CAN_BE_USED_BY_DAWN); canPort = false; } else if (compWinner == SevenSigns.CABAL_DUSK && playerCabal != SevenSigns.CABAL_DUSK) { player.sendPacket(SystemMessageId.CAN_BE_USED_BY_DUSK); canPort = false; } else if (compWinner == SevenSigns.CABAL_NULL && playerCabal != SevenSigns.CABAL_NULL) canPort = true; else if (playerCabal == SevenSigns.CABAL_NULL) canPort = false; } } else { if (Config.ALT_STRICT_SEVENSIGNS) { if (playerCabal == SevenSigns.CABAL_NULL) canPort = false; } } if (!canPort) { NpcHtmlMessage htmlNecro = new NpcHtmlMessage(getObjectId()); filename += "necro_no.htm"; htmlNecro.setFile(filename); player.sendPacket(htmlNecro); return; } player.setIsIn7sDungeon(true); break; } case 31114: // case 31115: // case 31116: // Enter Catacombs case 31117: // case 31118: // case 31119: // { boolean canPort = true; if (isSealValidationPeriod) { if (Config.ALT_STRICT_SEVENSIGNS) { if (compWinner == SevenSigns.CABAL_DAWN && playerCabal != SevenSigns.CABAL_DAWN) { player.sendPacket(SystemMessageId.CAN_BE_USED_BY_DAWN); canPort = false; } else if (compWinner == SevenSigns.CABAL_DUSK && playerCabal != SevenSigns.CABAL_DUSK) { player.sendPacket(SystemMessageId.CAN_BE_USED_BY_DUSK); canPort = false; } else if (compWinner == SevenSigns.CABAL_NULL && playerCabal != SevenSigns.CABAL_NULL) canPort = true; else if (playerCabal == SevenSigns.CABAL_NULL) canPort = false; } } else { if (Config.ALT_STRICT_SEVENSIGNS) { if (playerCabal == SevenSigns.CABAL_NULL) canPort = false; } } if (!canPort) { NpcHtmlMessage htmlCata = new NpcHtmlMessage(getObjectId()); filename += "cata_no.htm"; htmlCata.setFile(filename); player.sendPacket(htmlCata); return; } player.setIsIn7sDungeon(true); break; } case 35092: // case 35134: // case 35176: // case 35218: // case 35261: // case 35308: // case 35352: // case 35497: // case 35544: // case 35093: // case 35135: // case 35177: // case 35219: // case 35262: // case 35309: // Ticket Siege Teleport case 35353: // case 35498: // case 35545: // case 35094: // case 35136: // case 35178: // case 35220: // case 35263: // case 35310: // case 35354: // case 35499: // case 35546: // case 35264: // case 35265: // case 35500: // case 35501: // { if (CastleManager.getInstance().getCastle(this) != null && player.getClan() != null) if (getCastle().getOwnerId() == player.getClanId()) { if (st.countTokens() <= 0) return; int val = Integer.parseInt(st.nextToken()); L2TeleportLocation list = TeleportLocationTable.getInstance().getTemplate(val); if (list != null) { player.teleToLocation(list.getLocX(), list.getLocY(), list.getLocZ()); } else { _log.warn("No teleport destination with id:" + val); } player.sendPacket(ActionFailed.STATIC_PACKET); return; } break; } } if (st.countTokens() <= 0) return; int whereTo = Integer.parseInt(st.nextToken()); if (condition == COND_REGULAR) { if (player != null) doTeleport(player, whereTo); return; } else if (condition == COND_OWNER) { int minPrivilegeLevel = 0; // NOTE: Replace 0 with highest level when privilege level is implemented if (st.countTokens() >= 1) minPrivilegeLevel = Integer.parseInt(st.nextToken()); if (10 >= minPrivilegeLevel) // NOTE: Replace 10 with privilege level of player doTeleport(player, whereTo); else player.sendMessage(Message.getMessage(player, Message.MessageId.MSG_NOT_ACCESSABLE)); return; } } else if (actualCommand.equalsIgnoreCase("ctele")) { if (st.countTokens() <= 0) return; int whereTo = Integer.parseInt(st.nextToken()); if (condition == COND_REGULAR) { doCustomTeleport(player, whereTo); return; } else if (condition == COND_OWNER) { int minPrivilegeLevel = 0; //Replace 0 with highest level when privilege level is implemented if (st.countTokens() >= 1) minPrivilegeLevel = Integer.parseInt(st.nextToken()); if (10 >= minPrivilegeLevel) //Replace 10 with privilege level of player doTeleport(player, whereTo); else player.sendPacket(SystemMessageId.NOTHING_HAPPENED); return; } super.onBypassFeedback(player, command); } else if (command.startsWith("Chat")) { Calendar cal = Calendar.getInstance(); int val = 0; try { val = Integer.parseInt(command.substring(5)); } catch (IndexOutOfBoundsException ioobe) {} catch (NumberFormatException nfe) {} if (val == 1 && player.getLevel() < 1) { showNewbieHtml(player); return; } else if (val == 1 && cal.get(Calendar.HOUR_OF_DAY) >= 20 && cal.get(Calendar.HOUR_OF_DAY) <= 23 && (cal.get(Calendar.DAY_OF_WEEK) == 1 || cal.get(Calendar.DAY_OF_WEEK) == 7)) { showhalfPriceHtml(player); return; } showChatWindow(player, val); } super.onBypassFeedback(player, command); } @Override protected String getHtmlFolder() { return "teleporter"; } private void showNewbieHtml(L2PcInstance player) { if (player == null) return; NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); String filename = "data/html/teleporter/half/free/" + getNpcId() + ".htm"; if(HtmCache.getInstance().getHtm(filename, player)==null) filename = "data/html/teleporter/"+getNpcId() + "-1.htm"; html.setFile(filename); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%npcname%", getName()); player.sendPacket(html); } private void showhalfPriceHtml(L2PcInstance player) { if (player == null) return; NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); String filename = "data/html/teleporter/half/" + getNpcId() + ".htm"; if(HtmCache.getInstance().getHtm(filename, player)==null) filename = "data/html/teleporter/"+getNpcId() + "-1.htm"; html.setFile(filename); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%npcname%", getName()); player.sendPacket(html); } @Override public void showChatWindow(L2PcInstance player) { String filename = "data/html/teleporter/castleteleporter-no.htm"; int condition = validateCondition(player); if (condition == COND_REGULAR) { super.showChatWindow(player); return; } else if (condition > COND_ALL_FALSE) { if (condition == COND_BUSY_BECAUSE_OF_SIEGE) filename = "data/html/teleporter/castleteleporter-busy.htm"; // Busy because of siege else if (condition == COND_OWNER) // Clan owns castle filename = getHtmlPath(getNpcId(), 0,player); // Owner message window } NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile(filename); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%npcname%", getName()); player.sendPacket(html); } private void doTeleport(L2PcInstance player, int val) { L2TeleportLocation list = TeleportLocationTable.getInstance().getTemplate(val); if (list != null) { if (SiegeManager.getInstance().checkIfInZone(list.getLocX(), list.getLocY(), list.getLocZ())) { player.sendPacket(SystemMessageId.NO_PORT_THAT_IS_IN_SIGE); return; } if (TownManager.getInstance().townHasCastleInSiege(list.getLocX(), list.getLocY(), list.getLocZ())) { player.sendPacket(SystemMessageId.NO_PORT_THAT_IS_IN_SIGE); return; } if (player.isCombatFlagEquipped()) { player.sendPacket(SystemMessageId.NOT_WORKING_PLEASE_TRY_AGAIN_LATER); return; } if (list.isForNoble() && !player.isNoble()) { String filename = "data/html/teleporter/nobleteleporter-no.htm"; NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile(filename); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%npcname%", getName()); player.sendPacket(html); return; } if (player.isAlikeDead()) return; int price = list.getPrice(); if (player.getLevel() < 1 && !this.getTemplate().isCustom()) price = 0; if (!list.isForNoble() && price != 0) { Calendar cal = Calendar.getInstance(); if (cal.get(Calendar.HOUR_OF_DAY) >= 20 && cal.get(Calendar.HOUR_OF_DAY) <= 23 && (cal.get(Calendar.DAY_OF_WEEK) == 1 || cal.get(Calendar.DAY_OF_WEEK) == 7)) price /= 2; } if (!list.isForNoble() && (Config.ALT_GAME_FREE_TELEPORT || player.reduceAdena("Teleport", price, this, true))) { player.teleToLocation(list.getLocX(), list.getLocY(), list.getLocZ(), true); if (Config.PLAYER_SPAWN_PROTECTION > 0 && !isInsidePeaceZone(player)) player.sendMessage(String.format(Message.getMessage(player, Message.MessageId.MSG_SPAWN_PROTECTION), Config.PLAYER_SPAWN_PROTECTION)); } else if (list.isForNoble() && (Config.ALT_GAME_FREE_TELEPORT || player.destroyItemByItemId("Noble Teleport", 6651, list.getPrice(), this, true))) { player.teleToLocation(list.getLocX(), list.getLocY(), list.getLocZ()); if (Config.PLAYER_SPAWN_PROTECTION > 0 && !isInsidePeaceZone(player)) player.sendMessage(String.format(Message.getMessage(player, Message.MessageId.MSG_SPAWN_PROTECTION), Config.PLAYER_SPAWN_PROTECTION)); } } else { if (Config.LOAD_CUSTOM_TELEPORTS) doCustomTeleport(player, val); else _log.warn("No teleport destination with id:" + val); } player.sendPacket(ActionFailed.STATIC_PACKET); } private int validateCondition(L2PcInstance player) { if (CastleManager.getInstance().getCastle(this) == null) return COND_REGULAR; // else if (getCastle().getSiege().getIsInProgress()) // return COND_BUSY_BECAUSE_OF_SIEGE; else if (player.getClan() != null) { if (getCastle().getOwnerId() == player.getClanId()) return COND_OWNER; } return COND_ALL_FALSE; } private void doCustomTeleport(L2PcInstance player, int val) { if (player == null) return; if (!Config.LOAD_CUSTOM_TELEPORTS) return; L2TeleportLocation clist = TeleportLocationTable.getInstance().getCustomTemplate(val); if (clist != null) { if (!Config.ALLOW_TELE_IN_SIEGE_TOWN && SiegeManager.getInstance().checkIfInZone(clist.getLocX(), clist.getLocY(), clist.getLocZ()) && !player.isGM()) { player.sendPacket(SystemMessageId.NO_PORT_THAT_IS_IN_SIGE); return; } else if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_GK && player.getKarma() > 0 && !player.isGM()) //karma { player.sendPacket(SystemMessageId.NOTHING_HAPPENED); return; } else if (player.isAlikeDead()) return; else if (Config.ALT_GAME_FREE_TELEPORT || player.reduceAdena("Teleport", clist.getPrice(), this, true)) { player.teleToLocation(clist.getLocX(), clist.getLocY(), clist.getLocZ()); if (Config.PLAYER_SPAWN_PROTECTION > 0 && !isInsidePeaceZone(player)) player.sendMessage(String.format(Message.getMessage(player, Message.MessageId.MSG_SPAWN_PROTECTION), Config.PLAYER_SPAWN_PROTECTION)); } } else _log.info("No Custom Teleport Destination For ID:" + val); player.sendPacket(ActionFailed.STATIC_PACKET); } } Всем привет! Ребята, подскажите, что надо сделать, чтобы был телепорт бесплатный и бесплатный? Цена стоит делаю телепорт, но деньги не берет... Нуждаюсь в вашей помощи!