Перенос ЛС - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 28.01.2014, 20:50   #1
Пользователь

Автор темы (Топик Стартер) Перенос ЛС

Не работает перенос ЛС или Заточки. Сборка pwsoft. Квесты:

8014_LifeStone
8015_Enchex

Все открывается, но при нажатии кнопки у НПЦ выбрать оружие - просто пропадает чат. (это если есть оружие с аугментом, если же его нет - чат не пропадает, но ему некуда вставлять его.)

Вот код скрипта:

Код:
import sys
from java.util import Iterator
from net.sf.l2j.util import Rnd
from net.sf.l2j.gameserver.network.serverpackets import SystemMessage
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.templates import L2EtcItemType
from net.sf.l2j.gameserver.templates import L2Item
from java.lang import System
from net.sf.l2j.gameserver.idfactory import IdFactory
from net.sf.l2j.gameserver.model import L2ItemInstance
from net.sf.l2j.gameserver.datatables import AugmentationData
from net.sf.l2j.gameserver.model import L2Augmentation
from net.sf.l2j.gameserver.network.serverpackets import ItemList
from net.sf.l2j.gameserver.model import L2Skill
from net.sf.l2j.gameserver.datatables import SkillTable

qn = "q8014_LifeStone"

NPC = 65011
ITEM = 10853
COST = 10
FORBIDDEN = [6611,6612,6613,6614,6615,6616,6617,6618,6619,6620,6621]

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":
     if st.getQuestItemsCount(ITEM) < COST:
       htmltext = "<html><body>Перенос Лс стоит <font color=74bff5>"+str(COST)+" BaD Coin</font></body></html>"
       return htmltext
     htmltext = "<html><body><center><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br><img src=\"L2UI.SquareBlank\" width=260 height=2><br1>"       
     htmltext += "<table width=260><tr><td align=center><font color=LEVEL>Перенос ЛС</font></td></tr></table>"
     htmltext += "<button value=\"Выбрать пушку\" action=\"bypass -h Quest q8014_LifeStone step1\" width=80 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"><br1>"
     htmltext += "<center><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32></center></body></html>"
   elif event == "step1":
     htmltext = "<html><body>Перенос ЛС:<br>Откуда переносим?<br><br><table width=300>"
     SPWEAPONS = ["Sword","Blunt","Dagger","Bow","Etc","Pole","Fist","Dual Sword","Dual Fist","Big Sword","Big Blunt"]
     for Item in st.getPlayer().getInventory().getItems():
       itemTemplate = Item.getItem()
       idtest = Item.getItemId()
       itype = str(Item.getItemType())
       if idtest not in FORBIDDEN and Item.isAugmented() and not Item.isEquipped() and itype in SPWEAPONS:
         cnt = Item.getCount()
         count = str(cnt)
         grade = itemTemplate.getCrystalType()   
         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())+""
             htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8014_LifeStone step1next_" + str(Item.getObjectId()) +"\">" + itemTemplate.getName() + ""+str(pgrade)+" " + enchant + "</a></td></tr>"
           except :
             try : insertion.close()
             except : pass
         try :
           con.close()
         except :
           pass
     htmltext += "</table><br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></body></html>"
   elif event.startswith("step1next_"):
     itemObjId = int(event.replace("step1next_", ""))
     obj = str(itemObjId)
     Item = st.getPlayer().getInventory().getItemByObjectId(itemObjId)
     itemTemplate = Item.getItem()
     if Item and not Item.isEquipped():
       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, skill, attributes FROM `z_market_icons` icon, `augmentations` aug WHERE icon.itemId=? AND aug.item_id=?")
       listitems.setInt(1, idtest)
       listitems.setInt(2, itemObjId)
       rs=listitems.executeQuery()
       while (rs.next()) :
         icon=rs.getString("itemIcon")
         skill=rs.getInt("skill")
         attributes=rs.getInt("attributes")
         try :
           st.set("oneitem",obj)
           st.set("skill",str(skill))
           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 =  "<html><body>Перенос ЛС:<br>Из этой пушки переносим?<br>"
           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>"
           if skill != 0:
             skill = SkillTable.getInstance().getInfo(skill, 1)
             name = skill.getName()
             htmltext += "<br><font color=bef574>["+str(name)+"]</font><br>"
             htmltext += "<button value=\"Продолжить\" action=\"bypass -h Quest q8014_LifeStone step2\" width=60 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"><br>"
           else:
             htmltext += "V etoi puwke net skilla"
           htmltext += "<br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></body></html>"
         except :
           try : listitems.close()
           except : pass
       try :
         con.close()
       except :
         pass
     else :
       htmltext = "<html><body>Перенос ЛС:<br>Ошибка!<br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></body></html>"
   elif event == "step2":
     htmltext = "<html><body>Перенос ЛС:<br>Куда переносим?<br><br><table width=300>"
     SPWEAPONS = ["Sword","Blunt","Dagger","Bow","Etc","Pole","Fist","Dual Sword","Dual Fist","Big Sword","Big Blunt"]
     weapon1 = st.getInt("oneitem")
     for Item in st.getPlayer().getInventory().getItems():
       itemTemplate = Item.getItem()
       idtest = Item.getItemId()
       itype = str(Item.getItemType())
       if idtest not in FORBIDDEN and not Item.isEquipped() and itype in SPWEAPONS and Item.getObjectId() != weapon1 and not Item.isAugmented():
         grade = itemTemplate.getCrystalType()   
         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())+""
             htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8014_LifeStone step2next_" + str(Item.getObjectId()) +"\">" + itemTemplate.getName() + ""+str(pgrade)+" " + enchant + "</a></td></tr>"
           except :
             try : insertion.close()
             except : pass
         try :
           con.close()
         except :
           pass
     htmltext += "</table><br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></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 not Item.isAugmented() and not Item.isEquipped():
       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 :
           st.set("twoitem",obj)
           st.set("lcount",count)
           st.set("grade",igrade)
           st.set("type",itype)
           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 =  "<html><body>Перенос ЛС:<br>В эту пушку переносим?<br>"
           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>"
           htmltext += "<button value=\"Продолжить\" action=\"bypass -h Quest q8014_LifeStone step3\" width=60 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"><br>"
           htmltext += "<br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></body></html>"
         except :
           try : listitems.close()
           except : pass
       try :
         con.close()
       except :
         pass
     else :
       htmltext = "<html><body>Перенос Лс:<br>Ошибка!<br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></body></html>"
   elif event.startswith("step3"):
     weapon1 = st.getInt("oneitem")
     weapon2 = st.getInt("twoitem")
     skillp = st.getInt("skill")
     htmltext =  "<html><body>Перенос ЛС:<br>Подтверждаете?<br>"
     skill = SkillTable.getInstance().getInfo(skillp, 1)
     name = skill.getName()
     htmltext += "<font color=bef574>["+str(name)+"]</font><br>"
     htmltext += "Из:"
     Item = st.getPlayer().getInventory().getItemByObjectId(weapon1)
     itemTemplate = Item.getItem()
     if Item and Item.isAugmented() and not Item.isEquipped():
       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 :
           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 : listitems.close()
           except : pass
       try :
         con.close()
       except :
         pass
     htmltext += "В:<br>"
     Item = st.getPlayer().getInventory().getItemByObjectId(weapon2)
     itemTemplate = Item.getItem()
     if Item and not Item.isAugmented() and not Item.isEquipped():
       cnt = Item.getCount()
       count = str(cnt)
       grade = itemTemplate.getCrystalType()
       igrade = str(itemTemplate.getCrystalType())
       itype = str(Item.getItemType())
       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 += "<button value=\"Продолжить\" action=\"bypass -h Quest q8014_LifeStone step4\" width=60 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"><br>"
     else :
       htmltext = "<html><body>Перенос Лс:<br>Ошибка!<br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></body></html>"
   elif event.startswith("step4"):
     weapon1 = st.getInt("oneitem")
     weapon2 = st.getInt("twoitem")
     htmltext =  "<html><body>Перенос Лс:<br>Подождите...<br><br>"
     if st.getQuestItemsCount(ITEM) < COST:
       htmltext = "<html><body>Перенос Лс стоит <font color=74bff5>"+str(COST)+" BaD Coin</font></body></html>"
       return htmltext
     item2 = st.getPlayer().getInventory().getItemByObjectId(weapon2)
     item1 = st.getPlayer().getInventory().getItemByObjectId(weapon1)
     con=L2DatabaseFactory.getInstance().getConnection()
     listitems=con.prepareStatement("SELECT * FROM `augmentations` WHERE item_id=?")
     listitems.setInt(1, weapon1)
     rs=listitems.executeQuery()
     while (rs.next()) :
       attributes=rs.getInt("attributes")
       skill=rs.getInt("skill")
       try :
         st.takeItems(ITEM,COST)
         item2.setAugmentation(L2Augmentation(item2, attributes, skill, 10, True))
         player.sendPacket(ItemList(player, False))
         item1.removeAugmentation()
         skilla = SkillTable.getInstance().getInfo(skill, 1)
         name = skilla.getName()
         htmltext += "<font color=bef574>["+str(name)+"]</font> переставлен.<br>"
       except :
         try : listitems.close()
         except : pass
     try :
       con.close()
     except :
       pass
   else:
     htmltext = "<html><body>Перенос ЛС:<br>Oops!</body></html>"
   return htmltext

 def onTalk (self,npc,player):
   st = player.getQuestState(qn)
   npcId = npc.getNpcId()
   if npcId == NPC:
     htmltext = "privetstvie.htm"
   return htmltext

QUEST       = Quest(8014,qn,"custom")
CREATED     = State('Start', QUEST)

QUEST.setInitialState(CREATED)

QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
Уже 3й день голову ломаю. Нашел только одну тему по поводу этого, на макси. Но и то, ответа там не было. Хелп.
petlya вне форума Ответить с цитированием
Непрочитано 28.01.2014, 20:50   #2
Пользователь

По умолчанию Re: Перенос ЛС

Не нужны скрипты, это всё вшито в ядро, спросите на форуме пвсофта.
Main вне форума Ответить с цитированием
Непрочитано 28.01.2014, 20:52   #3
Пользователь

Автор темы (Топик Стартер) Re: Перенос ЛС

Цитата:
Сообщение от Main Посмотреть сообщение
Не нужны скрипты, это всё вшито в ядро, спросите на форуме пвсофта.
Ага, в ядро вшито, так все говорят. Вот только этот модуль фокс продает, и никгода, никому не дает добавочную часть.

А если не можешь помочь - зачем попросту флудить, не сочти за грубость.

Добавлено через 5 минут
На словах все гении..

Последний раз редактировалось petlya; 28.01.2014 в 20:57. Причина: Добавлено сообщение
petlya вне форума Ответить с цитированием
Непрочитано 28.01.2014, 21:15   #4
Пользователь

