HolySaint 11 Опубликовано 24 февраля, 2015 Всем привет. Вопрос к людям разбирающимся в питоне. Имеется скрипт заточки пух\шмота. Дек вот проблема в том что скрипт точит все включая хиро пухи, а этого мне не надо. Как исправить? Кто поможет отблагодарю бутылкой пива и спасибкой) import sys from ru.catssoftware import Config from ru.catssoftware.gameserver.model.quest import State from ru.catssoftware.gameserver.model.quest import QuestState from ru.catssoftware.gameserver.model.quest.jython import QuestJython as JQuest print "***Enchated - OK***" ENCHANT_NPC=[53] QuestId = 1234 QuestName = "Enchant" QuestDesc = "custom" qn = "1234_Enchant" ENCHANT_CHECK_WEAPON = 18 ENCHANT_CHECK_ARMOR = 16 ENCHANT_CHECK_JEWEL = 16 AMOUNT_OF_ENCHANT = 1 PAYMENT_ITEM_ID = 4037 PAYMENT_AMOUNT = 5 weapons = ['Sword','Blunt','Dagger','Bow','Pole','Etc','Fist','Dual Sword','Dual Fist','Big Sword','Big Blunt'] armors = ['Light','Heavy','Magic','Shield','Sigil'] jewels = ['None'] acceptableItemTypes = weapons+armors+jewels class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent (self,event,st) : if event == "choose_item" : htmltext = "" for Item in st.getPlayer().getInventory().getItems(): # given an item instance, get the item template to check what type it is itemType = Item.getItem().getItemType().toString() itemGrade = Item.getItem().getCrystalType() if itemType in acceptableItemTypes and itemGrade > 0 : htmltext += "<a action=\"bypass -h Quest 1234_Enchant enchantItem_" + str(Item.getObjectId()) +"\">" + Item.getItem().getName() + "+" + str(Item.getEnchantLevel()) + "</a><br>" if htmltext == "": htmltext = "А точить то, нечего!" htmltext = "<html><title>Enchant Менеджер</title><body>This thing will be enchant for +18<br><center>Выберите вещь для заточки:</center><br><br><center>" + htmltext + "</center></body></html>" elif event.startswith("enchantItem_"): # get the object id out of the event string objId = int(event.replace("enchantItem_", "")) # to avoid exploitation, check if the stored objectId still corresponds to an existing item Item = st.getPlayer().getInventory().getItemByObjectId(objId ) if Item : itemType = Item.getItem().getItemType().toString() itemEnchant = Item.getEnchantLevel() if st.getQuestItemsCount(PAYMENT_ITEM_ID) >= PAYMENT_AMOUNT : if (itemType in weapons and itemEnchant >= ENCHANT_CHECK_WEAPON) or (itemType in armors and itemEnchant >= ENCHANT_CHECK_ARMOR) or (itemType in jewels and itemEnchant >= ENCHANT_CHECK_JEWEL) : htmltext = "notPlusZero.htm" else : Item.setEnchantLevel(itemEnchant+AMOUNT_OF_ENCHANT) st.takeItems(PAYMENT_ITEM_ID, PAYMENT_AMOUNT) htmltext = "Congratulations.htm" else : htmltext = "notEnoughItems.htm" else : htmltext = "Error.htm" return htmltext def onTalk (self,npc,player): htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>" st = player.getQuestState(qn) if not st : return htmltext if npc.getNpcId() == 53 : htmltext = "Start.htm" return htmltext QUEST = Quest(QuestId,qn,QuestDesc) QUEST.addStartNpc(53) QUEST.addTalkId(53) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DeveloperDP 51 Опубликовано 24 февраля, 2015 Это скрипт нпц точилки что ли? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 24 февраля, 2015 Это скрипт нпц точилки что ли? Да. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DeveloperDP 51 Опубликовано 24 февраля, 2015 (изменено) Да. Надо запрет на гиро пушки поставить. Их хотите чтобы и в ручную нельзя было точить и через нпц? Изменено 24 февраля, 2015 пользователем DeveloperDP Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 24 февраля, 2015 (изменено) Надо запрет на гиро пушки поставить. Их хотите чтобы и в ручную нельзя было точить и через нпц? Желательно запрет. Что бы они вообще в списке не появлялись. В ручную то они и так и так не точатся, а вот скриптом точатся и остаются после релога чара\сервера. Изменено 24 февраля, 2015 пользователем HolySaint Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 24 февраля, 2015 Что бы их не было в списке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DeveloperDP 51 Опубликовано 24 февраля, 2015 Что бы их не было в списке Надо сделать: Указать: если пушка геройская, то возврат Или работа скрипта при условии, что пушка не геройская Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 24 февраля, 2015 Надо сделать: Указать: если пушка геройская, то возврат Или работа скрипта при условии, что пушка не геройская если пушка геройская, то возврат на лист выбора итемов а чару сообщение что хиро пухи точить нельзя Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DeveloperDP 51 Опубликовано 24 февраля, 2015 если пушка геройская, то возврат на лист выбора итемов а чару сообщение что хиро пухи точить нельзя Что типа такого. Если будет время мб вечерком закину готовый вам скрипт. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 24 февраля, 2015 Что типа такого. Если будет время мб вечерком закину готовый вам скрипт. Хорошо. Жду. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 24 февраля, 2015 Хорошо. Жду. можно дописать запрещенные ид itemID = Item.getItemId() and itemID > ITEM_ID_CHOOSE and itemID < ITEM_ID_CHOOSEB эти строки с такого же скрипта только улучшенного Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DeveloperDP 51 Опубликовано 24 февраля, 2015 можно дописать запрещенные ид itemID = Item.getItemId() and itemID > ITEM_ID_CHOOSE and itemID < ITEM_ID_CHOOSEB эти строки с такого же скрипта только улучшенного Можно же проще сделать... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 24 февраля, 2015 можно дописать запрещенные ид itemID = Item.getItemId() and itemID > ITEM_ID_CHOOSE and itemID < ITEM_ID_CHOOSEB эти строки с такого же скрипта только улучшенного Я бы шарил я бы сделал) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 24 февраля, 2015 Можно же проще сделать... Например? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DeveloperDP 51 Опубликовано 24 февраля, 2015 (изменено) Например? Если будет время мб вечерком закину готовый вам скрипт. Изменено 24 февраля, 2015 пользователем DeveloperDP Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 24 февраля, 2015 Понял) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 24 февраля, 2015 Поможет кто? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
1ntegrate 46 Опубликовано 24 февраля, 2015 (изменено) можно дописать запрещенные ид itemID = Item.getItemId() and itemID > ITEM_ID_CHOOSE and itemID < ITEM_ID_CHOOSEB эти строки с такого же скрипта только улучшенного вроде тут это нужно сделать if itemType in acceptableItemTypes and itemGrade > 0 & Item.getObjectId()<6611 | Item.getObjectId()>6621 в питоне не силен, исправьте кто знает Изменено 24 февраля, 2015 пользователем 1ntegrate Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
TIESTO 135 Опубликовано 24 февраля, 2015 (изменено) Поможет кто? такой вопрос если вы укажите предел заточной weapon: пример у npc точить можно с +3 до +15 а у меня в рюкзаке +10 а npc заточит мне до +15 получается будет +25! У меня была такая ситуация то же скачал точилку пушек поставил макс точку + 15 а когда подхожу точить к npc свою пуху уже за точеную на +10 то не точило мне на +15 а на +25. хз Баг получался такой со скриптом. По теме лучше такой ерундой не страдать! Как по мне. Изменено 24 февраля, 2015 пользователем TIESTO Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 25 февраля, 2015 такой вопрос если вы укажите предел заточной weapon: пример у npc точить можно с +3 до +15 а у меня в рюкзаке +10 а npc заточит мне до +15 получается будет +25! У меня была такая ситуация то же скачал точилку пушек поставил макс точку + 15 а когда подхожу точить к npc свою пуху уже за точеную на +10 то не точило мне на +15 а на +25. хз Баг получался такой со скриптом. По теме лучше такой ерундой не страдать! Как по мне. Не тут такого нет. Если стоит точить максимум на 18, то и точит на 18. вроде тут это нужно сделать if itemType in acceptableItemTypes and itemGrade > 0 & Item.getObjectId()<6611 | Item.getObjectId()>6621 в питоне не силен, исправьте кто знает Точит все равно. Не ужели не кто не поможет? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 27 февраля, 2015 Не ужели это такая не посильная задача? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
TIESTO 135 Опубликовано 27 февраля, 2015 Скинь свой скрипт пак сюда! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 27 февраля, 2015 Скинь свой скрипт пак сюда! http://rghost.ru/8y78t4bZg Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
TIESTO 135 Опубликовано 27 февраля, 2015 http://rghost.ru/8y78t4bZg Ждите может получится вам помочь. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 27 февраля, 2015 Ждите может получится вам помочь. Хорошо. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты