Поставил эвент "Однорукий бандит"(казино) на сборку L2JLovely 15rev установил но когда захожу в игру и кликаю на npc Он выдает: 
Internal Error. Please Contact your admin
Вот сам скрипт: 
# Event SWEET BOX.
# Create by Hlorka Dev. Group (www.hlorka.com)
# April 2011.
# Contact e-mail: support@hlorka.com
import sys
from java.util.regex import Pattern
from ru.catssoftware.gameserver.model.quest import State
from ru.catssoftware.gameserver.model.quest import QuestState
from ru.catssoftware.gameserver.model.quest.jython import QuestJython as JQuest
from ru.catssoftware.gameserver.datatables import ItemTable
from ru.catssoftware.tools.random import Rnd
qn = "4090_SweetBox"
# Config
SWEETMANAGER=31774
CHANCE=50.0 # Шанс успешного выигрыша в процентах.
ShowChance=1 # Показать(1)/Скрыть(0) шанс на экране.
RATIO=1.50 # Коэффициент выигрыша.
ShowRatio=1  # Показать(1)/Скрыть(0) коэффициент на экрае.
# ОСТОРОЖНО: не указывайте нестопковые предметы, т.к. при высоком коэффициенте
# вы "положете" свою базу данных.
MoneyTypes=[57,4037] # Список ID предметов меню. Не более 5-ти стопковых предметов.
                     # 57 - Adena
                     # 4037 - Coin of Luck
class Display :
 def createItemList(self, exchangeData):
    bypassText = ""
    for i in exchangeData :
        bypassText += i[1]+";"
    return bypassText
 def CheatMsg(self): return "wcheat.htm"
 def EmptyCountMsg(self):
    return u"\u0412\u044B \u043D\u0435 \u0432\u0432\u0435\u043B\u0438 \u0441\u0432\u043E\u044E \u0441\u0442\u0430\u0432\u043A\u0443. \u041F\u043E\u0436\u0430\u043B\
\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u0442\u0430\u0432\u043A\u0443 (\u043A\u0430\u043F\u0438\u0442\u0430\u043B)."
 def InvalidCountMsg(self) :
    return u"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 \u0441\u0442\u0440\u043E\u043A\u0435. \
\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E 1-900000000."
 def InvalidInputMsg(self) :
    return u"\u041D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0432 \u0441\u0442\u0440\
\u043E\u043A\u0435, \u0432\u0432\u043E\u0434\u0438\u0442\u044C \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0446\u0438\u0444\u0440\u044B."
 def WinningMsg(self) :
    return "win.htm"
 def LossMsg(self) :
    return "loss.htm"
 def NotEnoughItemsMsg(self, itemName) :
    return u"\u0414\u043B\u044F \u0442\u0430\u043A\u043E\u0439 \u0441\u0442\u0430\u0432\u043A\u0438 \u0432 \u0432\u0430\u0448\u0435\u043C \u0440\u044E\u043A\u0437\u0430\u043A\u0435 \
\u043D\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 "+itemName+"."
 def MainWindow(self, exchangeData, chance, ratio):
    textChance = textRatio = ""
    ratio = "%2.2f" % ratio
    chance = "%-.d" % chance
    textHeader = u"<html><title>\u042D\u0432\u0435\u043D\u0442 Sweet Lottery</title><body><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\
<tr><td width=32><img src=\"Icon.Item_CanUse04\" width=32 height=32></td><td width=206 align=\"center\"><font color=\"FF9966\">SWEET Lottery</font></td>\
<td width=32><img src=\"Icon.Item_CanUse04\" width=32 height=32></td></tr></table><br>\u0427\u0442\u043E\u0431\u044B \u0441\u044B\u0433\u0440\u0430\u0442\
\u044C \u0432 \u043B\u043E\u0442\u0435\u0440\u0435\u044E Sweet Box, \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u043B\u044E\u0442\u0443 \
\u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430 \u043D\u0438\u0436\u0435 \u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0435\u0435 \u043A\u043E\
\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E. \u0412\u0430\u0448 \u043A\u0430\u043F\u0438\u0442\u0430\u043B \u0432 \u0441\u043B\u0443\u0447\u0430\u0435 \
\u0432\u044B\u0438\u0433\u0440\u044B\u0448\u0430 \u043E\u043D \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D.<br>\
<img src=\"L2UI.SquareWhite\" width=270 height=1><br><table cellpadding=\"8\" cellspacing=\"0\" border=\"0\">"
    if ShowChance : textRatio = u"<tr><td width=150>\u041A\u043E\u044D\u0444\u0444\u0438\u0446\u0438\u0435\u043D\u0442 \u0432\u044B\u0438\u0433\u0440\u044B\u0448\u0430:\
</td><td width=100><font color=\"00CCCC\">"+ratio+u"</font></td></tr>"
    if ShowRatio : textChance = u"<tr><td width=150>\u0428\u0430\u043D\u0441:</td><td width=100><font color=\"00CCCC\">"+chance+u"%</font></td></tr>"
    textFooter = u"<tr><td width=150><font color=\"LEVEL\">\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u043B\u044E\u0442\u0443:</font></td>\
<td width=100><combobox width=\"100\" var=\"cytype\" list="+self.createItemList(exchangeData)+u"></td></tr><tr><td width=150><font color=\"LEVEL\">\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \
\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E:</font></td><td width=100><edit var=\"count\" width=\"100\" length=\"10\"></td></tr></table><br><br>\
<center><button action=\"bypass -h Quest "+qn+u" $cytype $count\" value=\"\u0421\u044B\u0433\u0440\u0430\u0442\u044C\" width=76 height=21 back=\"L2UI_ch3.Btn1_normalOn\" \
fore=\"L2UI_ch3.Btn1_normal\"></center><br><br><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td width=\"100\"></td><td width=\"170\">\
<img src=\"L2UI.SquareGray\" width=\"170\" height=\"1\"><br></td></tr><tr><td width=\"100\"></td><td width=\"170\" align=\"right\">\
<font color=\"3b3b3b\">Powered by Hlorka Dev. Group</font></td></tr></table></body></html>"
    return textHeader+textRatio+textChance+textFooter