По умолчанию Re: Перенос ЛС

services.cfg
Код:
#####
### Перенос заточки и аугментации

# ID итема, за перенос аугментации
AugmentCoin = 9998
# ID итема, за перенос заточки	
EnchantCoin = 9998
# плата за перенос аугментации
AugmentPrice = 4
# плата за перенос заточки за каждый '+'
EnchantPrice = 2
И есть байпас для htm обычной и Community.
Никаких модулей он не продаёт. Подозреваю что вы не клиент, накопите денег на школьных завтраках и оплатите клиентку, там вам помогут.
Main вне форума Ответить с цитированием
Непрочитано 28.01.2014, 21:18   #5
Пользователь

Автор темы (Топик Стартер) Re: Перенос ЛС

Цитата:
Сообщение от Main Посмотреть сообщение
services.cfg
Код:
#####
### Перенос заточки и аугментации

# ID итема, за перенос аугментации
AugmentCoin = 9998
# ID итема, за перенос заточки	
EnchantCoin = 9998
# плата за перенос аугментации
AugmentPrice = 4
# плата за перенос заточки за каждый '+'
EnchantPrice = 2
И есть байпас для htm обычной и Community.
Никаких модулей он не продаёт. Подозреваю что вы не клиент, накопите денег на школьных завтраках и оплатите клиентку, там вам помогут.
Я отписал фоксу, 2й день молчит. Какой байпасс? О чем ты говоришь?

Это все у меня в конфиге настроено. Я даже декомпильнул исходники. Все байпассы которые АЛЬТ+Б доступны:

Line 57: /* 57: 49 */ if (command.equalsIgnoreCase("_pwhome"))
Line 253: /* 253:219 */ if (command.equalsIgnoreCase("_bbssell"))
Line 258: /* 258:222 */ if (command.equalsIgnoreCase("_bbspwhero"))
Line 303: /* 303:260 */ if (command.equalsIgnoreCase("_bbspwcustomskills"))
Line 335: /* 335:291 */ else if (command.equalsIgnoreCase("_bbspwenchantskills"))
Line 570: /* 570:510 */ else if (command.equalsIgnoreCase("_bbspwtittlecolor"))
Line 733: /* 733:671 */ else if (command.equalsIgnoreCase("_bbspwnamecolor"))

Вот они. Ты видишь здесь что-то по типу: "_bbspwlifestone" ?

Хорошо, НПЦ 80007 обычно Service. В нем ВООБЩЕ НИХРЕНА НЕТ.
Я думаю, ладно, может я месяц не обновлялся. Но друг клиентку брал в этом месяце, у него все то же самое.

Добавлено через 15 минут
Гы, нашел 80007 нпц с байпасом. Вот дятел.

Последний раз редактировалось petlya; 28.01.2014 в 21:33. Причина: Добавлено сообщение
petlya вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос эпиков Horus92 Lineage II 0 21.05.2011 20:22
Перенос пользователей(персонажей) с Mangos 3.0.9 на Mangos 3.1.3 romchikss World of WarCraft 1 21.07.2009 20:29
Перенос персонажей WLF Lineage II 1 29.05.2009 20:42
Перенос акков PuShKinG World of WarCraft 4 20.04.2009 19:52
Перенос БД, как правельно осуществить? KeMnS Работа со скриптами 20 20.07.2008 17:54


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 22:52. Часовой пояс GMT +3.

Вверх