Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Форум для новичков[JAVA]/[error]Точилка
Search

[error]Точилка

6 replies105 viewsCurrently viewing: 1
Nice42ru
Nice42ru

User

Бывалый

Posts: 327

На форуме с: 02/28/2009

Репутация: +84

Рейтинг: 0

· 04/12/2009, 08:50 AM

Сборка: Gracia Part 2, l2emu 13..
Краткое изложение СУТИ проблемы:
Поставил точилку(она была от интерлюда) всё залил когда запускаю пишит вот такую ошибку

WARNING Failed executing script: E:\l2emuproject-game\dist\data\scripts\cust
om\1911_Enchanter\__init__.py. See __init__.py.error.log for details.

далее посмотрел что там написано

Error on: E:\l2emuproject-game\dist\data\scripts\custom\1911_Enchanter\__init__.py.error.log
Line: -1 - Column: -1

Traceback (innermost last):
File "__init__.py", line 2, in ?
ImportError: no module named sf


Вопрос: в чем причина и как исправить? Или есть ли у когонить рабочая точился Поделитесь пожалуйсто!!!
Мои соображения по этому поводу: Толи код самого квеста нада править толи что =\

Если нада вот сам код:

Код
import sys
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.gameserver.model import L2ItemInstance

qn = "1911_Enchanter"

# Quest Items
ADENA_ID = 57
COUNT = 1
ENCH = 500
# NPC
NPC_ENCH = 12618

class Quest (JQuest) :

def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

def onEvent (self,event,st) :
   htmltext = event
   if event == "1" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(1):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(1)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "2" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(2):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(2)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "3" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(3):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(3)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "4" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(4):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(4)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "5" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(5):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(5)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "6" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(6):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(6)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "7" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(7):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(7)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "8" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(8):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(8)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "9" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(9):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(9)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "10" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(10):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(10)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "11" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(11):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(11)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "12" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(12):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(12)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "13" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(13):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(13)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "14" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(14):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(14)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "15" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(15):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(15)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   elif event == "16" :
      if st.getQuestItemsCount(ADENA_ID) >= COUNT and st.getItemEquipped(16):
         st.takeItems(ADENA_ID,COUNT)
         itm = st.getItemEquipped(16)
         if itm == 8190:
           htmltext = "<html><head><body>Etot predmet nelzya zato4it</body></html>"
           return htmltext
           st.exitQuest(1)
         else:
           st.takeItems(itm,1)
           st.giveItems(itm,1,ENCH)
           htmltext = "Ok!"
           return htmltext
           st.setState(STARTED)
      else : st.exitQuest(1)
   return htmltext

    
def onTalk (self,npc,player) :
   st = player.getQuestState(qn)
   npcId = npc.getNpcId()
   htmltext = "<html><head><body>MHE HE4Ero Te6e CKa3aTb</body></html>"
   if not st : return htmltext
   if  npcId == NPC_ENCH:
      htmltext = "31764-01.htm"
   return htmltext

QUEST       = Quest(1911, qn, "custom")
CREATED     = State('Start',    QUEST)
STARTED        = State('Started',  QUEST)
COMPLETED   = State('Completed',QUEST)

QUEST.setInitialState(CREATED)  
QUEST.addStartNpc(NPC_ENCH)                        
QUEST.addTalkId(NPC_ENCH)

print "importing custom: 1911_Enchanter done"

0
Gradesk
Gradesk

User

Ветеран

Posts: 639

На форуме с: 04/09/2008

Репутация: +619

Рейтинг: 0

· 04/12/2009, 09:01 AM

Код квеста править надо, а точнее импорты. Вам веть чётко и ясно написали где косяк!!!!

Код
File "__init__.py", line 2, in ?
ImportError: no module named sf

Просто импорты неправильные. Смотрите из исходников или из других квестов где какие импорты.

0
Nice42ru
Nice42ru

User

Бывалый

Posts: 327

На форуме с: 02/28/2009

Репутация: +84

Рейтинг: 0

· 04/12/2009, 09:04 AM

А ктонить может подсказать как исправить Битый час над этим бьюсь this.gif

0
Gradesk
Gradesk

User

Ветеран

Posts: 639

На форуме с: 04/09/2008

Репутация: +619

Рейтинг: 0

· 04/12/2009, 09:10 AM

Да и к тому же, это точилка не очень приятная, ибо она забирает предмет и выдаёт точёный, а неприятность в том что заберёт аугументированную пуху и выдаст "чистую" с заточкой. (не путать с СА).

Ну что тут бится? Открой любой квест из сборки, и погляди как там импорты идут в самом начале файла со слов:

Код
import sys
from....

Вот тут и смотри какой путь:
Выглядит к примеру так:
Код
net.sf.l2j.gameserver.model.quest import State

Это означает что файл "State" лежит в папке "net\sf\l2j\gameserver\model\quest"
Но так как у ему путь другой вот сервер и ругается на то что нету папки "sf"

Дальше можно и своими извилинами пошевелить и догнать что к чему. Особенно приятно делать это в программе "Notepad++" ибо она подсветит всё красиво и понятно сразу станет.

0
Nice42ru
Nice42ru

User

Бывалый

Posts: 327

На форуме с: 02/28/2009

Репутация: +84

Рейтинг: 0

· 04/12/2009, 09:10 AM

А как сделать точилку чтобы она ДОТАЧИВАЛА например жмёш Точить и он точин на 1 больше за опр кол-во итемов?



ps
Вот импорты из бафера
import sys
from net.l2emuproject.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from net.l2emuproject.gameserver.datatables import SkillTable
from net.l2emuproject import L2DatabaseFactory
from net.l2emuproject.gameserver.model.quest import State
from net.l2emuproject.gameserver.model.quest import QuestState
from net.l2emuproject.gameserver.model.quest.jython import QuestJython as JQuest


и чо куда подставить чтобы всё пахала

0
Nice42ru
Nice42ru

User

Бывалый

Posts: 327

На форуме с: 02/28/2009

Репутация: +84

Рейтинг: 0

· 04/12/2009, 04:07 PM

ап

0
Войдите или зарегистрируйтесь чтобы ответить