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

Хиро На Месяц

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

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 = "1244_rbHero"

NPC = 298031 # Не трогать.
ITEM = 18005 # Итем необходимый для покупки.
COST = 2 # Стоимость за один день.
INAME = "RB Coin" # Название Вещи.

print "RB Manager(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(1244,qn,"custom")

QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)

 

Как зделать что бы хиро выдавалось не на определенное кол дней, а на определенное кол месяцев. Спс

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


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

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 = "1244_rbHero"

NPC = 298031 # Не трогать.
ITEM = 18005 # Итем необходимый для покупки.
COST = 2 # Стоимость за один день.
INAME = "RB Coin" # Название Вещи.

print "RB Manager(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(1244,qn,"custom")

QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)

 

Как зделать что бы хиро выдавалось не на определенное кол дней, а на определенное кол месяцев. Спс

 

я так понимаю это в этой строке PcAction.addHeroStatus(player,days) только как изменить )))

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


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

player.month пробовали?

ну и везде заменить days на month мб вкатит)

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

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


Ссылка на сообщение
Поделиться на другие сайты
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 = "1244_rbHero"

NPC = 298031 # Не трогать.
ITEM = 18005 # Итем необходимый для покупки.
COST = 2 # Стоимость за один день.
INAME = "RB Coin" # Название Вещи.

print "RB Manager(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,30*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, 30*date)
write.setString(2, time)
write.setString(3, login)
write.setString(4, name)
write.setString(5, "Hero Status, "+str(days)+" month.")
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(1244,qn,"custom")

QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)

Изменено пользователем byldas
  • Upvote 1

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


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

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 = "1244_rbHero"

NPC = 298031 # Не трогать.
ITEM = 18005 # Итем необходимый для покупки.
COST = 2 # Стоимость за один день.
INAME = "RB Coin" # Название Вещи.

print "RB Manager(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,30*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, 30*date)
write.setString(2, time)
write.setString(3, login)
write.setString(4, name)
write.setString(5, "Hero Status, "+str(days)+" month.")
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(1244,qn,"custom")

QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)

 

Как зделать что бы хиро выдавалось не на определенное кол дней, а на определенное кол месяцев. Спс

Не работает вобще! п.с на месяцы все менял тоже не катит вроде )

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

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


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

1368643320857 1 сутки (ето если везде стоит days и ввести 1)

1368643620359 1 месяц (ето если везде стоит month и ввести 1)

1371149340837 30 месяц (ето если везде стоит month и ввести 30)

 

соответствуют эти значения суткам, месяцу и 30 м месяцам как понять дешифруйте.

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


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

Я так понимаю тебе надо сделать не чтобы вводили, а чтобы выдавало на 1-н день?

  • Upvote 1

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


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

не что бы выдавало на 1 месяц и неважно будут вводить или нет т.е либо вводят количество месяцев либо получают месяц

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


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

Не работает вобще! п.с на месяцы все менял тоже не катит вроде )

Я вам суть написал,

30*date

вместо этого надо добавить переменную, которая будет равна 30*date и дальше ее испльзовать

  • Upvote 1

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


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

спс разобрался :db: репу выдал )

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

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


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

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

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

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

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

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

Войти

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

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

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

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

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