Перейти к содержанию
Авторизация  
paradizzz

Помогите Править Нпц

Рекомендуемые сообщения

Помогите пожалуйста править, чтобы можно было делать русский ник (поддержка русских ников стоит, непонятно только как сделать чтобы сохранение было в 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)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"[A-Za-z0-9\`\~\!\@\#\$\%\^\*\(\)\_\-\=\[\]\'\.\,\:\;]*"

Сюда добавьте русские символы.

 

"[A-Za-z0-9\u0410-\u042f\u0430-\u044f\`\~\!\@\#\$\%\^\*\(\)\_\-\=\[\]\'\.\,\:\;]*"

Англо-Русские ники

 

п.с Попробуйте так)) Не уверен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
"[A-Za-z0-9\`\~\!\@\#\$\%\^\*\(\)\_\-\=\[\]\'\.\,\:\;]*"

Сюда добавьте русские символы.

 

"[A-Za-z0-9\u0410-\u042f\u0430-\u044f\`\~\!\@\#\$\%\^\*\(\)\_\-\=\[\]\'\.\,\:\;]*"

Англо-Русские ники

 

п.с Попробуйте так)) Не уверен.

 

Даааа... спасибо огромное, незнаешь ещё как сделать, чтобы цвет у ника/титула сохранялся?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Сборка какая? Если исходники есть - сделаю))

 

Вроде бы да хаха)

Просто я ещё с ними никогда не работал, ну сборка l2frozen 900, есть папки lib содержащая jar и java файлы, скорее всего это и есть исходы)

Плз расскажи сам мне самому интересно просто)

 

Или там очень трудно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тебе очень повезло... У меня есть исходники 900-той ревы.

У тебя скомпилированная сборка уже))

Это не трудно)) 40 секунд займёт, если ты разберешься в этом.

 

Скажи мне свой копирайты (Название сервера и сайт(ссылка))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ой а сможешь кинуть исходники?

 

Lin2insomnia

 

А ссылка зач?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Мне так не удобно... Добавь в скайп.

 

Добавил

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...