у меня есть скрипт на НПЦ-точилку, он вполне исправно точит вещи, нормально меняет цены в зависимости от уровня заточки.
Я хочу добавить множитель, который будет зависеть от грэйда вещей что-то типа (d=1; c=2; b=3; a=4; s=5; s80=6; s84=7), то есть все эти множители нужно как-то объединить под одну общую переменную, которую я смогу вписать в скрипт.
Помогите плс))
вот сам код скрипта:
import sys
from com.l2emu import Config
from com.l2emu.gameserver.model.quest import State
from com.l2emu.gameserver.model.quest import QuestState
from com.l2emu.gameserver.model.quest.jython import QuestJython as JQuest
qn = "55554_NPCEnchant"
ENCHANT_PRICE_ID = 57 # ID вещи в качестве оплаты заточки
ENCHANT_PRICE_COUNT = 2000 # цена заточки (умножается на уровень вещи, который будет после заточки)
AMOUNT_OF_ENCHANT = 1 # на сколько уровней повышать заточку
MAX_ENCHANT_LEVEL = 25 # Максимальный уровень заточки
ENCHANT_NPC = 80007
weapons = ['Sword','Blunt','Dagger','Bow','Pole'
,'Etc','Fist','Dual Sword','Dual Fist','Big Sword','Big Blunt','Ancient','Crossbow','Rapier']
armors = ['Light','Heavy','Magic','Shield']
jewels = ['None']
acceptableItemTypes = weapons+armors+jewels
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onEvent (self,event,st) :
if event == "choose_item" :
htmltext = ""
for Item in st.getPlayer().getInventory().getItems():
itemType = Item.getItem().getItemType().toString()
grade = Item.getItem().getCrystalType()
if itemType in acceptableItemTypes and grade > 0 :
htmltext += "<a action=\"bypass -h Quest 55554_NPCEnchant enchantItem_" + str(Item.getObjectId()) +"\">" + Item.getItem().getName() + "+" + str(Item.getEnchantLevel()) + "</a><br>"
if htmltext == "":
htmltext = "."
htmltext = "<html><body>.<br>" + htmltext + "</body></html>"
elif event.startswith("enchantItem_"):
objId = int(event.replace("enchantItem_", ""))
Item = st.getPlayer().getInventory().getItemByObjectId(objId )
if Item and not Item.isEquipped() :
itemType = Item.getItem().getItemType().toString()
itemEnchant = Item.getEnchantLevel()
if st.getQuestItemsCount(ENCHANT_PRICE_ID) >= ENCHANT_PRICE_COUNT*(itemEnchant+AMOUNT_OF_ENCHANT) :
if (itemType in weapons and itemEnchant > (MAX_ENCHANT_LEVEL-AMOUNT_OF_ENCHANT)) or (itemType in armors and itemEnchant > (MAX_ENCHANT_LEVEL-AMOUNT_OF_ENCHANT)) or (itemType in jewels and itemEnchant > (MAX_ENCHANT_LEVEL-AMOUNT_OF_ENCHANT)) :
htmltext = "reachedMaxEnchant.htm"
else :
st.takeItems(ENCHANT_PRICE_ID, ENCHANT_PRICE_COUNT*(itemEnchant+AMOUNT_OF_ENCHANT))
Item.setEnchantLevel(itemEnchant+AMOUNT_OF_ENCHANT)
htmltext = "congratulations.htm"
else :
htmltext = "notEnoughItems.htm"
else :
htmltext = "cheater.htm"
return htmltext
def onTalk (self,npc,player):
htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"
st = player.getQuestState(qn)
if not st : return htmltext
if npc.getNpcId() == ENCHANT_NPC :
htmltext = "1.htm"
return htmltext
QUEST = Quest(55554,qn,"NPCEnchant")
QUEST.addStartNpc(ENCHANT_NPC)
QUEST.addTalkId(ENCHANT_NPC)
Вот что сюда нужно вписать подскажите плс.