Помогите пожалуйста править, чтобы можно было делать русский ник (поддержка русских ников стоит, непонятно только как сделать чтобы сохранение было в UTF формате, т.е чтобы могли русский ник задонить) и со сменой цвета (он даётся только до рестарта, а нужно, чтобы навсегда) сам что-то разобраться никак не могу, вот код:
Скрытый текст
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 = 99879
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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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>Недостаточно колов!</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)