lacosta 206 Опубликовано 19 декабря, 2011 люди вот я не могу понять что нужно поменять что б с рб падал итем ?? Скрытый текст public String onKill (L2NpcInstance npc, L2PcInstance killer, boolean isPet) { QuestState st = killer.getQuestState(getName()); if(st == null) return null; int npcId = npc.getNpcId(); int cond = st.getInt("cond"); L2Party party = killer.getParty(); switch(cond) { case 1: for (int id : MOBS) if (npcId == id) if (Rnd.get(100) < chance1) if (st.getPlayer().getInventory().getInventoryItemCount(BLACK_FEATHER,0) < 1000) st.giveItems(BLACK_FEATHER,1); break; case 2: if (npcId == RaidBoss) if (Rnd.get(100) < chance2) if (party != null) for (L2PcInstance member : party.getPartyMembers()) if (member.getInventory().getInventoryItemCount(ITEM_FROM_RB,0) == 0) member.getQuestState(getName()).giveItems(ITEM_FROM_RB,1); else if (killer.getInventory().getInventoryItemCount(ITEM_FROM_RB,0) == 0) st.giveItems(ITEM_FROM_RB,1); break; } return null; } public static void main(String[] args) { new Wings(121, "Wings", "quests"); } } за рание блогадарю и с меня ++++ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Reload 0 Опубликовано 19 декабря, 2011 if (killer.getInventory().getInventoryItemCount(ITEM_FROM_RB,0) == 0) вот вроде Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lacosta 206 Опубликовано 19 декабря, 2011 if (killer.getInventory().getInventoryItemCount(ITEM_FROM_RB,0) == 0)вот вроде что тут ставить ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lacosta 206 Опубликовано 19 декабря, 2011 up спасайте Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Freeman 0 Опубликовано 19 декабря, 2011 Вот держи рабочий квест на крылья. Может ты его себе и не будешь ставить, но думаю если в нем порыться ты найдешь ответы на твои вопросы. Скрытый текст import sys from net.sf.l2j import Config 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 qn = "q902_FeatherGathering" ## нпц NPC = 300301 ## Мобы MOBS = [300302,300303,300304,300305] #босс BOSS = 300306 ## Дроп #id перьев с мобов в мос FEATHER = 9993 #сколько нужно? FEATHER_NEED = 1000 #шанс дропа, % FEATHER_CHANCE = 100 #id итема с босса BOSS_ITEM = 9992 ##Награда #id крыльев WINGS = 9705 class Quest (JQuest) : def __init__(self,id,name,descr) : JQuest.__init__(self,id,name,descr) def onEvent (self,event,st) : htmltext = event if event == "accept.htm": st.setState(State.STARTED) st.playSound("ItemSound.quest_accept") st.set("cond","1") elif event == "finish.htm": if st.getQuestItemsCount(FEATHER) >= FEATHER_NEED and st.getQuestItemsCount(BOSS_ITEM) >= 1: st.takeItems(FEATHER, 1000) st.takeItems(BOSS_ITEM, 1) st.giveItems(WINGS, 1) st.set("cond","0") st.playSound("ItemSound.quest_finish") st.setState(State.COMPLETED) else: htmltext = "mobs.htm" return htmltext def onTalk (self,npc,player): st = player.getQuestState(qn) if not st: return "<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>" npcId = npc.getNpcId() idd = st.getState() cond = st.getInt("cond") if npcId == NPC: if idd == State.COMPLETED : htmltext = "completed.htm" if idd == State.CREATED : htmltext = "hello1.htm" elif cond == 1: if st.getQuestItemsCount(FEATHER) >= FEATHER_NEED and st.getQuestItemsCount(BOSS_ITEM) >= 1: htmltext = "mobs2.htm" else: htmltext = "mobs.htm" return htmltext 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 MOBS: reward = FEATHER limit = FEATHER_NEED chance = FEATHER_CHANCE if npcId == BOSS: reward = BOSS_ITEM limit = 1 if reward > 0: party = player.getParty() if party: for member in party.getPartyMembers(): if not member.isAlikeDead(): st = member.getQuestState("q902_FeatherGathering") 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 QUEST = Quest(902, qn, "Feather Gathering") QUEST.addStartNpc(NPC) QUEST.addTalkId(NPC) QUEST.addKillId(BOSS) for m in MOBS: QUEST.addKillId(m) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SHARK 39 Опубликовано 19 декабря, 2011 Ka6a4ek, молодец!) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lacosta 206 Опубликовано 20 декабря, 2011 не фига не пойму =( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Reload 0 Опубликовано 22 декабря, 2011 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 MOBS: reward = FEATHER limit = FEATHER_NEED chance = FEATHER_CHANCE if npcId == BOSS: reward = BOSS_ITEM limit = 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты