
Nha
OVC-Dev-
Публикаций
47 -
Зарегистрирован
-
Посещение
-
Отзывы
100%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент Nha
-
Если исправить строку err=1 until на err=1 Мож заедет
-
Ну вот можно попробовать слизанный с фрозенов _http://rghost.ru/6ldRsH6Ps Есть еще какой-то, найденный в интернетах, вроде зависимостей нет, легко переделать под акис _http://rghost.ru/6JMbKJMTr
-
Может вместо !seller.isOffline() использовать seller.isOnline() == 1 А на счет player.setOffline(true); Тут имеется ввиду скорее всего player.setOnlineStatus(false);
-
import sys from com.l2jfrozen.gameserver.model.entity import Announcements; from com.l2jfrozen.gameserver.model.quest import State from com.l2jfrozen.gameserver.model.quest import QuestState from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest from java.lang import System BOSS_IDS = [59021] class NpcScriptThree(JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onSpawn (self,npc): npcId = npc.getNpcId() for id in BOSS_IDS : if npcId == id : Announcements.getInstance().announceToAll("Raid boss " + npc.getName() + " spawned in world."); return def onKill (self,npc,player,isPet): npcId = npc.getNpcId() for id in BOSS_IDS : if npcId == id : Announcements.getInstance().announceToAll("Raid boss " + npc.getName() + " is dead."); return QUEST = NpcScriptThree(-1, "NpcScriptThree", "ai") CREATED = State('Start', QUEST) QUEST.setInitialState(CREATED) for i in BOSS_IDS : QUEST.addSpawnId(i) for i in BOSS_IDS : QUEST.addKillId(i)
-
Может что-то вроде этого заедет import sys from com.l2jfrozen.gameserver.model.entity import Announcements; from com.l2jfrozen.gameserver.model.quest import State from com.l2jfrozen.gameserver.model.quest import QuestState from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest from java.lang import System BOSS_IDS = [59021] class NpcScriptThree(JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onSpawn (self,npc): npcId = npc.getNpcId() for id in BOSS_IDS : if npcId == id : Announcements.getInstance().announceToAll("Raid boss " + npc.getName() + " spawned in world."); return QUEST = NpcScriptThree(-1, "NpcScriptThree", "ai") CREATED = State('Start', QUEST) QUEST.setInitialState(CREATED) for i in BOSS_IDS : QUEST.addSpawnId(i)
-
выравнивать надо пробелами а не табами (\t) на счет кода, вроде не правильно, во первых не видно где переменная nm реализовывается, по всей видимости это имя? Тогда зачем мы ищем персонажа по нему если можно вызвать его из QuestState (st.getPlayer) Что должен делать этот квест?
-
код правильный, питон очень нервный по отношению к табуляции, попробуй выравнить строку не табами а пробелами, ошибка из за "\t"
-
Питон зависим от табуляции и пробелов, выравни строку i=L2World.getInstance().getPlayer(nm) По отношению к другим
-
После строки st.playSound("ItemSound.quest_accept") Вставить st.getPlayer().teleToLocation(x,y,z) x,y,z - координаты
-
Если есть исходный код, и с компилятором хотя бы на "вы", то возможных реализаций много, к примеру что-то можно накрутить в UseItem.java if (item.isEquipable()) { if (item.getTemplate().getItemType() == WeaponType.BOW && activeChar.getClassId() == ClassId.paladin) return; }
-
Ну здесь вроде как чепуха осталась, TeleportManager и CareerManager в ошибках, могу глянуть. И что за сборка?
-
Ну во первых, во всех файлах (которые были изменены вами) в пакете community первый символ в первой строке компилятор не может распознать (Invalid Character), обычно это бывает из за неправильной кодировки, в блокноте этого символа не видно, решить можно изменив кодировку, открыв в notepad++ к примеру. В файле TeleportManager.java имеется импорт библы javolution, а в проекте ее, по всей видимости, нет. (Решение - скачать, добавить) В EnchantCommunity.java вызывается метод isShield(), который отсутствует в классе ItemTemplate (Решение - найти альтернативу в данном/другом классе) В CareerManager.java возможно(?) отсутвует Config. перед USE_BBS_PROF_IS_COMBAT На счет всего остального не очень очевидно, причины разные могут быть.
-
1 косяк. Все еще считается не объявленным: COMMUNITYBOARD_ENABLED
-
Объявил повторно: BBS_BUFF_TIME_MOD Не объявил: COMMUNITYBOARD_CONFIG_FILE COMMUNITYBOARDBUFFER_CONFIG_FILE BBS_BUFF_TIME_MOD_MUSIC COMMUNITYBOARDCLASSMASTER_CONFIG_FILE COMMUNITYBOARDSHOP_CONFIG_FILE COMMUNITYBOARDTELEPORT_CONFIG_FILE COMMUNITYBOARDENCHANT_CONFIG_FILE COMMUNITYBOARD_ENABLED
-
нужна помощь Помогите решить проблему с Валакасом(заход в Инстанс Зону)
тема ответил Nha в теме Обсуждения
С чего вы взяли что нужно 200 тел для валакаса? В том условии наоборот стоит проверка чтобы было не более двухсот человек в канале, а то что вам пишется в игре здесь: if ((ccleader.getParty() == null) || !ccleader.getParty().isInCommandChannel()) { ccleader.sendPacket(new SystemMessage(SystemMessage.YOU_CANNOT_ENTER_BECAUSE_YOU_ARE_NOT_IN_A_CURRENT_COMMAND_CHANNEL)); return; } Т.е. ваш персонаж либо не в пати, либо не в канале, что собственно вы и написали -
Можно попробовать что-то типо этого: if (command.startsWith("admin_augment")) { final String[] split = command.split(" "); if (split.length < 2) return false; final int augId = Integer.parseInt(split[1]); final int augLevel = Integer.parseInt(split[2]); final L2Object object = activeChar.getTarget(); if (object instanceof L2PcInstance) { final L2PcInstance target = (L2PcInstance)object; final L2ItemInstance targetItem = target.getActiveWeaponInstance(); if (targetItem != null) { if (!targetItem.isAugmented()) { target.disarmWeapons(); targetItem.setAugmentation(new L2Augmentation(targetItem, 0, augId, augLevel, true)); final InventoryUpdate iu = new InventoryUpdate(); iu.addModifiedItem(targetItem); target.sendPacket(iu); target.sendPacket(new ItemList(target, true)); target.sendSkillList(); } else { activeChar.sendMessage("Target weapon is already augmented."); } } } } Команда //augment id lvl, ну или как вариант использовать html'ку, которую запостили выше
-
Исходы сборки имеются? Если да, то как часто сервер авторестартится? Можно сделать чтобы именно при загрузке посылался запрос на проверку даты
-
Как человек вообще худеет? Он использует жир в качестве энергии, чтобы эта энергия не запасалась нужно не допускать переизбытка калорий в рационе. Все просто. Если ты получаешь ежедневно калорий больше, чем может израсходовать твое тело, то оно станет их запасать в виде жира, если ровно столько же, то вес встанет, а вот если меньше, то твое тело и будет брать эти самые калории (энергию) из жирового запаса. Напрашивается вопрос, и что же делать? Очевидно 2 решения. 1) Понизить калорийность потребляемой пищи 2) Тратить энергию с помощью аэробных (кардио упражнений), не анаэробных! Как некоторые советуют. Только нужно учесть, что сначала твое тело, при занятиях, к примеру, бегом, будет использовать гликоген из крови. Только потом (минут через 20-30) оно начнет топить жир, поэтому так эффективно бегать утром, натощак, когда в крови глика почти нет. Ни в коем случае нельзя ограничивать себя в еде, если будешь голодать, метаболизм просядет, тело начнет экономнее использовать энергию и тогда в чем смысл диеты вообще? Ешь часто, правильную еду и небольшие порции. Утром ешь больше углеводов, чем вечером (Процентное соотношение белков/углеводов должно изменятся к вечеру), на ужин можно вообще углями не закидываться, овощи + мясо - идеальный выбор. То что обычно пишут: исключить жирное, острое, соленое; не есть после 6 и т.д. - это конечно сыграет какую-то роль, но не значительную. Главное понимать сам принцип работы этого механизма, а не засорять голову этими нюансами
-
Если вкратце, то тебе потребуются исходы твоей сборки Если у тебя они есть, то сперва нужно соорудить файл эффектов: Далее, создать тип BONUS в L2EffectType (enum). Ну и после всего это приступить к самому условию на увеличение рейтов: 1) Увеличим EXP/SP, для этого в файле L2Attackable.java в методе calculateRewards, где нибудь в условии if (attackerParty == null), добавляем сам код: for (int i = 0; i < attacker.getAllEffects().length; i++) { if (attacker.getAllEffects()[i].getEffectType() == L2EffectType.BONUS) { exp *= attacker.getAllEffects()[i].getEffectPower(); sp *= attacker.getAllEffects()[i].getEffectPower(); } } 2) Для дропа схожая тема, тот же файл, но метод calculateRewardItem, вставляем: for (int i = 0; i < lastAttacker.getAllEffects().length; i++) { if (lastAttacker.getAllEffects()[i].getEffectType() == L2EffectType.BONUS) { dropChance *= lastAttacker.getAllEffects()[i].getEffectPower(); } } Ну и в самом конце нужно перейти уже в дапатпак, и создать там скилл в (xml), не забыв добавить к нему сам эффект: <for> <effect name="Bonus" time="60" stackOrder="1" effectPower="2" val="0"/> </for> Где effectPower - множитель дропа и награды exp/sp, а time, собственно, время (час). Если хочешь сунуть все это дело в итем, то да, можно сделать по аналогии с L2Day, в itemhandlers. P.S. Набросал в общем, но, по моему, в рабочем виде, на лыже уж точно
- 1 ответ
-
- 1
-
-
На руках нет сорсов, поэтому напишу в общем плане, как можно понятнее. Я как понимаю, изучение умения "до максимального уровня" должно происходить с учетом уровня персонажа. К примеру персонаж 50 уровня, не может выучить "Соник Бластер" 37 уровня, т.к. он требует 74+, персу будет доступен для изучения только Соник 12 уровня, ведь так? Если да, то достаточно изменить в методе showSkillList в классе L2NpcInstance.java (иногда это L2FolkInstance.java) SkillTreeTable.getInstance().getAvailableSkills(player, classId) на SkillTreeTable.getInstance().getAllAvailableSkills(player, classId) Почему так? Метод getAvailableSkills, если вкратце, создает список умений, считывая все имеющиеся умения у персонажа и прибавляет к ним +1lvl. А метод getAllAvailableSkills создает список всех доступных умений максимального уровня указанного класса, с учетом уровня персонажа. Этот метод также используется для создания списка умений после смены персонажем саб-класса. Однако если тебе нужно чтобы персонаж 1го уровня уже смог выучить, к примеру, Salvation, то тебе требуется немного подправить тот же метод getAllAvailableSkills в SkillTreeTable.java, а именно убрать условие if (sl.getMinLevel() <= level) при сортировке. P.S. Извиняюсь, хоть ты и просил детально, это максимум что могу не имея исхода, если все же там структура сильно отличается или у тебя что-то не получилось, пиши лс/скайп, набросаю за спасибо, ибо это не трудно.
-
UPDATE droplist SET chance = 50 WHERE mobId IN (SELECT id FROM npc WHERE type = 'L2RaidBoss') AND itemId = 4037; Надо просто изменить шанс дропа 4037 (который уже имеется в дроплисте) у всех РБ? Если я правильно понял то так.
-
В `value` VARCHAR(4000) CHARACTER SET UTF8 NOT NULL DEFAULT '0', VARCHAR(4000) замени на VARCHAR(255) Дело в кодировке, слишком много байт отводится на это поле
-
character_variables табличка есть в БД?
-
На счет HF не уверен, но попробуй глянуть в классе L2PcInstance, метод rechargeAutoSoulShot
-
Хм, достаточно почитать что такое JEE/JSE и для чего каждое применяется и сразу станет ясно. Если категорично отвечать на твой вопрос, то JSE, JEE - это дополнительный набор классов и спецификаций, обычно используется, как я понимаю, для веба. А вообще, чтобы уверенно чувствовать себя в исходах "ладвы" достаточно просто дружить с логикой и понимать принцип ООП, джаву при этом можно знать на уровне "Продвинутого чайника"