Перейти к содержанию
Авторизация  
HolySaint

Заточка хиро оружия (Питон)

Рекомендуемые сообщения

Всем привет. Вопрос к людям разбирающимся в питоне. Имеется скрипт заточки пух\шмота. Дек вот проблема в том что скрипт точит все включая хиро пухи, а этого мне не надо. Как исправить? Кто поможет отблагодарю бутылкой пива и спасибкой)

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Надо запрет на гиро пушки поставить.

 

Их хотите чтобы и в ручную нельзя было точить и через нпц?

Желательно запрет. Что бы они вообще в списке не появлялись. В ручную то они и так и так не точатся, а вот скриптом точатся и остаются после релога чара\сервера.

Изменено пользователем HolySaint

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что бы их не было в списке 

FTny3EI.png

Надо сделать:

 

Указать: если пушка геройская, то возврат

 

Или работа скрипта при условии, что пушка не геройская

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Надо сделать:

 

Указать: если пушка геройская, то возврат

 

Или работа скрипта при условии, что пушка не геройская

если пушка геройская, то возврат на лист выбора итемов а чару сообщение что хиро пухи точить нельзя

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если пушка геройская, то возврат на лист выбора итемов а чару сообщение что хиро пухи точить нельзя

Что типа такого.

 

Если будет время мб вечерком закину готовый вам скрипт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что типа такого.

 

Если будет время мб вечерком закину готовый вам скрипт.

Хорошо. Жду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошо. Жду.

можно дописать запрещенные ид

itemID = Item.getItemId()

and itemID > ITEM_ID_CHOOSE and itemID < ITEM_ID_CHOOSEB

 

эти строки с такого же скрипта только улучшенного

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно дописать запрещенные ид

itemID = Item.getItemId()

and itemID > ITEM_ID_CHOOSE and itemID < ITEM_ID_CHOOSEB

 

эти строки с такого же скрипта только улучшенного

Можно же проще сделать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно дописать запрещенные ид

itemID = Item.getItemId()

and itemID > ITEM_ID_CHOOSE and itemID < ITEM_ID_CHOOSEB

 

эти строки с такого же скрипта только улучшенного

Я бы шарил я бы сделал)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Например?

 

 

 

Если будет время мб вечерком закину готовый вам скрипт.

Изменено пользователем DeveloperDP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно дописать запрещенные ид

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

в питоне не силен, исправьте кто знает

Изменено пользователем 1ntegrate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поможет кто?

такой вопрос если вы укажите предел заточной weapon: пример у npc точить можно с +3 до +15 а у меня в рюкзаке  +10 а npc заточит мне до +15 получается будет +25!

 

У меня была такая ситуация  то же скачал точилку пушек поставил макс точку + 15 а когда подхожу точить к npc свою пуху  уже за точеную на +10 то не точило мне на +15 а на +25. хз Баг получался такой со скриптом.

 

По теме лучше такой ерундой не страдать!

Как по мне.

Изменено пользователем TIESTO

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

такой вопрос если вы укажите предел заточной 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

в питоне не силен, исправьте кто знает

Точит все равно. Не ужели не кто не поможет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...