Всем привет. У меня есть скрипт донат шопа для lucera.
Там есть скрипт выдачи хиро на определенное количество дней (сколько введешь). Мне нужно чтобы был выбор количества дней, к примеру 7, 20, 30 (и навсегда) если возможно. Или же просто на месяц или на неделю вместо дней.
Есть пару тем связанных с этим, но не совсем понял как реализовать это.. Поможете додумать?
http://forummaxi.ru/topic/16392-%D0%B1%D0%B0%D0%B9%D0%BF%D0%B0%D1%81%D1%8B%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B8%D1%82%D0%B5/ - выбор количества дней из списка
http://forummaxi.ru/topic/32947-%D1%85%D0%B8%D1%80%D0%BE-%D0%BD%D0%B0-%D0%BC%D0%B5%D1%81%D1%8F%D1%86/ - хиро на месяц
Вот сам скрипт. Сам донат шоп во вложении.
import sys
from time import gmtime, strftime
from ru.catssoftware import L2DatabaseFactory
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.util import PcAction
qn = "1239_ShadowHero"
NPC = 298030 # Не трогать.
ITEM = 4037 # Итем необходимый для покупки.
COST = 2 # Стоимость за один день.
INAME = "Монета Удачи" # Название Вещи.
print "***Donate Manager by TigloN, Hero - Loaded***"
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onAdvEvent (self,event,npc,player):
st = player.getQuestState(qn)
if event.startswith("hero"):
days = event.replace("hero", "")
if days == " ":
htmltext = "<html><body>Вы не ввели количество дней.</body></html>"
return htmltext
if player.isHero():
htmltext = "<html><body>Вы уже герой.</body></html>"
return htmltext
days = days.replace(" ", "")
if not days.isdigit():
htmltext = "<html><body>Вы не ввели количество дней.</body></html>"
return htmltext
days = int(days)
if days < 1:
htmltext = "<html><body>Вы не ввели количество дней.</body></html>"
return htmltext
payment = COST * days
if st.getQuestItemsCount(ITEM) < payment:
htmltext = "<html><body>Статус хиро за "+str(days)+" дней:</font> <font color=74bff5>"+str(payment)+" "+INAME+"</body></html>"
return htmltext
htmltext = "<html><body>Теперь вы Герой на "+str(days)+" дн. <br><br>"
#<
st.takeItems(ITEM,payment)
PcAction.addHeroStatus(player,days)
#<
login = str(player.getAccountName())
name = str(player.getName())
date = str(strftime("%Y-%m-%d", gmtime()))
time = str(strftime("%H:%M:%S", gmtime()))
writelog=L2DatabaseFactory.getInstance().getConnection()
write=writelog.prepareStatement("INSERT INTO shadow_npc_log (date,time,login,name,action,payment) VALUES (?,?,?,?,?,?)")
write.setString(1, date)
write.setString(2, time)
write.setString(3, login)
write.setString(4, name)
write.setString(5, "Hero Status, "+str(days)+" days.")
write.setInt(6, payment)
try :
write.executeUpdate()
write.close()
writelog.close()
except :
try : writelog.close()
except : pass
#<
htmltext += "<font color=bef574>Спасибо за поддержку!</font><br></body></html>"
else:
htmltext = "<html><body>Статус хиро:<br>Oops!</body></html>"
return htmltext
def onTalk (self,npc,player):
htmltext = "<html><body>Для вас в данный момент ничего нет.</body></html>"
st = player.getQuestState(qn)
npcId = npc.getNpcId()
if npcId == NPC:
htmltext = "privetstvie.htm"
return htmltext
QUEST = Quest(1239,qn,"custom")
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
Donate Shop.zip