NioNko 1 Опубликовано 18 ноября, 2017 Подскажите как сделать что бы в донат шопе можно было делать русский ник сборка l2Frozen Скрипт смени ника 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 = 300300 ITEM_ID = 4037 NAME_COUNT = 20 COLOR_COUNT = 20 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) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
emc2 13 Опубликовано 18 ноября, 2017 if len(event) >= 3 and len(event) <= 16 and Pattern.matches("[а-яА-ЯA-Za-z0-9\`\~\!\@\#\$\%\^\*\(\)\_\-\=\[\]\'\.\,\:\;]*", event):если не поможет то перекодируй русские буквы в код. таблицу найдешь тут - _http://i.voenmeh.ru/kafi5/Kam.loc/inform/UTF-8.htm Кстати вроде мануал был. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NioNko 1 Опубликовано 18 ноября, 2017 (изменено) if len(event) >= 3 and len(event) <= 16 and Pattern.matches("[а-яА-ЯA-Za-z0-9\`\~\!\@\#\$\%\^\*\(\)\_\-\=\[\]'\.\,\:\;]*", event): если не поможет то перекодируй русские буквы в код. таблицу найдешь тут - _http://i.voenmeh.ru/kafi5/Kam.loc/inform/UTF-8.htm Кстати вроде мануал был. Спасибо перекодировка помогла! Изменено 18 ноября, 2017 пользователем NioNko Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
emc2 13 Опубликовано 18 ноября, 2017 (изменено) теперь ник "????" поменяй кодировку базы на utf8 и в config/network/gameserver пропиши: GameserverDB = gameserver?useUnicode=true&characterEncoding=utf-8 и в батнике гс тоже укажи java -Dfile.encoding=UTF8 -Xms3524m -Xmx3524m -cp ./lib/*;./lib/uMad/*;l2jfrozen-core.jar ... бла бла бла) А ещё патч нужен на русские ники. Изменено 18 ноября, 2017 пользователем emc2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NioNko 1 Опубликовано 18 ноября, 2017 (изменено) поменяй кодировку базы на utf8 и в config/network/gameserver пропиши: GameserverDB = gameserver?useUnicode=true&characterEncoding=utf-8 и в батнике гс тоже укажи java -Dfile.encoding=UTF8 -Xms3524m -Xmx3524m -cp ./lib/*;./lib/uMad/*;l2jfrozen-core.jar ... бла бла бла) А ещё патч нужен на русские ники. Ник меняеться на русский в донат шопе,ну после релога перса становиться "????" GameserverDB = gameserver?useUnicode=true&characterEncoding=utf-8 и в батнике гс тоже укажи java -Dfile.encoding=UTF8 -Xms3524m -Xmx3524m -cp ./lib/*;./lib/uMad/*;l2jfrozen-core.jar ... бла бла бла) это все прописано если можно ссылку на рабочий патч. Изменено 18 ноября, 2017 пользователем NioNko Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
emc2 13 Опубликовано 18 ноября, 2017 Ник меняеться на русский в донат шопе,ну после релога перса становиться "????" GameserverDB = gameserver?useUnicode=true&characterEncoding=utf-8 и в батнике гс тоже укажи java -Dfile.encoding=UTF8 -Xms3524m -Xmx3524m -cp ./lib/*;./lib/uMad/*;l2jfrozen-core.jar ... бла бла бла) это все прописано если можно ссылку на рабочий патч. в бд глянь какой. патч есть на русские символы в клиенте? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты