Jump to content
  • 0

Color manager


l2fire

Question

Hello guys. I downloaded from this site color manager npc and added to the server.

 

After characters restart don't stay name color. Just title color work perfect.

 

E.x. : You buy color: 00000, and when you do relogin after relogin your color: FF0000(white).

 

 

import sys
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 = 45555
ITEM_ID = 20003
NAME_COUNT = 200
COLOR_COUNT = 200

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 u"<html><head><body><center>Check if you have all items you need!</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 u"<html><head><body><center>Check if you have all items you need! </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 u"<html><head><body><center>Check if you have all items you need!</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 u"<html><head><body><center>Check if you have all items you need!</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 u"<html><head><body><center>Check if you have all items you need!</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 u"<html><head><body><center>Check if you have all items you need!</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 u"<html><head><body><center>Check if you have all items you need!</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 u"<html><head><body><center>Check if you have all items you need!</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 u"<html><head><body><center>Check if you have all items you need!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>Check if you have all items you need\u0435\u0442\u0430!</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 u"<html><head><body><center>You are clan leader. Can't change the name!</center></body></html>"
                if st.getPlayer().getClan():
                    return u"<html><head><body><center>You are clan member, can't change the 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 u"<html><head><body><center>You don't have the necesary items!</center></body></html>"
            else:
                return u"<html><head><body><center>Try again!</center></body></html>"
        else:
            return u"<html><head><body><center>Try again!</center></body></html>"
        return u"<html><head><body><center>Check if you have all items you need!</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)

 

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

You have to add 1 more field in characters table that is responsible for the color (varchar) .

When you are setting the new color use a dB connection to save that in the new field. Finally, handle onEnter to load the custom color and you are done. 

 

 

Drop that shit and make one from Java. If you don't know how to, noone will help you with python codes here

Edited by melron
Link to comment
Share on other sites

  • 0
1 minute ago, melron said:

You have to add 1 more field on characters table that is responsible for the color (varchar) .

When you are setting the new color use a dB connection to save that in the new field. Finally, handle onEnter to load the custom color and you are done. 

 

 

Drop that shit and make one from Java. If you don't know how to, noone will help you with python codes here

 

I know this.  I must to add something in java but idk what code... l2jfrozen. characters.sql have name_color

Link to comment
Share on other sites

  • 0
34 minutes ago, l2fire said:

 

I know this.  I must to add something in java but idk what code... l2jfrozen. characters.sql have name_color

What a retard script. What a retard way to get color change. You can set the color automatic in html 

bypass -h npc_%ObjectId%_255 255 255

And write 3 lines of code in java using a StringTokenizer to get thos 3 values. 

You guys are in 2018 have 200000000 tutorials and still open request topics for such a thing for f sake.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock