Перейти к содержанию
Авторизация  
Anderson

Queststate

Рекомендуемые сообщения

Нужно было в сборку Люцера добавить Колор Менеджера.

Но скрипт выдает ошибку что не существует структуры: State('Start', QUEST)

Полез я дальше, в исходах в стейте квестов:

/
**


* @deprecated Method QuestState is deprecated

*/



@Deprecated

QuestState(String name, Quest quest)

{

_isExitQuestOnCleanUp = false;

_ignoreMe = false;

_questName = quest.getName();

_player = null;

_ignoreMe = true;

}



/**

* @deprecated Method QuestState is deprecated

*/



@Deprecated

QuestState(byte state)

{

_isExitQuestOnCleanUp = false;

_ignoreMe = false;

_questName = null;

_player = null;

_ignoreMe = true;

}



QuestState(Quest quest, L2PcInstance player, byte state)

{

_isExitQuestOnCleanUp = false;

_ignoreMe = false;

_quest = quest;

_questName = quest.getName();

_player = player;

getPlayer().setQuestState(this);

_state = state;

}

 

Я понял что первые 2 нерабочие из за @Deprecated (устарели), но как мне в 3 передать плеера?

Скрипт(не мой):

import sys
from java.lang import System
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 = "q8024_ChgColor"

NPC = 50001

PRICES = {
1: [4355, 3, "Blue Eva"],
2: [4355, 1, "Blue Eva"],
}

COLOURS = {
1: ["00FF00","00FF00"],
2: ["16721c","1c7216"],
3: ["00FFFF","FFFF00"],
4: ["FF0000","0000FF"],
5: ["FFFB00","00FBFF"],
6: ["337fe6","e67f33"],
7: ["DDA0DD","DDA0DD"],
8: ["808080","808080"],
9: ["000000","000000"],
10: ["81c739","81c739"],
11: ["9120b1","b12091"],
12: ["7c2196","96217c"],
13: ["811664","641681"],
14: ["6b4558","58456b"],
}

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)
if event == "step1":
htmltext = "<html><body><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br><img src=\"L2UI.SquareBlank\" width=260 height=2><br1>"
htmltext += "Что красим?<font color=999966>*</font><br><center><table width=180><tr>"
htmltext += "<td><button value=\"Ник\" action=\"bypass -h Quest q8024_ChgColor var_1\" width=80 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td>"
htmltext += "<td width=40></td>"
htmltext += "<td><button value=\"Титул\" action=\"bypass -h Quest q8024_ChgColor var_2\" width=80 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td>"
htmltext += "</tr></table></center><br><br><font color=999966>*Изза особенностей ЖК-мониторов, цвета на чаре могут выглядить немного ярче или темнее.</font><br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32></body></html>"
elif event.startswith("var_"):
vtype = int(event.replace("var_", ""))
if vtype == 1:
sample = "### " + player.getName() + " ###"
else:
sample = "### " + player.getTitle() + " ###"
htmltext = "<html><body>Покраска:<br>"
htmltext += "Стоимость: "+str(PRICES[vtype][1])+" "+str(PRICES[vtype][2])+"<br><br>"
htmltext += "<html><body>>Выберите желаемый цвет из списка:<br><br>"
#<
htmltext += "<table width=300>"
for i in COLOURS.keys():
htmltext += "<tr><td width=20></td><td><font color="+str(COLOURS[i][1])+">"+str(sample)+"</font></td><td><a msg=\"Точно красим?\" action=\"bypass -h Quest q8024_ChgColor paint_"+str(vtype)+"_"+str(i)+"\">>>>></a></td></tr>"
htmltext += "<tr><td width=20></td><td><br></td><td></td></tr>"
htmltext += "</table>"
#<
htmltext += "<a action=\"bypass -h Quest q8024_ChgColor step1\">Вернуться.</a></body></html>"
elif event.startswith("paint_"):
get = str(event.replace("paint_", ""))
vtype,color=get.split("_")
vtype,color=int(vtype),int(color)
#<
paintcolor = int(COLOURS[color][0],16)
if vtype == 1:
if st.getQuestItemsCount(PRICES[1][0]) < int(PRICES[1][1]):
htmltext = "<html><body>Покраска: <font color=74bff5>"+str(PRICES[1][1])+" "+str(PRICES[1][2])+"</font></body></html>"
return htmltext
st.takeItems(PRICES[1][0],PRICES[1][1])
player.getAppearance().setNameColor(paintcolor)
else:
if st.getQuestItemsCount(PRICES[2][0]) < int(PRICES[2][1]):
htmltext = "<html><body>Покраска: <font color=74bff5>"+str(PRICES[2][1])+" "+str(PRICES[2][2])+"</font></body></html>"
return htmltext
st.takeItems(PRICES[2][0],PRICES[2][1])
player.getAppearance().setTitleColor(paintcolor)
#<
player.broadcastUserInfo()
player.store()
htmltext = "<html><body>Покраска:<br>Готово.<br><br><br><a action=\"bypass -h Quest q8024_ChgColor step1\">Вернуться.</a></body></html>"
else:
htmltext = "<html><body>Покраска:<br>Oops!</body></html>"
return htmltext

def onTalk (self,npc,player):
st = player.getQuestState(qn)
npcId = npc.getNpcId()
if npcId == NPC:
htmltext = "<html><body><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br><img src=\"L2UI.SquareBlank\" width=260 height=2><br1>"
htmltext += "Что красим?<font color=999966>*</font><br><center><table width=180><tr>"
htmltext += "<td><button value=\"Ник\" action=\"bypass -h Quest q8024_ChgColor var_1\" width=80 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td>"
htmltext += "<td width=40></td>"
htmltext += "<td><button value=\"Титул\" action=\"bypass -h Quest q8024_ChgColor var_2\" width=80 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td>"
htmltext += "</tr></table></center><br><br><font color=999966>*Изза особенностей ЖК-мониторов, цвета на чаре могут выглядить немного ярче или темнее.</font><br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32></body></html>"
return htmltext

QUEST = Quest(8024,qn,"custom")
CREATED = State('Start', QUEST)
QUEST.setState(CREATED)

QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)

Изменено пользователем Anderson

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорее всего при создании кв, автоматически выставляется: Начато

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...