Leon911 5 Опубликовано 17 июня, 2012 тут вот тоже столкнулся, делал скрипт для того чтоб игрок мог взять определённый предмет но только после того как будет соответстовать уровешь нужный предмет в портфеле и клан уровень,но незнаю как прицепить запрещённый предмет-типа если в портфеле будет припустим(4037)то скрипт сложит дулю и ничего недаст,выручайте ребята,может всё-таки есть кто-то кто шарит по етих скриптах) 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 qn = "9997_GetBigWingsA" #NPC NPC=[40025] #Нужно LITTLEWINGS_A=9998 #Награда BIGWINGS_A=9988 print "GetBigWingsA..........OK!" class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent(self,event,st): htmltext = "<html><head><body>I have nothing to say you</body></html>" cond = st.getInt("cond") count=st.getQuestItemsCount(LITTLEWINGS_A) if event == "40025-3.htm" : if cond == 0 and st.getPlayer().isClanLeader() and st.getPlayer().getClan().getLevel() >= 5 : if st.getPlayer().getLevel() >= 76 and count > 1: htmltext=event st.set("cond","0") st.giveItems(BIGWINGS_A,1) st.playSound("ItemSound.quest_finish") st.setState(COMPLETED) st.takeItems(LITTLEWINGS_A,1) else : htmltext="40025-2.htm" st.exitQuest(1) else : htmltext="40025-2.htm" st.exitQuest(1) return htmltext def onTalk (self,npc,player): htmltext = "<html><head><body>I have nothing to say you</body></html>" st = player.getQuestState(qn) if not st : return htmltext npcId = npc.getNpcId() id = st.getState() if id == CREATED : st.set("cond","0") htmltext="40025-1.htm" elif id == COMPLETED : htmltext = "<html><head><body>This quest have already been completed.</body></html>" else : st.exitQuest(1) return htmltext QUEST = Quest(9997,qn,"GetBigWingsA") CREATED = State('Start', QUEST) STARTING = State('Starting', QUEST) STARTED = State('Started', QUEST) COMPLETED = State('Completed', QUEST) QUEST.setInitialState(CREATED) for npcId in NPC: QUEST.addStartNpc(npcId) QUEST.addTalkId(npcId) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 17 июня, 2012 if st.getPlayer().getLevel() >= 76 and count > 1: Проверка на лвл if cond == 0 and st.getPlayer().isClanLeader() and st.getPlayer().getClan().getLevel() >= 5 : Проверка начала квеста, условие - перс должен быть лидером клана, и клан должен быть 5 лвл либо больше Надо добавить в условие st.HaveItem(4037,1) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Leon911 5 Опубликовано 17 июня, 2012 держи спасибку,буду ща пробывать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Leon911 5 Опубликовано 17 июня, 2012 чего-то неполучается прикруть ето(st.HaveItem(4037,1)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 17 июня, 2012 Значит метод HaveItem не реализован =( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Leon911 5 Опубликовано 17 июня, 2012 ещё идеи есть? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Leon911 5 Опубликовано 17 июня, 2012 ах,да а как в етом скрипте сделать чтоб он повторялся?ато он работает только один раз тоисть подошёл к нпс нажал получил предмет и сё,потом нажимаю оно мне дулю Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 17 июня, 2012 (изменено) elif id == COMPLETED : htmltext = "<html><head><body>This quest have already been completed.</body></html>" Удаляем вывод сообщения что квест уже выполнен если квест выполнен COMPLETED = State('Completed', QUEST) Удаляем переменную выполнения квеста st.setState(COMPLETED) Заменяем присвоения коца квеста, на переменную начала. st.setState(CREATED) Изменено 17 июня, 2012 пользователем SmokiMo Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Leon911 5 Опубликовано 17 июня, 2012 Спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 17 июня, 2012 Для спасибо есть Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Leon911 5 Опубликовано 18 июня, 2012 Для спасибо есть поставил) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты