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

Редактировать скрипт выдачи хиро

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

Всем привет. У меня есть скрипт донат шопа для 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

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


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

Ап

 

Интересует как сделать чтобы открывалось меню выбора,на сколько дней дать хиро

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


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

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

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

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

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

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

Войти

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

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

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

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

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