Перейти к содержанию

DonCarleon

Пользователи
  • Публикаций

    1
  • Зарегистрирован

  • Посещение

  • Отзывы

    0%

Сообщения, опубликованные DonCarleon


  1. package custom.Wings;
    
    import net.sf.l2j.gameserver.model.L2Party;
    import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
    import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
    import net.sf.l2j.gameserver.model.quest.Quest;
    import net.sf.l2j.gameserver.model.quest.QuestState;
    import net.sf.l2j.gameserver.model.quest.State;
    import net.sf.l2j.util.Rnd;
    
    public class Wings extends Quest {
    
    private static final String qn = "Wings";
    private final static int npcId = 10501;
    private final static int[] MOBS = {22123, 22124, 22126, 22128};
    private final static int RaidBoss = 10500;
    private final static int BLACK_FEATHER = 10006;
    private final static int ITEM_FROM_RB = 10007;
    private final static int chance1 = 85;
    private final static int chance2 = 100;
    private final static int FEATHER = 10030;
    private int count;
    private static boolean REPEATABLE = true;
    private int cond = 0;
    
    public Wings(int questId, String name, String descr) {
    	super(questId, name, descr);
    
    	addStartNpc(npcId);
    	addTalkId(npcId);
    	for (int mobs : MOBS) {
    		addKillId(mobs);
    	}
    	addKillId(RaidBoss);
    }
    
    @Override
    public String onAdvEvent(String event, L2NpcInstance npc, L2PcInstance player) {
    	String htmltext = event;
    	QuestState st = player.getQuestState(qn);
    	if (st == null) {
    		return htmltext;
    	}
    
    	switch (npc.getNpcId()) {
    		case npcId:
    			if (event.equals("start")) {
    				st.set("cond", "1");
    				htmltext = "10501-2.htm";
    				st.setState(State.STARTED);
    				st.playSound("ItemSound.quest_accept");
    			} else if (event.equals("sobral")) {
    				count = player.getInventory().getInventoryItemCount(BLACK_FEATHER, 0);
    				if (count < 300) {
    					htmltext = "10501-no.htm";
    				} else {
    					st.takeItems(BLACK_FEATHER, 300);
    					st.set("cond", "2");
    					htmltext = "10501-4.htm";
    				}
    			} else if (event.equals("item_RB")) {
    				count = player.getInventory().getInventoryItemCount(ITEM_FROM_RB, 0);
    				if (count < 1) {
    					htmltext = "10501-no1.htm";
    				} else {
    					st.takeItems(ITEM_FROM_RB, 1);
    					st.giveItems(FEATHER, 1);
    					st.exitQuest(REPEATABLE);
    					htmltext = "<html><body>Quest for wings passed successfully.</body><html>";
    				}
    			} else if (event.equals("otmena")) {
    				htmltext = "<html><body>Quest for wings canceled.</body></html>";
    				st.exitQuest(true);
    			}
    			break;
    	}
    	return htmltext;
    }
    
    @Override
    public String onTalk(L2NpcInstance npc, L2PcInstance player) {
    	QuestState st = player.getQuestState(getName());
    	String htmltext = "";
    	if (st == null) {
    		return htmltext;
    	}
    
    	int npcId = npc.getNpcId();
    	cond = st.getInt("cond");
    	if (npcId == npcId) {
    		if (cond == 0) {
    			htmltext = "10501-1.htm";
    		} else if (cond == 1) {
    			htmltext = "10501-3.htm";
    		} else if (cond == 2) {
    			htmltext = "10501-5.htm";
    		}
    	}
    	return htmltext;
    }
    
    @Override
    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) < 300) {
    							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(-1, qn, "custom");
    }
    }

    Выдирнул квест на Крылья под себя поправь и норм будет

    ага вот только бы знать что править


  2. Люди помогите пожалуйсто надо написать квест, пробывал переделать из другого нечего не получилося, сборка фрозен, Суть квеста:

    Подходим к НПС берём квест, он нас посылает поговорить с другим НПС, идём к другому НПС он просит нас выбить 300 итемов,когда мы набиваем 300 итемов и возвращаемся к НПС он нас благодарит и даёт итем мы относим этот итем НПС у которого брали этот квест и он нас награждает определённым итемом.

     

    ПОМОГИТЕ ПЛЫЗ НАПИСАТЬ ТАКОЙ МАЛЕНЬКИЙ КВЕСТ.


  3. Подскажите пожалуйста... поставил сборку, а диалоги у всех нпц кривые...

    скриншот http://rghost.ru/2727083/image.png

     

    Кому интересно, вот ссылка на саму сборку

    http://l2maxi.ru/java/server/page,1,1,1399...te.html#comment

     

    Честно говоря потестил минут 10... гвард не сразу начинает атаковать в ответ, а стоит тупит некоторое время, очень легко проходит через стены, как собственно и сам чар... пока что только это)

    эт ты уже чёт начудил тошо у меня вот стоит эта сборка и всё норм работает


  4. Прошу зделать мануал как правельно пределовать SQL если ошибки при заливках как правельно подстраевать под свою сборку?

    согласен я тож уже 2 день немогу разобратся


  5. у меня вот такая проблкма пытаюсь залить гм-шоп а мне навикат выдаёт ошибку 1136 нашол в инете про эту ошибку там написано что надо менять столбци а как это делать я хз помогите плыз


  6. та всё я дружу!вот нажима полная заливка баз логинсервер потом энтер потом ешё раз энтер потом 1 и энтер и начинаются проценты когда они заканчиваются мне пишет сервер игры установле нажмите энтер я нажимаю энтер!и точ также делаю с установкой баз геймсервера!


  7. народ обьясните плыз!вот я скачял сборку везде изменил ип поставил пас от базы и вот я непойму надо по 1 sql файлу заливать в базу или можно както все сразу??

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