sos96910 1 Опубликовано 7 марта, 2014 (изменено) Вот это дон шоп точнее только смена ника, так вот помогите поменять импорт под люцеру очень нужно прошу Это вот то что нужно изменить под люцеру, а ниже я щас кину пример с люцеры. from com.l2jfrozen.gameserver.datatables.sql import CharNameTable from com.l2jfrozen.gameserver.model import L2World 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 from com.l2jfrozen.gameserver.util import Util; from java.util.regex import Pattern; NPC = 298030 ITEM_ID = 4037 NAME_COUNT = 10 COLOR_COUNT = 10 class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent(self,event,st) : if event == "1": return "1.htm" if event == "2": return "2.htm" if event == "3": return "3.htm" if event == "200": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x000000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "201": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x000090) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "202": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x0000ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "203": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x009000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "204": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x00ff00) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "205": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x900000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "206": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0xff0000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "207": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x009090) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "208": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x0090ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "209": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x00ffff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "210": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x900090) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "211": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x9000ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "212": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0xff00ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "213": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x909000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "214": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0xffff00) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "215": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0xffffff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "300": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x000000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "301": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x000090) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "302": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x0000ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "303": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x009000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "304": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x00ff00) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "305": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x900000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "306": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0xff0000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "307": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x009090) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "308": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x0090ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "309": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x00ffff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "310": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x900090) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "311": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x9000ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "312": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0xff00ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "313": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x909000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "314": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0xffff00) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "315": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0xffffff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if not CharNameTable.getInstance().doesCharNameExist(event): if len(event) >= 3 and len(event) <= 16 and Pattern.matches("[A-Za-z0-9\`\~\!\@\#\$\%\^\*\(\)\_\-\=\[\]\'\.\,\:\;]*", event): if st.getPlayer().isClanLeader(): return "<html><head><body><center>Clan leaders no can change name!</center></body></html>" if st.getPlayer().getClan(): return "<html><head><body><center>Clan members no can change name!</center></body></html>" if st.getQuestItemsCount(ITEM_ID) >= NAME_COUNT: st.takeItems(ITEM_ID,NAME_COUNT) L2World.getInstance().removeFromAllPlayers(st.getPlayer()); st.getPlayer().setName(event); st.getPlayer().store(); L2World.getInstance().addToAllPlayers(st.getPlayer()); st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" else: return "<html><head><body><center>Name is incorrect!</center></body></html>" else: return "<html><head><body><center>Name already exist!</center></body></html>" return "<html><head><body><center>Item count is incorrect!</center></body></html>" def onTalk (self,npc,player): return "0.htm" QUEST = Quest(8833, "8833_Name", "custom") CREATED = State('Start',QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(NPC) QUEST.addTalkId(NPC) Вот это с люцеры взял на выбор import sys from ru.catssoftware.gameserver.model.actor.instance import L2PcInstance from java.util import Iterator from ru.catssoftware.gameserver.datatables import SkillTable from ru.catssoftware import L2DatabaseFactory 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 = "1238_ShadowNubless" NPC=[298030] GOLDBAR= 4037 PRICE=20 NOBLESS_TIARA = 7694 QuestId = 1238 QuestName = "ShadowNubless" QuestDesc = "custom" InitialHtml = "1.htm" class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent(self,event,st): htmltext = event count=st.getQuestItemsCount(GOLDBAR) if count < 20 and st.getPlayer().getLevel() < 40 : htmltext = "Error2.htm" elif st.getPlayer().isNoble() == 1 : htmltext = "Error1.htm" elif st.getQuestItemsCount(GOLDBAR) < 20 : htmltext = "Error2.htm" elif st.getPlayer().getLevel() < 40 : htmltext = "Error2.htm" else: st.getPlayer().setTarget(st.getPlayer()) if event == "2": st.takeItems(GOLDBAR,PRICE) st.getPlayer().setNoble(True) st.giveItems(NOBLESS_TIARA,1) st.playSound("ItemSound.quest_finish") return "End.htm" st.exitQuest(1) if htmltext != event: st.setState(State.COMPLETED) st.exitQuest(1) return htmltext def onTalk (self,npc,player): npcId = npc.getNpcId() st = player.getQuestState(qn) htmltext = "<html><head><body>I have nothing to say to you</body></html>" return InitialHtml QUEST = Quest(1238,qn,"custom") QUEST.addStartNpc(298030) QUEST.addTalkId(298030) Изменено 7 марта, 2014 пользователем taste Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 7 марта, 2014 (изменено) Суньте код под спойлер. Вот ваши импорты, дальше по аналогии: from com.l2jfrozen.gameserver.model.quest import State from ru.catssoftware.gameserver.model.quest import State Изменено 7 марта, 2014 пользователем seidhe Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sos96910 1 Опубликовано 7 марта, 2014 я хотел под спойлер ну так и не нашел как это сделать, ну это не важно, вот я сделал так, ну всеравно нажимаю и просит квест( from ru.catssoftware.gameserver.datatables.sql import CharNameTable from ru.catssoftware.gameserver.model import L2World 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 from ru.catssoftware.gameserver.util import Util; from java.util.regex import Pattern; Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gatsby 269 Опубликовано 7 марта, 2014 Покажите как зделали вы, и какой тип нпс у вас. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 7 марта, 2014 (изменено) я хотел под спойлер ну так и не нашел как это сделать, ну это не важно, вот я сделал так, ну всеравно нажимаю и просит квест( from ru.catssoftware.gameserver.datatables.sql import CharNameTable from ru.catssoftware.gameserver.model import L2World 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 from ru.catssoftware.gameserver.util import Util; from java.util.regex import Pattern; Ошибки ГСа покажите. Кнопка скрытого текста выглядит как глаз. Находится справа от кнопки плей на красном фоне. Теги спойлера, без кавычек "["spoiler=название шапки']" текст "["/spoiler"]" Изменено 7 марта, 2014 пользователем seidhe Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sos96910 1 Опубликовано 7 марта, 2014 (изменено) вот сделал так from ru.catssoftware.gameserver.datatables.sql import CharNameTable from ru.catssoftware.gameserver.model import L2World 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 from ru.catssoftware.gameserver.util import Util; from java.util.regex import Pattern; NPC = 298030 ITEM_ID = 4037 NAME_COUNT = 10 COLOR_COUNT = 10 class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent(self,event,st) : if event == "1": return "1.htm" if event == "2": return "2.htm" if event == "3": return "3.htm" if event == "200": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x000000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "201": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x000090) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "202": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x0000ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "203": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x009000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "204": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x00ff00) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "205": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x900000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "206": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0xff0000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "207": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x009090) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "208": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x0090ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "209": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x00ffff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "210": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x900090) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "211": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x9000ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "212": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0xff00ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "213": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0x909000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "214": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0xffff00) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "215": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setNameColor(0xffffff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "300": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x000000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "301": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x000090) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "302": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x0000ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "303": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x009000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "304": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x00ff00) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "305": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x900000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "306": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0xff0000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "307": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x009090) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "308": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x0090ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "309": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x00ffff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "310": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x900090) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "311": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x9000ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "312": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0xff00ff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "313": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0x909000) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "314": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0xffff00) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if event == "315": if st.getQuestItemsCount(ITEM_ID) >= COLOR_COUNT: st.takeItems(ITEM_ID,COLOR_COUNT) st.getPlayer().getAppearance().setTitleColor(0xffffff) st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" if not CharNameTable.getInstance().doesCharNameExist(event): if len(event) >= 3 and len(event) <= 16 and Pattern.matches("[A-Za-z0-9\`\~\!\@\#\$\%\^\*\(\)\_\-\=\[\]\'\.\,\:\;]*", event): if st.getPlayer().isClanLeader(): return "<html><head><body><center>Clan leaders no can change name!</center></body></html>" if st.getPlayer().getClan(): return "<html><head><body><center>Clan members no can change name!</center></body></html>" if st.getQuestItemsCount(ITEM_ID) >= NAME_COUNT: st.takeItems(ITEM_ID,NAME_COUNT) L2World.getInstance().removeFromAllPlayers(st.getPlayer()); st.getPlayer().setName(event); st.getPlayer().store(); L2World.getInstance().addToAllPlayers(st.getPlayer()); st.getPlayer().broadcastUserInfo(); return "4.htm" else: return "<html><head><body><center>Item count is incorrect!</center></body></html>" else: return "<html><head><body><center>Name is incorrect!</center></body></html>" else: return "<html><head><body><center>Name already exist!</center></body></html>" return "<html><head><body><center>Item count is incorrect!</center></body></html>" def onTalk (self,npc,player): return "0.htm" QUEST = Quest(8833, "8833_Name", "custom") CREATED = State('Start',QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(NPC) QUEST.addTalkId(NPC) Изменено 7 марта, 2014 пользователем taste Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sos96910 1 Опубликовано 7 марта, 2014 (изменено) вот ошибка в __init__.py.error.log Error on: D:\loveli\game\data\scripts\custom\8833_Name\__init__.py.error.log Line: -1 - Column: -1 Traceback (innermost last): File "__init__.py", line 1, in ? ImportError: no module named sql а в гейм сервере ни чего нет Изменено 7 марта, 2014 пользователем sos96910 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 7 марта, 2014 (изменено) вот ошибка в __init__.py.error.log Error on: D:\loveli\game\data\scripts\custom\8833_Name\__init__.py.error.log Line: -1 - Column: -1 Traceback (innermost last): File "__init__.py", line 1, in ? ImportError: no module named sql а в гейм сервере ни чего нет Не совсем корректно перенесли импорты, ну да не важно. Я когда-то делал донат шоп для люцеры, там все прекрасно работает, - пользуйтесь http://forummaxi.ru/...452#entry358849 Изменено 7 марта, 2014 пользователем seidhe 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sos96910 1 Опубликовано 7 марта, 2014 (изменено) спасибо ну донат шоп у меня есть, ну там нет смены ника вот я скачаю ваш и мб вытяну смену ника. ну я так понял дело в этом from ru.catssoftware.gameserver.datatables.sql import CharNameTable а именно в .sql я уберал делал так from ru.catssoftware.gameserver.datatables import CharNameTable ну тогда, вообще не реагирует не как даже квеста не просит ( Изменено 7 марта, 2014 пользователем sos96910 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
desolator 267 Опубликовано 7 марта, 2014 (изменено) Вот держи, смена ника на питоне под люцеру. import sys from java.lang import System from java.util import Iterator from ru.catssoftware import L2DatabaseFactory from ru.catssoftware.tools.random import Rnd 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 from time import gmtime, strftime qn = "1235_ShadowName" print "***Name OK - Loaded***" NPC = 298030 ITEM = 13012 # итем необходимый для обмена COST = 15 # стоимость INAME = "Донат монет" # название итема 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": if st.getQuestItemsCount(ITEM) < COST: htmltext = "<html><body>Смена ника: <font color=74bff5>"+str(COST)+" "+INAME+"</font></body></html>" return htmltext #elif player.getClanId(): #htmltext = "<html><body>Для смены ника вам необходимо выйти из клана<br>Вы сможете вступить вновь, сразу после смены ника<br>Если вы кланлидер - перекиньте клан на твинка</body></html>" #return htmltext htmltext = "<html><body><center><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br><img src=\"L2UI.SquareBlank\" width=260 height=2><br1>" htmltext += "Введите желаемый ник:" htmltext += "<edit var=\"nick\" width=200 length=\"16\"><br>" htmltext += "<button value=\"Проверить\" action=\"bypass -h Quest 1235_ShadowName step2_ $nick\" width=204 height=20 back=\"sek.cbui36\" fore=\"sek.cbui75\"><br>" htmltext += "<img src=\"L2UI_CH3.herotower_deco\" width=256 height=32></center></body></html>" elif event.startswith("step2_"): nick = str(event.replace("step2_", "")) nick = str(nick.replace(" ", "")) htmltext = "<html><body><center>Смена ника:<br>Проверка...<br><br>" if nick == "": htmltext += "Вы не ввели желаемый ник! Не используйте символы #$%^&_|<br><br>" htmltext += "<a action=\"bypass -h Quest 1235_ShadowName step1\">Вернуться.</a></body></html>" return htmltext elif nick.startswith("GM.") or nick.startswith("ADM.") or nick.startswith("EGM.") or nick.startswith("-") or nick.startswith(".") or nick.startswith("#") or nick.startswith("%") or nick.startswith("&") or nick.startswith("|"): htmltext += "Неправильный ник!<br><br>" htmltext += "<a action=\"bypass -h Quest 1235_ShadowName step1\">Вернуться.</a></body></html>" return htmltext elif nick.endswith(".GM") or nick.endswith(".ADM") or nick.endswith(".EGM") or nick.startswith("-") or nick.startswith(".") or nick.startswith("#") or nick.startswith("%") or nick.startswith("&") or nick.startswith("|"): htmltext += "Неправильный ник!<br><br>" htmltext += "<a action=\"bypass -h Quest 1235_ShadowName step1\">Вернуться.</a></body></html>" return htmltext #< cona=L2DatabaseFactory.getInstance().getConnection() getcount=cona.prepareStatement("SELECT COUNT(char_name) FROM characters WHERE char_name=?") getcount.setString(1,nick) rsc=getcount.executeQuery() if (rsc.next()): if rsc.getInt(1) == 1: htmltext = "<font color=dc143c>Ник "+nick+" уже занят.</font><br>" htmltext += "<a action=\"bypass -h Quest 1235_ShadowName step1\">Вернуться.</a></body></html>" return htmltext rsc.close() getcount.close() cona.close() #< htmltext += "<font color=bef574>Ник "+nick+" свободен.</font><br>" htmltext += "<a action=\"bypass -h Quest 1235_ShadowName step3_"+nick+"\" msg=\"Новый ник "+nick+". Уверены?\">Продолжить. </a><br><br>" htmltext += "<a action=\"bypass -h Quest 1235_ShadowName step1\">Назад</a></body></html>" elif event.startswith("step3"): nick = str(event.replace("step3_", "")) if st.getQuestItemsCount(ITEM) < COST: htmltext = "<html><body>Смена ника: <font color=74bff5>"+str(COST)+" "+INAME+"</font></center></body></html>" return htmltext #< login = str(player.getAccountName()) name = str(player.getName()) date = str(strftime("%Y-%m-%d", gmtime())) time = str(strftime("%H:%M:%S", gmtime())) writelog=L2DatabaseFactory.getInstance().getConnection() write=writelog.prepareStatement("INSERT INTO zz_donate_log (date,time,login,name,action,payment) VALUES (?,?,?,?,?,?)") write.setString(1, date) write.setString(2, time) write.setString(3, login) write.setString(4, name) write.setString(5, "Nick: "+nick+"") write.setInt(6, COST) try : write.executeUpdate() write.close() writelog.close() except : try : writelog.close() except : pass #< player.setName(nick) st.takeItems(ITEM,COST) htmltext = "<html><body><center>Смена ника:<br>Готово.<br><font color=f5b974>Перезайдите!</font><br></body></html>" else: htmltext = "<html><body>Смена ника:<br>Oops!</center></body></html>" return htmltext def onTalk (self,npc,player): st = player.getQuestState(qn) npcId = npc.getNpcId() if npcId == NPC: self.startQuestTimer("step1",100,None,player) return QUEST = Quest(1235,qn,"custom") QUEST.addStartNpc(NPC) QUEST.addTalkId(NPC) Изменено 7 марта, 2014 пользователем desolator 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sos96910 1 Опубликовано 7 марта, 2014 Вот держи, смена ника на питоне под люцеру. import sys from java.lang import System from java.util import Iterator from ru.catssoftware import L2DatabaseFactory from ru.catssoftware.tools.random import Rnd 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 from time import gmtime, strftime qn = "1235_ShadowName" print "***Name OK - Loaded***" NPC = 298030 ITEM = 13012 # итем необходимый для обмена COST = 15 # стоимость INAME = "Донат монет" # название итема 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": if st.getQuestItemsCount(ITEM) < COST: htmltext = "<html><body>Смена ника: <font color=74bff5>"+str(COST)+" "+INAME+"</font></body></html>" return htmltext #elif player.getClanId(): #htmltext = "<html><body>Для смены ника вам необходимо выйти из клана<br>Вы сможете вступить вновь, сразу после смены ника<br>Если вы кланлидер - перекиньте клан на твинка</body></html>" #return htmltext htmltext = "<html><body><center><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br><img src=\"L2UI.SquareBlank\" width=260 height=2><br1>" htmltext += "Введите желаемый ник:" htmltext += "<edit var=\"nick\" width=200 length=\"16\"><br>" htmltext += "<button value=\"Проверить\" action=\"bypass -h Quest 1235_ShadowName step2_ $nick\" width=204 height=20 back=\"sek.cbui36\" fore=\"sek.cbui75\"><br>" htmltext += "<img src=\"L2UI_CH3.herotower_deco\" width=256 height=32></center></body></html>" elif event.startswith("step2_"): nick = str(event.replace("step2_", "")) nick = str(nick.replace(" ", "")) htmltext = "<html><body><center>Смена ника:<br>Проверка...<br><br>" if nick == "": htmltext += "Вы не ввели желаемый ник! Не используйте символы #$%^&_|<br><br>" htmltext += "<a action=\"bypass -h Quest 1235_ShadowName step1\">Вернуться.</a></body></html>" return htmltext elif nick.startswith("GM.") or nick.startswith("ADM.") or nick.startswith("EGM.") or nick.startswith("-") or nick.startswith(".") or nick.startswith("#") or nick.startswith("%") or nick.startswith("&") or nick.startswith("|"): htmltext += "Неправильный ник!<br><br>" htmltext += "<a action=\"bypass -h Quest 1235_ShadowName step1\">Вернуться.</a></body></html>" return htmltext elif nick.endswith(".GM") or nick.endswith(".ADM") or nick.endswith(".EGM") or nick.startswith("-") or nick.startswith(".") or nick.startswith("#") or nick.startswith("%") or nick.startswith("&") or nick.startswith("|"): htmltext += "Неправильный ник!<br><br>" htmltext += "<a action=\"bypass -h Quest 1235_ShadowName step1\">Вернуться.</a></body></html>" return htmltext #< cona=L2DatabaseFactory.getInstance().getConnection() getcount=cona.prepareStatement("SELECT COUNT(char_name) FROM characters WHERE char_name=?") getcount.setString(1,nick) rsc=getcount.executeQuery() if (rsc.next()): if rsc.getInt(1) == 1: htmltext = "<font color=dc143c>Ник "+nick+" уже занят.</font><br>" htmltext += "<a action=\"bypass -h Quest 1235_ShadowName step1\">Вернуться.</a></body></html>" return htmltext rsc.close() getcount.close() cona.close() #< htmltext += "<font color=bef574>Ник "+nick+" свободен.</font><br>" htmltext += "<a action=\"bypass -h Quest 1235_ShadowName step3_"+nick+"\" msg=\"Новый ник "+nick+". Уверены?\">Продолжить. </a><br><br>" htmltext += "<a action=\"bypass -h Quest 1235_ShadowName step1\">Назад</a></body></html>" elif event.startswith("step3"): nick = str(event.replace("step3_", "")) if st.getQuestItemsCount(ITEM) < COST: htmltext = "<html><body>Смена ника: <font color=74bff5>"+str(COST)+" "+INAME+"</font></center></body></html>" return htmltext #< login = str(player.getAccountName()) name = str(player.getName()) date = str(strftime("%Y-%m-%d", gmtime())) time = str(strftime("%H:%M:%S", gmtime())) writelog=L2DatabaseFactory.getInstance().getConnection() write=writelog.prepareStatement("INSERT INTO zz_donate_log (date,time,login,name,action,payment) VALUES (?,?,?,?,?,?)") write.setString(1, date) write.setString(2, time) write.setString(3, login) write.setString(4, name) write.setString(5, "Nick: "+nick+"") write.setInt(6, COST) try : write.executeUpdate() write.close() writelog.close() except : try : writelog.close() except : pass #< player.setName(nick) st.takeItems(ITEM,COST) htmltext = "<html><body><center>Смена ника:<br>Готово.<br><font color=f5b974>Перезайдите!</font><br></body></html>" else: htmltext = "<html><body>Смена ника:<br>Oops!</center></body></html>" return htmltext def onTalk (self,npc,player): st = player.getQuestState(qn) npcId = npc.getNpcId() if npcId == NPC: self.startQuestTimer("step1",100,None,player) return QUEST = Quest(1235,qn,"custom") QUEST.addStartNpc(NPC) QUEST.addTalkId(NPC) во спасибо большое, сделал все работает лови плюс ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sos96910 1 Опубликовано 7 марта, 2014 Тему можно закрывать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты