HowTo: внутриигровая отладка квестов, работы с предметами и т.п.

Теги:
 
+
-
edit
 

Balancer

администратор
★★★★★
Многие, при отладке квестов/etc. мучаются, перескакивая постоянно из клиента в базу данных, из базы данных в код сервера и т.д. и т.п. Запомните несколько команд, которые очень сильно могут помочь в отладке, практически избавив от необходимости выходить из клиента.

//to-npc <npc-id> - телепортация к NPC с заданным npc-id. Если их несколько (например, мобы), то к случайному из них. Нужно, скажем, проходить квест - сперва //to-npc к дающему задание, потом //to-npc прямо к квестовому мобу, потом //to-npc обратно...

//bm (bookmarks) - система закладок. Она интерактивная, разберётесь легко. Позволяет добавить именованную закладку на любое место.

//itemcreate (оно же //admin -> "Create Item"). Сейчас расширено двумя очень полезными внутренними ссылками. Первая - выводит список всех игровых вещей с разбивкой по страницам/десяткам/сотням/тысячам с возможностью фильтрации по типу предмета и/или грейду. Вторая - почти тоже самое, но с возможностью поиска по подстроке. Скажем, нужен для обмена "Crystal: D-Grade", а его item_id мы не помним. Так и пишем в поисковой ссылочке, скажем: "crys" и фильтруем по D-грейду... После этого останется только ткнуть в ссылочку и указать сколько этих кристаллов надо отспавнить.

//spawns (//admin -> "Npc Spawn") позволяет спавнить NPC, выбирая их из описанных в соответствующей таблице БД. Позволяет отспавнить заданное число как однократно, без респавна и записи в БД, так и полноценно, с сохранением и респавном.

Shift-клик на игроке -> "Изменить". Позволяет временно (до рестарта) сменить расу/класс/профессию/уровень/пол игрока. Очень полезно для отладки квестов. К сожалению, сам изменённый будет видеть себя в несколько... э... извращённом виде :) Без анимации и с глюком причёски. Какие-то проблемы с пакетами. Но окружающие будут видеть всё нормально и, главное, в игре персонаж будет восприниматься именно как дОлжно, с выбранным классом/расой/уровнем. Идеальное средство для отладчиков квестов, не придётся постоянно создавать и удалять временных персонажей.

//xx.x yy.y jm (Jump Map) - быстрый прыжок по координатам карты. При наличии геодаты - на поверхность в указанной точки, без неё - в воздух :)
 

Adrio

новичок
к этому всему бы еще и перезарузку квестов ... а то перегружать сервак при каждой поправке квеста как-то хлопотно ...

нашел к исходниках команду //reload_quest но так и не догнал как ей пользоваться на сборках ниже 5800 которые я пробывал она ошибку выдавала ...
 
+
-
edit
 

Balancer

администратор
★★★★★
Перезагрузка Jython-квестов так толком и не работает. Т.е. с нынешним именованием, вроде как, те кто разбирались, говорят, оно вообще не будет работать. Ограничения Jython'а. ЕМНИП, нужно переименовывать все квесты, чтобы с буквы начинались, не с цифры.
 
+
-
edit
 

phoptik

разработчик L2J Fortress

Перезагрузка работает сейчас так:
1) Переименовываем папку с квестом, добавляем в начало символ подчеркивания "_"
2) В телнете пишем quest_reload <id квеста> он его перегрузит и напишет что ОК
3) Переименовываем папку с квестом обратно
4) Делаем релогин в клиенте. Если этого не сделать то в игре никаких изминений не будет с квестом (долго в свое время понять не мог :) )
 

Barma

разработчик L2J Fortress
Просто в телнете надо еще после перезагрузки квеста прописать file_cache_clean
Любовь к исксству у монархов так бывает странна... Барма и Постник - берегите глаза...  

Barma

разработчик L2J Fortress
А если подгружаем новый квест , то 2 пункт выглядит так :
2) В телнете пишем quest_reload <название директории квеста !Без знака _! > он его перегрузит и напишет что ОК
Любовь к исксству у монархов так бывает странна... Барма и Постник - берегите глаза...  
+
-
edit
 

Balancer

администратор
★★★★★
Barma> Просто в телнете надо еще после перезагрузки квеста прописать file_cache_clean

У меня он всегда выключен :) В смысле - файловый кеш. Вроде, даже на приличном онлайне грузит мало (можно из админки на лету выключить и посмотреть изменение нагрузки).
 
+
-
edit
 

Malish

новичок
Извеняюсь, если не сюда написал. Хотелось бы иметь команду очистка инвентаря от так называемого хлама (ресурсы), а то у админа бывает зачастую его стока набирается, а постоянно удалять его через карзину муторное дело.
 

Drac

разработчик l2j-сервера

Это надо перебирать весь инвентарь и смотреть к чему относится каждая вещь. Проще не набирать вообще ресурсов.
 

J-3

новичок
поправьте на свн в квестах 611_AllianceWithVarkaSillenos и 605_AllianceWithKetraOrcs квестовые вещи выпадающие с мобов, идет повтор


code text
  1.      def onKill (Self,npc,st):
  2.  
  3.        npcId = npc.getNpcId()
  4.        if npcId == SEER or npcId == WARRIOR or npcId == LIEUTENANT or npcId == ELITE_SOLDIER or npcId == MEDIUM or npcId == COMMAND or npcId == ELITE_GUARD or npcId == WHITE_CAPTAIN :
  5.         if st.getInt("cond") > 1 :
  6.           if st.getRandom(100) < 40 :
  7.             st.giveItems(KB_CAPTAIN,1)
  8.             st.playSound("ItemSound.quest_middle")
  9.        elif npcId == RAIDER or npcId == FOOTMAN or npcId == SCOUT or npcId == WAR_HOUND or npcId == SHAMAN :
  10.         if st.getInt("cond") > 0 :
  11.           if st.getRandom(100) < 40 :
  12.             st.giveItems(KB_SOLDIER,1)
  13.             st.playSound("ItemSound.quest_middle")
  14.        elif npcId == BATTALION_COMMANDER_SOLDIER or npcId == GENERAL or npcId == GREAT_SEER or npcId == KETRA_PROPHET or npcId == DISCIPLE_OF_PROPHET or npcId == PROPHET_GUARDS or npcId == HEAD_SHAMAN or npcId == HEAD_GUARDS :
  15.         if st.getInt("cond") > 2 :
  16.           if st.getRandom(100) < 40 :
  17.             st.giveItems(KB_SOLDIER,1)      <------------------тут должно быть KB_GENERAL
  18.             st.playSound("ItemSound.quest_middle")
  19.        return

А так не выпадают веши третьего типа Badges of General
Жив пока...  

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru