[share]Точилка Final Version
Собсно отличия от первой версии:
+точит тату
+не точит игроков с курсед випоном
+можно указать минимальный уровень игрока,каторому можно юзать точилку
+динамическое измининие ХТМЛ,при выводи ошибки "Мало аден","Мал уровень"
(т.е кол-во аден или необходимый уровень скрипт вставляет сам)
+уменьшил код в 2 раза,теперь он более логически верен
PS. спасибо тов пчайка за "пиннок"))
PSS. не понял почему тема не создалася первый раз
ссылки и пасс тут:
посколько вчера по странному стечению обстаятельств я вечером не нажрался,то сутра смог её перепивать.
Итак Enchanter Ideal :
+можно указать сколько раз игрок сможет воспользоваться точилкой.
+динамическая ХТМЛка (вы можете точится ХХ раз)
+убрал ench.html,диалог засунул прямо в скрипт.
+зделал привязку к net.sf.l2j.gameserver.model.Inventory,теперь инфа о том в каком слоте находится вещь берётся из ядра (Inventory.PAPERDOLL_UNDER,Inventory.PAPERDOLL_HEAD и т.д)
теперь чтобы запускать на других сборках надо только поправить импорт.
единственный баг-если точиш пуху с аргументацией-аргумент исчезнит (потом исправлю ^__^)
Интересно как сделаешь сохранение аугментации... Ведь в ее принципе тпе: забрал и выдал новый ИД. Для сохранения аугмента надо исполнять определенные mysql запросы..
— You're an amateur
pchayka: Интересно как сделаешь сохранение аугментации... Ведь в ее принципе тпе: забрал и выдал новый ИД. Для сохранения аугмента надо исполнять определенные mysql запросы..
придумаем чонить
а ваще да,хотел сохранить ид,и вприсать его заного
ЗЫ.ЛС смотри)
изминения:
+щас предметы именно точатся,тоесть не так как раньше (удаляем старый,выдаём новы заточенный на ХХ,а именно увиличивает заточку придмета на ХХ)
карочи аргументация не будет слетать.
+исправил незначительную багу. когда maxTalk = 0 ,то в диалоги выводилося "вы можете точится -ХХ раз"
щас в диалог строчка вы можете точится ХХ раз,будет вставляться только если maxTalk > 0
mytagid = Math.floor( Math.random() * 100 );
document.write("
import sys
from com.l2jfree.gameserver.model.itemcontainer import Inventory
from com.l2jfree.gameserver.cache import HtmCache
from com.l2jfree.gameserver.model import L2ItemInstance
from com.l2jfree.gameserver.model.quest import State
from com.l2jfree.gameserver.model.quest import QuestState
from com.l2jfree.gameserver.network.serverpackets import InventoryUpdate
from com.l2jfree.gameserver.network.serverpackets import UserInfo
from com.l2jfree.gameserver.network.serverpackets import CharInfo
from com.l2jfree.gameserver.network.serverpackets import SystemMessage
from com.l2jfree.gameserver.model.quest.jython import QuestJython as JQuest
qn = "7778_Ench"
ADENA = 57
PRISE = 10000
maxTalk = 0
ench = 1
maxEnch =65535
lvl=0
NPC = 70041
def Ench (st,item,player):
htmltext = HtmCache.getInstance().getHtm("data/scripts/custom/" + qn + "/enchanter.htm")
itemInstance = player.getInventory().getPaperdollItem(item)
curEnchant = itemInstance.getEnchantLevel()
encc=curEnchant+ench
if maxTalk==0:
htma=""
htmltext = htmltext.replace("htma",htma)
elif maxTalk>0:
id=st.getInt("cound")+1
st.set("cound",str(id))
htma="<br>?? ?????? ????????:<font color=\"LEVEL\">"+str(maxTalk-id) +"</font>???"
htmltext = htmltext.replace("htma",htma)
if encc>=maxEnch:
htmltext="<html>?? ?????? ?? ?????? ????????</html>"
else:
st.takeItems(ADENA,PRISE)
player.getInventory().unEquipItemInSlotAndRecord(item)
itemInstance.setEnchantLevel(encc)
player.getInventory().equipItemAndRecord(itemInstance)
InventoryUpdate().addModifiedItem(itemInstance)
player.sendPacket(InventoryUpdate())
player.broadcastPacket(CharInfo(player))
player.sendPacket(UserInfo(player))
player.sendMessage("Enchanted"+itemInstance.getItem().getName()+" from "+str(curEnchant)+" to "+str(encc))
if st.getInt("cound")==maxTalk>0:
htmltext = "<html>?? ?????? ?? ?????? ????????</html>"
return htmltext
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 == "0" :
htmltext=Ench(st,Inventory.PAPERDOLL_UNDER,player)
if event == "1" :
htmltext=Ench(st,Inventory.PAPERDOLL_LEAR,player)
if event == "2" :
htmltext=Ench(st,Inventory.PAPERDOLL_REAR,player)
if event == "4" :
htmltext=Ench(st,Inventory.PAPERDOLL_NECK,player)
if event == "5" :
htmltext=Ench(st,Inventory.PAPERDOLL_RFINGER,player)
if event == "6" :
htmltext=Ench(st,Inventory.PAPERDOLL_LFINGER,player)
if event == "8" :
htmltext=Ench(st,Inventory.PAPERDOLL_HEAD,player)
if event == "9" :
htmltext=Ench(st,Inventory.PAPERDOLL_RHAND,player)
if event == "10" :
htmltext=Ench(st,Inventory.PAPERDOLL_LHAND,player)
if event == "11" :
htmltext=Ench(st,Inventory.PAPERDOLL_GLOVES,player)
if event == "12" :
htmltext=Ench(st,Inventory.PAPERDOLL_CHEST,player)
if event == "13" :
htmltext=Ench(st,Inventory.PAPERDOLL_LEGS,player)
if event == "14" :
htmltext=Ench(st,Inventory.PAPERDOLL_FEET,player)
return htmltext
def onTalk (self,npc,player) :
st = player.getQuestState(qn)
id = st.getInt("cound")
if not st : return htmltext
if npc.getNpcId() == NPC:
if player.getLevel()<lvl:
htmltext="<html>?????????? ??????? <font color=\"LEVEL\">"+str(lvl)+" ?????? </font></html>"
st.exitQuest(1)
elif maxTalk==0:
htmltext = HtmCache.getInstance().getHtm("data/scripts/custom/"+qn+"/enchanter.htm")
htmltext = htmltext.replace("htma","")
elif player.isCursedWeaponEquipped():
htmltext = "<html>? ?? ???? ??????? ? ????????? ???????!</html>"
st.exitQuest(1)
elif st.getQuestItemsCount(ADENA)<PRISE:
htmltext="<html> ? ??? ????????? ?????<br> ?????????? <font color=\"LEVEL\">"+str(PRISE)+"????</font></html>"
st.exitQuest(1)
elif id == maxTalk:
htmltext = "<html>?? ?????? ?? ????? ??????c?</html>"
st.exitQuest(1)
elif maxTalk>=1:
htmltext = HtmCache.getInstance().getHtm("data/scripts/custom/"+qn+"/enchanter.htm")
htma="<br>?? ?????? ????????:<font color=\"LEVEL\">"+str(maxTalk-id)+"</font>???"
htmltext = htmltext.replace("htma",htma)
return htmltext
QUEST=Quest(7778, qn, "custom")
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
print "-------------------------------> Enchanter loaded <-----------------------------"
Вместо вопросов пишем НЕ РУССКИЕ буквы, а тотже текст но на английском языке, или просто тупо латиницей :)
скрыть
document.close();
l2jfree
вот,под сборку ла2базы.
то что,у меня он загрузился после минутной пляски с бубном-свидетельствует об уровни онверов ла2базы.
так что не обежайтесь на засилии копирайтов.




