Cкачай, создай свой сервер Lineage2 Как создать сервер - Д7-2ДпоКП
Четверг, 08.12.2016, 12:51
Создай свой сервер Lineage 2
  C4 C5 C6 Interlude/Freya
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Разделы новостей
Java сервера [332]
Бесплатные Java сборки серверов Lineage2
Платные Cервера [0]
Платные Java, PTS сборки серверов Lineage2
Платные Web обвязки [0]
Платные Web обвязки
Web сервер [57]
Web обвязки, скины
Дополнения [66]
Дополнения для серверов, клиентов, скины, текстуры и т.д.
Программы [30]
Программы, софт, updaters и многое другое
Видео (manual) [8]
Обучающее видео и т.д.
Новости [13]
Форма входа
Логин:
Пароль:
Лидеры

pleomaxs
Кол.новостей: 16
Репутация: 36
Форум: 437

Beliy
Кол.новостей: 11
Репутация: 140
Форум: 1176

izac
Кол.новостей: 3
Репутация: 0
Форум: 65

legolas
Кол.новостей: 3
Репутация: 0
Форум: 0

xaxaxa
Кол.новостей: 3
Репутация: 38
Форум: 169

Ezildin
Кол.новостей: 3
Репутация: 325
Форум: 2569

pupoK
Кол.новостей: 2
Репутация: -1
Форум: 23

Warman
Кол.новостей: 2
Репутация: 53
Форум: 576

Zidane
Кол.новостей: 2
Репутация: 91
Форум: 780

IIIyXeP
Кол.новостей: 2
Репутация: 287
Форум: 3341
Календарь новостей
«  Декабрь 2016  »
ПнВтСрЧтПтСбВс
   1234
567891011
12131415161718
19202122232425
262728293031
Поиск
ONLINE
Онлайн всего: 6
Гостей: 3
Пользователей: 3
C2nonell, geraldab1, tameraxy69

Посетившие сегодня:
ShepovalovOr, abarachetrorp, Aremaittag, Frankiegasp, VladimirGah, juristanpt, kapedMix, Suvasik, MichaelRanda, AgpixNum, Andrewcit, annaInemgync, StepanEteft, toledMix, Jaqmesereds, MichxealDen, Artemabima, Antonwam, LouiskeM, BorisincoT, C2konell, GladysSex, Belvakeync, whitneyhf11, ZelindaTer, lauratu16, EJMark, C2bonell, gertrudedt16, BeaulahNom, C2conell, [Полный список]
Друзья сайта

    Rambler's Top100

    Наша кнопка:


Наш опрос
Часто ли вы играете в Lineage2?
Всего ответов: 42987

 1 , 2 , 3 , 4
II. ЧАСТЬ

*ПРИМЕЧАНИЕ ДЛЯ ТЕХ КТО В ТАНКЕ И БЕЗ ШЛЕМОФОНА:

Обращаю ваше внимание на то что в этой таблице еще пока нет переменной "cond")
Статуc квеста (QuestState) (состояние квеста):
QuestState – это не часть определения квеста как таковая, но в ней содержится информация, которая отслеживает весь процесс развития событий конкретного игрока в этом квесте. Возьмём пример с игроком, статус квеста игрока в этом квесте можно узнать, используя:
   Код:
st = player.getQuestState("2007_noblesse")
или
   Код:
st = player.getQuestState(qn)
Если игрок не имеет статус квеста(quest-state) для этого квеста (т.е. игрок в данный момент не делает этот квест), тогда «st» будет нулевым.
Кроме того, "queststate" любого члена группы, который имеет конкретную переменную и значение сохранённое для этого квеста, можно узнать с использованием:
   Код:
partyMember = self.getRandomPartyMember(player,"variable","value")
st = partyMember.getQuestState("12345_questname")
Аналогично, "queststate" произвольного члена группы, который достиг конкретного СОСТОЯНИЯ (STATE) для этого квеста, можно узнать с использованием:
   Код:
partyMember = self.getRandomPartyMemberState(player,STATE)
st = partyMember.getQuestState("12345_questname")
Для примера, вместо "variable" и "value" в первом примере, можно использовать "cond" и "1", а Вместо "STATE" во втором примере, можно использовать "STARTED".
#~~~~~~~~~~~~~~~ 4 ~~~~~~~~~~~~~~~~~~#
Если в диалоге вызваном игроком существует ссылка-приглашение продолжить квест или другого действия такого формата:
   Код:
<a action="bypass -h Quest 2007_noblesse 31740-02.htm">Да</a>
где 31740-02.htm - является переменной для события onEvent() :
   Код:
onEvent(self, event, st)
при этом сервер получает уведомление о том что квест '2007_noblesse' вызвал случай onEvent(), в котором мы можем присвоить разным переменным новые значения, которые будут переводить квест в следующее действие.
Параметр "st" содержит ссылку на QuestState (статус квеста) игрока, который использует ссылку.
Параметр "event" содержит строковый идентификатор для события. В основном, эта строка находится прямо в ссылке, но она также может использоваться при установке так называемого таймера, названием которого и будет являться данный строковый идентификатор.
Параметр "self" - ссылка на сам квест. Вы можете использовать self.XXXX, где XXXX – любая функция, объявленная в родительском классе.
в нашем случае мы при помощи данного случая переводим квест в следующее состояние:
   Код:
 def onEvent (self,event,st) :
   htmltext = event                    # Присваиваем переменой htmltext значение строкового идентификатора event
   cond = st.getInt("cond")            # Присваиваем переменой cond данные из таблицы `character_quests`
   if event == "31740-02.htm" :
     if cond == 0 :
       st.set("cond","1")              # Присваиваем переменой cond значение 1 для и записываем ее в таблицу `character_quests`
       st.setState(STARTED)            # Переводим состояние квеста в STARTED
       st.playSound("ItemSound.quest_accept") # Озвучка взятия квеста
   return htmltext
При смене переменной "cond" квест переходит на следующую ступень и в клиентской части игры, точнее в разделе описания квестов будет выдаваться сообщение о том что предыдущая часть квеста пройдена т.е. 'Completed', но в нашем случае описание квеста не внесено в клиентскую часть в файл 'questname-e.dat и поэтому описание выводиться не будет.
Теперь, если обратить внимание на таблицу `character_quests` мы увидим что данные в этой таблице несколько изменились:
   Цитата:
------------------------------------------
name | var | value
------------------------------------------
2007_noblesse | <state> | Started
------------------------------------------
2007_noblesse | cond | 1
------------------------------------------
 **ПРИМЕЧАНИЕ ДЛЯ ТЕХ КТО В ТАНКЕ И БЕЗ ШЛЕМОФОНА:
   Цитата:
Пока QuestState (состояние квеста) у игрока будет обнаруживаться, мы также будем иметь доступ к игроку, если это понадобится, используя:
   Код:
 
   st.getPlayer()
 
Все другие общепринятые методы реализации QuestState доступны из jython. Точно также, объекты, извлекаемые из «st» могут быть в будущем использоваться, для того, чтобы извлечь больше. Для примера, можно сделать приблизительно так:
   Код:
 
   st.getPlayer().getClan().getLeader().getPlayerInstance().getPet()
 
(этот пример как маленькая демонстрация возможностей - как глубоко можно проникнуть в цепь объектов, которые являются доступными. В этом случае, из QuestState, мы получаем игрока, который имеет QuestState, затем получаем клан игрока, затем лидера клана игрока, фактическое состояние лидера и уже там мы находим вызванного лидером пета!)
 #~~~~~~~~~~~~~~~ 2 ~~~~~~~~~~~~~~~~~~#
Теперь задание получено и игрок отправляется мочить какого нибудь монстра из которого должен выпасть квестовый итем к примеру Feastival Adena (Id == 6673), а значит нам необходимо зарегистрировать этот итем в разделе описания переменных и зарегистрировать МОНСТРА из которого этот итем будет выпадать, в случае если этого монстра замочить. В нашем случае мы добавляем строки :
   Код:
#NPC
CARADINE = 31740
# Items
FESTIVAL_ADENA_ID = 6673
# Mobs
KRANROT = 20650

Copyright SVOYL2 © 2007-2016
Находящиеся на сайте материалы принадлежат их авторам, при их использовании гиперссылка на svoyl2.ru обязательна!
Рейтинг@Mail.ru