Skip to content
La2Base
Home
DownloadsWikiForumFAQ
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/Дополнения к Lineage 2 Java серверам/Скрипт енчатера.
Search

Скрипт енчатера.

2 replies236 viewsCurrently viewing: 1
Evolution
Evolution

User

Бывалый

Posts: 291

На форуме с: 03/16/2009

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

Рейтинг: 0

· 10/18/2009, 09:55 AM

Сборка La2base privat.
Суть проблеммы:
Ниже показан скрипт енчатера , но он точит токо на то число каторое установишь ,
а мне над чтоб народ мог точить на 10 на 20 и на 30 и чтоб цены можно было менять ,
для каждой точки своя цена , к примеру 10 = 20 кол ну и т,д.
Как это реализовать ???.
Даже если человек знающий и не может помочь за так то не стесьняйтесь пишите в Icq 192064 цену обсудим =)).

Раскрывающийся текст
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"
NPC=[70020]
QuestId = 1911
QuestName = "Enchanter"
QuestDesc = "custom"
InitialHtml = "70020-01.htm"

#Строки настройки скрипта:
# Итем, который будет вычитаться как оплата за заточку (Seed of Horror = 1255; Adena - 57):
ADENA_ID = 4037
#Количество итемов оплаты:
COUNT = 120
#Величина, на которую будет производиться заточка:
ENCH = 30
# ID непися, для которого будет работать скрипт. лучше не изменять.
NPC_ENCH = 70020

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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH)
htmltext = "Успешно заточено!"
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>Мне нечего тебе сказать</body></html>"
if not st : return htmltext
if npcId == NPC_ENCH:
htmltext = "70020-01.htm"
return htmltext

QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)

for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)

0
filmotechnic
filmotechnic

User

Бывалый

Posts: 140

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

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

Рейтинг: 0

· 10/25/2009, 11:34 AM

Добавь вначале :

Код
ENCH2 = 20
ENCH3 = 10
COUNT2 = 60
COUNT3 = 30


Далее в коде добавляеш:
Код
if event == "16" :
if st.getQuestItemsCount(ADENA_ID) >= COUNT2 and st.getItemEquipped(1):
st.takeItems(ADENA_ID,COUNT2)
itm = st.getItemEquipped(1)
#Список итемов-исключений (в остальных разделах также):
if itm == 8190:
htmltext = "<html><head><body>Этот предмет нельзя заточить!</body></html>"
return htmltext
st.exitQuest(1)
else:
st.takeItems(itm,1)
st.giveItems(itm,1,ENCH2)
htmltext = "Успешно заточено!"
return htmltext
st.setState(STARTED)
else : st.exitQuest(1)

где 16 - событие. Следующее будет 17. Например если у тебя 3 варианта заточки (30,20,10) - то всего их будет 45.


Далее в штмлке добавляй ссылку для события ( "16" :) итак далее для обработки всех затачиваемых слотов инвентаря ( слоты инвентаря: st.getItemEquipped(1) и при выдаче надо тут: st.takeItems(itm,1) и тут :st.giveItems(itm,1,ENCH)


главное будь внимателен, а так ничо сложного нету...

Если будут проблемы пиши в аську, договоримся!

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