Проверка на наличие скила
6 ответов151 просмотровСейчас просматривают: 1
· 05.01.2010, 19:27
я в java и питоне полный лох, но все же хочу понять как это работает
в общем, имеется квест который добавляет чару за определенный итемы скил, но в квесте нет проверки на наличие этого итема у чара, тупо стоит закрытие квеста (по типу одноразовый)
я же хочу его переделать так что бы можно было несколько скилов разных добавлять
в общем никак не могу найти класс отвечающий за проверку нужного скила у чара
кусок кода:
Код
def onTalk (self,npc,player):
st = player.getQuestState(qn)
if st.getPlayer().getLevel() < MIN_LVL or st.getPlayer().getLevel() > MAX_LVL :
htmltext = "badlevel.htm"
elif st.getPlayer().getSkill().getId(ID_SKILL) :
htmltext = "skillinyou.htm"
elif st.getQuestItemsCount(ID_ITEM) < NEED_ITEM :
htmltext = "noitem.htm"
else:
htmltext = "skill.htm"
return htmltext
st = player.getQuestState(qn)
if st.getPlayer().getLevel() < MIN_LVL or st.getPlayer().getLevel() > MAX_LVL :
htmltext = "badlevel.htm"
elif st.getPlayer().getSkill().getId(ID_SKILL) :
htmltext = "skillinyou.htm"
elif st.getQuestItemsCount(ID_ITEM) < NEED_ITEM :
htmltext = "noitem.htm"
else:
htmltext = "skill.htm"
return htmltext
прошу помощи, очень нужно починить...
0
· 08.01.2010, 16:27
есть один выход... для каждого скила, который хочешь дать - делать копии скрипта, только с изменением конфига...
0
· 09.01.2010, 12:58
я немного не правильно описал :), нужно сделать проверку на наличие этого скила у перса, а то получается что чел может скил покупать сколько угодно раз... мне тут подсказали следующий выход:
Код
for s in st.player.getAllSkills():
if s.getId() == 759:
if s.getId() == 759:
но каким образом его реализовать я не знаю :(
0
· 09.01.2010, 21:56
xameleon: я немного не правильно описал :), нужно сделать проверку на наличие этого скила у перса, а то получается что чел может скил покупать сколько угодно раз... мне тут подсказали следующий выход:Кодfor s in st.player.getAllSkills():
if s.getId() == 759:
но каким образом его реализовать я не знаю :(
ммм, а то тут не понятного?
Фор создаёт цикл...
Ты получаеш список всех скилов чара при помощи "st.player.getAllSkills()" (только мне кажется после СТ не правильно написан плеер).
После чего при помощи "if s.getId() == 759:" ты проверяеш на наличие нужного тебе скила, только это крайне недописано..
После ифа должно быть действие, и чтобы цикл остановить (ну и рас у тебя првоерка на наличие скила) надо написать "return "some.htm""
Кстати не плохой вариант, но мне кажется должен быть другой, без фора... хотя для начала и так сайдёт...
0
Войдите или зарегистрируйтесь чтобы ответить

