The Donate Shop Npc...Npc works great but there's one problem ..Icons from customs items do not show to all the services from the npc .. For example npc has , enchanter ( add enchants to your equipment) , transfer enchant ( u know what this is..)
When using enchanter ( to add +1 enchant for example ) icons are shown properly
But, when using transfer enchant, icons are black!? can anyone help me with that?
I can post u here both _init_py files.
here's the right one where i can see all icons.
import sys
from java.lang import String
from java.lang import Integer
from com.l2jfrozen.util.random import Rnd
from com.l2jfrozen.util.database import L2DatabaseFactory
from com.l2jfrozen.gameserver.model.quest import State
from com.l2jfrozen.gameserver.model.actor.instance import L2ItemInstance
from com.l2jfrozen.gameserver.network.serverpackets import ItemList
from com.l2jfrozen.gameserver.network.serverpackets import UserInfo
from com.l2jfrozen.gameserver.network.serverpackets import CharInfo
from com.l2jfrozen.gameserver.network.serverpackets import InventoryUpdate
from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest
Qn = "919_Enchanter"
Npc = 300300
MaxEnchantWeapon = 25
MaxEnchantArmor = 25
MaxEnchantJewel = 25
Adena = 3488 # Donate coin (adena)
ItemName = "Donate Coins"
JPrice = [1,1,1,1,1,1] # Price for +1 Jewels (depends Jewels grade, ex. Wprice[0] = No Grade)
APrice = [1,1,1,1,1,1] # Price for +1 Armors (depends Armors grade, ex. Wprice[0] = No Grade)
WPrice = [2,2,2,2,2,2] # Price for +1 Weapons (depends Weapons grade, ex. Wprice[0] = No Grade)
Jewel = ["None"]
Armor = ["Light","Heavy","Magic"]
Weapon = ["Sword","Blunt","Dagger","Bow","Etc","Pole","Fist","Dual Sword","Dual Fist","Big Sword","Big Blunt","Shield"]
SlotForEnchant = [7,8,6,10,11,9,12,3,1,2,4,5] # editable [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]
NoEnchantItem = []
print "Donate Manager: Loaded 40%"
def getItemIcon(ItemId):
con=L2DatabaseFactory.getInstance().getConnection()
II=con.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?")
II.setInt(1, ItemId)
rs=II.executeQuery()
ItemIcon = ""
if rs.next() :
ItemIcon = rs.getString("itemIcon")
else :
ItemIcon = "icon.etc_adena_i00"
try :
con.close()
except :
pass
return ItemIcon
def validateItem(ItemId) :
for itm in NoEnchantItem :
if itm == ItemId :
return False
return True
def getHexSlot(Slot) :
if Slot == 0 :
return 0x01
elif Slot == 1 : # Left Earring
return 0x04
elif Slot == 2 : # Right Earring
return 0x02
elif Slot == 3 : # Neck
return 0x08
elif Slot == 4 : # Left Ring
return 0x20
elif Slot == 5 : # Right Ring
return 0x10
elif Slot == 6 : # Helmet
return 0x40
elif Slot == 7 : # Left Hand
return 0x80
elif Slot == 8 : # Right Hand
return 0x0100
elif Slot == 9 : # Gloves
return 0x0200
elif Slot == 10 : # Breastplate
return 0x0400
elif Slot == 11 : # Gaiters
return 0x0800
elif Slot == 12 : # Boots
return 0x1000
elif Slot == 13 : #
return 0x2000
elif Slot == 14 : # R/L Finger
return 0x4000
elif Slot == 15 : #
return 0x040000
elif Slot == 16 : #
return 0x010000
elif Slot == 17 : #
return 0x080000
return 0x00
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onTalk (Self,npc,player) :
st = player.getQuestState(Qn)
npcId = npc.getNpcId()
htmltext = u"<html><title>Donate Shop</title><body><center>Error!</center></body></html>"
if not st : return htmltext
htmltext = "<html><body><font color=LEVEL>Add +1 Enchant to your equipment</font><br1>Cost: 1 Donate Coin [Armor,Jewels]<br1> Cost: 2 Donate Coins [Weapon]"
for Slot in SlotForEnchant :
Item1 = player.getInventory().getPaperdollItemByL2ItemId(getHexSlot(Slot))
if Item1 != None :
if validateItem(Item1.getItemId()) :
Grade = Item1.getItem().getCrystalType()
if Grade not in [0] :
if Grade == 1:
pgrade = str("[D]")
elif Grade == 2:
pgrade = str("[C]")
elif Grade == 3:
pgrade = str("[B]")
elif Grade == 4:
pgrade = str("[A]")
elif Grade == 5:
pgrade = str("[S]")
else:
pgrade = str("")
htmltext = htmltext + "<img src=\"" + getItemIcon(Item1.getItemId()) + "\" width=32 height=32><a action=\"bypass -h Quest 919_Enchanter slot_" + str(Slot) + "\">" + Item1.getItemName() + " " + str(pgrade) + " +" + str(Item1.getEnchantLevel()) + "</a><br>"
htmltext = htmltext + "</body></html>"
return htmltext
def onAdvEvent (self,event,npc,player) :
st = player.getQuestState(Qn)
htmltext = u"<html><title>Donate Shop</title><body><center>Error!</center></body></html>"
if not st : return htmltext
strEvent = String(event)
if strEvent.startsWith("slot") :
intEvent = Integer.parseInt(strEvent.substring(5))
htmltext = "<html><title>Donate Shop</title><body><br>"
Item1 = player.getInventory().getPaperdollItemByL2ItemId(getHexSlot(intEvent))
if Item1 != None :
if validateItem(Item1.getItemId()) :
ItemEnchant = Item1.getEnchantLevel()
htmltext = htmltext + "<img src=\"" + getItemIcon(Item1.getItemId()) + "\" width=32 height=32><br>"
htmltext = htmltext + u"" + Item1.getItemName() + " +" + str(ItemEnchant) + "<br>"
Grade = Item1.getItem().getCrystalType()
Itype = str(Item1.getItemType())
if Itype in Jewel and ItemEnchant < MaxEnchantJewel :
if ItemEnchant < MaxEnchantJewel :
htmltext = htmltext + u"Add 1 enchant = " + str(JPrice[Grade]) + " " + ItemName + "<br>"
if ItemEnchant < MaxEnchantJewel :
htmltext = htmltext + "<a action=\"bypass -h Quest 919_Enchanter plusone_" + str(intEvent) + u"\">Add +1 enchant!</a><br>"
elif Itype in Armor and ItemEnchant < MaxEnchantArmor :
if ItemEnchant < MaxEnchantArmor :
htmltext = htmltext + u"Add 1 enchant = " + str(APrice[Grade]) + " " + ItemName + "<br>"
if ItemEnchant < MaxEnchantArmor :
htmltext = htmltext + "<a action=\"bypass -h Quest 919_Enchanter plusone_" + str(intEvent) + u"\">Add +1 enchant!</a><br>"
elif Itype in Weapon and ItemEnchant < MaxEnchantWeapon :
if ItemEnchant < MaxEnchantWeapon :
htmltext = htmltext + u"Add 1 enchant = " + str(WPrice[Grade]) + " " + ItemName + "<br>"
if ItemEnchant < MaxEnchantWeapon :
htmltext = htmltext + "<a action=\"bypass -h Quest 919_Enchanter plusone_" + str(intEvent) + u"\">Add +1 enchant!</a><br>"
elif Itype in Weapon and ItemEnchant >= MaxEnchantWeapon :
if ItemEnchant >= MaxEnchantWeapon :
htmltext = htmltext + "<br><br><br><br><br> You can't enchant more than <font color=FF0000>+" + str(ItemEnchant) + "</font><br>"
else :
htmltext = htmltext + "<br><br><br><br><br> You can't enchant more than <font color=FF0000>+" + str(ItemEnchant) + "</font><br>"
else :
htmltext = htmltext + u"Your item is not equiped! Check it!<br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br></center><img src=\"L2UI_CH3.onscrmsg_pattern01_2\" width=256 height=32>"
elif strEvent.startsWith("plusone") :
intEvent = Integer.parseInt(strEvent.substring(8))
htmltext = "<html><title>Donate Shop</title><body><br>"
Item1 = player.getInventory().getPaperdollItemByL2ItemId(getHexSlot(intEvent))
if Item1 != None :
if validateItem(Item1.getItemId()) :
Grade = Item1.getItem().getCrystalType()
if Grade not in [0] :
ItemEnchant = Item1.getEnchantLevel()
Itype = str(Item1.getItemType())
if Itype in Jewel :
if ItemEnchant < MaxEnchantJewel :
iu = InventoryUpdate()
player.sendPacket(iu)
player.broadcastPacket(CharInfo(player))
player.sendPacket(UserInfo(player))
if st.getQuestItemsCount(Adena) >= JPrice[Grade]:
st.takeItems(Adena,JPrice[Grade])
Item1.setEnchantLevel(ItemEnchant+1)
ItemEnchant = Item1.getEnchantLevel()
st.playSound("ItemSound.quest_itemget")
player.sendPacket(ItemList(player,False))
htmltext = htmltext + u"<br>Your jewel was successfully enchanted to + " + str(ItemEnchant) + "</font>!<br>"
else :
htmltext = htmltext + u"You need <font color=LEVEL>" + str(JPrice[Grade]) + "</font> " + ItemName + " to do that!" # player donate items < to be enchanted
else :
htmltext = htmltext + u"<br> You cant enchant more than <font color=FF0000>+" + str(ItemEnchant) + "</font><br>" # in case before add enchant the player is enchant manualy his weap from 19 to 20 and then trying to click enchant
elif Itype in Armor :
if ItemEnchant < MaxEnchantArmor :
iu = InventoryUpdate()
player.sendPacket(iu)
player.broadcastPacket(CharInfo(player))
player.sendPacket(UserInfo(player))
if st.getQuestItemsCount(Adena) >= APrice[Grade]:
st.takeItems(Adena,APrice[Grade])
Item1.setEnchantLevel(ItemEnchant+1)
ItemEnchant = Item1.getEnchantLevel()
st.playSound("ItemSound.quest_itemget")
player.sendPacket(ItemList(player,False))
htmltext = htmltext + u"<br>Your armor was successfully enchanted to + " + str(ItemEnchant) + "</font>!<br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br></center><img src=\"L2UI_CH3.onscrmsg_pattern01_2\" width=256 height=32>"
else :
htmltext = htmltext + u"You need <font color=LEVEL>" + str(JPrice[Grade]) + "</font> " + ItemName + " to do that!" # player donate items < to be enchanted
else :
htmltext = htmltext + u"<br> You cant enchant more than <font color=FF0000>+" + str(ItemEnchant) + "</font><br>" # in case before add enchant the player is enchant manualy his weap from 19 to 20 and then trying to click enchant
elif Itype in Weapon :
if ItemEnchant < MaxEnchantWeapon :
iu = InventoryUpdate()
player.sendPacket(iu)
player.broadcastPacket(CharInfo(player))
player.sendPacket(UserInfo(player))
if st.getQuestItemsCount(Adena) >= WPrice[Grade]:
st.takeItems(Adena,WPrice[Grade])
Item1.setEnchantLevel(ItemEnchant+1)
ItemEnchant = Item1.getEnchantLevel()
st.playSound("ItemSound.quest_itemget")
player.sendPacket(ItemList(player,False))
htmltext = htmltext + u"<br>Your weapon was successfully enchanted to + " + str(ItemEnchant) + "</font>!<br>"
else :
htmltext = htmltext + u"You need <font color=LEVEL>" + str(WPrice[Grade]) + "</font> " + ItemName + " to do that!<br>" # player donate items < to be enchanted
else :
htmltext = htmltext + u"<br> You cant enchant more than <font color=FF0000>+" + str(ItemEnchant) + "</font><br>" # in case before add enchant the player is enchant manualy his weap from 19 to 20 and then trying to click enchant
else :
htmltext = htmltext + u"Error, i accept only 3 types : Weapon,Armor,Jewel!<br>" #unknown
else :
htmltext = htmltext + u"Your current weapon's grade is different!<br>" #in case that the player before add enchant, change weapon to no-weapon type
else :
htmltext = htmltext + u"Error, Your weapon not found!<br>" #unknown
else :
htmltext = htmltext + u""
htmltext = htmltext + "Your item not found! try again!</body></html>"
return htmltext
QUEST = Quest(919,Qn,"custom")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(300300)
QUEST.addTalkId(300300)
and here's the one where icons appear black
import sys
from java.lang import System
from com.l2jfrozen.util.database import L2DatabaseFactory
from com.l2jfrozen.gameserver.model.quest import State
from com.l2jfrozen.gameserver.model.quest import QuestState
from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest
from com.l2jfrozen.gameserver.network.serverpackets import CharInfo
from com.l2jfrozen.gameserver.network.serverpackets import InventoryUpdate
from com.l2jfrozen.gameserver.network.serverpackets import ItemList
from com.l2jfrozen.gameserver.network.serverpackets import UserInfo
from com.l2jfrozen.gameserver.templates import L2Item
qn = "q8015_Enchex"
#id νοφ
NPC = 300300
#id θςεμΰ δλ ηΰςξχκθ
ITEM = 3488
#ρςξθμξρςό ηΰςξχκθ ηΰ κΰζδϋι +
COST =100
#νΰηβΰνθε θςεμΰ
INAME = "Donate Coins"
#ροθρξκ ηΰοπεωεννϋυ θςεμξβ
FORBIDDEN = [12,132,6611,6612,6620,6617,6619,6618,6621,6614,6616]
print "Donate Manager: Loaded 100%"
print "Lineage 2: Donate Manager NPC 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 == "spisok":
htmltext = "<html><body><center><br1>"
htmltext += u"<table width=260><tr><td align=center><font color=LEVEL>\u041f\u0435\u0440\u0435\u043d\u043e\u0441 \u0437\u0430\u0442\u043e\u0447\u043a\u0438</font></td></tr></table>"
htmltext += u"<button value=\"Weapon [S]\" action=\"bypass -h Quest q8015_Enchex step1_0\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"><br>"
htmltext += u"<button value=\"Armor [S]\" action=\"bypass -h Quest q8015_Enchex step1_1\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"><br>"
htmltext += u"<button value=\"Jewels [S]\" action=\"bypass -h Quest q8015_Enchex jewerly\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"><br>"
htmltext += "<center><br></center></body></html>"
elif event.startswith("step1_"):
itemType = int(event.replace("step1_", ""))
htmltext = u"<html><center><body><br>Select the item you wish to remove the enchant!<br><br></center><table width=300>"
if itemType == 0:
TYPES = ["Sword","Blunt","Dagger","Bow","Etc","Pole","Fist","Dual Sword","Dual Fist","Big Sword","Big Blunt"]
elif itemType == 1:
TYPES = ["Light","Heavy","Magic"]
else:
htmltext = u"<html><body></body></html>"
return htmltext
st.set("type",str(itemType))
for Item in st.getPlayer().getInventory().getItems():
itemTemplate = Item.getItem()
idtest = Item.getItemId()
itype = str(Item.getItemType())
grade = itemTemplate.getCrystalType()
if idtest not in FORBIDDEN and itemTemplate.getDuration() == -1 and grade == 5 and itype in TYPES and Item.getEnchantLevel() > 0:
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?")
listitems.setInt(1, idtest)
rs=listitems.executeQuery()
while (rs.next()) :
icon=rs.getString("itemIcon")
try :
grades = {1: "D", 2: "C", 3: "B", 4: "A", 5: "S"}
pgrade = grades.get(grade, str(""))
if Item.getEnchantLevel() == 0:
enchant = str("")
else:
enchant = " +"+str(Item.getEnchantLevel())+""
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8015_Enchex step1next_" + str(Item.getObjectId()) +"\">" + itemTemplate.getName() + " ["+str(pgrade)+"] " + enchant + "</a></td></tr>"
except :
try : listitems.close()
except : pass
try :
con.close()
except :
pass
htmltext += u"</table><center></center><br></body></html>"
elif event == "jewerly":
htmltext = u"<html><center><body><br>Select the item you wish to remove the enchant!<br><br></center><table width=300>"
st.set("type","3")
for Item in st.getPlayer().getInventory().getItems():
itemTemplate = Item.getItem()
idtest = Item.getItemId()
itemType = Item.getItem().getType2()
grade = itemTemplate.getCrystalType()
if idtest not in FORBIDDEN and itemTemplate.getDuration() == -1 and grade == 5 and itemType == L2Item.TYPE2_ACCESSORY and Item.getEnchantLevel() > 0:
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?")
listitems.setInt(1, idtest)
rs=listitems.executeQuery()
while (rs.next()) :
icon=rs.getString("itemIcon")
try :
grades = {1: "D", 2: "C", 3: "B", 4: "A", 5: "S"}
pgrade = grades.get(grade, str(""))
if Item.getEnchantLevel() == 0:
enchant = str("")
else:
enchant = " +"+str(Item.getEnchantLevel())+""
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8015_Enchex step1next_" + str(Item.getObjectId()) +"\">" + itemTemplate.getName() + " ["+str(pgrade)+"] " + enchant + "</a></td></tr>"
except :
try : listitems.close()
except : pass
try :
con.close()
except :
pass
htmltext += u"</table><center></center><br></body></html>"
elif event.startswith("step1next_"):
itemObjId = int(event.replace("step1next_", ""))
Item = st.getPlayer().getInventory().getItemByObjectId(itemObjId)
itemTemplate = Item.getItem()
if Item and itemTemplate.getDuration() == -1 and Item.getEnchantLevel() > 0:
grade = itemTemplate.getCrystalType()
idtest = Item.getItemId()
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?")
listitems.setInt(1, idtest)
rs=listitems.executeQuery()
while (rs.next()) :
icon=rs.getString("itemIcon")
try :
st.set("enchant",str(Item.getEnchantLevel()))
st.set("oneitem",str(itemObjId))
grades = {1: "d", 2: "c", 3: "b", 4: "a", 5: "s"}
pgrade = grades.get(grade, str(""))
enchant = (Item.getEnchantLevel() > 0 and " +"+str(Item.getEnchantLevel())+"") or str("")
htmltext = u"<html><body><center><br>This item after the transfer<br1>will <font color=LEVEL>NOT</font> gain the enchantment value of the next item.<br>Will be <font color=LEVEL>+0</font>!</center><br>"
htmltext += "<table width=300><tr><td><center><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><font color=LEVEL>" + itemTemplate.getName() + " " + enchant + "</font><img src=\"symbol.grade_"+str(pgrade)+"\" width=16 height=16><br></center></td></tr></table><br><br>"
payment = int(Item.getEnchantLevel()*COST)
if st.getQuestItemsCount(ITEM) < payment:
htmltext += u"<center>You need <font color=ff2400>"+str(payment)+"</font> "+INAME+" for this tranfer!<br>"
else:
htmltext += u"<center>The cost will be : <font color=adff2f>"+str(payment)+"</font> "+INAME+"</center><br>"
htmltext += u"<center><button value=\"Select the next item\" action=\"bypass -h Quest q8015_Enchex step2\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"></center><br>"
htmltext += u"<br><a action=\"bypass -h Quest q8015_Enchex spisok\"><center>Back<br><center></center></a></body></html>"
except :
try : listitems.close()
except : pass
try :
con.close()
except :
pass
else :
htmltext = u"<html><body>\u041f\u0435\u0440\u0435\u043d\u043e\u0441 \u0437\u0430\u0442\u043e\u0447\u043a\u0438:<br>\u041e\u0448\u0438\u0431\u043a\u0430!<br><a action=\"bypass -h Quest q8015_Enchex spisok\">\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f.</a></body></html>"
elif event == "step2":
htmltext = u"<html><body><center><br><br>Choose the item you want to transfer the enchant!<br><font color=LEVEL>Attention!</font<br><font color=FF0000>The enchantment value of this item<br1>will not transfer to the other item!</font></center><br><table width=300><center>"
itemType = st.getInt("type")
if itemType == 0:
TYPES = ["Sword","Blunt","Dagger","Bow","Etc","Pole","Fist","Dual Sword","Dual Fist","Big Sword","Big Blunt"]
elif itemType == 1:
TYPES = ["Light","Heavy","Magic"]
weapon1 = st.getInt("oneitem")
for Item in st.getPlayer().getInventory().getItems():
itemTemplate = Item.getItem()
idtest = Item.getItemId()
itype = str(Item.getItemType())
grade = itemTemplate.getCrystalType()
if itemType == 0 or itemType == 1:
if idtest not in FORBIDDEN and itemTemplate.getDuration() == -1 and grade == 5 and itype in TYPES and Item.getObjectId() != weapon1:
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?")
listitems.setInt(1, idtest)
rs=listitems.executeQuery()
while (rs.next()) :
icon=rs.getString("itemIcon")
try :
grades = {1: "[D]", 2: "[C]", 3: "[B]", 4: "[A]", 5: "[S]"}
pgrade = grades.get(grade, str(""))
if Item.getEnchantLevel() == 0:
enchant = str("")
else:
enchant = " +"+str(Item.getEnchantLevel())+""
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8015_Enchex step2next_" + str(Item.getObjectId()) +"\">" + itemTemplate.getName() + " " + str(pgrade) + " " + enchant + "</a></td></tr>"
except :
try : listitems.close()
except : pass
try :
con.close()
except :
pass
elif itemType == 3:
itemType2 = Item.getItem().getType2()
if idtest not in FORBIDDEN and itemTemplate.getDuration() == -1 and grade == 5 and itemType2 == L2Item.TYPE2_ACCESSORY and Item.getObjectId() != weapon1:
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?")
listitems.setInt(1, idtest)
rs=listitems.executeQuery()
while (rs.next()) :
icon=rs.getString("itemIcon")
try :
grades = {1: "[D]", 2: "[C]", 3: "[B]", 4: "[A]", 5: "[S]"}
pgrade = grades.get(grade, str(""))
if Item.getEnchantLevel() == 0:
enchant = str("")
else:
enchant = " +"+str(Item.getEnchantLevel())+""
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8015_Enchex step2next_" + str(Item.getObjectId()) +"\">" + itemTemplate.getName() + " "+str(pgrade)+" " + enchant + "</a></td></tr>"
except :
try : listitems.close()
except : pass
try :
con.close()
except :
pass
htmltext += u"</table><br><center><a action=\"bypass -h Quest q8015_Enchex spisok\">Back</a><br></center></body></html>"
elif event.startswith("step2next_"):
itemObjId = int(event.replace("step2next_", ""))
obj = str(itemObjId)
Item = st.getPlayer().getInventory().getItemByObjectId(itemObjId)
itemTemplate = Item.getItem()
if Item and itemTemplate.getDuration() == -1:
grade = itemTemplate.getCrystalType()
idtest = Item.getItemId()
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?")
listitems.setInt(1, idtest)
rs=listitems.executeQuery()
while (rs.next()) :
icon=rs.getString("itemIcon")
try :
st.set("twoitem",obj)
grades = {1: "d", 2: "c", 3: "b", 4: "a", 5: "s"}
pgrade = grades.get(grade, str(""))
enchant = (Item.getEnchantLevel() > 0 and " +"+str(Item.getEnchantLevel())+"") or str("")
htmltext = u"<html><body><center><br><br>The next item will get the enchantment you want!</center><br>"
htmltext += "<table width=300><tr><td><center><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><font color=LEVEL>" + itemTemplate.getName() + " " + enchant + "</font><img src=\"symbol.grade_"+str(pgrade)+"\" width=16 height=16><br></center></td></tr></table><br><br>"
htmltext += u"<center><button value=\"Continue\" action=\"bypass -h Quest q8015_Enchex step3\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"></center><br>"
htmltext += u"<br><a action=\"bypass -h Quest q8015_Enchex spisok\"><center>Back<br><br></center></a></body></html>"
except :
try : listitems.close()
except : pass
try :
con.close()
except :
pass
else :
htmltext = u"<html><body><br>\u041e\u0448\u0438\u0431\u043a\u0430!<br><a action=\"bypass -h Quest q8015_Enchex spisok\">\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f.</a></body></html>"
elif event.startswith("step3"):
weapon1 = st.getInt("oneitem")
weapon2 = st.getInt("twoitem")
htmltext = u"<html><body><center><br><br>Transfer almost completed!<br>"
htmltext += u"<font color=339900>The next item will be +0</font>"
Item = st.getPlayer().getInventory().getItemByObjectId(weapon1)
itemTemplate = Item.getItem()
if Item:
grade = itemTemplate.getCrystalType()
idtest = Item.getItemId()
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?")
listitems.setInt(1, idtest)
rs=listitems.executeQuery()
while (rs.next()) :
icon=rs.getString("itemIcon")
try :
grades = {1: "d", 2: "c", 3: "b", 4: "a", 5: "s"}
pgrade = grades.get(grade, str(""))
enchant = (Item.getEnchantLevel() > 0 and " +"+str(Item.getEnchantLevel())+"") or str("")
htmltext += "<table width=300><tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><font color=LEVEL>" + itemTemplate.getName() + " " + enchant + "</font><img src=\"symbol.grade_"+str(pgrade)+"\" width=16 height=16><br></td></tr></table><br><br>"
payment = int(Item.getEnchantLevel()*COST)
if st.getQuestItemsCount(ITEM) < payment:
htmltext += u"Transfer cost : <font color=ff2400>"+str(payment)+"</font> "+INAME+"<br>"
else:
htmltext += u"Transfer cost : <font color=adff2f>"+str(payment)+"</font> "+INAME+"<br>"
except :
try : listitems.close()
except : pass
try :
con.close()
except :
pass
htmltext += "<font color=339900>The next item will be " + enchant + "</font>"
Item = st.getPlayer().getInventory().getItemByObjectId(weapon2)
itemTemplate = Item.getItem()
if Item:
grade = itemTemplate.getCrystalType()
idtest = Item.getItemId()
cons=L2DatabaseFactory.getInstance().getConnection()
listitemss=cons.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?")
listitemss.setInt(1, idtest)
rs=listitemss.executeQuery()
while (rs.next()) :
icon=rs.getString("itemIcon")
try :
grades = {1: "d", 2: "c", 3: "b", 4: "a", 5: "s"}
pgrade = grades.get(grade, str(""))
enchant = (Item.getEnchantLevel() > 0 and " +"+str(Item.getEnchantLevel())+"") or str("")
htmltext += "<table width=300><tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><font color=LEVEL>" + itemTemplate.getName() + " " + enchant + "</font><img src=\"symbol.grade_"+str(pgrade)+"\" width=16 height=16><br></td></tr></table><br><br>"
except :
try : listitemss.close()
except : pass
try :
cons.close()
except :
pass
htmltext += u"<button value=\"Transfer\" action=\"bypass -h Quest q8015_Enchex step4\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"><br>"
else :
htmltext = u"<html><body>\u041f\u0435\u0440\u0435\u043d\u043e\u0441 \u0437\u0430\u0442\u043e\u0447\u043a\u0438:<br>\u041e\u0448\u0438\u0431\u043a\u0430!<br><a action=\"bypass -h Quest q8015_Enchex spisok\">\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f.</a></body></html>"
elif event.startswith("step4"):
htmltext = u"<html><body><center><br><br><font color=ff2400>Enchant transfer successfully transfered!</font></center><br><br><br>"
ench = st.getInt("enchant")
payment = int(ench*COST)
if st.getQuestItemsCount(ITEM) < payment:
htmltext = "<html><body><center><br><br><font color=ff2400>Enchant transfer canceled.</font><br><br><br>You need <font color=ff2400>"+str(payment)+"</font> "+INAME+" for this transfer!</center><br>"
return htmltext
#<
weapon1 = st.getInt("oneitem")
weapon2 = st.getInt("twoitem")
item1 = st.getPlayer().getInventory().getItemByObjectId(weapon1)
item2 = st.getPlayer().getInventory().getItemByObjectId(weapon2)
if item1 == None or item2 == None:
st.set("enchant","0")
htmltext = "<html><body><center><br><br><font color=ff2400>Enchant transfer canceled.</font><br><br><br>One of the selected weapons are missing!<br1>Try again!<br><br></center><br>"
return htmltext
itemType = st.getInt("type")
itype1 = str(item1.getItemType())
itype2 = str(item2.getItemType())
grade1 = item1.getItem().getCrystalType()
grade2 = item2.getItem().getCrystalType()
#<
if item1.getEnchantLevel() != ench:
st.set("enchant","0")
htmltext = "<html><body><center><br><br><font color=ff2400>Enchant transfer canceled.</font><br><br><br>One of the selected items enchantment has changed!<br1>Try again!<br><br></center><br>"
return htmltext
#<
if grade1 != 5 or grade2 != 5:
st.set("enchant","0")
htmltext = "<html><body><center><br><br><font color=ff2400>Enchant transfer canceled.</font><br><br><br>Do not try to scam!<br1>Try again!<br><br></center><br>"
return htmltext
#<
if itemType == 0:
TYPES = ["Sword","Blunt","Dagger","Bow","Etc","Pole","Fist","Dual Sword","Dual Fist","Big Sword","Big Blunt"]
if itype1 not in TYPES or itype2 not in TYPES:
st.set("enchant","0")
htmltext = "<html><body><center><br><br><font color=ff2400>Enchant transfer canceled.</font><br><br><br>Do not try to scam!<br1>Try again!<br><br></center><br>"
return htmltext
elif itemType == 1:
TYPES = ["Light","Heavy","Magic"]
if itype1 not in TYPES or itype2 not in TYPES:
st.set("enchant","0")
htmltext = "<html><body><center><br><br><font color=ff2400>Enchant transfer canceled.</font><br><br><br>Do not try to scam!<br1>Try again!<br><br></center><br>"
return htmltext
elif itemType == 3:
jew1 = item1.getItem().getType2()
jew2 = item2.getItem().getType2()
if jew1 != L2Item.TYPE2_ACCESSORY or jew2 != L2Item.TYPE2_ACCESSORY:
st.set("enchant","0")
htmltext = "<html><body><center><br><br><font color=ff2400>Enchant transfer canceled.</font><br><br><br>Do not try to scam!<br1>Try again!<br><br></center><br>"
return htmltext
else:
htmltext = "<html><body><center><br><br><font color=ff2400>Enchant transfer canceled.</font><br><br><br>Do not try to scam!<br1>Try again!<br><br></center><br>"
return htmltext
#<
st.takeItems(ITEM,payment)
#<
slott = item1.getEquipSlot()
if slott > 0:
testt = player.getInventory().getPaperdollItem(slott)
player.getInventory().unEquipItemInSlotAndRecord(slott)
item1.setEnchantLevel(0)
player.getInventory().equipItemAndRecord(testt)
iut = InventoryUpdate()
iut.addModifiedItem(testt)
player.sendPacket(iut)
player.broadcastPacket(CharInfo(player))
player.sendPacket(UserInfo(player))
else:
item1.setEnchantLevel(0)
player.sendPacket(ItemList(player, False))
#<
slot = item2.getEquipSlot()
if slot > 0:
test = player.getInventory().getPaperdollItem(slot)
player.getInventory().unEquipItemInSlotAndRecord(slot)
item2.setEnchantLevel(ench)
player.getInventory().equipItemAndRecord(test)
iu = InventoryUpdate()
iu.addModifiedItem(test)
player.sendPacket(iu)
player.broadcastPacket(CharInfo(player))
player.sendPacket(UserInfo(player))
else:
item2.setEnchantLevel(ench)
player.sendPacket(ItemList(player, False))
htmltext += u"<center><font color=bef574>The transfer has been successfully completed!</font><br><br></center><br>"
else:
htmltext = "<html><body><center><br><br><font color=ff2400>Enchant transfer canceled.</font><br><br><br>Do not try to scam!<br1>Try again!<br><br></center><br>"
return htmltext
def onTalk (self,npc,player):
st = player.getQuestState(qn)
npcId = npc.getNpcId()
if npcId == NPC:
htmltext = "privetstvie.htm"
return htmltext
QUEST = Quest(8015,qn,"custom")
CREATED = State('Start', QUEST)
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
DISCORD :
utchiha_market
telegram :
https://t.me/utchiha_market
SELLIX STORE :
https://utchihamkt.mysellix.io/
Join our server for more products :
https://discord.gg/hood-services
https://campsite.bio/utchihaamkt
hello everyone !
I need help with a l2script Rev H5-Salvation/Classic build. I compiled the project, installed everything but I can't log in to the server, it won't log me in. I tried a thousand ways without good results. I leave you the error when logging in either with the H5-Salvation Client.
ERROR ---> WARN: IPBANMANAGER ---> IP !!!!
I'm waiting for help! Thank you!
Question
protoftw
hey guys i have a quick question for this npc: http://www.maxcheaters.com/topic/144148-donation-npc-item-market-for-l2jfrozen/..
The Donate Shop Npc...Npc works great but there's one problem ..Icons from customs items do not show to all the services from the npc ..
For example npc has , enchanter ( add enchants to your equipment) , transfer enchant ( u know what this is..)
When using enchanter ( to add +1 enchant for example ) icons are shown properly
But, when using transfer enchant, icons are black!? can anyone help me with that?
I can post u here both _init_py files.
here's the right one where i can see all icons.
and here's the one where icons appear black
1 answer to this question
Recommended Posts