[help]npc Change Name Color
Железо: кор 2 дуо 2.6, 2 гига оперы
ОС: Винда хр х32
Программы: мускул 5.1 х32, ява х32
Сборка: Gracia PT2, L2jFree 1.2.10
Краткое изложение СУТИ проблемы: поставил себе NPC по смене цвета ника,как меняешь ник,он меняется,но после рестарта клиента он становиться прежним.
Вопрос: в чем причина и как исправить?
Заранее спасибо !
нужно править ядро+в таблице сharacters создать 2 столбца name_color,title_color(для титула) куда будет заносится инфа про цвет ника у чара.
без исходников никак
в платой сборке la2base вроде есть.
Я не такой, я не такой как все, потому что я нашол сегодня пламя в своей душе. (с) S.T.A.S.
В сборке La2Base 1.1.7 есть это,я залил ихний characters.sql,но все равно не сохраняются !
а как ты хочеш чтоб сохранялось? посмотри скрипт,может там есть указания насчет бд,если нету -> ядро.
Я не такой, я не такой как все, потому что я нашол сегодня пламя в своей душе. (с) S.T.A.S.
На сборке La2Base 1.1.7 этот скрипт работает на ура ! А на Free не хочет,ядро я вроде менял,так как срипт не подходил к этой сборке.
Вот оригинал
from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
from net.sf.l2j.gameserver.model.actor.appearance import PcAppearance
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
qn = "7800_Namecolor"
NPC=[7802]
QuestId = 7800
QuestName = "Namecolor"
QuestDesc = "custom"
InitialHtml = "1.htm"
print "Loaded Custom: 7001 Namecolor"
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onEvent(self,event,st) :
htmltext = event
if event == "1":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0x009900)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
st.exitQuest(0)
if event == "2":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0xff7f00)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "3":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0xff00ff)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "4":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0x00ffff)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "5":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0x0000ff)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "6":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0x0099ff)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "7":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0x70db93)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "8":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0x9f9f9f)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "9":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0xffff00)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
def onTalk (self,npc,player):
st = player.getQuestState(qn)
htmltext = "<html><head><body><center>Nao tenho nada para dizer agora.</center></body></html>"
st.setState(State.STARTED)
return InitialHtml
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
А вот что я сделал
from com.l2jfree.gameserver.model.actor.instance import L2PcInstance
from com.l2jfree.gameserver.model.actor.appearance import PcAppearance
from com.l2jfree.gameserver.model.quest import State Вот тут я подпраил
from com.l2jfree.gameserver.model.quest import QuestState
from com.l2jfree.gameserver.model.quest.jython import QuestJython as JQuest
qn = "7800_Namecolor"
NPC=[7802]
QuestId = 7800
QuestName = "Namecolor"
QuestDesc = "custom"
InitialHtml = "1.htm"
print "Loaded Custom: 7001 Namecolor"
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onEvent(self,event,st) :
htmltext = event
if event == "1":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0x009900)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
st.exitQuest(0)
if event == "2":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0xff7f00)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "3":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0xff00ff)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "4":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0x00ffff)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "5":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0x0000ff)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "6":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0x0099ff)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "7":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0x70db93)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "8":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0x9f9f9f)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
if event == "9":
if st.getQuestItemsCount(57) > 250000:
st.takeItems(57,250000)
st.getPlayer().getAppearance().setNameColor(0xffff00)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(57) <= 250000:
return "Announcements: No Enought Adena To Select Color!"
def onTalk (self,npc,player):
st = player.getQuestState(qn)
htmltext = "<html><head><body><center>Nao tenho nada para dizer agora.</center></body></html>"
st.setState(State.STARTED)
return InitialHtml
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
Он работает,но не сохраняет после рестарта клиента или сервера !
Что бы вы не делали ник не будет сохранять цвет , нужно менять ядро. Без исходников и незнания явы (а я больше чем уверен их у вас нету) ничего не сделать.
— La2Psy.ru [ADM]Wh1tePower...




