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

Помогите допилить скрипт (Python)

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

Много  вариантов пробовал, но никак не пашет. Пытаюсь сделать, что бы с моба падало сразу 2 айтема. Можете подсказать?

def onKill(self,npc,player,isPet):
   st = player.getQuestState(qn)
   if not st or st.getInt("cond") != 1:
     return
   npcId = npc.getNpcId()
   reward = 0
   limit = 1
   chance = 100
   if npcId in [20116]:
     reward = ITEM1
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if npcId in [27002]:
     reward = ITEM2
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if npcId in [20120]:
     reward = [ITEM3, FEATHER]
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if npcId in [20121]:
     reward = ITEM4
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if npcId in [20365]:
     reward = ITEM5
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if reward > 0:
     party = player.getParty()
     if party:
       for member in party.getPartyMembers():
         if not member.isAlikeDead():
           st = member.getQuestState("0002_StartInLocation")
           if st and st.getQuestItemsCount(reward) < limit and st.getRandom(100) <= chance:
             st.giveItems(reward, 1)
             st.playSound("ItemSound.quest_itemget")
             if st.getQuestItemsCount(reward) >= limit:
               st.playSound("ItemSound.quest_middle")
     else:
       if st.getQuestItemsCount(reward) < limit and st.getRandom(100) <= chance:
         st.giveItems(reward, 1)
         st.playSound("ItemSound.quest_itemget")
   return  

 reward = [iTEM1, FEATHER] - пробовал так, но без результатов.

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


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

так зачем те скрипт ))

Квест это. Надо что бы с моба сразу падала 2 итема.

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


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

Много  вариантов пробовал, но никак не пашет. Пытаюсь сделать, что бы с моба падало сразу 2 айтема. Можете подсказать?

def onKill(self,npc,player,isPet):
   st = player.getQuestState(qn)
   if not st or st.getInt("cond") != 1:
     return
   npcId = npc.getNpcId()
   reward = 0
   limit = 1
   chance = 100
   if npcId in [20116]:
     reward = ITEM1
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if npcId in [27002]:
     reward = ITEM2
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if npcId in [20120]:
     reward = [ITEM3, FEATHER]
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if npcId in [20121]:
     reward = ITEM4
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if npcId in [20365]:
     reward = ITEM5
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if reward > 0:
     party = player.getParty()
     if party:
       for member in party.getPartyMembers():
         if not member.isAlikeDead():
           st = member.getQuestState("0002_StartInLocation")
           if st and st.getQuestItemsCount(reward) < limit and st.getRandom(100) <= chance:
             st.giveItems(reward, 1)
             st.playSound("ItemSound.quest_itemget")
             if st.getQuestItemsCount(reward) >= limit:
               st.playSound("ItemSound.quest_middle")
     else:
       if st.getQuestItemsCount(reward) < limit and st.getRandom(100) <= chance:
         st.giveItems(reward, 1)
         st.playSound("ItemSound.quest_itemget")
   return  

 reward = [iTEM1, FEATHER] - пробовал так, но без результатов.

Для этого существует droplist, там есть категория.

Ставишь 2 разных категории на итемы, и будут тебе падать 2 итема.

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


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

Для этого существует droplist, там есть категория.

Ставишь 2 разных категории на итемы, и будут тебе падать 2 итема.

Я скинул только класс onKill? Мне нужно, что бы человек брал квест и по данному квесту падало сразу 2 разных итема в кол-ве 1 штуки. Не больше.

Я знаю, что такое дроп лист)

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

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


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

Много  вариантов пробовал, но никак не пашет. Пытаюсь сделать, что бы с моба падало сразу 2 айтема. Можете подсказать?

def onKill(self,npc,player,isPet):
   st = player.getQuestState(qn)
   if not st or st.getInt("cond") != 1:
     return
   npcId = npc.getNpcId()
   reward = 0
   limit = 1
   chance = 100
   if npcId in [20116]:
     reward = ITEM1
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if npcId in [27002]:
     reward = ITEM2
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if npcId in [20120]:
     reward = [ITEM3, FEATHER]
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if npcId in [20121]:
     reward = ITEM4
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if npcId in [20365]:
     reward = ITEM5
     limit = FEATHER_NEED
     chance = FEATHER_CHANCE
   if reward > 0:
     party = player.getParty()
     if party:
       for member in party.getPartyMembers():
         if not member.isAlikeDead():
           st = member.getQuestState("0002_StartInLocation")
           if st and st.getQuestItemsCount(reward) < limit and st.getRandom(100) <= chance:
             st.giveItems(reward, 1)
             st.playSound("ItemSound.quest_itemget")
             if st.getQuestItemsCount(reward) >= limit:
               st.playSound("ItemSound.quest_middle")
     else:
       if st.getQuestItemsCount(reward) < limit and st.getRandom(100) <= chance:
         st.giveItems(reward, 1)
         st.playSound("ItemSound.quest_itemget")
   return  

 reward = [iTEM1, FEATHER] - пробовал так, но без результатов.

Я не сторонник питоновских скриптов, советую переписать данный скрипт на яву :D А если серьезно, то тебе нужно делать двойной массив ид количество, ид количество и проходясь но нему for'ом делать выдачу итемов.

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


Ссылка на сообщение
Поделиться на другие сайты
st.giveItems(reward, 1)

Обрати внимание !

 

Ну или сделать самый простой вариант, контрл+ц контрл+в как указанно в цитате =) но опять же встает вопрос по поводу чека на наличие в кармане итемов, а значит и условия тоже нужно дополнить.

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


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

Я не сторонник питоновских скриптов, советую переписать данный скрипт на яву :D А если серьезно, то тебе нужно делать двойной массив ид количество, ид количество и проходясь но нему for'ом делать выдачу итемов.

Да есть у меня уже кв на яве; только сборка другая. Я щас на гротах сижу, а там нету некоторых классов. Ладно буду пробовать)

И по поводу условий, если я все правильно понял, то я дописал нужное, только вместо 2ух указанных дает все равно 1)

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

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


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

Да есть у меня уже кв на яве; только сборка другая. Я щас на гротах сижу, а там нету некоторых классов. Ладно буду пробовать)

По-моему на всех сборках есть все необходимые классы =) а если еще учесть, что все сборки нынешние (90%) являются лыжеподобные, то тем более =)

  • Upvote 1

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


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

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

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

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

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

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

Войти

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

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

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

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

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