class Quest (JQuest) :
 def __init__(self,id,name,descr):
   JQuest.__init__(self,id,name,descr)
   self.Exchange = []
   itemTable = ItemTable.getInstance()
   for i in MoneyTypes :
        ItemName=itemTable.getTemplate(i).getName()
        tempItem = (i, ItemName.replace(" ","_"))
        self.Exchange.append(tempItem)
 def onEvent (self,event,st) :
   disp = Display()
   bypass = event.split(" ")
   if len(bypass) != 2 :
        st.playSound("ItemSound3.sys_shortage")
        return disp.EmptyCountMsg()
   if not Pattern.matches('^\d{1,10}$',bypass[1]) :
        st.playSound("ItemSound3.sys_shortage")
        return disp.InvalidInputMsg()
   bypassItemName = bypass[0]
   bypassItemCount = int(bypass[1])
   if not (bypassItemCount > 0 and bypassItemCount < 900000000) :
        st.playSound("ItemSound3.sys_shortage")
        return disp.InvalidCountMsg()
   htmltext = disp.CheatMsg()
   for i in self.Exchange :
        if bypassItemName == i[1] :
            if st.getQuestItemsCount(i[0]) >= bypassItemCount :
                if Rnd.get(1000) < CHANCE*10 :
                    st.giveItems(i[0],int(bypassItemCount*RATIO))
                    st.playSound("ItemSound3.sys_make_success")
                    htmltext = disp.WinningMsg()
                    break
                else :
                    st.takeItems(i[0],bypassItemCount)
                    st.playSound("ItemSound3.sys_make_fail")
                    htmltext = disp.LossMsg()
                    break
            st.playSound("ItemSound3.sys_shortage")
            htmltext = disp.NotEnoughItemsMsg(i[1])
            break
   st.exitQuest(1)
   return htmltext
 def onFirstTalk (self,npc,player):
   st = player.getQuestState(qn)
   htmltext = "Internal Error. Please Contact your admin." 
   if not st: return htmltext
   dsp = Display()
   htmltext = dsp.MainWindow(self.Exchange,CHANCE,RATIO)
   return htmltext
QUEST = Quest(4090,qn,"custom") 
QUEST.addStartNpc(SWEETMANAGER) 
QUEST.addFirstTalkId(SWEETMANAGER) 
Путь к папке эвента: C:\server\game\data\scripts\custom\4090_SweetBox