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

Эвент Казино Sweet BOX

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

Кто подскажет для Pw  что нужно изменить  чтоб эвент заработал

ну кроме импортов  это не помогло

изначально он под люцеру или ловели  написан

 

# 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=0 # Показать(1)/Скрыть(0) шанс на экране.
RATIO=1.50 # Коэффициент выигрыша.
ShowRatio=0  # Показать(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 onTalk (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.addTalkId(SWEETMANAGER)

 

 

 

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


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

Код ошибки в студию ) и в спойлер.

Изменено пользователем Tetris

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


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

А тот код, что Вы выше выложили, Вы считаете уже с измененными импортами, или это оригинал? )

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


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

оригинал но я менял  на

 

import sys
from java.util.regex import Pattern
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
from net.sf.l2j.gameserver.datatables import ItemTable
from net.sf.l2j.tools.random import Rnd

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


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

только такая в консоли

importing custom data ...
failed to import custom :  4090_SweetBox

 

 

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


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, Gamaz сказал:

только такая в консоли

importing custom data ...
failed to import custom :  4090_SweetBox

 

 

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


Ну и да, сразу вижу ошибку замены импортов, Rnd на пв софте вот там: net.sf.l2j.util.Rnd;

Изменено пользователем Rolo

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


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

просто еще был азино777  эвент но тут только  нафоруме   html ки лежат без самого скрипта

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


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

поменял import rnd который дал  но теперь при клике по NPC

в чате пишет   Internal Error. Please Contact your admin

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


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Gamaz сказал:

что сделаешь

Сделает так, что бы у тебя все заработало) :D

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


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Circalover сказал:

Щас бы за 1000 писать 15 строчек...

Да хоть 1 строчку, тут дело не в количестве, а в том что значть что писать.

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


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

За 500 рублей, переделаю под тебя. Если нужно, обращайся

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


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

где то в очень старой мой сборке есть это гавно для пвсофта, пиши в телегу @infinitysl2
Время будет свободное, гляну и скину если что бесплатно.

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


Ссылка на сообщение
Поделиться на другие сайты
В 31.03.2021 в 17:39, Gamaz сказал:

спасибо за помощь

Можете и мне скинуть ,буду благодарен

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


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

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

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

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

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

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

Войти

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

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

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

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

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