You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Account Features
➡ EARLY SUPPORTER BADGE
➡ NO QUEST BADGE
➡ 24 MONTHS BOOST BADGE
➡ 1 YEAR NITRO SUBSCRIPTION
➡ CREATION DATE IS 2017
➡ ACCOUNT STANDING STATUS IS ALL GOOD
➡ CLEAN BILLING
➡ OGE MAIL OUTLOOK
PAYMENT METHODS
➡ CRYPTO
➡ PAYPAL
➡ CASHAPP
➡ BANK TRANSFER
➡ GIFTCARDS
➡ ZELLE
➡ VENMO
CONTACTS
➡ DISCORD : crh11s
➡ TELEGRAM : crh11s
CONTACT WITH ME IF YOU ARE SERIOUS BUYE
To check the operation of npc movement. You can turn off all movement in the game and move only the npc you want using the move to package. This way you will reduce a lot of unnecessary code and understand where the problem is.
And all your maps are not thread safe and you are using multithreading
startQuestTimer("move", 5000, npc, null);
Verify if following is supposed to be the way to handle movement
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(point.getX(), point.getY(), point.getZ()));
For me, it's not enough. And if it's the case, whole AI system is probably buggy.
Question
MegaCheat
does anyone have one Quest, which when he kills 100 monsters Take Reward item..
but without speak any npc.. like this quest but 100 monsters
package l2s.gameserver.scripts.custom; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.concurrent.TimeUnit; import l2s.commons.db.DatabaseFactory; import l2s.gameserver.Announcements; import l2s.gameserver.datatables.SkillTable; import l2s.gameserver.model.L2Skill; import l2s.gameserver.model.actor.L2Npc; import l2s.gameserver.model.actor.instance.L2PcInstance; import l2s.gameserver.model.quest.Quest; /** * @author SoFace */ public class SuperMonster extends Quest { // Monsters's ID. private static final int MONSTERS[] = { 12564 }; private static final boolean REWARD_PARTY = false; // Reward party ? private final static boolean REWARD_NOBLE = true; // Give Noblesse ? private final static boolean REWARD_HERO = false; // Give Hero ? private final static int REWARD_HERO_DAYS = -1; // How many days to give the status of Hero ? // 0 - Until relogin. -1 - Forever. private final static boolean REWARD_SKILL = true; // Give Skill ? private final static int REWARD_SKILL_ID = 0; // Skill's ID. private final static int REWARD_SKILL_LVL = 0; // Skill's LvL. private final static boolean REWARD_ITEMS = true; // Give Items ? private final static int REWARD_ITEM_ID = 4037; // Item's ID. private final static int REWARD_ITEM_COUNT = 5; // Count. public SuperMonster() { super(-1, "SuperMonster", "custom"); for (int mobs : MONSTERS) addKillId(mobs); } @Override public String onKill(L2Npc npc, L2PcInstance player, boolean isPet) { L2Skill skill = SkillTable.getInstance().getInfo(REWARD_SKILL_ID, REWARD_SKILL_LVL); Announcements.announceToAll("SuperMonster was killed."); if (REWARD_PARTY) { if (player.getParty() != null) { for (L2PcInstance members : player.getParty().getPartyMembers()) { members.sendMessage("Congratulations ! You killed The SuperMonster !"); if (REWARD_ITEMS) members.addItem("Add", REWARD_ITEM_ID, REWARD_ITEM_COUNT, members, true); if (REWARD_SKILL) members.addSkill(skill, true); if (REWARD_HERO) { if (!player.isHero()) addHero(player, REWARD_HERO_DAYS); else player.sendMessage("You already Hero."); } if (REWARD_NOBLE) { if (!members.isNoble()) members.setNoble(true, true); else members.sendMessage("You already Noblesse."); } members.broadcastUserInfo(); } } else { player.sendMessage("Congratulations ! You killed The SuperMonster !"); if (REWARD_ITEMS) player.addItem("Add", REWARD_ITEM_ID, REWARD_ITEM_COUNT, player, true); if (REWARD_SKILL) player.addSkill(skill, true); if (REWARD_HERO) { if (!player.isHero()) addHero(player, REWARD_HERO_DAYS); else player.sendMessage("You already Hero."); } if (REWARD_NOBLE) { if (!player.isNoble()) player.setNoble(true, true); else player.sendMessage("You already Noblesse."); } player.broadcastUserInfo(); } } else { player.sendMessage("Congratulations ! You killed The SuperMonster !"); if (REWARD_ITEMS) player.addItem("Add", REWARD_ITEM_ID, REWARD_ITEM_COUNT, player, true); if (REWARD_SKILL) player.addSkill(skill, true); if (REWARD_HERO) { if (!player.isHero()) addHero(player, REWARD_HERO_DAYS); else player.sendMessage("You already Hero."); } if (REWARD_NOBLE) { if (!player.isNoble()) player.setNoble(true, true); else player.sendMessage("You already Noblesse."); } player.broadcastUserInfo(); } return null; } private void addHero(L2PcInstance player, int days) { long _heroExpire = 0L; player.setHero(true); player.broadcastUserInfo(); if (days == 0) { _heroExpire = 3L; return; } _heroExpire = (days == -1 ? 1L : System.currentTimeMillis() + TimeUnit.DAYS.toMillis(days)); try (Connection con = DatabaseFactory.getConnection(); PreparedStatement stm = con.prepareStatement("UPDATE `characters` SET `hero`=? WHERE `obj_Id`=?")) { stm.setLong(1, _heroExpire); stm.setInt(2, player.getObjectId()); stm.execute(); } catch (SQLException e) { _log.warn("[SuperMonster] addHero(days) error: ", e); } } public static void main(String args[]) { new SuperMonster(); } }
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.