Перейти к содержанию

KFan

Постоялец
  • Публикаций

    406
  • Зарегистрирован

  • Посещение

  • Отзывы

    0%

Весь контент KFan

  1. KFan

    Профили На Python

    У меня есть такой, безлимтное кол-во профилей, сам писал
  2. KFan

    Enchant

    а ты кроме базы и клиента в ядре настройки внес?)
  3. KFan

    Спавн После Смерти

    Что то пиво невидимое))))
  4. Будет время сделаю и брошу в шару))) я буквально двумя строками в ядре сделал смытие пк, так что это фигня все
  5. KFan

    Спавн После Смерти

    ответ, не возможно! Или прописывай для каждой точки свой спавн это в датапаке в файле zone.xml
  6. KFan

    Глобал Гк Цена

    ну вообще то нужно писать свой скрипт)) или лезь в ядро и меняй итем, если нужен скрипт в асю пиши за пиво сделаю по быстрому)
  7. он с обновлением без релога страницы? или как?
  8. KFan

    Человек

    Пиши в асю
  9. KFan

    [help]агнумент Шоп

    я щас попробую на питоне писануть жди))
  10. KFan

    [help]агнумент Шоп

    щас кому то за флуд бан дам
  11. и чтоб ты знал 15 рублей не называют маленькой суммой)))
  12. Бизнес план? А это шо такое? и нафиг он нужен? бред полнейший... Не успел отписать)) ну и хрен с ним)
  13. KFan

    Всем Привет

    ни фига подобного)) если текстур нету их просто не покажет, критует из за того что у тебя есть в коде теги которые тупо не прописаны в клиенте)
  14. Я думаю ссылку на сам квест у нпц люди смогут сделать))
  15. Будем учиться писать квесты на Python. Мануал авторский, не откуда не скопирован. Мануал долгий и нудный расчитан на полное разжевывание каждой запятой, у кого нет терпения можете не читать Для начала определяем, что это будет, простой нпц который выполнит какую то операцию и все, или же квест со сценарием который нужно вывести в окне квестов в игре. 1. Если простой нпц или вывод в окно квестов не нужен то можно поставить квест в папку data/scripts/custom/ 2. Если все таки квест требует вывода то он должен распологаться здесь data/scripts/quest/ Cоздаем главный файл __init__.py Первые строки которые там должны быть в любом скрипте: import sys 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 Далее введем несколько переменных (Для простоты, и чтобы в случае чего не пришлось лезть в глубь скрипта) к примеру: NPC_ID = [40001] - Какие нпц будут задействованы, лично я рекомендую создавать здесь массив, то есть все в квадратных скобках и через запятую qn = "9990_testquest" - название нашего квеста (так он будет записан в базе) QuestId = -1 - если квест не требует вызова квест окна значит можно смело ставить -1 ну а если все таки нужно значит ставим любое не занятое число другими квестами QuestDesc = "custom" - в идеале это не так важно, но я все таки так пишу print qn + " Loading...." - это нужно чтобы знать грузиться ли наш квест вообще... теперь перейдем в самый конец скрипта, вот что там должно быть: QUEST = Quest(QuestId, qn, QuestDesc) - Здесь идет обьявление квеста, по выше указанным переменным CREATED = State('Start', QUEST) - Это статус квеста можно вводить другие виды... STARTED = State('Started', QUEST) - Это статус квеста можно вводить другие виды... COMPLETED = State('Completed', QUEST) - Это статус квеста можно вводить другие виды... QUEST.setInitialState(CREATED) - Это какой статус будет присваиваться квесту в самом начале разговора с нпц, то есть автоматически for i in NPC: QUEST.addStartNpc(i) QUEST.addTalkId(i) Теперь поясню для чего мы использовали массив для указания нпц, т.к. бывают случаи что нужно использовать более 1 нпц, делают цикл, нежели указывать 4 значения вместо двух, именно по этому чтобы облегчить задачу мы указали массив в данном случае там одно число, значит цикл пройдет 1 раз и задействован будет 1 раз, то есть фактически разницы нет, разница в том что если будет 10 нпц, придеться вводить 20 строк, а в этом случае всего 3 строки при любом их количестве. Так же если в квесте нужно будет убивать монстров то нужно добавить строки MOB_ID = [40001] for i in MOB_ID : QUEST.addKillId(i) Теперь немного о питоне, синтаксис питона немного отличается от явы, все разделения зависят от "пробелов" пример: if 1 > 2: if 1 > 2: stat = "yes" stat = "yes" print stat print stat Это 2 разных кода, в 1 принт выведеться в любом случае, а во втором только при верно условии... перейдем к телу скрипта Этот код расположен обычно между print в начале и перед обьявлением переменной квест QUEST в конце Обьяснить первые строки я не смогу))) так я сам не изучал основ питона)))) class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onTalk (self, npc, player): - это то что будет видеть игрок при начале разговора... htmltext = "1.htm" st = player.getQuestState(qn) if not st : return htmltext npcId = npc.getNpcId() return htmltext def onEvent(self, event, st): - Этот метод используется после начала разговора htmltext = event return htmltext есть еще много методов onKill к примеру, он используется когда моб внесенный в список был убит, или onAttack он используется каждый раз когда моб был атакован теперь давайте сделаем так чтобы при разговоре игроку в системное сообщение писало "Hello! Quest start!" Начнем... Я думаю вы разберетесь куда это вставить... def onTalk (self, npc, player): htmltext = "Error" - в данном случае это не нужно, но я оставлю... st = player.getQuestState(qn) - получаем информацию о статусе квеста if not st : return htmltext - если квест не начался шлем ошибку htmltext = "Hello! Quest start!" npcId = npc.getNpcId() - это нужно только если вы используется более 1 нпц... return htmltext - есть пара моментов, если в переменной htmltext будет html код то выведеться окно, а если нет то будет вывод просто в окно системных сообщений игрока Это так)) нубо квест)) Теперь сделаем кое что посложнее, попробуйте прочитав код определить что будет происходить а потом проверьте правильно ли вы его поняли :pardon: def onTalk (self, npc, player): htmltext = "Error" st = player.getQuestState(qn) if not st : return htmltext if st.getQuestItemsCount(57) >= 5000000 : htmltext = "<html><body>Yes! Go location! :)</body></html>" st.takeItems(57, 5000000) teleToLocation(x, y, z) else : htmltext = "<html><body>Hey! Fuck! Dead!" st.getPlayer().reduceCurrentHp(st.getPlayer().getMaxHp() + st.getPlayer().getMaxCp() + 1, st.getPlayer()) return htmltext В данном случае проверяется, если у игрока есть адена в количестве 5000000 или больше, то ее забирают и телепортируют куда то, а если нет то он труп Так же есть такая особенность что в папку со скриптом можно положить файлы к примеру 1.htm, 2.htm и в различных ситуациях их показывать, в питоне нельзя писать русские символы а в html файлах можно просто вместо htmltext = "..." нужно писать htmltext = "1.htm" ну или тому подобное На сегодня все, в следующий раз напишу что то более стоящее Я думаю то что здесь есть разжеванно так что даже младенец спокойной проглотит))) Извиняйте за орфорграфические ошибки)) Это 1 часть следующая часть появиться как только будет время Кому нужно вот txt файл этого гайда Скачать
  16. KFan

    Услуги

    Уважаемые пользователи портала Хочу предложить вам свои услуги в сфере Lineage 2: Разработка уникальных баннеров для ваших серверов Создание логотипа для форума Редактирование шапки вашего шаблона сайта с нанесением логотипа вашего сервера Установка CMS, IP Board Настройка сайта и форума Привязка сайта к вашему серверу Установка серверов Lineage 2 на любую ОС Оптимизация оборудования и сервера Создание серверов под "ключ" Установка и создание уникальных NPC Установка и настройка уникальных дополнений Редактирование уже готовых серверов/дополнений Внесение уникальных плюшек для сервера в ядро Исправление ошибок в ядре Написание уникальных скриптов для вашего проекта Адаптация уже имеющихся сриптов под вашу сборку Что-то могу сделать бесплатно Срок работы от 10 минут до 3-х дней (взависимости от сложности заказа) Условия работы: 50% предоплата Сделать заказ можно по контактным данным: ICQ: 604-883-692 Skype: Kotyara20141 (Редкий онлайн в скайпе)
  17. данные фтп зачем? чел сам может все залить...
  18. KFan

    Скил За Итем

    Это не имеет значения, если я туда занесу скил его смогут учить все у рыбака, а это не допустимо
  19. KFan

    Скил За Итем

    нет гс не слова не говорит, скил в базе то есть под данным чаром, но его что то блочит на сколько я понимаю... и при повторной попытке добавить скил когда он имеется в базе гс кричит о дубликате....
  20. KFan

    Скил За Итем

    Проверка и не включалась, я не так глуп
  21. KFan

    Скил За Итем

    кто сталкивался или имеет догадки отписываем
  22. KFan

    Скил За Итем

    За активацию итемы выдается скил, реализация в ядре, все работает.... но есть одно но, когда активируешь итем, да дается скил, прибавляет статы, но после релога скила исчезает, он есть в базе сохраненый под данным чаром, но он уже не чего не дает и его даже не видно через админ панель.... при добавлении скила просто так, он дает статы, но не появляется в окне скилов, через админку его видно в скилах чара... после релога так же исчезает и из админки..
  23. вот гайд там все подробно описано, только про дифф не читай если все равно не разберешься милости прошу в асю
  24. Как то не верится....
×
×
  • Создать...