Astral 31 Опубликовано 12 апреля, 2014 как сюда дописать что бы можно в каждом меню шанс добовлять package ai; 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.jython.QuestJython; import net.sf.l2j.util.Rnd; import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.model.L2Party; public class NpcScript extends QuestJython { //Босс Иды private final static int[] BossIds = {99015}; //Выдавать награду всей пати? private static boolean PartyDrop = false; //Включить награду нублом? private static boolean NOBLE = false; //Включить награду хиро? private static boolean HERO = true; //На сколько давать хиро private final static int DayHero = 1; //Включить награду премиум? private static boolean PREMIUM = true; //На сколько давать премиум private final static int DayPremium = 1; //Включить награду итемом? private static boolean RewardItem = true; //Итем ид private final static int RewardItemId = 10860; //Количество private final static int RewardItemCount = 1; //Шанс дропа предмета private final static int chance = 100; //Сколько разрешено иметь в инве таких предметов private final static int count = 15; //Включить награду скилами? private static boolean RewardSkill = false; //Скилл ид private final static int RewardSkillId = 2; //Скилл лвл private final static int RewardSkillLvl = 1; public NpcScript(int questId, String name, String descr) { super(questId, name, descr, 1); for (int boss : BossIds) addKillId(boss); } @Override public String onKill(L2NpcInstance npc, L2PcInstance xzkaknazvat, boolean isPet) { int npcId = npc.getNpcId(); for (int id : BossIds) if (npcId == id) if (HERO) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { xzkaknazvatpaty.setHero(DayHero); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } else { xzkaknazvat.setHero(DayHero); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } } if (PREMIUM) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { xzkaknazvatpaty.storePremium(DayPremium); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u043c\u0438\u0443\u043c."); } else { xzkaknazvat.storePremium(DayPremium); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u043c\u0438\u0443\u043c."); } } if (NOBLE) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { xzkaknazvatpaty.setNoble(true); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0443\u0431\u043b\u0435\u0441."); } else { xzkaknazvat.setNoble(true); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0443\u0431\u043b\u0435\u0441."); } } if (RewardItem) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) if (Rnd.get(100) < chance) if (xzkaknazvatpaty.getInventory().getInventoryItemCount(RewardItemId,0) < count) { xzkaknazvatpaty.getInventory().addItem("Reward", RewardItemId, RewardItemCount, xzkaknazvatpaty, null); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043c\u0435\u0442."); xzkaknazvatpaty.broadcastUserInfo(); } else { if (Rnd.get(100) < chance) if (xzkaknazvat.getInventory().getInventoryItemCount(RewardItemId,0) < count) xzkaknazvat.getInventory().addItem("Reward", RewardItemId, RewardItemCount, xzkaknazvat, null); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043c\u0435\u0442."); xzkaknazvat.broadcastUserInfo(); } } if (RewardSkill) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { xzkaknazvatpaty.removeSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl)); xzkaknazvatpaty.addSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl), true); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0438\u043b."); } else { xzkaknazvat.removeSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl)); xzkaknazvat.addSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl), true); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0438\u043b."); } } return null; } public static void main(String[] args) { new NpcScript(-1, "NpcScript", "ai"); } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Handicapped 1 Опубликовано 12 апреля, 2014 контакты напиши свои Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astral 31 Опубликовано 12 апреля, 2014 icq 666-118-311 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Silentium 592 Опубликовано 12 апреля, 2014 Мои глаза... Кто автор этого "кода"? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 12 апреля, 2014 Мои глаза... Кто автор этого "кода"? я xD Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Silentium 592 Опубликовано 12 апреля, 2014 я xD Не надо так издеваться над людьми... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astral 31 Опубликовано 12 апреля, 2014 блин так как дописать во все меню шанс что бы можно было ставить а то тупо что сразу и хиро и премиум к примеру даёт а хотелось бы шанс выставить Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Silentium 592 Опубликовано 12 апреля, 2014 блин так как дописать во все меню шанс что бы можно было ставить а то тупо что сразу и хиро и премиум к примеру даёт а хотелось бы шанс выставить Перед выдачей премиума/хиро ставим if (Rnd.get(шанс)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astral 31 Опубликовано 12 апреля, 2014 (изменено) Перед выдачей премиума/хиро ставим if (Rnd.get(шанс)) если бы я хоть чтонить понимал в этом( если вам не трудно могли бы готовый скинуть пожалуйста или пример дописание Изменено 12 апреля, 2014 пользователем Astral Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Silentium 592 Опубликовано 12 апреля, 2014 (изменено) Для примера. Дальше по аналогии можете сделать. for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()){ if (Rnd.get(50)) { xzkaknazvatpaty.setHero(DayHero); } xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } Изменено 12 апреля, 2014 пользователем Silentium Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astral 31 Опубликовано 12 апреля, 2014 (изменено) Для примера. Дальше по аналогии можете сделать. а куда шанс писать тогда?ааа совсем запутался)хотел просто дописать так что бы выводить //Босс Иды private final static int[] BossIds = {99015}; //Выдавать награду всей пати? private static boolean PartyDrop = true; //Включить награду нублом? private static boolean NOBLE = true; //Шанс дропа предмета private final static int chance = 20; //Включить награду хиро? private static boolean HERO = true; //На сколько давать хиро private final static int DayHero = 1; //Шанс дропа предмета private final static int chance = 20; //Включить награду премиум? private static boolean PREMIUM = true; //На сколько давать премиум private final static int DayPremium = 1; //Шанс дропа предмета private final static int chance = 20; //Включить награду итемом? private static boolean RewardItem = true; //Итем ид private final static int RewardItemId = 57; //Количество private final static int RewardItemCount = 1; //Шанс дропа предмета private final static int chance = 20; //Сколько разрешено иметь в инве таких предметов private final static int count = 1; //Включить награду скилами? private static boolean RewardSkill = true; //Скилл ид private final static int RewardSkillId = 2; //Скилл лвл private final static int RewardSkillLvl = 1; //Шанс дропа предмета private final static int chance = 20; Изменено 12 апреля, 2014 пользователем Astral Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Silentium 592 Опубликовано 12 апреля, 2014 а куда шанс писать тогда?ааа совсем запутался) Rnd.get(50) Вместо 50 - Ваш шанс в процентах. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astral 31 Опубликовано 12 апреля, 2014 (изменено) так правильно? if (HERO) } { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.setHero(DayHero); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } теги все закрыты?или как там их Изменено 12 апреля, 2014 пользователем Astral Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Silentium 592 Опубликовано 12 апреля, 2014 так правильно? if (HERO) } { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.setHero(DayHero); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } теги все закрыты?или как там их Вроде правильно. Если что-то не так, то будет сообщение об ошибке. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astral 31 Опубликовано 12 апреля, 2014 if (npcId == id) if (HERO) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { xzkaknazvatpaty.setHero(DayHero); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } else { xzkaknazvat.setHero(DayHero); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } } а вот именно куда его тыкнуть?а то всё похоже Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astral 31 Опубликовано 12 апреля, 2014 (изменено) вот изменил код package ai; 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.jython.QuestJython; import net.sf.l2j.util.Rnd; import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.model.L2Party; public class NpcScript extends QuestJython { //Босс Иды private final static int[] BossIds = {99015}; //Выдавать награду всей пати? private static boolean PartyDrop = true; //Включить награду нублом? private static boolean NOBLE = true; //Включить награду хиро? private static boolean HERO = true; //На сколько давать хиро private final static int DayHero = 1; //Включить награду премиум? private static boolean PREMIUM = true; //На сколько давать премиум private final static int DayPremium = 1; //Включить награду итемом? private static boolean RewardItem = true; //Итем ид private final static int RewardItemId = 57; //Количество private final static int RewardItemCount = 1; //Шанс дропа предмета private final static int chance = 20; //Сколько разрешено иметь в инве таких предметов private final static int count = 1; //Включить награду скилами? private static boolean RewardSkill = true; //Скилл ид private final static int RewardSkillId = 2; //Скилл лвл private final static int RewardSkillLvl = 1; public NpcScript(int questId, String name, String descr) { super(questId, name, descr, 1); for (int boss : BossIds) addKillId(boss); } @Override public String onKill(L2NpcInstance npc, L2PcInstance xzkaknazvat, boolean isPet) { int npcId = npc.getNpcId(); for (int id : BossIds) if (npcId == id) if (HERO) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.setHero(DayHero); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } else { xzkaknazvat.setHero(DayHero); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } } if (PREMIUM) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.storePremium(DayPremium); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u043c\u0438\u0443\u043c."); } else { xzkaknazvat.storePremium(DayPremium); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u043c\u0438\u0443\u043c."); } } if (NOBLE) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.setNoble(true); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0443\u0431\u043b\u0435\u0441."); } else { xzkaknazvat.setNoble(true); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0443\u0431\u043b\u0435\u0441."); } } if (RewardItem) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) if (Rnd.get(100) < chance) if (xzkaknazvatpaty.getInventory().getInventoryItemCount(RewardItemId,0) < count) { xzkaknazvatpaty.getInventory().addItem("Reward", RewardItemId, RewardItemCount, xzkaknazvatpaty, null); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043c\u0435\u0442."); xzkaknazvatpaty.broadcastUserInfo(); } else { if (Rnd.get(100) < chance) if (xzkaknazvat.getInventory().getInventoryItemCount(RewardItemId,0) < count) xzkaknazvat.getInventory().addItem("Reward", RewardItemId, RewardItemCount, xzkaknazvat, null); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043c\u0435\u0442."); xzkaknazvat.broadcastUserInfo(); } } if (RewardSkill) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.removeSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl)); xzkaknazvatpaty.addSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl), true); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0438\u043b."); } else { xzkaknazvat.removeSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl)); xzkaknazvat.addSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl), true); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0438\u043b."); } } return null; } public static void main(String[] args) { new NpcScript(-1, "NpcScript", "ai"); } } а вот ошибки ---------- 1. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "}" to complete Statement ---------- 2. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "else Statement" to complete IfStatement ---------- 3. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "}" to complete Statement ---------- 4. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "else Statement" to complete IfStatement ---------- 5. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "}" to complete Statement ---------- 6. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "else Statement" to complete IfStatement ---------- 7. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "}" to complete Statement попробывал зделать так if (HERO) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.setHero(DayHero); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } else { xzkaknazvat.setHero(DayHero); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } } if (PREMIUM) ошибка GameServer: Loading Server Scripts ---------- 1. ERROR in \NpcScript.java (at line 142) return null; ^ Syntax error, insert "}" to complete Statement ---------- 1 problem (1 error)Syntax error, insert "}" to complete Statement Failed executing script: E:\server\game\data\scripts\ai\NpcScript.java. See NpcS cript.java.error.log for details. Изменено 12 апреля, 2014 пользователем Astral Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 12 апреля, 2014 вот изменил код package ai; 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.jython.QuestJython; import net.sf.l2j.util.Rnd; import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.model.L2Party; public class NpcScript extends QuestJython { //Босс Иды private final static int[] BossIds = {99015}; //Выдавать награду всей пати? private static boolean PartyDrop = true; //Включить награду нублом? private static boolean NOBLE = true; //Включить награду хиро? private static boolean HERO = true; //На сколько давать хиро private final static int DayHero = 1; //Включить награду премиум? private static boolean PREMIUM = true; //На сколько давать премиум private final static int DayPremium = 1; //Включить награду итемом? private static boolean RewardItem = true; //Итем ид private final static int RewardItemId = 57; //Количество private final static int RewardItemCount = 1; //Шанс дропа предмета private final static int chance = 20; //Сколько разрешено иметь в инве таких предметов private final static int count = 1; //Включить награду скилами? private static boolean RewardSkill = true; //Скилл ид private final static int RewardSkillId = 2; //Скилл лвл private final static int RewardSkillLvl = 1; public NpcScript(int questId, String name, String descr) { super(questId, name, descr, 1); for (int boss : BossIds) addKillId(boss); } @Override public String onKill(L2NpcInstance npc, L2PcInstance xzkaknazvat, boolean isPet) { int npcId = npc.getNpcId(); for (int id : BossIds) if (npcId == id) if (HERO) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.setHero(DayHero); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } else { xzkaknazvat.setHero(DayHero); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } } if (PREMIUM) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.storePremium(DayPremium); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u043c\u0438\u0443\u043c."); } else { xzkaknazvat.storePremium(DayPremium); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u043c\u0438\u0443\u043c."); } } if (NOBLE) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.setNoble(true); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0443\u0431\u043b\u0435\u0441."); } else { xzkaknazvat.setNoble(true); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0443\u0431\u043b\u0435\u0441."); } } if (RewardItem) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) if (Rnd.get(100) < chance) if (xzkaknazvatpaty.getInventory().getInventoryItemCount(RewardItemId,0) < count) { xzkaknazvatpaty.getInventory().addItem("Reward", RewardItemId, RewardItemCount, xzkaknazvatpaty, null); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043c\u0435\u0442."); xzkaknazvatpaty.broadcastUserInfo(); } else { if (Rnd.get(100) < chance) if (xzkaknazvat.getInventory().getInventoryItemCount(RewardItemId,0) < count) xzkaknazvat.getInventory().addItem("Reward", RewardItemId, RewardItemCount, xzkaknazvat, null); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043c\u0435\u0442."); xzkaknazvat.broadcastUserInfo(); } } if (RewardSkill) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.removeSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl)); xzkaknazvatpaty.addSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl), true); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0438\u043b."); } else { xzkaknazvat.removeSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl)); xzkaknazvat.addSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl), true); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0438\u043b."); } } return null; } public static void main(String[] args) { new NpcScript(-1, "NpcScript", "ai"); } } а вот ошибки ---------- 1. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "}" to complete Statement ---------- 2. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "else Statement" to complete IfStatement ---------- 3. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "}" to complete Statement ---------- 4. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "else Statement" to complete IfStatement ---------- 5. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "}" to complete Statement ---------- 6. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "else Statement" to complete IfStatement ---------- 7. ERROR in \NpcScript.java (at line 148) return null; ^ Syntax error, insert "}" to complete Statement попробывал зделать так if (HERO) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.setHero(DayHero); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } else { xzkaknazvat.setHero(DayHero); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } } if (PREMIUM) ошибка GameServer: Loading Server Scripts ---------- 1. ERROR in \NpcScript.java (at line 142) return null; ^ Syntax error, insert "}" to complete Statement ---------- 1 problem (1 error)Syntax error, insert "}" to complete Statement Failed executing script: E:\server\game\data\scripts\ai\NpcScript.java. See NpcS cript.java.error.log for details. не закрыли тег, и вообще не так вписали. могу скинуть готовый за предел +сов) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astral 31 Опубликовано 12 апреля, 2014 не закрыли тег, и вообще не так вписали. могу скинуть готовый за предел +сов) скиньте если не сложно а + много дам Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoFace 315 Опубликовано 12 апреля, 2014 скиньте если не сложно а + много дам Держи. Можешь не благодарить. package ai; 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.jython.QuestJython; import net.sf.l2j.util.Rnd; import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.model.L2Party; public class NpcScript extends QuestJython { //Босс Иды private final static int[] BossIds = {59021}; //Выдавать награду всей пати? private static boolean PartyDrop = true; //Включить награду нублом? private static boolean NOBLE = true; //Включить награду хиро? private static boolean HERO = true; //На сколько давать хиро private final static int DayHero = 1; //Включить награду премиум? private static boolean PREMIUM = true; //На сколько давать премиум private final static int DayPremium = 1; //Включить награду итемом? private static boolean RewardItem = true; //Итем ид private final static int RewardItemId = 57; //Количество private final static int RewardItemCount = 1; //Шанс дропа предмета private final static int chance = 20; //Сколько разрешено иметь в инве таких предметов private final static int count = 1; //Включить награду скилами? private static boolean RewardSkill = true; //Скилл ид private final static int RewardSkillId = 2; //Скилл лвл private final static int RewardSkillLvl = 1; public NpcScript(int questId, String name, String descr) { super(questId, name, descr, 1); for (int boss : BossIds) addKillId(boss); } @Override public String onKill(L2NpcInstance npc, L2PcInstance xzkaknazvat, boolean isPet) { int npcId = npc.getNpcId(); for (int id : BossIds) if (npcId == id) if (HERO) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.setHero(DayHero); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } } else { xzkaknazvat.setHero(DayHero); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } } if (PREMIUM) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.storePremium(DayPremium); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u043c\u0438\u0443\u043c."); } } else { xzkaknazvat.storePremium(DayPremium); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u043c\u0438\u0443\u043c."); } } if (NOBLE) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.setNoble(true); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0443\u0431\u043b\u0435\u0441."); } } else { xzkaknazvat.setNoble(true); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0443\u0431\u043b\u0435\u0441."); } } if (RewardItem) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) if (Rnd.get(100) < chance) if (xzkaknazvatpaty.getInventory().getInventoryItemCount(RewardItemId,0) < count) { xzkaknazvatpaty.getInventory().addItem("Reward", RewardItemId, RewardItemCount, xzkaknazvatpaty, null); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043c\u0435\u0442."); xzkaknazvatpaty.broadcastUserInfo(); } else { if (Rnd.get(100) < chance) if (xzkaknazvat.getInventory().getInventoryItemCount(RewardItemId,0) < count) xzkaknazvat.getInventory().addItem("Reward", RewardItemId, RewardItemCount, xzkaknazvat, null); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043c\u0435\u0442."); xzkaknazvat.broadcastUserInfo(); } } if (RewardSkill) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { xzkaknazvatpaty.removeSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl)); xzkaknazvatpaty.addSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl), true); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0438\u043b."); } else { xzkaknazvat.removeSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl)); xzkaknazvat.addSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl), true); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0438\u043b."); } } return null; } public static void main(String[] args) { new NpcScript(-1, "NpcScript", "ai"); } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astral 31 Опубликовано 12 апреля, 2014 (изменено) Держи. Можешь не благодарить. package ai; 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.jython.QuestJython; import net.sf.l2j.util.Rnd; import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.model.L2Party; public class NpcScript extends QuestJython { //Босс Иды private final static int[] BossIds = {59021}; //Выдавать награду всей пати? private static boolean PartyDrop = true; //Включить награду нублом? private static boolean NOBLE = true; //Включить награду хиро? private static boolean HERO = true; //На сколько давать хиро private final static int DayHero = 1; //Включить награду премиум? private static boolean PREMIUM = true; //На сколько давать премиум private final static int DayPremium = 1; //Включить награду итемом? private static boolean RewardItem = true; //Итем ид private final static int RewardItemId = 57; //Количество private final static int RewardItemCount = 1; //Шанс дропа предмета private final static int chance = 20; //Сколько разрешено иметь в инве таких предметов private final static int count = 1; //Включить награду скилами? private static boolean RewardSkill = true; //Скилл ид private final static int RewardSkillId = 2; //Скилл лвл private final static int RewardSkillLvl = 1; public NpcScript(int questId, String name, String descr) { super(questId, name, descr, 1); for (int boss : BossIds) addKillId(boss); } @Override public String onKill(L2NpcInstance npc, L2PcInstance xzkaknazvat, boolean isPet) { int npcId = npc.getNpcId(); for (int id : BossIds) if (npcId == id) if (HERO) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.setHero(DayHero); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } } else { xzkaknazvat.setHero(DayHero); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0435\u0440\u043e\u044f."); } } if (PREMIUM) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.storePremium(DayPremium); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u043c\u0438\u0443\u043c."); } } else { xzkaknazvat.storePremium(DayPremium); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u043c\u0438\u0443\u043c."); } } if (NOBLE) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { if (Rnd.get(50)) { xzkaknazvatpaty.setNoble(true); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0443\u0431\u043b\u0435\u0441."); } } else { xzkaknazvat.setNoble(true); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0443\u0431\u043b\u0435\u0441."); } } if (RewardItem) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) if (Rnd.get(100) < chance) if (xzkaknazvatpaty.getInventory().getInventoryItemCount(RewardItemId,0) < count) { xzkaknazvatpaty.getInventory().addItem("Reward", RewardItemId, RewardItemCount, xzkaknazvatpaty, null); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043c\u0435\u0442."); xzkaknazvatpaty.broadcastUserInfo(); } else { if (Rnd.get(100) < chance) if (xzkaknazvat.getInventory().getInventoryItemCount(RewardItemId,0) < count) xzkaknazvat.getInventory().addItem("Reward", RewardItemId, RewardItemCount, xzkaknazvat, null); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043c\u0435\u0442."); xzkaknazvat.broadcastUserInfo(); } } if (RewardSkill) { L2Party party = xzkaknazvat.getParty(); if (party != null && PartyDrop) for (L2PcInstance xzkaknazvatpaty : party.getPartyMembers()) { xzkaknazvatpaty.removeSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl)); xzkaknazvatpaty.addSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl), true); xzkaknazvatpaty.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0438\u043b."); } else { xzkaknazvat.removeSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl)); xzkaknazvat.addSkill(SkillTable.getInstance().getInfo(RewardSkillId, RewardSkillLvl), true); xzkaknazvat.sendMessage("\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0438\u043b."); } } return null; } public static void main(String[] args) { new NpcScript(-1, "NpcScript", "ai"); } } ой спасибочки большое)а можно это как то вывести на верх или зделать что бы учитывался шанс к примеру либо дам я тебе хиро либо дам тебе премиум с шансом таким то)? ток тут ошибочка( Loading StaticObjects... total 29 objects. GameServer: Loading Server Scripts ---------- 1. ERROR in \NpcScript.java (at line 63) if (Rnd.get(70)) ^^^^^^^^^^^ Type mismatch: cannot convert from int to boolean ---------- 2. ERROR in \NpcScript.java (at line 81) if (Rnd.get(70)) ^^^^^^^^^^^ Type mismatch: cannot convert from int to boolean ---------- 3. ERROR in \NpcScript.java (at line 99) if (Rnd.get(70)) ^^^^^^^^^^^ Type mismatch: cannot convert from int to boolean ---------- 3 problems (3 errors)Type mismatch: cannot convert from int to boolean Type mismatch: cannot convert from int to boolean Type mismatch: cannot convert from int to boolean Failed executing script: E:\server\game\data\scripts\ai\NpcScript.java. See NpcS cript.java.error.log for details. GameServer: Compiled Scripts Cache is disabled. Изменено 12 апреля, 2014 пользователем Astral Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoFace 315 Опубликовано 12 апреля, 2014 ой спасибочки большое)а можно это как то вывести на верх или зделать что бы учитывался шанс к примеру либо дам я тебе хиро либо дам тебе премиум с шансом таким то)? Т.е. создавать для каждого параметра отдельный шанс ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astral 31 Опубликовано 12 апреля, 2014 (изменено) Т.е. создавать для каждого параметра отдельный шанс ? дасам скрипт http://rghost.ru/54051419 Изменено 12 апреля, 2014 пользователем Astral Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoFace 315 Опубликовано 12 апреля, 2014 да сам скрипт http://rghost.ru/54051419 Это уже к Демонкулу, мне лень. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты