Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Смена ника/титула игрока
#1
Добрый вечер.

Такая трабла: поставил НПС который должен красить ник и титул. Нпс то красит, но вот после рестарта все это пропадает. Как сделать что бы сохранялось?

Сборка - Teon v.1127 (interlude)

Вот НПС:

PHP код:
<?php 
###########################################
import sys
from net
.sf.l2j.gameserver.model.actor.instance import L2PcInstance
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
#
#========================================
# DO NOT TOUCH THIS
#========================================
QuestId = 1000
QuestName
= "ColorManager"
QuestDesc = "custom"
qn = "q"+str(QuestId)+"_"+str(QuestName)
#========================================
StartNpc = 50000
ItemId
= 57
ItemQty
= 1
MinLevel
= 1
MaxLevel
= 80
#========================================
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

def onAdvEvent(Self,event,npc,player):
text = "noaction.htm"
st = player.getQuestState(qn)
if
not st : return text
if (player.getLevel() < MinLevel) or (player.getLevel() > MaxLevel) : return "charlevel.htm"
if st.getQuestItemsCount(ItemId) < ItemQty : return "nomoney.htm"
nameColor = hex(player.getAppearance().getNameColor())
titleColor = hex(player.getAppearance().getTitleColor())
st.set("nameColor",str(nameColor))
st.set("titleColor",str(titleColor))
if
event == "N_Blue" :
nameColor = "FF0000"
elif event == "N_Red" :
nameColor = "0000FF"
elif event == "N_Cyan" :
nameColor = "00FF00"
elif event == "N_Magenta" :
nameColor = "FF00FF"
elif event == "N_Yellow" :
nameColor = "00FFFF"
elif event == "N_Gray" :
nameColor = "808080"
elif event == "N_White" :
nameColor = "FFFFFF"
elif event == "T_Blue" :
titleColor = "FF0000"
elif event == "T_Red" :
titleColor = "0000FF"
elif event == "T_Cyan" :
titleColor = "FFFF00"
elif event == "T_Green" :
titleColor = "00FF00"
elif event == "T_Magenta" :
titleColor = "FF00FF"
elif event == "T_Yellow" :
titleColor = "00FFFF"
elif event == "T_Gray" :
titleColor = "808080"
elif event == "T_White" :
titleColor = "FFFFFF"
nameColor = int(nameColor,16)
titleColor = int(titleColor,16)
player.getAppearance().setNameColor(nameColor)
player.getAppearance().setTitleColor(titleColor)
st.takeItems(ItemId,ItemQty)
player.broadcastUserInfo()
player.store()
text = "done.htm"
return text

def onTalk
(Self,npc,player):
st = player.getQuestState(qn)
if
not st :
return
"Quest is not started!"
st.setState(State.STARTED)
return
"1.htm"

def onFirstTalk (Self,npc,player):
st = getQuestState(qn)
if
not st : return "Invalid quest state"

QUEST = Quest(QuestId,qn,QuestDesc)

QUEST.addStartNpc(StartNpc)
QUEST.addTalkId(StartNpc)

В мускуле, в таблице characters создал 2 колонки с именами nameColor и titleColor (именно так, с учетом регистра), поставил колонкам тин int, и максимальную длинну 16 символов. Но все равно не сохраняет...Может кто то сталкивался, подскажет что делать?

Буду очень благодарен Smile
Ответ
#2
Вопрос к тебе : ты красишь ник/титул Админом?Скрипт точно правильный,ибо если бы там была ошибка,то при разговоре с НПС писало бы,что ты не выполнил квест
Ответ
#3
Цитата:Вопрос к тебе : ты красишь ник/титул Админом?Скрипт точно правильный,ибо если бы там была ошибка,то при разговоре с НПС писало бы,что ты не выполнил квест
И админом пробовал и обычными игроками - после релога в игру все пропадает. Ошибок при все этом нету ни каких. Ни в гейм сервере, ни в игре....Непонятно....
Ответ
#4
А где у вас запись в БД?
Т.Е. Сменили цвет и куда записало цвет игроку ? не в template ли случаем ?
СЕО Оптимизация сайтов
Ответ
#5
мне кажеться,что просто где-то в скрипте мода точно не указано время

а хотя нет,пересмотрел скрипт и времени вообще не увидел
Ответ
#6
Цитата:А где у вас запись в БД?
Т.Е. Сменили цвет и куда записало цвет игроку ? не в template ли случаем ?

Ну к сожалению я не знаю язык, на котором написан етот скрипт, да и програмист с меня плохой, знаю только основы некоторых языков.

Как выглядит запись в БД? Я так понимаю в конце скрипта мне нужно внести запись в БД значения переменной titleColor/nameColor?

Добавлено через 36 секунд
Цитата:мне кажеться,что просто где-то в скрипте мода точно не указано время

а хотя нет,пересмотрел скрипт и времени вообще не увидел
\
Какое время вы имеете ввиду?
Ответ
#7
slimline, месье, так, скрипт никуда не сохраняет результатов работы.

player.getAppearance().setNameColor(nameColor); - это функция, в которую передается цвет ника в кач-ве аргумента, исполняется в режиме реального времени, так сказать, и логически все правильно - таки все действует до рестарта. Я бы рекомендовал чутка поглядеть яву (хотя бы синтаксис в общих чертах) и накатать свою реализацию, уже, непосредственно, в ядре. В классе npc мы пишем цвет ника в таблицу и применяем к игроку, а в классе EnterWorld мы считываем ранее записанный результат и применяем его - так это будет выглядеть логически.

Месье xerec! Админское рисование цвета ничем не отличается от расположенного выше скрипта. Ну, почти ничем. Он тоже не сохраняет результатов свой деятельности (ну, на лыже так было). Далее - npc может ничего не писать, если скрипт написан с ошибкой. Например, вот вам логическая ошибка - player.getLevel() > 256 - условие никогда не выполнится, так как 256 уровень недостижим. Но написано все правильно и npc ругаться не будет. Таки логические ошибки - самые трудновыявимые.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Смена внешнего вида брони/оружия ErichKrause 26 8,290 11-09-2017, 05:21 AM
Последний пост: Splinter
  Смена ника lasthero1994 12 3,148 08-02-2016, 03:31 PM
Последний пост: lasthero1994
  Смена html (языка) на PTS платформе raindew 26 4,938 03-08-2015, 03:53 AM
Последний пост: Zubastic
  Смена цвета ника. CyMpak2009 10 2,805 12-16-2014, 03:13 AM
Последний пост: Zubastic
  смена цвета на нике и титуле l2 Rimmer 9 5,987 09-13-2014, 10:57 AM
Последний пост: Donatte
  Знаки вопроса место русского титула Intelect 7 2,141 05-05-2014, 02:07 AM
Последний пост: pchayka
  Смена профессии dimanez 2 1,616 12-07-2013, 04:53 PM
Последний пост: uzola
  Команда на смену ника savitskiy 6 3,094 07-10-2013, 03:28 PM
Последний пост: KID
  L2 изменение ника персонажа,сервисы... InRTechnolog 3 1,857 03-14-2013, 09:55 PM
Последний пост: InRTechnolog
  Цвет титула extend 8 2,795 01-03-2012, 01:29 PM
Последний пост: extend

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)