[search] аукцыон
Сборка: хроники, la2base Ит
ищу аукцон для базы.. может хто-то поделиться ?! а то у меня проблемы с импартами
DeadAdsl: А не легче правильно прописать импорты?
вот импорты что здесь нужно поправить?
import sys
from java.util import Iterator
from net.sf.l2j.util import Rnd
from net.sf.l2j.gameserver.serverpackets import CreatureSay
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
from net.sf.l2j import L2DatabaseFactory
from net.sf.l2j.gameserver.serverpackets import SystemMessage
from net.sf.l2j.gameserver.model import L2ItemInstance
from net.sf.l2j.gameserver.model import L2World
from net.sf.l2j.gameserver.serverpackets import ConfirmDlg
from net.sf.l2j.gameserver.serverpackets import UserInfo
from net.sf.l2j.gameserver.serverpackets import CharInfo
from net.sf.l2j.gameserver.serverpackets import InventoryUpdate
from net.sf.l2j.gameserver.datatables import ItemTable
from java.lang import System
А самим посмотреть слабо? Сборки базы на компе нету. Просто ищи каждый класс
— Заболел
DeadAdsl: А самим посмотреть слабо? Сборки базы на компе нету. Просто ищи каждый класс
если былобы не слабо тут бы не писали Логично?:!
Поржал...
как всегда модераторы Жгут..
а вы забыли когда были такиежа?! или вы сражу стали мего отцами java!
А надо быть мега-отцом явы, что бы открыть файл эррора, где черным по белому написано какая ошибка? Если автор не умеет думать, на кой черт ему сервер?
Сервер так чисто поржать.
.. и посмотреть что и как...
а ошыбка вот
Error on: D:\server\data\scripts\custom\q8033_MarketSell\__init__.py.error.log
Line: -1 - Column: -1
Traceback (innermost last):
File "__init__.py", line 222, in ?
TypeError: net.sf.l2j.gameserver.model.quest.State(): expected 0 args; got 2
Покажи кусок кода, строк 220-224
insertion.setInt(11, itemPrice)
try :
insertion.executeUpdate()
insertion.close()
con.close()
ой ) не то дал вот
QUEST = Quest(8033,qn,"custom")
CREATED = State('Start', QUEST)
QUEST.setInitialState(CREATED)
Вместо "custom" поставь "MarketSell".
Это удали. Вместо него напиши объявление по аналогии с другими квестами для ла2бейс, которые можно посмотреть в любом __init__.py
QUEST.setInitialState(CREATED)
MarketBuy
Ошыбка вот
Line: -1 - Column: -1
Traceback (innermost last):
File "__init__.py", line 323, in ?
TypeError: net.sf.l2j.gameserver.model.quest.State(): expected 0 args; got 2
Вот сам __init__.py
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
qn = "q8032_MarketBuy"
MARKET = 80007
#type
weapons = "<button value=\"Оружие\" action=\"bypass -h Quest q8032_MarketBuy show_wpns\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">"
armors = "<button value=\"Броня\" action=\"bypass -h Quest q8032_MarketBuy show_arms\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">"
resources = "<button value=\"Ресы\" action=\"bypass -h Quest q8032_MarketBuy show_res\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">"
recipes = "<button value=\"Рецепты\" action=\"bypass -h Quest q8032_MarketBuy show_recp\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">"
books = "<button value=\"Книги\" action=\"bypass -h Quest q8032_MarketBuy show_buks\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">"
soulshots = "<button value=\"Патроны\" action=\"bypass -h Quest q8032_MarketBuy show_shot\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">"
#grade
dgrade = "<button value=\"D\" action=\"bypass -h Quest q8032_MarketBuy grade_1\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">"
cgrade = "<button value=\"C\" action=\"bypass -h Quest q8032_MarketBuy grade_2\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">"
bgrade = "<button value=\"B\" action=\"bypass -h Quest q8032_MarketBuy grade_3\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">"
agrade = "<button value=\"A\" action=\"bypass -h Quest q8032_MarketBuy grade_4\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">"
sgrade = "<button value=\"S\" action=\"bypass -h Quest q8032_MarketBuy grade_5\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">"
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 == "list" :
htmltext = "<html><body>Cписок товаров:<br>"
htmltext += "<table width=300><tr><td>"+weapons+"</td><td>"+armors+"</td><td>"+resources+"</td><td>"+recipes+"</td><td>"+books+"</td></tr>"
htmltext += "<tr><td></td><td></td><td></td><td></td><td>"+soulshots+"</td></tr></table>"
htmltext += "<table width=300><tr><td></td><td>Последние 50:</td></tr>"
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE mag.itemId>1 AND magicon.itemId=mag.itemId LIMIT 0,50")
rs=listitems.executeQuery()
while (rs.next()) :
obj=rs.getInt("ownerId")
nick=rs.getString("char_name")
itemname=rs.getString("ItemName")
ench=rs.getInt("enchLvl")
item=rs.getInt("itemId")
grade=rs.getInt("itemGrade")
itype=rs.getString("itemType")
itemobj=rs.getInt("itemObjId")
count=rs.getInt("count")
price=rs.getInt("prise")
icon=rs.getString("itemIcon")
try :
pprice = price
if pprice >= 10000:
pprice = "<font color=00CCFF>"+str(pprice)+"</font>"
elif price >= 100000:
pprice = "<font color=FF0099>"+str(pprice)+"</font>"
elif price >= 1000000:
pprice = "<font color=FFCC00>"+str(pprice)+"</font>"
elif price >= 10000000:
pprice = "<font color=00FF66>"+str(pprice)+"</font>"
elif price >= 100000000:
pprice = "<font color=33CCCC>"+str(pprice)+"</font>"
elif price >= 1000000000:
pprice = "<font color=FF0066>"+str(pprice)+"</font>"
else:
pprice = "<font color=FFFFFF>"+str(pprice)+"</font>"
if count > 1:
count = str(count)
else:
count = str("")
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a msg=\"Купить "+count+""+str(itemname)+" у "+str(nick)+" за "+str(price)+" adena?\" action=\"bypass -h Quest q8032_MarketBuy bye_"+str(itemobj)+"\">"+count+" "+str(itemname)+"</a> <br1> Цена: "+str(pprice)+"; Продавец: "+str(nick)+"</td></tr>"
except :
try : insertion.close()
except : pass
try :
con.close()
except :
pass
htmltext += "</table></body></html>"
elif event.startswith("show_"):
wamrs = str(event.replace("show_", ""))
if wamrs == "wpns":
sortType = str("Weapon")
razdel = str("Оружие")
view = str("1")
elif wamrs == "arms":
sortType = str("Armor")
razdel = str("Броня")
view = str("2")
elif wamrs == "res":
sortType = str("Resource")
razdel = str("Ресурсы")
view = str("3")
elif wamrs == "recp":
sortType = str("Recipe")
razdel = str("Рецепты")
view = str("4")
elif wamrs == "buks":
sortType = str("Spellbook")
razdel = str("Книги")
view = str("5")
elif wamrs == "shot":
sortType = str("Soulshot")
razdel = str("Патроны")
view = str("6")
st.set("view",view)
htmltext = "<html><body><a action=\"bypass -h Quest q8032_MarketBuy list\">Cписок товаров</a>: "+razdel+"<br>"
con=L2DatabaseFactory.getInstance().getConnection()
if view == "1" or view == "2":
htmltext += "<table width=300><tr><td>"+dgrade+"</td><td>"+cgrade+"</td><td>"+bgrade+"</td><td>"+agrade+"</td><td>"+sgrade+"</td></tr></table>"
htmltext += "<table width=300><tr><td></td><td>Последние 50:</td></tr>"
sql=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE l2Type=? AND magicon.itemId=mag.itemId LIMIT 0,50")
else:
htmltext += "<table width=300><tr><td></td><td></td><td></td><td></td></tr>"
sql=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE l2Type=? AND magicon.itemId=mag.itemId")
htmltext += "<tr><td></td><td>Предмет</td></tr>"
listitems=sql
listitems.setString(1, sortType)
rs=listitems.executeQuery()
while (rs.next()) :
obj=rs.getInt("ownerId")
nick=rs.getString("char_name")
itemname=rs.getString("ItemName")
ench=rs.getInt("enchLvl")
item=rs.getInt("itemId")
grade=rs.getInt("itemGrade")
itype=rs.getString("l2Type")
ltype=rs.getString("itemType")
itemobj=rs.getInt("itemObjId")
count=rs.getInt("count")
price=rs.getInt("prise")
icon=rs.getString("itemIcon")
try :
if price >= 10000:
price = "<font color=00CCFF>"+str(price)+"</font>"
elif price >= 100000:
price = "<font color=FF0099>"+str(price)+"</font>"
elif price >= 1000000:
price = "<font color=FFCC00>"+str(price)+"</font>"
elif price >= 10000000:
price = "<font color=00FF66>"+str(price)+"</font>"
elif price >= 100000000:
price = "<font color=33CCCC>"+str(price)+"</font>"
elif price >= 1000000000:
price = "<font color=FF0066>"+str(price)+"</font>"
else:
price = "<font color=FFFFFF>"+str(price)+"</font>"
if count > 1:
count = str(count)
else:
count = str("")
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8032_MarketBuy bye_"+str(itemobj)+"\">"+count+" "+str(itemname)+"</a> <br1> Цена: "+str(price)+"; Продавец: "+str(nick)+"</td></tr>"
except :
try : insertion.close()
except : pass
try :
con.close()
except :
pass
htmltext += "</table></body></html>"
elif event.startswith("grade_"):
grade = int(event.replace("grade_", ""))
wamrs= st.getInt("view")
if wamrs == 1:
sortType = str("Weapon")
razdel = str("Оружие")
link = str("show_wpns")
elif wamrs == 2:
sortType = str("Armor")
razdel = str("Броня")
link = str("show_arms")
elif wamrs == 3:
sortType = str("Resource")
razdel = str("Ресурсы")
link = str("show_res")
elif wamrs == 4:
sortType = str("Recipe")
razdel = str("Рецепты")
link = str("show_recp")
elif wamrs == 5:
sortType = str("Spellbook")
razdel = str("Книги")
link = str("show_buks")
elif wamrs == 6:
sortType = str("Soulshot")
razdel = str("Патроны")
link = str("show_shot")
if grade == 1:
pgrade = str("[D]")
elif grade == 2:
pgrade = str("[C]")
elif grade == 3:
pgrade = str("")
elif grade == 4:
pgrade = str("[A]")
elif grade == 5:
pgrade = str("[S]")
htmltext = "<html><body><a action=\"bypass -h Quest q8032_MarketBuy list\">Cписок товаров</a>: <a action=\"bypass -h Quest q8032_MarketBuy "+link+"\">"+razdel+"</a>: "+pgrade+" <br>"
htmltext += "<table width=300><tr><td>"+dgrade+"</td><td>"+cgrade+"</td><td>"+bgrade+"</td><td>"+agrade+"</td><td>"+sgrade+"</td></tr></table>"
htmltext += "<table width=300><tr><td></td><td>Предмет</td></tr>"
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE l2Type=? AND itemGrade=? AND magicon.itemId=mag.itemId")
listitems.setString(1, sortType)
listitems.setInt(2, grade)
rs=listitems.executeQuery()
while (rs.next()) :
obj=rs.getInt("ownerId")
nick=rs.getString("char_name")
itemname=rs.getString("ItemName")
ench=rs.getInt("enchLvl")
item=rs.getInt("itemId")
grade=rs.getInt("itemGrade")
itype=rs.getString("itemType")
itemobj=rs.getInt("itemObjId")
count=rs.getInt("count")
price=rs.getInt("prise")
icon=rs.getString("itemIcon")
try :
if price >= 10000:
price = "<font color=00CCFF>"+str(price)+"</font>"
elif price >= 100000:
price = "<font color=FF0099>"+str(price)+"</font>"
elif price >= 1000000:
price = "<font color=FFCC00>"+str(price)+"</font>"
elif price >= 10000000:
price = "<font color=00FF66>"+str(price)+"</font>"
elif price >= 100000000:
price = "<font color=33CCCC>"+str(price)+"</font>"
elif price >= 1000000000:
price = "<font color=FF0066>"+str(price)+"</font>"
else:
price = "<font color=FFFFFF>"+str(price)+"</font>"
if count > 1:
count = str(count)
else:
count = str("")
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8032_MarketBuy bye_"+str(itemobj)+"\">"+count+" "+str(itemname)+"</a> <br1> Цена: "+str(price)+"; Продавец: "+str(nick)+"</td></tr>"
except :
try : insertion.close()
except : pass
try :
con.close()
except :
pass
htmltext += "</table></body></html>"
elif event.startswith("bye_"):
itemObjId = int(event.replace("bye_", ""))
#=====#
conn=L2DatabaseFactory.getInstance().getConnection()
byeitem=conn.prepareStatement("SELECT ownerId,char_name,ItemName,enchLvl,itemGrade,l2Type,itemType,itemId,itemObjId,co
unt,prise FROM z_market_sell WHERE itemObjId=?")
byeitem.setInt(1, itemObjId)
rs=byeitem.executeQuery()
while (rs.next()) :
owner=rs.getInt("ownerId")
nick=rs.getString("char_name")
itemname=rs.getString("ItemName")
ench=rs.getInt("enchLvl")
item=rs.getInt("itemId")
grade=rs.getInt("itemGrade")
itype=rs.getString("itemType")
itemobj=rs.getInt("itemObjId")
count=rs.getInt("count")
price=rs.getInt("prise")
try :
if st.getQuestItemsCount(57) >= price:
st.takeItems(57,price)
if ench == 0:
st.giveItems(item,count)
enchant = str("")
else:
st.giveItems(item,count,ench)
enchant = " +"+str(ench)+""
st.getPlayer().sendPacket(SystemMessage.sendString("Куплено "+str(count)+" "+(itemname)+" у "+str(nick)+" за "+str(price)+" adena!"));
htmltext = "<html><body>Куплено <font color=LEVEL>"+str(count)+" "+(itemname)+"</font> у "+str(nick)+" за "+str(price)+" adena!<br></body></html>"
#
pvin = ""+str(count)+" "+str(itemname)+""
player.sendPacket(ConfirmDlg(614,"Предмет "+str(count)+" "+(itemname)+" был продан на аукционе!"))
seller = L2World.getInstance().getPlayer(nick)
if seller:
seller.sendPacket(SystemMessage.sendString("Предмет "+str(count)+" "+(itemname)+" был продан на аукционе!"));
private=L2DatabaseFactory.getInstance().getConnection()
off=private.prepareStatement("INSERT INTO z_market_private (ownerId,ItemName,itemObjId,prise) VALUES (?,?,?,?)")
off.setInt(1, owner)
off.setString(2, pvin)
off.setInt(3, itemObjId)
off.setInt(4, price)
try :
off.executeUpdate()
off.close()
private.close()
except :
try : private.close()
except : pass
#
con=L2DatabaseFactory.getInstance().getConnection()
kupleno=con.prepareStatement("DELETE FROM z_market_sell WHERE itemObjId = ?")
kupleno.setInt(1, itemObjId)
try :
kupleno.executeUpdate()
kupleno.close()
con.close()
except :
try : con.close()
except : pass
else:
htmltext = "<html><body>У вас не хватает денег</body></html>"
except :
try : insertion.close()
except : pass
try :
conn.close()
except :
pass
return htmltext
def onTalk (self,npc,player):
st = player.getQuestState(qn)
npcId = npc.getNpcId()
if npcId == MARKET:
htmltext = "privetstvie.htm"
return htmltext
QUEST = Quest(8032,qn,"custom")
CREATED = State('Start', QUEST)
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
[b]MarketSell
Ошыбка
Line: -1 - Column: -1
Traceback (innermost last):
File "__init__.py", line 222, in ?
TypeError: net.sf.l2j.gameserver.model.quest.State(): expected 0 args; got 2
__init__.py MarketSell[
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
qn = "q8033_MarketSell"
MARKET = 80007
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 = ""
for Item in st.getPlayer().getInventory().getItems():
itemTemplate = Item.getItem()
if itemTemplate.getDuration() == -1 and not Item.isEquipped() and not Item.isAugmented() and not Item.isConsumable() and Item.getItemType() != L2EtcItemType.OTHER and Item.getItemType() != L2EtcItemType.SCROLL and Item.getItemType() != L2EtcItemType.PET_COLLAR and Item.isTradeable() and Item.getItemId() != 57 or Item.getItemType() == L2EtcItemType.SHOT:# and Item.getEnchantLevel() == 0:
count = Item.getCount()
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 :
if grade == 1:
pgrade = str("[D]")
elif grade == 2:
pgrade = str("[C]")
elif grade == 3:
pgrade = str("")
elif grade == 4:
pgrade = str("[A]")
elif grade == 5:
pgrade = str("[S]")
else:
pgrade = str("")
if Item.getEnchantLevel() == 0:
enchant = str("")
else:
enchant = " +"+str(Item.getEnchantLevel())+""
if count > 1:
count = str(count)
else:
count = str("")
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8033_MarketSell sell_" + str(Item.getObjectId()) +"\">"+str(count)+" " + itemTemplate.getName() + ""+str(pgrade)+" " + enchant + "</a></td></tr>"
except :
try : insertion.close()
except : pass
try :
con.close()
except :
pass
#if htmltext == "":
#htmltext = "Вам нечего продать."
htmltext = "<html><body>Market:<br>Вещи на продажу:<br><table width=300>" + htmltext + "</table></body></html>"
elif event.startswith("sell_"):
itemObjId = int(event.replace("sell_", ""))
obj = str(itemObjId)
Item = st.getPlayer().getInventory().getItemByObjectId(itemObjId)
itemTemplate = Item.getItem()
if Item and itemTemplate.getDuration() == -1 and not Item.isEquipped() and not Item.isAugmented() and not Item.isConsumable() and Item.getItemType() != L2EtcItemType.OTHER and Item.getItemType() != L2EtcItemType.SCROLL and Item.getItemType() != L2EtcItemType.PET_COLLAR and Item.isTradeable() and Item.getItemId() != 57 or Item.getItemType() == L2EtcItemType.SHOT:# and Item.getEnchantLevel() == 0:
cnt = Item.getCount()
count = str(cnt)
grade = itemTemplate.getCrystalType()
igrade = str(itemTemplate.getCrystalType())
itype = str(Item.getItemType())
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 :
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("")
if Item.getEnchantLevel() == 0:
enchant = str("")
else:
enchant = " +"+str(Item.getEnchantLevel())+""
st.set("sellitem",obj)
st.set("count",count)
st.set("grade",igrade)
st.set("type",itype)
htmltext = "<html><body>Market:<br>Вещь на продажу:<br>"
htmltext += "<img src=\"Icon."+str(icon)+"\" width=32 height=32>"
htmltext += "<font color=LEVEL>" + itemTemplate.getName() + ""+pgrade+" " + enchant + "</font><br><br>"
htmltext += "Количество: "+count+"<br>"
htmltext += "Установите цену: <br>"
htmltext += "<edit var=\"price\" width=250><br><button value=\"Ok\" action=\"bypass -h Quest q8033_MarketSell $price\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"><br>"
htmltext += "<br>*установите цену за 1 предмет, конечная цена = кол-во*цену.</body></html>"
except :
try : insertion.close()
except : pass
try :
con.close()
except :
pass
#else :
#htmltext = "<html><body>Market:<br>Oops!</body></html>"
elif event >= 0 or event <=2144000000:
itemPrice = int(event)
itemObjId = st.getInt("sellitem")
itemCount = st.getInt("count")
itemGrade = st.getInt("grade")
itemPrice = int(itemPrice*itemCount)
Item = st.getPlayer().getInventory().getItemByObjectId(itemObjId)
itemTemplate = Item.getItem()
idtest = Item.getItemId()
itype = str(Item.getItemType())
itemType = str(Item.getItemType())
if Item and not Item.isEquipped() :
count = str(itemCount)
if Item.getEnchantLevel() == 0:
enchant = str("")
else:
enchant = " +"+str(Item.getEnchantLevel())+""
#weapons
if itype == "Sword":
ptype = str ("Weapon")
elif itype == "Blunt":
ptype = str ("Weapon")
elif itype == "Dagger":
ptype = str ("Weapon")
elif itype == "Bow":
ptype = str ("Weapon")
elif itype == "Etc":
ptype = str ("Weapon")
elif itype == "Pole":
ptype = str ("Weapon")
elif itype == "Fist":
ptype = str ("Weapon")
elif itype == "Dual Sword":
ptype = str ("Weapon")
elif itype == "Dual Fist":
ptype = str ("Weapon")
elif itype == "Big Sword":
ptype = str ("Weapon")
elif itype == "Big Blunt":
ptype = str ("Weapon")
#armor
elif itype == "Shield":
ptype = str ("Armor")
elif itype == "Light":
ptype = str ("Armor")
elif itype == "Heavy":
ptype = str ("Armor")
elif itype == "Magic":
ptype = str ("Armor")
elif itype == "None":
ptype = str ("Armor")
#recipes
elif itype == "Receipe":
ptype = str ("Recipe")
#resources
elif itype == "Material":
ptype = str ("Resource")
#spellbook
elif itype == "Spellbook":
ptype = str ("Spellbook")
#soulshot
elif itype == "Shot":
ptype = str ("Soulshot")
st.getPlayer().destroyItem("q8033_MarketSell",itemObjId, itemCount, st.getPlayer(), 0)
st.getPlayer().sendPacket(SystemMessage.sendString(""+count+ " " + itemTemplate.getName() + "" + enchant + " выстановлено на аукцион за "+str(itemPrice)+" adena"));
htmltext = "<html><body>Market:<br>Выстановлено на аукцион:<br><font color=LEVEL>"+count+" " + itemTemplate.getName() + "" + enchant + "</font> за "+str(itemPrice)+" adena"
#=====#
itemname = "" + itemTemplate.getName() + "" + enchant + ""
enchLvl=Item.getEnchantLevel()
ownerid = st.getPlayer().getObjectId()
name = st.getPlayer().getName()
con=L2DatabaseFactory.getInstance().getConnection()
insertion=con.prepareStatement("INSERT INTO z_market_sell (ownerId,char_name,ItemName,enchLvl,itemGrade,l2Type,itemType,itemId,itemObjId,c
ount,prise) VALUES (?,?,?,?,?,?,?,?,?,?,?)")
insertion.setInt(1, ownerid)
insertion.setString(2, name)
insertion.setString(3, itemname)
insertion.setInt(4, enchLvl)
insertion.setInt(5, itemGrade)
insertion.setString(6, ptype)
insertion.setString(7, itemType)
insertion.setInt(8, idtest)
insertion.setInt(9, itemObjId)
insertion.setInt(10, itemCount)
insertion.setInt(11, itemPrice)
try :
insertion.executeUpdate()
insertion.close()
con.close()
except :
try : con.close()
except : pass
else :
htmltext = "<html><body>Market:<br>Oops!</body></html>"
else:
htmltext = "<html><body>Market:<br>Oops!</body></html>"
return htmltext
def onTalk (self,npc,player):
st = player.getQuestState(qn)
npcId = npc.getNpcId()
if npcId == MARKET:
htmltext = "privetstvie.htm"
return htmltext
QUEST = Quest(8033,qn,"custom")
CREATED = State('Start', QUEST)
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
[b]MarketPrivate
Ошыбка
Line: -1 - Column: -1
Traceback (innermost last):
File "__init__.py", line 173, in ?
TypeError: net.sf.l2j.gameserver.model.quest.State(): expected 0 args; got 2
__init__.py
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
qn = "q8034_MarketPrivate"
MARKET = 80007
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 == "list" :
htmltext = "<html><body>Cписок выставленных товаров:<br1>*нажмите на предмет, чтобы снять с продажи<br>"
htmltext += "<table width=300><tr><td></td><td>Предмет</td></tr>"
ownerid = st.getPlayer().getObjectId()
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE mag.ownerId=? AND magicon.itemId=mag.itemId")
listitems.setInt(1, ownerid)
rs=listitems.executeQuery()
while (rs.next()) :
obj=rs.getInt("ownerId")
nick=rs.getString("char_name")
itemname=rs.getString("ItemName")
ench=rs.getInt("enchLvl")
item=rs.getInt("itemId")
grade=rs.getInt("itemGrade")
itype=rs.getString("itemType")
itemobj=rs.getInt("itemObjId")
count=rs.getInt("count")
price=rs.getInt("prise")
icon=rs.getString("itemIcon")
try :
if count > 1:
count = str(count)
else:
count=str("")
if price >= 10000:
price = "<font color=00CCFF>"+str(price)+"</font>"
elif price >= 100000:
price = "<font color=FF0099>"+str(price)+"</font>"
elif price >= 1000000:
price = "<font color=FFCC00>"+str(price)+"</font>"
elif price >= 10000000:
price = "<font color=00FF66>"+str(price)+"</font>"
elif price >= 100000000:
price = "<font color=33CCCC>"+str(price)+"</font>"
elif price >= 1000000000:
price = "<font color=FF0066>"+str(price)+"</font>"
else:
price = "<font color=FFFFFF>"+str(price)+"</font>"
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8034_MarketPrivate nafig_"+str(itemobj)+"\">"+count+" "+str(itemname)+"</a> <br1> Цена: "+str(price)+"</td></tr>"
except :
try : insertion.close()
except : pass
try :
con.close()
except :
pass
htmltext += "</table></body></html>"
if event == "selllist" :
htmltext = "<html><body>Cписок проданных товаров:<br>"
htmltext += "<table width=300><tr><td>Предмет</td><td>Адена</td></tr>"
ownerid = st.getPlayer().getObjectId()
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT ownerId,ItemName,itemObjId,prise FROM z_market_private WHERE ownerId=?")
listitems.setInt(1, ownerid)
rs=listitems.executeQuery()
while (rs.next()) :
obj=rs.getInt("ownerId")
itemname=rs.getString("ItemName")
itemobj=rs.getInt("itemObjId")
price=rs.getInt("prise")
try :
htmltext += "<tr><td><a action=\"bypass -h Quest q8034_MarketPrivate otdai_"+str(itemobj)+"\">"+str(itemname)+"</a></td><td>"+str(price)+"</td></tr>"
except :
try : insertion.close()
except : pass
try :
con.close()
except :
pass
htmltext += "</table></body></html>"
elif event.startswith("nafig_"):
itemObjId = int(event.replace("nafig_", ""))
#=====#
conn=L2DatabaseFactory.getInstance().getConnection()
delitem=conn.prepareStatement("SELECT ownerId,char_name,ItemName,enchLvl,itemGrade,itemType,itemId,itemObjId,count,pri
se FROM z_market_sell WHERE itemObjId=?")
delitem.setInt(1, itemObjId)
rs=delitem.executeQuery()
while (rs.next()) :
owner=rs.getInt("ownerId")
nick=rs.getString("char_name")
itemname=rs.getString("ItemName")
ench=rs.getInt("enchLvl")
item=rs.getInt("itemId")
grade=rs.getInt("itemGrade")
itype=rs.getString("itemType")
itemobj=rs.getInt("itemObjId")
count=rs.getInt("count")
price=rs.getInt("prise")
try :
st.giveItems(item,count)
st.getPlayer().sendPacket(SystemMessage.sendString("Предмет "+str(count)+" "+(itemname)+" снят с аукциона!"));
htmltext = "<html><body>Предмет <font color=LEVEL>"+str(count)+" "+(itemname)+"</font>снят с аукциона!<br></body></html>"
#
#
con=L2DatabaseFactory.getInstance().getConnection()
ubrano=con.prepareStatement("DELETE FROM z_market_private WHERE itemObjId = ?")
ubrano.setInt(1, itemobj)
try :
ubrano.executeUpdate()
ubrano.close()
con.close()
except :
try : con.close()
except : pass
except :
try : insertion.close()
except : pass
try :
conn.close()
except :
pass
elif event.startswith("otdai_"):
itemObjId = int(event.replace("otdai_", ""))
#=====#
conn=L2DatabaseFactory.getInstance().getConnection()
delitem=conn.prepareStatement("SELECT ownerId,ItemName,itemObjId,prise FROM z_market_private WHERE itemObjId=?")
delitem.setInt(1, itemObjId)
rs=delitem.executeQuery()
while (rs.next()) :
owner=rs.getInt("ownerId")
itemname=rs.getString("ItemName")
itemobj=rs.getInt("itemObjId")
price=rs.getInt("prise")
try :
st.giveItems(57,price)
st.getPlayer().sendPacket(SystemMessage.sendString("Получено "+str(price)+" adena с продажи "+(itemname)+"!"));
htmltext = "<html><body>Получено "+str(price)+" adena с продажи <font color=LEVEL>"+(itemname)+"</font>!<br></body></html>"
#
#
con=L2DatabaseFactory.getInstance().getConnection()
ubrano=con.prepareStatement("DELETE FROM z_market_private WHERE itemObjId = ?")
ubrano.setInt(1, itemobj)
try :
ubrano.executeUpdate()
ubrano.close()
con.close()
except :
try : con.close()
except : pass
except :
try : insertion.close()
except : pass
try :
conn.close()
except :
pass
return htmltext
def onTalk (self,npc,player):
st = player.getQuestState(qn)
npcId = npc.getNpcId()
if npcId == MARKET:
htmltext = "privetstvie.htm"
return htmltext
QUEST = Quest(8034,qn,"custom")
CREATED = State('Start', QUEST)
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
Сделайте хто-то )
я знаю етот аукцион тоже над ним я зделал вот так
так как импор конфига не получилось конфиг вставил просто так сюда:
from java.util import Iterator
from net.sf.l2j.util import Rnd
from net.sf.l2j.gameserver.serverpackets import CreatureSay
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
from net.sf.l2j import L2DatabaseFactory
from net.sf.l2j.gameserver.serverpackets import SystemMessage
from net.sf.l2j.gameserver.model import L2ItemInstance
from net.sf.l2j.gameserver.model import L2World
from net.sf.l2j.gameserver.serverpackets import ConfirmDlg
from net.sf.l2j.gameserver.serverpackets import UserInfo
from net.sf.l2j.gameserver.serverpackets import CharInfo
from net.sf.l2j.gameserver.serverpackets import InventoryUpdate
from net.sf.l2j.gameserver.datatables import ItemTable
from net.sf.l2j.gameserver.idfactory import IdFactory
qn = "q8032_MarketBuy"
NPC = [80007]
LIMIT = 12
FIRMONEY = "Adena"
SECMONEY = "Coin of Luck"
RAZDELY = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
#
trans = {1: "Weapon", 2: "Armor", 3: "Resource", 4: "Recipe", 5: "Spellbook", 6: "Soulshot", 7: "AncientAdena", 8: "Scroll", 9: "Crystal", 10: "Potion", 11: "Tatoo", 12: "Arrow", 13: "SoulCrystal", 14: "Rod", 15: "QuestItems", 16: "Life Stone"}
sorts = {1: "Weapon", 2: "Armor", 3: "Resource", 4: "Recipe", 5: "Spellbook", 6: "Soulshot", 7: "AncientAdena", 8: "Scroll", 9: "Crystal", 10: "Potion", 11: "Tatoo", 12: "Arrow", 13: "SoulCrystal", 14: "Rod", 15: "QuestItems", 16: "LifeStone"}
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 == "list" :
st.unset("stranic")
st.unset("moreitem")
st.unset("morecount")
st.unset("moreprice")
htmltext = "<html><body>Cписок товаров:<br>"
htmltext += "<table width=300><tr>"
counter = 0
for i in RAZDELY:
counter += 1
razdel = trans.get(i, str(""))
htmltext += "<td><button value=\""+str(razdel)+"\" action=\"bypass -h Quest q8032_MarketBuy show_"+str(i)+"\" width=45 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td>"
if counter==5:
htmltext += "</tr><tr>"
counter = 0
htmltext += "</tr></table><br>"
htmltext += "<table width=300><tr><td></td><td>Последние "+str(LIMIT)+":</td></tr>"
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE mag.itemId>1 AND magicon.itemId=mag.itemId LIMIT 0,?")
listitems.setInt(1, int(LIMIT))
rs=listitems.executeQuery()
while (rs.next()) :
obj=rs.getInt("ownerId")
nick=rs.getString("char_name")
itemname=rs.getString("ItemName")
ench=rs.getInt("enchLvl")
item=rs.getInt("itemId")
grade=rs.getInt("itemGrade")
itype=rs.getString("itemType")
itemobj=rs.getInt("itemObjId")
count=rs.getInt("count")
price=rs.getInt("prise")
money=rs.getInt("money")
icon=rs.getString("itemIcon")
try :
chk = count
if money == 57:
prmoney = str("Adena")
dmoney = str(FIRMONEY)
else:
prmoney = str("COL")
dmoney = str(SECMONEY)
s = str(price)
for i in xrange(len(s)-3,s[0] in ('+','-'),-3):
s=s[:i]+','+s[i:]
pprice = "<font color=00CCFF>"+str(s)+"</font>"
count = (count > 1 and str(count)) or str("")
if chk == 1:
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a msg=\"Купить "+str(itemname)+" у "+str(nick)+" за "+str(s)+" "+dmoney+"?\" action=\"bypass -h Quest q8032_MarketBuy bye_"+str(itemobj)+"\">"+count+" "+str(itemname)+"</a> <br1> "+str(pprice)+" "+prmoney+"; PM: "+str(nick)+"</td></tr>"
else:
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8032_MarketBuy showm_"+str(itemobj)+"_"+str(item)+"\">"+count+" "+str(itemname)+"</a> <br1> "+str(pprice)+" "+prmoney+"; PM: "+str(nick)+"</td></tr>"
except :
try : insertion.close()
except : pass
try :
con.close()
except :
pass
htmltext += "</table><br></body></html>"
elif event.startswith("str_"):
search = str(event.replace("str_", ""))
iotype,zagluwka,grade=search.split("_")
iotype,zagluwka,grade=int(iotype),int(zagluwka),int(grade)
strlist = int(zagluwka - 1)
strCount = st.getInt("stranic")
sortType = sorts.get(iotype, str(""))
razdel = trans.get(iotype, str(""))
htmltext = "<html><body><a action=\"bypass -h Quest q8032_MarketBuy list\">Cписок товаров</a>: "+razdel+"<br>"
#>
if iotype > 0:
htmltext += ""
else:
htmltext += "<table width=300><tr>"
counter = 0
for i in RAZDELY:
counter += 1
razdel = trans.get(i, str(""))
htmltext += "<td><button value=\""+str(razdel)+"\" action=\"bypass -h Quest q8032_MarketBuy show_"+str(i)+"\" width=45 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td>"
if counter==5:
htmltext += "</tr><tr>"
counter = 0
htmltext += "</tr></table><br>"
ones = {1: 0, 2: LIMIT}
one = ones.get(zagluwka, int(LIMIT*strlist))
two = LIMIT
con=L2DatabaseFactory.getInstance().getConnection()
#>
if iotype == 0:
sql=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE mag.itemId>1 AND magicon.itemId=mag.itemId LIMIT ?,?")
sql.setInt(1, one)
sql.setInt(2, two)
elif iotype == 1 or iotype == 2 or iotype == 6 or iotype == 9 or iotype == 12:
htmltext += "<table width=300><tr><td><button value=\"NG\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_0\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"D\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_1\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"C\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_2\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"B\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_3\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"A\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_4\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"S\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_5\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td></tr></table>"
if grade == 0 or grade == 99:
sql=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE l2Type=? AND magicon.itemId=mag.itemId LIMIT ?,?")
sql.setString(1, sortType)
sql.setInt(2, one)
sql.setInt(3, two)
else:
sql=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE l2Type=? AND itemGrade=? AND magicon.itemId=mag.itemId LIMIT ?,?")
sql.setString(1, sortType)
sql.setInt(2, grade)
sql.setInt(3, one)
sql.setInt(4, two)
elif iotype > 2 and iotype <16:
if grade == 0 or grade == 99:
sql=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE l2Type=? AND magicon.itemId=mag.itemId LIMIT ?,?")
sql.setString(1, sortType)
sql.setInt(2, one)
sql.setInt(3, two)
else:
sql=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE l2Type=? AND itemGrade=? AND magicon.itemId=mag.itemId LIMIT ?,?")
sql.setString(1, sortType)
sql.setInt(2, grade)
sql.setInt(3, one)
sql.setInt(4, two)
rs=sql.executeQuery()
htmltext += "<table width=300><tr><td></td><td>Страница: "+str(zagluwka)+"</td></tr>"
#>
while (rs.next()) :
obj=rs.getInt("ownerId")
nick=rs.getString("char_name")
itemname=rs.getString("ItemName")
ench=rs.getInt("enchLvl")
item=rs.getInt("itemId")
grade=rs.getInt("itemGrade")
itype=rs.getString("itemType")
itemobj=rs.getInt("itemObjId")
count=rs.getInt("count")
price=rs.getInt("prise")
money=rs.getInt("money")
icon=rs.getString("itemIcon")
try :
chk = count
if money == 57:
prmoney = str("Adena")
dmoney = str(FIRMONEY)
else:
prmoney = str("COL")
dmoney = str(SECMONEY)
s = str(price)
for i in xrange(len(s)-3,s[0] in ('+','-'),-3):
s=s[:i]+','+s[i:]
pprice = "<font color=00CCFF>"+str(s)+" "+prmoney+"</font>"
count = (count > 1 and str(count)) or str("")
if chk == 1:
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a msg=\"Купить "+str(itemname)+" у "+str(nick)+" за "+str(s)+" "+dmoney+"?\" action=\"bypass -h Quest q8032_MarketBuy bye_"+str(itemobj)+"\">"+count+" "+str(itemname)+"</a> <br1> "+str(pprice)+" "+prmoney+"; PM: "+str(nick)+"</td></tr>"
else:
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8032_MarketBuy showm_"+str(itemobj)+"_"+str(item)+"\">"+count+" "+str(itemname)+"</a> <br1> "+str(pprice)+" "+prmoney+"; PM: "+str(nick)+"</td></tr>"
except :
try : sql.close()
except : pass
try :
con.close()
except :
pass
htmltext += "</table><br>Страницы: "
prvsego = range(1,strCount)
for i in prvsego:
htmltext += "<a action=\"bypass -h Quest q8032_MarketBuy str_"+str(iotype)+"_"+str(i)+"_"+str(grade)+"\">"+str(i)+"</a> "
htmltext += "</body></html>"
elif event.startswith("show_"):
iotype = int(event.replace("show_", ""))
sortType = sorts.get(iotype, str(""))
razdel = trans.get(iotype, str(""))
iotype = str(iotype)
htmltext = "<html><body><a action=\"bypass -h Quest q8032_MarketBuy list\">Cписок товаров</a>: "+razdel+"<br>"
con=L2DatabaseFactory.getInstance().getConnection()
if iotype == "1" or iotype == "2" or iotype == "6" or iotype =="9" or iotype =="12":
htmltext += "<table width=300><tr><td><button value=\"NG\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_0\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"D\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_1\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"C\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_2\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"B\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_3\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"A\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_4\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"S\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_5\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td></tr></table>"
htmltext += "<table width=300><tr><td></td><td>Последние "+str(LIMIT)+":</td></tr>"
sql=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE l2Type=? AND magicon.itemId=mag.itemId LIMIT 0,?")
sql.setString(1, sortType)
sql.setInt(2, int(LIMIT))
else:
htmltext += "<table width=300><tr><td></td><td></td><td></td><td></td></tr>"
sql=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE l2Type=? AND magicon.itemId=mag.itemId LIMIT 0,?")
sql.setString(1, sortType)
sql.setInt(2, int(LIMIT))
htmltext += "<tr><td></td><td>Предмет</td></tr>"
rs=sql.executeQuery()
while (rs.next()) :
obj=rs.getInt("ownerId")
nick=rs.getString("char_name")
itemname=rs.getString("ItemName")
ench=rs.getInt("enchLvl")
item=rs.getInt("itemId")
grade=rs.getInt("itemGrade")
itype=rs.getString("l2Type")
ltype=rs.getString("itemType")
itemobj=rs.getInt("itemObjId")
count=rs.getInt("count")
price=rs.getInt("prise")
money=rs.getInt("money")
icon=rs.getString("itemIcon")
try :
chk = count
if money == 57:
prmoney = str("Adena")
dmoney = str(FIRMONEY)
else:
prmoney = str("COL")
dmoney = str(SECMONEY)
s = str(price)
for i in xrange(len(s)-3,s[0] in ('+','-'),-3):
s=s[:i]+','+s[i:]
pprice = "<font color=00CCFF>"+str(s)+"</font>"
count = (count > 1 and str(count)) or str("")
if chk == 1:
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a msg=\"Купить "+str(itemname)+" у "+str(nick)+" за "+str(s)+" "+dmoney+"?\" action=\"bypass -h Quest q8032_MarketBuy bye_"+str(itemobj)+"\">"+count+" "+str(itemname)+"</a> <br1> "+str(pprice)+" "+prmoney+"; PM: "+str(nick)+"</td></tr>"
else:
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8032_MarketBuy showm_"+str(itemobj)+"_"+str(item)+"\">"+count+" "+str(itemname)+"</a> <br1> "+str(pprice)+" "+prmoney+"; PM: "+str(nick)+"</td></tr>"
except :
try : sql.close()
except : pass
try :
con.close()
except :
pass
htmltext += "</table><br>"
cona=L2DatabaseFactory.getInstance().getConnection()
getcount=cona.prepareStatement("SELECT COUNT(l2Type) FROM z_market_sell WHERE l2Type=?")
getcount.setString(1, sortType)
rsc=getcount.executeQuery()
if (rsc.next()):
rows = rsc.getInt(1)
vsego = int((rows/LIMIT)+2)
if vsego > 3:
htmltext += "Страницы: "
st.set("stranic",str(vsego))
prvsego = range(1,vsego)
for i in prvsego:
htmltext += ""
htmltext += " <a action=\"bypass -h Quest q8032_MarketBuy str_"+str(iotype)+"_"+str(i)+"_99\">"+str(i)+"</a> "
else:
htmltext += ""
rsc.close()
getcount.close()
cona.close()
htmltext += "</body></html>"
elif event.startswith("iotype_"):
search = str(event.replace("iotype_", ""))
iotype,grade=search.split("_")
iotype,grade=int(iotype),int(grade)
sortType = sorts.get(iotype, str(""))
razdel = trans.get(iotype, str(""))
link = str(iotype)
grades = {0: str("NG"),1: str("[D]"), 2: str("[C]"), 3: str("[B]"), 4: str("[A]"), 5: str("[S]")}
pgrade = grades.get(grade, str(""))
htmltext = "<html><body><a action=\"bypass -h Quest q8032_MarketBuy list\">Cписок товаров</a>: <a action=\"bypass -h Quest q8032_MarketBuy show_"+link+"\">"+razdel+"</a>: "+pgrade+" <br>"
htmltext += "<table width=300><tr><td><button value=\"NG\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_0\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"D\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_1\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"C\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_2\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"B\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_3\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"A\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_4\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td><button value=\"S\" action=\"bypass -h Quest q8032_MarketBuy iotype_"+str(iotype)+"_5\" width=25 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td></tr></table>"
htmltext += "<table width=300><tr><td></td><td>Предмет</td></tr>"
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE l2Type=? AND itemGrade=? AND magicon.itemId=mag.itemId LIMIT 0,?")
listitems.setString(1, sortType)
listitems.setInt(2, grade)
listitems.setInt(3, int(LIMIT))
rs=listitems.executeQuery()
while (rs.next()) :
obj=rs.getInt("ownerId")
nick=rs.getString("char_name")
itemname=rs.getString("ItemName")
ench=rs.getInt("enchLvl")
item=rs.getInt("itemId")
grade=rs.getInt("itemGrade")
itype=rs.getString("itemType")
itemobj=rs.getInt("itemObjId")
count=rs.getInt("count")
price=rs.getInt("prise")
money=rs.getInt("money")
icon=rs.getString("itemIcon")
try :
chk = count
if money == 57:
prmoney = str("Adena")
dmoney = str(FIRMONEY)
else:
prmoney = str("COL")
dmoney = str(SECMONEY)
s = str(price)
for i in xrange(len(s)-3,s[0] in ('+','-'),-3):
s=s[:i]+','+s[i:]
pprice = "<font color=00CCFF>"+str(s)+"</font>"
count = (count > 1 and str(count)) or str("")
if chk == 1:
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a msg=\"Купить "+str(itemname)+" у "+str(nick)+" за "+str(s)+" "+dmoney+"?\" action=\"bypass -h Quest q8032_MarketBuy bye_"+str(itemobj)+"\">"+count+" "+str(itemname)+"</a> <br1> "+str(pprice)+" "+prmoney+"; PM: "+str(nick)+"</td></tr>"
else:
htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8032_MarketBuy showm_"+str(itemobj)+"_"+str(item)+"\">"+count+" "+str(itemname)+"</a> <br1> "+str(pprice)+" "+prmoney+"; PM: "+str(nick)+"</td></tr>"
except :
try : insertion.close()
except : pass
try :
con.close()
except :
pass
htmltext += "</table><br>"
cona=L2DatabaseFactory.getInstance().getConnection()
getcount=cona.prepareStatement("SELECT COUNT(itemGrade) FROM z_market_sell WHERE l2Type=? AND itemGrade=?")
getcount.setString(1, str(sortType))
getcount.setInt(2, grade)
rsc=getcount.executeQuery()
if (rsc.next()):
rows = rsc.getInt(1)
vsego = int((rows/LIMIT)+2)
if vsego > 3:
htmltext += "Страницы: "
st.set("stranic",str(vsego))
prvsego = range(1,vsego)
for i in prvsego:
htmltext += ""
htmltext += " <a action=\"bypass -h Quest q8032_MarketBuy str_"+str(iotype)+"_"+str(i)+"_"+str(grade)+"\">"+str(i)+"</a> "
else:
htmltext += ""
rsc.close()
getcount.close()
cona.close()
htmltext += "</body></html>"
elif event.startswith("bye_"):
itemObjId = int(event.replace("bye_", ""))
#=====#
cona=L2DatabaseFactory.getInstance().getConnection()
getcount=cona.prepareStatement("SELECT COUNT(itemObjId) FROM z_market_sell WHERE itemObjId=?")
getcount.setInt(1, itemObjId)
rsc=getcount.executeQuery()
if (rsc.next()):
if rsc.getInt(1)>0:
conn=L2DatabaseFactory.getInstance().getConnection()
byeitem=conn.prepareStatement("SELECT * FROM z_market_sell WHERE itemObjId=?")
byeitem.setInt(1, itemObjId)
rs=byeitem.executeQuery()
while (rs.next()) :
owner=rs.getInt("ownerId")
nick=rs.getString("char_name")
itemname=rs.getString("ItemName")
ench=rs.getInt("enchLvl")
item=rs.getInt("itemId")
grade=rs.getInt("itemGrade")
itype=rs.getString("itemType")
itemobj=rs.getInt("itemObjId")
count=rs.getInt("count")
price=rs.getInt("prise")
money=rs.getInt("money")
try :
chkprice = int(count*price)
if money == 57:
pmoney = str(FIRMONEY)
else:
pmoney = str(SECMONEY)
if st.getQuestItemsCount(money) >= chkprice:
price = int(count*price)
st.takeItems(money,price)
if ench == 0:
st.giveItems(item,count)
enchant = str("")
else:
st.giveItems(item,count,ench)
enchant = " +"+str(ench)+""
st.getPlayer().sendPacket(SystemMessage.sendString("Куплено "+str(count)+" "+(itemname)+" у "+str(nick)+" за "+str(price)+" "+pmoney+"!"));
htmltext = "<html><body>Куплено <font color=LEVEL>"+str(count)+" "+(itemname)+"</font> у "+str(nick)+" за "+str(price)+" "+pmoney+"!<br><br><a action=\"bypass -h Quest q8032_MarketBuy list\">Вернуться.</a></body></html>"
#
seller = L2World.getInstance().getPlayer(nick)
if seller:
seller.sendPacket(SystemMessage.sendString("Предмет "+str(count)+" "+(itemname)+" был продан на аукционе!"));
seller.sendPacket(ConfirmDlg(614,"Предмет "+str(count)+" "+(itemname)+" был продан на аукционе!"))
#
pvin = ""+str(count)+" "+str(itemname)+""
private=L2DatabaseFactory.getInstance().getConnection()
newItemObj = IdFactory.getInstance().getNextId()
off=private.prepareStatement("INSERT INTO z_market_private (ownerId,ItemName,itemObjId,prise,money) VALUES (?,?,?,?,?)")
off.setInt(1, owner)
off.setString(2, pvin)
off.setInt(3, newItemObj)
off.setInt(4, price)
off.setInt(5, money)
try :
off.executeUpdate()
off.close()
private.close()
except :
try : private.close()
except : pass
#
con=L2DatabaseFactory.getInstance().getConnection()
kupleno=con.prepareStatement("DELETE FROM z_market_sell WHERE itemObjId = ?")
kupleno.setInt(1, itemObjId)
try :
kupleno.executeUpdate()
kupleno.close()
con.close()
except :
try : con.close()
except : pass
else:
htmltext = "<html><body>У вас не хватает "+pmoney+"<br><br><a action=\"bypass -h Quest q8032_MarketBuy list\">Вернуться.</a></body></html>"
except :
try :
byeitem.close()
except : pass
try :
conn.close()
except :
pass
#
else:
htmltext = "<html><body>Предмет уже кто-то купил ): <br><br><a action=\"bypass -h Quest q8032_MarketBuy list\">Вернуться.</a></body></html>"
else:
htmltext = "<html><body>Oops!<br><br><a action=\"bypass -h Quest q8032_MarketBuy list\">Вернуться.</a></body></html>"
rsc.close()
getcount.close()
cona.close()
elif event.startswith("showm_"):
search = str(event.replace("showm_", ""))
obj,itemid=search.split("_")
obj,itemid=int(obj),int(itemid)
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT * FROM `z_market_sell` mag, `z_market_icons` magicon WHERE mag.itemObjId=? AND magicon.itemId=?")
listitems.setInt(1, obj)
listitems.setInt(2, itemid)
rs=listitems.executeQuery()
while (rs.next()) :
icon=rs.getString("itemIcon")
itemname=rs.getString("ItemName")
nickname=rs.getString("char_name")
grade=rs.getInt("itemGrade")
enchan=rs.getInt("enchLvl")
count=rs.getInt("count")
price=rs.getInt("prise")
money=rs.getInt("money")
try :
st.set("moreitem",str(obj))
st.set("morecount",str(count))
st.set("moreprice",str(price))
if money == 57:
dmoney = str(FIRMONEY)
else:
dmoney = str(SECMONEY)
mprice = int(count*price)
s = str(price)
for i in xrange(len(s)-3,s[0] in ('+','-'),-3):
s=s[:i]+','+s[i:]
pprice = "<font color=00CCFF>"+str(s)+" "+dmoney+"</font>"
grades = {1: "d", 2: "c", 3: "b", 4: "a", 5: "s"}
pgrade = grades.get(grade, str(""))
enchant = (enchan > 0 and " +"+str(enchan)+"") or str("")
htmltext = "<html><body>Вы выбрали:<br>"
htmltext += "<table width=300><tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><font color=LEVEL>"+str(itemname)+" "+str(enchant)+"</font><br1>Цена: "+str(pprice)+"; Продавец: "+str(nickname)+"</td></tr></table>"
htmltext += "<br>В продаже: "+str(count)+""
htmltext += "<br>Сколько хотите купить?:"
htmltext += "<edit var=\"cols\" width=200 length=\"10\"><br>"
htmltext += "<button value=\"Ok\" action=\"bypass -h Quest q8032_MarketBuy byem_ $cols _ xz\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"><br>"
htmltext += "<br><a msg=\"Скупить все "+str(count)+" "+str(itemname)+" у "+str(nickname)+" за "+str(mprice)+" adena?\" action=\"bypass -h Quest q8032_MarketBuy bye_"+str(obj)+"\">Скупить всё</a><br>"
htmltext += "<br><br><a action=\"bypass -h Quest q8032_MarketBuy list\">Вернуться.</a></body></html>"
except :
try : listitems.close()
except : pass
try :
con.close()
except :
pass
elif event.startswith("byem_ "):
search = str(event.replace("byem_ ", ""))
search,ptype=search.split("_")
search,ptype=str(search),str(ptype)
search = str(search.replace(" ", ""))
ptype = str(ptype.replace(" ", ""))
if search == "":
htmltext = "<html><body>Вы не указали количество.<br><br><a action=\"bypass -h Quest q8032_MarketBuy list\">Вернуться.</a></body></html>"
return htmltext
wantcount = int(search)
itemObjId = st.getInt("moreitem")
itemCount = st.getInt("morecount")
onePrice = st.getInt("moreprice")
#=====#
cona=L2DatabaseFactory.getInstance().getConnection()
getcount=cona.prepareStatement("SELECT COUNT(itemObjId) FROM z_market_sell WHERE itemObjId=?")
getcount.setInt(1, itemObjId)
rsc=getcount.executeQuery()
if (rsc.next()):
if rsc.getInt(1)>0:
conn=L2DatabaseFactory.getInstance().getConnection()
byeitem=conn.prepareStatement("SELECT * FROM z_market_sell WHERE itemObjId=?")
byeitem.setInt(1, itemObjId)
rs=byeitem.executeQuery()
while (rs.next()) :
owner=rs.getInt("ownerId")
nick=rs.getString("char_name")
itemname=rs.getString("ItemName")
ench=rs.getInt("enchLvl")
item=rs.getInt("itemId")
grade=rs.getInt("itemGrade")
itype=rs.getString("itemType")
itemobj=rs.getInt("itemObjId")
count=rs.getInt("count")
price=rs.getInt("prise")
money=rs.getInt("money")
try :
writepr = price
price = int(onePrice*wantcount)
ost = int(count-wantcount)
if money == 57:
pmoney = str(FIRMONEY)
else:
pmoney = str(SECMONEY)
if wantcount > count:
htmltext = "<html><body>Неправильное количество предметов!<br><br><a action=\"bypass -h Quest q8032_MarketBuy list\">Вернуться.</a></body></html>"
elif st.getQuestItemsCount(money) >= price:
st.takeItems(money,price)
if ench == 0:
st.giveItems(item,wantcount)
enchant = str("")
else:
st.giveItems(item,wantcount,ench)
enchant = " +"+str(ench)+""
st.getPlayer().sendPacket(SystemMessage.sendString("Куплено "+str(wantcount)+" "+(itemname)+" у "+str(nick)+" за "+str(price)+" "+pmoney+"!"));
htmltext = "<html><body>Куплено <font color=LEVEL>"+str(wantcount)+" "+(itemname)+"</font> у "+str(nick)+" за "+str(price)+" "+pmoney+"!<br><br><a action=\"bypass -h Quest q8032_MarketBuy list\">Вернуться.</a></body></html>"
#
seller = L2World.getInstance().getPlayer(nick)
if seller:
seller.sendPacket(SystemMessage.sendString("Предмет "+str(wantcount)+" "+(itemname)+" был продан на аукционе!"));
seller.sendPacket(ConfirmDlg(614,"Предмет "+str(wantcount)+" "+(itemname)+" был продан на аукционе!"))
#
pvin = ""+str(wantcount)+" "+str(itemname)+""
newItemObj = IdFactory.getInstance().getNextId()
private=L2DatabaseFactory.getInstance().getConnection()
off=private.prepareStatement("INSERT INTO z_market_private (ownerId,ItemName,itemObjId,prise,money) VALUES (?,?,?,?,?)")
off.setInt(1, owner)
off.setString(2, pvin)
off.setInt(3, newItemObj)
off.setInt(4, price)
off.setInt(5, money)
try :
off.executeUpdate()
off.close()
private.close()
except :
try : private.close()
except : pass
#
if ost>0:
con=L2DatabaseFactory.getInstance().getConnection()
kupleno=con.prepareStatement("UPDATE z_market_sell SET count=?, prise=? WHERE itemObjId =?")
kupleno.setInt(1, ost)
kupleno.setInt(2, writepr)
kupleno.setInt(3, itemObjId)
try :
kupleno.executeUpdate()
kupleno.close()
con.close()
except :
try : con.close()
except : pass
else:
con=L2DatabaseFactory.getInstance().getConnection()
kupleno=con.prepareStatement("DELETE FROM z_market_sell WHERE itemObjId = ?")
kupleno.setInt(1, itemObjId)
try :
kupleno.executeUpdate()
kupleno.close()
con.close()
except :
try : con.close()
except : pass
else:
htmltext = "<html><body>У вас не хватает "+pmoney+"</body></html>"
except :
try :
byeitem.close()
except : pass
try :
conn.close()
except :
pass
#
else:
htmltext = "<html><body>Предмет уже кто-то купил ):<br><br><a action=\"bypass -h Quest q8032_MarketBuy list\">Вернуться.</a> </body></html>"
else:
htmltext = "<html><body>Oops!<br><br><a action=\"bypass -h Quest q8032_MarketBuy list\">Вернуться.</a></body></html>"
rsc.close()
getcount.close()
cona.close()
return htmltext
def onTalk (self,npc,player):
st = player.getQuestState(qn)
npcId = npc.getNpcId()
if npcId == NPC:
htmltext = "privetstvie.htm"
return "htmltext
QUEST = Quest(8032,qn,"custom")
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
и происходит ошибка такая:
Traceback (innermost last):
(no code object) at line 0
SyntaxError: ('Lexical error at line 626, column 22. Encountered: "\\r" (13), after : ""', ('__init__.py', 626, 22, ' return "htmltext'))


