dbnfkbr33 1 Опубликовано 26 марта, 2019 (изменено) Выбивает ошибку на эвент,сборка l2Open, поменял импорт, стояло import l2r.Config; , заменил l2r на l2open ( в других работающих на серве явах, такие импорты),хз в чем проблема, какие мысли поэтому поводу?(так то на серваке есть эвент еще один ласт хиро, он через init_.py но там не дается награда геройство, пришлось искать другой) Спойлер L2Player cannot be resolved to a type ---------- 89. ERROR in \LastHero.java (at line 341) else ((L2Player) killer).getInventory().addItem(item_id_, item_count_, 0 , "last_hero"); ^^^^^^^^ L2Player cannot be resolved to a type ---------- 90. ERROR in \LastHero.java (at line 347) L2Player player) ^^^^^^^^ L2Player cannot be resolved to a type ---------- 91. ERROR in \LastHero.java (at line 349) if(_status > 0 && self != null && self.isPlayer && live_list.contains(se lf)) ^^^^^^^^^^^^^ self.isPlayer cannot be resolved or is not a field ---------- 92. ERROR in \LastHero.java (at line 349) if(_status > 0 && self != null && self.isPlayer && live_list.contains(se lf)) ^^^^^^^^^ live_list cannot be resolved ---------- 93. ERROR in \LastHero.java (at line 351) live_list.remove(self); ^^^^^^^^^ live_list cannot be resolved ---------- 94. ERROR in \LastHero.java (at line 352) ((L2Player) self).setTeam(0); ^^^^^^^^ L2Player cannot be resolved to a type ---------- 95. ERROR in \LastHero.java (at line 357) private class ZoneListener extends L2ZoneEnterLeaveListener ^^^^^^^^^^^^^^^^^^^^^^^^ L2ZoneEnterLeaveListener cannot be resolved to a type ---------- 96. ERROR in \LastHero.java (at line 360) public void objectEntered(L2Zone zone, L2Object object) ^^^^^^ L2Zone cannot be resolved to a type ---------- 97. ERROR in \LastHero.java (at line 362) if(_status > 0 && object != null && object.getPlayer() != null && !live_ list.contains(object.getPlayer())) ^^^^^^^^^ The method getPlayer() is undefined for the type L2Object ---------- 98. ERROR in \LastHero.java (at line 362) if(_status > 0 && object != null && object.getPlayer() != null && !live_ list.contains(object.getPlayer())) ^^^^^ ^^^^ live_list cannot be resolved ---------- 99. ERROR in \LastHero.java (at line 362) if(_status > 0 && object != null && object.getPlayer() != null && !live_ list.contains(object.getPlayer())) ^^^^^^^^^ The method getPlayer() is undefined for the type L2Object ---------- 100. ERROR in \LastHero.java (at line 367) public void objectLeaved(L2Zone zone, L2Object object) ^^^^^^ L2Zone cannot be resolved to a type ---------- 100 problems (100 errors)Functions cannot be resolved to a type ScriptFile cannot be resolved to a type L2ZoneEnterLeaveListener cannot be resolved to a type The import com.l2open.extensions cannot be resolved The import com.l2open.extensions cannot be resolved The import com.l2open.extensions cannot be resolved The import com.l2open.gameserver.model.L2Zone cannot be resolved The import com.l2open.gameserver.model.instances cannot be resolved The import com.l2open.gameserver.serverpackets cannot be resolved The import com.l2open.gameserver.tables cannot be resolved The import com.l2open.util.Files cannot be resolved The import com.l2open.util.Location cannot be resolved java.util.concurrent.ScheduledFuture is a raw type. References to generic type j ava.util.concurrent.ScheduledFuture<V> should be parameterized L2Zone cannot be resolved to a type L2Player cannot be resolved to a type L2NpcInstance cannot be resolved to a type L2Player cannot be resolved to a type L2Player cannot be resolved to a type L2Character cannot be resolved to a type L2Zone cannot be resolved to a type L2Zone cannot be resolved to a type The method getPlayer() is undefined for the type com.l2open.gameserver.model.L2O bject live_list cannot be resolved The method getPlayer() is undefined for the type com.l2open.gameserver.model.L2O bject L2Character cannot be resolved to a type L2Player cannot be resolved to a type The method getPlayer() is undefined for the type com.l2open.gameserver.model.L2O bject live_list cannot be resolved L2Playable cannot be resolved to a type L2Playable cannot be resolved to a type L2Player cannot be resolved to a type L2Player cannot be resolved to a type Config.EVENT_LastHeroTime cannot be resolved ZoneType cannot be resolved Config.EVENT_LastHeroItemID cannot be resolved Config.EVENT_LastHeroItemCOUNT cannot be resolved Config.EVENT_LastHeroRate cannot be resolved _zone cannot be resolved _zone cannot be resolved L2Player cannot be resolved to a type L2Player cannot be resolved to a type Files cannot be resolved L2Player cannot be resolved to a type players_list cannot be resolved L2Player cannot be resolved to a type live_list cannot be resolved L2Player cannot be resolved to a type The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero L2Player cannot be resolved to a type Cannot make a static reference to the non-static method getAllPlayers() from the type com.l2open.gameserver.model.L2World Can only iterate over an array or an instance of java.lang.Iterable players_list cannot be resolved The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero players_list cannot be resolved L2Player cannot be resolved to a type live_list cannot be resolved L2Player cannot be resolved to a type L2Player cannot be resolved to a type L2Player cannot be resolved to a type L2Player cannot be resolved to a type The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero The method executeTask(java.lang.String, java.lang.String, java.lang.Object[], i nt) is undefined for the type events.lastHero.LastHero players_list cannot be resolved players_list cannot be resolved players_list cannot be resolved SkillTable cannot be resolved players_list cannot be resolved players_list cannot be resolved players_list cannot be resolved players_list cannot be resolved L2Player cannot be resolved to a type L2Player cannot be resolved to a type players_list cannot be resolved players_list cannot be resolved L2Player cannot be resolved to a type L2Player cannot be resolved to a type live_list cannot be resolved live_list cannot be resolved L2Player cannot be resolved to a type L2Player cannot be resolved to a type live_list cannot be resolved live_list cannot be resolved live_list cannot be resolved live_list cannot be resolved self.isPlayer cannot be resolved or is not a field live_list cannot be resolved live_list cannot be resolved L2Player cannot be resolved to a type L2Player cannot be resolved to a type L2Player cannot be resolved to a type L2Player cannot be resolved to a type L2Player cannot be resolved to a type self.isPlayer cannot be resolved or is not a field live_list cannot be resolved live_list cannot be resolved L2Player cannot be resolved to a type 26 ьрЁ 19:10:01: [WARNING] Failed executing script: C:\Users\Cruze\Desktop\serv\ Game\data\scripts\events\lasthero\LastHero.java. See LastHero.java.error.log for details. 26 ьрЁ 19:10:02: [INFO] Compiled Scripts Cache is disabled. lasthero.error Спойлер Error on: C:\Users\Cruze\Desktop\serv\Game\data\scripts\events\lastHero\LastHero.java.error.log Line: -1 - Column: -1 compilation failed скрипт эвента Спойлер package events.lastHero; import com.l2open.Config; import com.l2open.extensions.listeners.L2ZoneEnterLeaveListener; import com.l2open.extensions.scripts.Functions; import com.l2open.extensions.scripts.ScriptFile; import com.l2open.gameserver.Announcements; import com.l2open.gameserver.instancemanager.ZoneManager; import com.l2open.gameserver.model.*; import com.l2open.gameserver.model.L2Zone.ZoneType; import com.l2open.gameserver.model.instances.L2NpcInstance; import com.l2open.gameserver.serverpackets.Revive; import com.l2open.gameserver.tables.SkillTable; import com.l2open.util.Files; import com.l2open.util.Location; import com.l2open.util.Rnd; import com.l2open.util.Util; import java.util.ArrayList; import java.util.concurrent.ScheduledFuture; public class LastHero extends Functions implements ScriptFile { public static L2Object self; public static L2NpcInstance npc; private static ArrayList<L2Player> players_list = new ArrayList<L2Player>(); private static ArrayList<L2Player> live_list = new ArrayList<L2Player>(); private static Integer _status = 0; private static Integer _time_to_start = Config.EVENT_LastHeroTime; @SuppressWarnings("unchecked") private static ScheduledFuture _endTask; private static L2Zone _zone = ZoneManager.getInstance().getZoneByIndex(ZoneType.battle_zone, 4, true); ZoneListener _zoneListener = new ZoneListener(); private static Integer item_id_ = Config.EVENT_LastHeroItemID; private static Integer item_count_ = Config.EVENT_LastHeroItemCOUNT; private static Boolean rate_ = Config.EVENT_LastHeroRate; public void onLoad() { _zone.getListenerEngine().addMethodInvokedListener(_zoneListener); System.out.println("Loaded Event: Last Hero"); } public void onReload() { _zone.getListenerEngine().removeMethodInvokedListener(_zoneListener); } public void onShutdown() { onReload(); } public static String DialogAppend_31225(Integer val) { if(val == 0) { L2Player player = (L2Player) self; return Files.read("data/scripts/events/lastHero/31225.html", player); } return ""; } public static void start() { if(!((L2Player) self).getPlayerAccess().IsEventGm) return; _status = 0; players_list = new ArrayList<L2Player>(); live_list = new ArrayList<L2Player>(); Announcements.getInstance().announceToAll("Запущен эвент 'Last Hero'. Все зарегистрированные участники будут телепортированы в Coliseum через 5 минут."); Announcements.getInstance().announceToAll("Игроки, отказавшиеся от участия в эвенте смогут наблюдать за битвой через обзорные кристаллы."); executeTask("events.lastHero.LastHero", "question", new Object[0], 10000); executeTask("events.lastHero.LastHero", "announce", new Object[0], 60000); } public static void question() { for(L2Player player : L2World.getAllPlayers()) player.scriptRequest("Вы хотите принять участие в эвенте?", "events.lastHero.LastHero:addPlayer", new Object[0]); } public static void announce() { Announcements a = Announcements.getInstance(); if(players_list.size() < 2) { a.announceToAll("Эвент отменен, слишком мало участников."); return; } if(_time_to_start > 1) { _time_to_start--; a.announceToAll("Начало эвента через " + _time_to_start + " мин."); a.announceToAll("Пропустившие момент регистрации, могут зарегистрироваться у Arena Manager в MDT."); executeTask("events.lastHero.LastHero", "announce", new Object[0], 60000); } else { a.announceToAll("Телепортация игроков..."); executeTask("events.lastHero.LastHero", "prepare", new Object[0], 5000); } } public void addPlayer() { players_list.add((L2Player) self); live_list.add((L2Player) self); if(((L2Player) self).getParty() != null) ((L2Player) self).getParty().removePartyMember((L2Player) self); } public static void prepare() { cleanPlayers(); cleanLive(); executeTask("events.lastHero.LastHero", "ressurectPlayers", new Object[0], 1000); executeTask("events.lastHero.LastHero", "healPlayers", new Object[0], 2000); executeTask("events.lastHero.LastHero", "saveBackCoords", new Object[0], 3000); executeTask("events.lastHero.LastHero", "paralyzePlayers", new Object[0], 4000); executeTask("events.lastHero.LastHero", "teleportPlayersToColiseum", new Object[0], 5000); executeTask("events.lastHero.LastHero", "go", new Object[0], 120000); Announcements a = Announcements.getInstance(); a.announceToAll("Правила эвента 'Last Hero':"); a.announceToAll("Эвент длится 5 минут."); a.announceToAll("Цель - убить как можно больше игроков."); a.announceToAll("За каждого убитого вам дают 5к * уровень убитого аден."); a.announceToAll("Старт через 2 минуты, по команде 'FIGHT!!!'."); } public static void go() { _status = 1; upParalyzePlayers(); checkLive(); Announcements.getInstance().announceToAll(">>> FIGHT!!! <<<"); _endTask = executeTask("events.lastHero.LastHero", "endBattle", new Object[0], 300000); } public static void endBattle() { _status = 0; Announcements a = Announcements.getInstance(); a.announceToAll("Эвент 'Last Hero' окончен."); a.announceToAll("Через 1 минуту все участники будут вылечены и телепортированы обратно."); executeTask("events.lastHero.LastHero", "end", new Object[0], 60000); _endTask.cancel(false); _endTask = null; } public static void end() { executeTask("events.lastHero.LastHero", "ressurectPlayers", new Object[0], 1000); executeTask("events.lastHero.LastHero", "healPlayers", new Object[0], 2000); executeTask("events.lastHero.LastHero", "teleportPlayersToSavedCoords", new Object[0], 3000); } public static void saveBackCoords() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) player.setVar("LastHero_backCoords", player.getX() + " " + player.getY() + " " + player.getZ()); } } public static void teleportPlayersToColiseum() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) { Location pos = Rnd.coordsRandomize(149505, 46719, -3417, 0, 0, 500); player.teleToLocation(pos); } } } public static void teleportPlayersToSavedCoords() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) { String var = player.getVar("LastHero_backCoords"); if(var == null || var.equals("")) continue; String[] coords = var.split(" "); if(coords.length != 3) continue; Location pos = new Location(Integer.parseInt(coords[0]), Integer.parseInt(coords[1]), Integer.parseInt(coords[2])); player.teleToLocation(pos); player.unsetVar("LastHero_backCoords"); } } } public static void paralyzePlayers() { L2Skill revengeSkill = SkillTable.getInstance().getInfo(4515, 1); synchronized (players_list) { for(L2Player player : players_list) if(player != null) { revengeSkill.getEffects(player, player, false); if(player.getPet() != null) revengeSkill.getEffects(player, player.getPet(), false); } } } public static void upParalyzePlayers() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) { player.stopEffect(4515); if(player.getPet() != null) player.getPet().stopEffect(4515); if(player.getParty() != null) player.getParty().removePartyMember(player); } } } public static void ressurectPlayers() { synchronized (players_list) { for(L2Player player : players_list) if(player != null && player.isDead()) { player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp()); player.setCurrentCp(player.getMaxCp()); player.restoreExp(); player.broadcastPacket(new Revive(player)); player.doRevive(); } } } public static void healPlayers() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) { player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp()); player.setCurrentCp(player.getMaxCp()); } } } public static void cleanPlayers() { ArrayList<L2Player> temp = new ArrayList<L2Player>(); synchronized (players_list) { for(L2Player player : players_list) if(player != null) temp.add(player); } players_list = temp; } public static void cleanLive() { ArrayList<L2Player> temp = new ArrayList<L2Player>(); synchronized (live_list) { for(L2Player player : live_list) if(player != null) temp.add(player); } live_list = temp; } public static void checkLive() { ArrayList<L2Player> temp = new ArrayList<L2Player>(); synchronized (live_list) { for(L2Player player : live_list) if(player != null && player.isInZone(ZoneType.battle_zone) && !player.isDead()) { temp.add(player); player.setTeam(2); } else if(player != null) { player.setTeam(0); player.sendMessage("Вы проиграли! Дождитесь окончания эвента для обратной телепортации."); } } live_list = temp; if(live_list.size() <= 1) endBattle(); } public static void removeAura() { synchronized (live_list) { for(L2Player player : live_list) if(player != null) player.setTeam(0); } } public static void onDie(L2Object self, L2Character killer) { if(_status > 0 && self != null && self.isPlayer && live_list.contains(self)) { live_list.remove(self); ((L2Player) self).setTeam(0); ((L2Player) self).sendMessage("Вы проиграли! Дождитесь окончания эвента для обратной телепортации."); checkLive(); if(killer != null && killer.isPlayer) { if(rate_) ((L2Player) killer).getInventory().addItem(item_id_, ((L2Player) self).getLevel() * item_count_, 0, "last_hero"); else ((L2Player) killer).getInventory().addItem(item_id_, item_count_, 0, "last_hero"); } } } public static void OnPlayerExit(@SuppressWarnings("unused") L2Player player) { if(_status > 0 && self != null && self.isPlayer && live_list.contains(self)) { live_list.remove(self); ((L2Player) self).setTeam(0); checkLive(); } } private class ZoneListener extends L2ZoneEnterLeaveListener { @Override public void objectEntered(L2Zone zone, L2Object object) { if(_status > 0 && object != null && object.getPlayer() != null && !live_list.contains(object.getPlayer())) ((L2Character) object).teleToLocation(147451, 46728, -3410); } @Override public void objectLeaved(L2Zone zone, L2Object object) { L2Player player = object.getPlayer(); if(_status > 0 && player != null && live_list.contains(player)) { L2Playable playable = (L2Playable) object; double angle = Util.convertHeadingToDegree(playable.getHeading()); // угол в градусах double radian = Math.toRadians(angle - 90); // угол в радианах playable.teleToLocation((int) (playable.getX() + 50 * Math.sin(radian)), (int) (playable.getY() - 50 * Math.cos(radian)), playable.getZ()); } } } } редактировал через нотепад, кодировка стоит utf8 Изменено 26 марта, 2019 пользователем dbnfkbr33 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Khrome 276 Опубликовано 26 марта, 2019 т.е. чтобы добавить выдачу геройства за лх ты взял другой ивент? .... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 26 марта, 2019 1 час назад, Khrome сказал: т.е. чтобы добавить выдачу геройства за лх ты взял другой ивент? .... Ага. И заменой импортов заставить новый ивент работать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 26 марта, 2019 2 часа назад, dbnfkbr33 сказал: хз в чем проблема, какие мысли поэтому поводу? проблема в том что перед тем как начать ковыряться в коде сервера, стоило бы для начала выучить хотя бы основы Java... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dbnfkbr33 1 Опубликовано 27 марта, 2019 15 часов назад, Khrome сказал: т.е. чтобы добавить выдачу геройства за лх ты взял другой ивент? .... подскажи тогда пож, как написать выдачу хиро до релога или рестарта в награду? лх тот что рабочий Спойлер qn = "777_LastHero" # =======================================# # Настройки # # =======================================# # Название Эвента (только английские символы) Event_name = "LastHero" # Город, в котором вы хотите поставить регистрирующего НПЦ. StartLocation = "Giran" # ID-номер регистрирующего нпц Reg_Npc = 77777 # Координаты, где будет появляться регистрирующий НПЦ StartNpcCoordinat = [82698,148638,-3468] # Вещи, необходимый для участия в Эвенте. # Формат записи [itemId1,itemId2,....] Price = [5575,57] # Сколько заданных вещей необходимых для участия в Эвенте. Если хотите чтобы участие было бесплатным - поставте 0. # Формат записи [itemId1_count,itemId2_count,....] Price_count = [0,5] # Минимальный уровень, на котором игрок сможет принять участие в Эвенте. Min_level = 40 # Через какое время эвент запустится после рестарта сервера.(указывать в секундах) Time_to_start_after_restart = 120 # Через какое время после телепортации на эвент начнеться битва.(указывать в секундах) Time_to_wait_battle = 30 # Время между Эвентами.(указывать в минутах) Time_to_next_start = 10 # Время на регистрацию.(указывать в минутах) Time_for_regestration = 3 # Как часто аннонсить о регистрации на Эвент.(указывать в секундах) Announce_reg_delay = 60 # Минимальное количество игроков(не меньше 2). Min_participate_count = 2 # Максимальное количество игроков. Max_participate_count = 80 # Список наград при победе в эвенте. Выдаётся каждому игроку. # Формат записи: [[itemId1,count1,chance1],[itemId2,count2,chanceN],...] Rewards = [[4356,500,100],[6393,100,100]] # Координаты точки куда будут телепортироваться игроки. Teleport_coordinat = [149438, 46785, -3413] # Двери которые будут закрываться на периоод прохождения эвента. # Формат записи: [Door_id1,Door_id2,...] Doors = [24190002,24190003] # ================Неизменять================ # lastPlayers = [] lastX = [] lastY = [] lastZ = [] closed = 1 Players = [] Deadplayers = [] annom = 1 class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def init_LoadGlobalData(self) : self.startQuestTimer("open_reg", Time_to_start_after_restart *1000, None, None) return def onTalk (Self,npc,player): global Players,closed st = player.getQuestState(qn) npcId = npc.getNpcId() if npcId == Reg_Npc: if closed<>1: if not player.isInOlympiadMode() : if player.getLevel() >= Min_level: if player.getName() not in Players: if len(Players) <= Max_participate_count : if Price_count[0]<>0: if st.getQuestItemsCount(Price[0])>Price_count[0]: st.takeItems(Price[0],Price_count[0]) Players.append(player.getName()) return "reg.htm" else: st.exitQuest(1) return "noPrice.htm" else: Players.append(player.getName()) return "reg.htm" else: return "max.htm" else: return "yje.htm" else: return "lvl.htm" else: return "You register in olympiad games now" else: return "noreg.htm" return def onAdvEvent (self,event,npc,player): global Deadplayers,Players,annom,closed,Doors,lastPlayers,lastX,lastY,lastZ if event == "open_reg" : closed = 0 annom = 1 lastPlayers = [] Players = [] Deadplayers = [] lastX = [] lastY = [] lastZ = [] npc = self.addSpawn(Reg_Npc,StartNpcCoordinat[0],StartNpcCoordinat[1],StartNpcCoordinat[2],30000,False,0) self.startQuestTimer("wait_battle", Time_for_regestration*60000, npc, None) self.startQuestTimer("announce", Announce_reg_delay*1000, None, None) Announcements.getInstance().announceToAll("Opened registration for "+str(Event_name)+" event! You can register in "+str(StartLocation)+".") if event == "start_event": if len(Players)< Min_participate_count : closed=1 Announcements.getInstance().announceToAll("Event "+str(Event_name)+" was canceled due lack of participation.") self.startQuestTimer("set_winner", 1000, None, None) self.startQuestTimer("open_reg", Time_to_next_start*60000, None, None) else: closed=1 Announcements.getInstance().announceToAll("Event "+str(Event_name)+" has started!") for nm in Players : i=L2World.getInstance().getPlayer(nm) if i<>None: if i.isOnline() : i.getAppearance().setVisible() i.broadcastStatusUpdate() i.broadcastUserInfo() while len(Players)>1 : for nm in Players : i=L2World.getInstance().getPlayer(nm) if i<>None: if i.isDead(): i.reviveAnswer(0) Deadplayers.append(i.getName()) Players.remove(i.getName()) self.startQuestTimer("set_winner", 1000, None, None) if event == "announce" and closed==0 and (Time_for_regestration*60 - Announce_reg_delay * annom)>0: Announcements.getInstance().announceToAll(str(Time_for_regestration*60 - Announce_reg_delay * annom ) + " seconds until event "+str(Event_name)+" will start! You can register in "+str(StartLocation)+".") annom=annom+1 self.startQuestTimer("announce", Announce_reg_delay*1000, None, None) if event == "set_winner" : if len(Players) > 0 and len(Players + Deadplayers) >= Min_participate_count: winner=L2World.getInstance().getPlayer(Players[0]) Deadplayers.append(Players[0]) if winner.isDead(): Announcements.getInstance().announceToAll("Event "+str(Event_name)+" has ended. All players is dead. Nobody Win") else : Announcements.getInstance().announceToAll("Event "+str(Event_name)+" has ended.") Announcements.getInstance().announceToAll("Event: "+str(Players[0])+" win!") for nm in Deadplayers : i=L2World.getInstance().getPlayer(nm) if i<>None and i.isOnline(): if i.isDead(): i.doRevive() i.setCurrentCp(i.getMaxCp()) i.setCurrentHp(i.getMaxHp()) i.setCurrentMp(i.getMaxMp()) i.stopAllEffects() i.broadcastStatusUpdate() i.broadcastUserInfo() if len(Deadplayers)>0: n = 0 for nm in lastPlayers : i=L2World.getInstance().getPlayer(nm) i.teleToLocation(lastX[n],lastY[n],lastZ[n]) n = n + 1 if winner<>None: if winner.isOnline() : for id, count, chance in Rewards : winner.getQuestState(qn).giveItems(id,count) Announcements.getInstance().announceToAll("Next time registration opend at "+str(Time_to_next_start)+" minute(s)") for d in Doors: door = DoorTable.getInstance().getDoor(d) door.openMe() lastPlayers = [] Players = [] Deadplayers = [] lastX = [] lastY = [] lastZ = [] self.startQuestTimer("open_reg", Time_to_next_start*60000, None, None) if event == "exit" : if player.getName() in Players: Players.remove(player.getName()) return "exit.htm" else: return "default.htm" if event == "wait_battle": npc.deleteMe() if len(Players) >= Min_participate_count: for nm in Players: i=L2World.getInstance().getPlayer(nm) if i<>None: if not i.isOnline() or i.isInOlympiadMode() or i.isInJail(): Players.remove(nm) else: Players.remove(nm) for nm in Players: i=L2World.getInstance().getPlayer(nm) if i<>None: if i.isOnline() : if i.isDead(): i.doRevive() i.setCurrentCp(i.getMaxCp()) i.setCurrentHp(i.getMaxHp()) i.setCurrentMp(i.getMaxMp()) i.stopAllEffects() i.getAppearance().setInvisible(); i.broadcastStatusUpdate() i.broadcastUserInfo() lastPlayers.append(nm) lastX.append(i.getX()) lastY.append(i.getY()) lastZ.append(i.getZ()) i.teleToLocation(Teleport_coordinat[0],Teleport_coordinat[1],Teleport_coordinat[2]) for d in Doors: door = DoorTable.getInstance().getDoor(d) door.closeMe() Announcements.getInstance().announceToAll("Event "+str(Event_name)+": Registration close. You have "+str(Time_to_wait_battle)+" seconds for buffs before battle start") self.startQuestTimer("start_event", Time_to_wait_battle*1000, None, None) else : self.startQuestTimer("start_event", 1000, None, None) QUEST = Quest(777, qn, "custom") QUEST.addStartNpc(int(Reg_Npc)) QUEST.addTalkId(int(Reg_Npc)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dbnfkbr33 1 Опубликовано 27 марта, 2019 14 часов назад, Se1dhe сказал: Ага. И заменой импортов заставить новый ивент работать ну а я знаю в чем дело? в гугле у кого проблемы есть с этим, пишут умники что смотри импорты, больше нихрена нету. 13 часов назад, Gaikotsu сказал: проблема в том что перед тем как начать ковыряться в коде сервера, стоило бы для начала выучить хотя бы основы Java... Давай, с удовольствием, подскажи где учить и только чтобы разборчиво было и понятно для неопытного человека Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Edgar 356 Опубликовано 27 марта, 2019 8 минут назад, dbnfkbr33 сказал: ну а я знаю в чем дело? в гугле у кого проблемы есть с этим, пишут умники что смотри импорты, больше нихрена нету. Давай, с удовольствием, подскажи где учить и только чтобы разборчиво было и понятно для неопытного человека Брюс Эккель и Герберг Шилдт в помощ, либо плати деньги Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dbnfkbr33 1 Опубликовано 27 марта, 2019 1 минуту назад, Solution сказал: Брюс Эккель и Герберг Шилдт в помощ, либо плати деньги намекаешь с ним связаться и учиться у него или че?)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dbnfkbr33 1 Опубликовано 27 марта, 2019 15 часов назад, Khrome сказал: т.е. чтобы добавить выдачу геройства за лх ты взял другой ивент? .... Братюнь, как прописать выдачу геройства в награду? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 27 марта, 2019 (изменено) 10 часов назад, dbnfkbr33 сказал: намекаешь с ним связаться и учиться у него или че?)) тебе намекают на то что стоит скачать книги этих авторов и почитать к примеру эти https://rutracker.org/forum/viewtopic.php?t=5089328 https://rutracker.org/forum/viewtopic.php?t=4966038 хотя как подозреваю, тебе лучше будет начать с этого https://rutracker.org/forum/viewtopic.php?t=3791349 Изменено 27 марта, 2019 пользователем Gaikotsu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dbnfkbr33 1 Опубликовано 27 марта, 2019 20 минут назад, Gaikotsu сказал: тебе намекают на то что стоит скачать книги этих авторов и почитать к примеру эти https://rutracker.org/forum/viewtopic.php?t=5089328 https://rutracker.org/forum/viewtopic.php?t=4966038 хотя как подозреваю, тебе лучше будет начать с этого https://rutracker.org/forum/viewtopic.php?t=3791349 что то ссылки не рабочие, ребят объясните как сделать в моем рабочем эвенте награду хиро последнему выжевшему? что за код там? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Khrome 276 Опубликовано 27 марта, 2019 12 минут назад, dbnfkbr33 сказал: что то ссылки не рабочие, ребят объясните как сделать в моем рабочем эвенте награду хиро последнему выжевшему? что за код там? setHero() Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dbnfkbr33 1 Опубликовано 27 марта, 2019 1 час назад, Khrome сказал: setHero() Спойлер package events.lastHero; import com.l2open.Config; import com.l2open.extensions.listeners.L2ZoneEnterLeaveListener; import com.l2open.extensions.scripts.Functions; import com.l2open.extensions.scripts.ScriptFile; import com.l2open.gameserver.Announcements; import com.l2open.gameserver.instancemanager.ZoneManager; import com.l2open.gameserver.model.*; import com.l2open.gameserver.model.L2Zone.ZoneType; import com.l2open.gameserver.model.instances.L2NpcInstance; import com.l2open.gameserver.serverpackets.Revive; import com.l2open.gameserver.tables.SkillTable; import com.l2open.util.Files; import com.l2open.util.Location; import com.l2open.util.Rnd; import com.l2open.util.Util; import java.util.ArrayList; import java.util.concurrent.ScheduledFuture; public class LastHero extends Functions implements ScriptFile { public static L2Object self; public static L2NpcInstance npc; private static ArrayList<L2Player> players_list = new ArrayList<L2Player>(); private static ArrayList<L2Player> live_list = new ArrayList<L2Player>(); private static Integer _status = 0; private static Integer _time_to_start = Config.EVENT_LastHeroTime; @SuppressWarnings("unchecked") private static ScheduledFuture _endTask; private static L2Zone _zone = ZoneManager.getInstance().getZoneByIndex(ZoneType.battle_zone, 4, true); ZoneListener _zoneListener = new ZoneListener(); private static Integer item_id_ = Config.EVENT_LastHeroItemID; private static Integer item_count_ = Config.EVENT_LastHeroItemCOUNT; private static Boolean rate_ = Config.EVENT_LastHeroRate; public void onLoad() { _zone.getListenerEngine().addMethodInvokedListener(_zoneListener); System.out.println("Loaded Event: Last Hero"); } public void onReload() { _zone.getListenerEngine().removeMethodInvokedListener(_zoneListener); } public void onShutdown() { onReload(); } public static String DialogAppend_31225(Integer val) { if(val == 0) { L2Player player = (L2Player) self; return Files.read("data/scripts/events/lastHero/31225.html", player); } return ""; } public static void start() { if(!((L2Player) self).getPlayerAccess().IsEventGm) return; _status = 0; players_list = new ArrayList<L2Player>(); live_list = new ArrayList<L2Player>(); Announcements.getInstance().announceToAll("Запущен эвент 'Last Hero'. Все зарегистрированные участники будут телепортированы в Coliseum через 5 минут."); Announcements.getInstance().announceToAll("Игроки, отказавшиеся от участия в эвенте смогут наблюдать за битвой через обзорные кристаллы."); executeTask("events.lastHero.LastHero", "question", new Object[0], 10000); executeTask("events.lastHero.LastHero", "announce", new Object[0], 60000); } public static void question() { for(L2Player player : L2World.getAllPlayers()) player.scriptRequest("Вы хотите принять участие в эвенте?", "events.lastHero.LastHero:addPlayer", new Object[0]); } public static void announce() { Announcements a = Announcements.getInstance(); if(players_list.size() < 2) { a.announceToAll("Эвент отменен, слишком мало участников."); return; } if(_time_to_start > 1) { _time_to_start--; a.announceToAll("Начало эвента через " + _time_to_start + " мин."); a.announceToAll("Пропустившие момент регистрации, могут зарегистрироваться у Arena Manager в MDT."); executeTask("events.lastHero.LastHero", "announce", new Object[0], 60000); } else { a.announceToAll("Телепортация игроков..."); executeTask("events.lastHero.LastHero", "prepare", new Object[0], 5000); } } public void addPlayer() { players_list.add((L2Player) self); live_list.add((L2Player) self); if(((L2Player) self).getParty() != null) ((L2Player) self).getParty().removePartyMember((L2Player) self); } public static void prepare() { cleanPlayers(); cleanLive(); executeTask("events.lastHero.LastHero", "ressurectPlayers", new Object[0], 1000); executeTask("events.lastHero.LastHero", "healPlayers", new Object[0], 2000); executeTask("events.lastHero.LastHero", "saveBackCoords", new Object[0], 3000); executeTask("events.lastHero.LastHero", "paralyzePlayers", new Object[0], 4000); executeTask("events.lastHero.LastHero", "teleportPlayersToColiseum", new Object[0], 5000); executeTask("events.lastHero.LastHero", "go", new Object[0], 120000); Announcements a = Announcements.getInstance(); a.announceToAll("Правила эвента 'Last Hero':"); a.announceToAll("Эвент длится 5 минут."); a.announceToAll("Цель - убить как можно больше игроков."); a.announceToAll("За каждого убитого вам дают 5к * уровень убитого аден."); a.announceToAll("Старт через 2 минуты, по команде 'FIGHT!!!'."); } public static void go() { _status = 1; upParalyzePlayers(); checkLive(); Announcements.getInstance().announceToAll(">>> FIGHT!!! <<<"); _endTask = executeTask("events.lastHero.LastHero", "endBattle", new Object[0], 300000); } public static void endBattle() { _status = 0; Announcements a = Announcements.getInstance(); a.announceToAll("Эвент 'Last Hero' окончен."); a.announceToAll("Через 1 минуту все участники будут вылечены и телепортированы обратно."); executeTask("events.lastHero.LastHero", "end", new Object[0], 60000); _endTask.cancel(false); _endTask = null; } public static void end() { executeTask("events.lastHero.LastHero", "ressurectPlayers", new Object[0], 1000); executeTask("events.lastHero.LastHero", "healPlayers", new Object[0], 2000); executeTask("events.lastHero.LastHero", "teleportPlayersToSavedCoords", new Object[0], 3000); } public static void saveBackCoords() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) player.setVar("LastHero_backCoords", player.getX() + " " + player.getY() + " " + player.getZ()); } } public static void teleportPlayersToColiseum() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) { Location pos = Rnd.coordsRandomize(149505, 46719, -3417, 0, 0, 500); player.teleToLocation(pos); } } } public static void teleportPlayersToSavedCoords() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) { String var = player.getVar("LastHero_backCoords"); if(var == null || var.equals("")) continue; String[] coords = var.split(" "); if(coords.length != 3) continue; Location pos = new Location(Integer.parseInt(coords[0]), Integer.parseInt(coords[1]), Integer.parseInt(coords[2])); player.teleToLocation(pos); player.unsetVar("LastHero_backCoords"); } } } public static void paralyzePlayers() { L2Skill revengeSkill = SkillTable.getInstance().getInfo(4515, 1); synchronized (players_list) { for(L2Player player : players_list) if(player != null) { revengeSkill.getEffects(player, player, false); if(player.getPet() != null) revengeSkill.getEffects(player, player.getPet(), false); } } } public static void upParalyzePlayers() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) { player.stopEffect(4515); if(player.getPet() != null) player.getPet().stopEffect(4515); if(player.getParty() != null) player.getParty().removePartyMember(player); } } } public static void ressurectPlayers() { synchronized (players_list) { for(L2Player player : players_list) if(player != null && player.isDead()) { player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp()); player.setCurrentCp(player.getMaxCp()); player.restoreExp(); player.broadcastPacket(new Revive(player)); player.doRevive(); } } } public static void healPlayers() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) { player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp()); player.setCurrentCp(player.getMaxCp()); } } } public static void cleanPlayers() { ArrayList<L2Player> temp = new ArrayList<L2Player>(); synchronized (players_list) { for(L2Player player : players_list) if(player != null) temp.add(player); } players_list = temp; } public static void cleanLive() { ArrayList<L2Player> temp = new ArrayList<L2Player>(); synchronized (live_list) { for(L2Player player : live_list) if(player != null) temp.add(player); } live_list = temp; } public static void checkLive() { ArrayList<L2Player> temp = new ArrayList<L2Player>(); synchronized (live_list) { for(L2Player player : live_list) if(player != null && player.isInZone(ZoneType.battle_zone) && !player.isDead()) { temp.add(player); player.setTeam(2); } else if(player != null) { player.setTeam(0); player.sendMessage("Вы проиграли! Дождитесь окончания эвента для обратной телепортации."); } } live_list = temp; if(live_list.size() <= 1) endBattle(); } public static void removeAura() { synchronized (live_list) { for(L2Player player : live_list) if(player != null) player.setTeam(0); } } public static void onDie(L2Object self, L2Character killer) { if(_status > 0 && self != null && self.isPlayer && live_list.contains(self)) { live_list.remove(self); ((L2Player) self).setTeam(0); ((L2Player) self).sendMessage("Вы проиграли! Дождитесь окончания эвента для обратной телепортации."); checkLive(); if(killer != null && killer.isPlayer) { if(rate_) ((L2Player) killer).getInventory().addItem(item_id_, ((L2Player) self).getLevel() * item_count_, 0, "last_hero"); else ((L2Player) killer).getInventory().addItem(item_id_, item_count_, 0, "last_hero"); } } } public static void OnPlayerExit(@SuppressWarnings("unused") L2Player player) { if(_status > 0 && self != null && self.isPlayer && live_list.contains(self)) { live_list.remove(self); ((L2Player) self).setTeam(0); checkLive(); } } private class ZoneListener extends L2ZoneEnterLeaveListener { @Override public void objectEntered(L2Zone zone, L2Object object) { if(_status > 0 && object != null && object.getPlayer() != null && !live_list.contains(object.getPlayer())) ((L2Character) object).teleToLocation(147451, 46728, -3410); } @Override public void objectLeaved(L2Zone zone, L2Object object) { L2Player player = object.getPlayer(); if(_status > 0 && player != null && live_list.contains(player)) { L2Playable playable = (L2Playable) object; double angle = Util.convertHeadingToDegree(playable.getHeading()); // угол в градусах double radian = Math.toRadians(angle - 90); // угол в радианах playable.teleToLocation((int) (playable.getX() + 50 * Math.sin(radian)), (int) (playable.getY() - 50 * Math.cos(radian)), playable.getZ()); } } } } но куда и как правильно вписать сет хиро чтоб все работало? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
legendaryinside 1 Опубликовано 27 марта, 2019 что за сборка стоит у вас? похоже на PW, разве PW ище кто то пользуется? для допов сойдет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Bramburg 12 Опубликовано 27 марта, 2019 13 часов назад, dbnfkbr33 сказал: намекаешь с ним связаться и учиться у него или че?)) Конкретно он намекает на это. А связаться и учиться у него, это уже как посмотреть. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dbnfkbr33 1 Опубликовано 28 марта, 2019 В 28.03.2019 в 00:43, legendaryinside сказал: что за сборка стоит у вас? похоже на PW, разве PW ище кто то пользуется? для допов сойдет в первом сообщении ж написал что л2опен, вы знаете или просто так написали?)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
legendaryinside 1 Опубликовано 28 марта, 2019 тебя заело что я написал? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Khrome 276 Опубликовано 29 марта, 2019 В 27.03.2019 в 23:56, dbnfkbr33 сказал: скрипт init_py (Показать контент) package events.lastHero; import com.l2open.Config; import com.l2open.extensions.listeners.L2ZoneEnterLeaveListener; import com.l2open.extensions.scripts.Functions; import com.l2open.extensions.scripts.ScriptFile; import com.l2open.gameserver.Announcements; import com.l2open.gameserver.instancemanager.ZoneManager; import com.l2open.gameserver.model.*; import com.l2open.gameserver.model.L2Zone.ZoneType; import com.l2open.gameserver.model.instances.L2NpcInstance; import com.l2open.gameserver.serverpackets.Revive; import com.l2open.gameserver.tables.SkillTable; import com.l2open.util.Files; import com.l2open.util.Location; import com.l2open.util.Rnd; import com.l2open.util.Util; import java.util.ArrayList; import java.util.concurrent.ScheduledFuture; public class LastHero extends Functions implements ScriptFile { public static L2Object self; public static L2NpcInstance npc; private static ArrayList<L2Player> players_list = new ArrayList<L2Player>(); private static ArrayList<L2Player> live_list = new ArrayList<L2Player>(); private static Integer _status = 0; private static Integer _time_to_start = Config.EVENT_LastHeroTime; @SuppressWarnings("unchecked") private static ScheduledFuture _endTask; private static L2Zone _zone = ZoneManager.getInstance().getZoneByIndex(ZoneType.battle_zone, 4, true); ZoneListener _zoneListener = new ZoneListener(); private static Integer item_id_ = Config.EVENT_LastHeroItemID; private static Integer item_count_ = Config.EVENT_LastHeroItemCOUNT; private static Boolean rate_ = Config.EVENT_LastHeroRate; public void onLoad() { _zone.getListenerEngine().addMethodInvokedListener(_zoneListener); System.out.println("Loaded Event: Last Hero"); } public void onReload() { _zone.getListenerEngine().removeMethodInvokedListener(_zoneListener); } public void onShutdown() { onReload(); } public static String DialogAppend_31225(Integer val) { if(val == 0) { L2Player player = (L2Player) self; return Files.read("data/scripts/events/lastHero/31225.html", player); } return ""; } public static void start() { if(!((L2Player) self).getPlayerAccess().IsEventGm) return; _status = 0; players_list = new ArrayList<L2Player>(); live_list = new ArrayList<L2Player>(); Announcements.getInstance().announceToAll("Запущен эвент 'Last Hero'. Все зарегистрированные участники будут телепортированы в Coliseum через 5 минут."); Announcements.getInstance().announceToAll("Игроки, отказавшиеся от участия в эвенте смогут наблюдать за битвой через обзорные кристаллы."); executeTask("events.lastHero.LastHero", "question", new Object[0], 10000); executeTask("events.lastHero.LastHero", "announce", new Object[0], 60000); } public static void question() { for(L2Player player : L2World.getAllPlayers()) player.scriptRequest("Вы хотите принять участие в эвенте?", "events.lastHero.LastHero:addPlayer", new Object[0]); } public static void announce() { Announcements a = Announcements.getInstance(); if(players_list.size() < 2) { a.announceToAll("Эвент отменен, слишком мало участников."); return; } if(_time_to_start > 1) { _time_to_start--; a.announceToAll("Начало эвента через " + _time_to_start + " мин."); a.announceToAll("Пропустившие момент регистрации, могут зарегистрироваться у Arena Manager в MDT."); executeTask("events.lastHero.LastHero", "announce", new Object[0], 60000); } else { a.announceToAll("Телепортация игроков..."); executeTask("events.lastHero.LastHero", "prepare", new Object[0], 5000); } } public void addPlayer() { players_list.add((L2Player) self); live_list.add((L2Player) self); if(((L2Player) self).getParty() != null) ((L2Player) self).getParty().removePartyMember((L2Player) self); } public static void prepare() { cleanPlayers(); cleanLive(); executeTask("events.lastHero.LastHero", "ressurectPlayers", new Object[0], 1000); executeTask("events.lastHero.LastHero", "healPlayers", new Object[0], 2000); executeTask("events.lastHero.LastHero", "saveBackCoords", new Object[0], 3000); executeTask("events.lastHero.LastHero", "paralyzePlayers", new Object[0], 4000); executeTask("events.lastHero.LastHero", "teleportPlayersToColiseum", new Object[0], 5000); executeTask("events.lastHero.LastHero", "go", new Object[0], 120000); Announcements a = Announcements.getInstance(); a.announceToAll("Правила эвента 'Last Hero':"); a.announceToAll("Эвент длится 5 минут."); a.announceToAll("Цель - убить как можно больше игроков."); a.announceToAll("За каждого убитого вам дают 5к * уровень убитого аден."); a.announceToAll("Старт через 2 минуты, по команде 'FIGHT!!!'."); } public static void go() { _status = 1; upParalyzePlayers(); checkLive(); Announcements.getInstance().announceToAll(">>> FIGHT!!! <<<"); _endTask = executeTask("events.lastHero.LastHero", "endBattle", new Object[0], 300000); } public static void endBattle() { _status = 0; Announcements a = Announcements.getInstance(); a.announceToAll("Эвент 'Last Hero' окончен."); a.announceToAll("Через 1 минуту все участники будут вылечены и телепортированы обратно."); executeTask("events.lastHero.LastHero", "end", new Object[0], 60000); _endTask.cancel(false); _endTask = null; } public static void end() { executeTask("events.lastHero.LastHero", "ressurectPlayers", new Object[0], 1000); executeTask("events.lastHero.LastHero", "healPlayers", new Object[0], 2000); executeTask("events.lastHero.LastHero", "teleportPlayersToSavedCoords", new Object[0], 3000); } public static void saveBackCoords() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) player.setVar("LastHero_backCoords", player.getX() + " " + player.getY() + " " + player.getZ()); } } public static void teleportPlayersToColiseum() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) { Location pos = Rnd.coordsRandomize(149505, 46719, -3417, 0, 0, 500); player.teleToLocation(pos); } } } public static void teleportPlayersToSavedCoords() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) { String var = player.getVar("LastHero_backCoords"); if(var == null || var.equals("")) continue; String[] coords = var.split(" "); if(coords.length != 3) continue; Location pos = new Location(Integer.parseInt(coords[0]), Integer.parseInt(coords[1]), Integer.parseInt(coords[2])); player.teleToLocation(pos); player.unsetVar("LastHero_backCoords"); } } } public static void paralyzePlayers() { L2Skill revengeSkill = SkillTable.getInstance().getInfo(4515, 1); synchronized (players_list) { for(L2Player player : players_list) if(player != null) { revengeSkill.getEffects(player, player, false); if(player.getPet() != null) revengeSkill.getEffects(player, player.getPet(), false); } } } public static void upParalyzePlayers() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) { player.stopEffect(4515); if(player.getPet() != null) player.getPet().stopEffect(4515); if(player.getParty() != null) player.getParty().removePartyMember(player); } } } public static void ressurectPlayers() { synchronized (players_list) { for(L2Player player : players_list) if(player != null && player.isDead()) { player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp()); player.setCurrentCp(player.getMaxCp()); player.restoreExp(); player.broadcastPacket(new Revive(player)); player.doRevive(); } } } public static void healPlayers() { synchronized (players_list) { for(L2Player player : players_list) if(player != null) { player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp()); player.setCurrentCp(player.getMaxCp()); } } } public static void cleanPlayers() { ArrayList<L2Player> temp = new ArrayList<L2Player>(); synchronized (players_list) { for(L2Player player : players_list) if(player != null) temp.add(player); } players_list = temp; } public static void cleanLive() { ArrayList<L2Player> temp = new ArrayList<L2Player>(); synchronized (live_list) { for(L2Player player : live_list) if(player != null) temp.add(player); } live_list = temp; } public static void checkLive() { ArrayList<L2Player> temp = new ArrayList<L2Player>(); synchronized (live_list) { for(L2Player player : live_list) if(player != null && player.isInZone(ZoneType.battle_zone) && !player.isDead()) { temp.add(player); player.setTeam(2); } else if(player != null) { player.setTeam(0); player.sendMessage("Вы проиграли! Дождитесь окончания эвента для обратной телепортации."); } } live_list = temp; if(live_list.size() <= 1) endBattle(); } public static void removeAura() { synchronized (live_list) { for(L2Player player : live_list) if(player != null) player.setTeam(0); } } public static void onDie(L2Object self, L2Character killer) { if(_status > 0 && self != null && self.isPlayer && live_list.contains(self)) { live_list.remove(self); ((L2Player) self).setTeam(0); ((L2Player) self).sendMessage("Вы проиграли! Дождитесь окончания эвента для обратной телепортации."); checkLive(); if(killer != null && killer.isPlayer) { if(rate_) ((L2Player) killer).getInventory().addItem(item_id_, ((L2Player) self).getLevel() * item_count_, 0, "last_hero"); else ((L2Player) killer).getInventory().addItem(item_id_, item_count_, 0, "last_hero"); } } } public static void OnPlayerExit(@SuppressWarnings("unused") L2Player player) { if(_status > 0 && self != null && self.isPlayer && live_list.contains(self)) { live_list.remove(self); ((L2Player) self).setTeam(0); checkLive(); } } private class ZoneListener extends L2ZoneEnterLeaveListener { @Override public void objectEntered(L2Zone zone, L2Object object) { if(_status > 0 && object != null && object.getPlayer() != null && !live_list.contains(object.getPlayer())) ((L2Character) object).teleToLocation(147451, 46728, -3410); } @Override public void objectLeaved(L2Zone zone, L2Object object) { L2Player player = object.getPlayer(); if(_status > 0 && player != null && live_list.contains(player)) { L2Playable playable = (L2Playable) object; double angle = Util.convertHeadingToDegree(playable.getHeading()); // угол в градусах double radian = Math.toRadians(angle - 90); // угол в радианах playable.teleToLocation((int) (playable.getX() + 50 * Math.sin(radian)), (int) (playable.getY() - 50 * Math.cos(radian)), playable.getZ()); } } } } но куда и как правильно вписать сет хиро чтоб все работало? Это тебе и предстоит выяснить, мой юный друг. Хочешь чтоб работало - всегда есть два варианта. 1) Покурить мануалы, посмотреть варианты в интернете, сделать самостоятельно. 2) Заплатить бабло и за тебя сделают другие. Вариант "принести на блюдечке с голубой каемочкой бесплатно без регистрации и смс" конечно же отсутствует так как наврятли кто-то будет тратить своё время на то чтобы переделать за тебя. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dbnfkbr33 1 Опубликовано 31 марта, 2019 В 29.03.2019 в 23:31, Khrome сказал: Это тебе и предстоит выяснить, мой юный друг. Хочешь чтоб работало - всегда есть два варианта. 1) Покурить мануалы, посмотреть варианты в интернете, сделать самостоятельно. 2) Заплатить бабло и за тебя сделают другие. Вариант "принести на блюдечке с голубой каемочкой бесплатно без регистрации и смс" конечно же отсутствует так как наврятли кто-то будет тратить своё время на то чтобы переделать за тебя. Еслиб я знал, с удовольствием кому нибудь помог бы. Что такого то, притом сейчас мало кому интересна ла2. Не все жопят инфу, а бабла платить нет брат. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dbnfkbr33 1 Опубликовано 31 марта, 2019 В 29.03.2019 в 02:15, legendaryinside сказал: тебя заело что я написал? что значит "заело"? так понял "задело", так ты сам спросил, лол "что за сборка стоит у вас?" В 28.03.2019 в 00:43, legendaryinside сказал: что за сборка стоит у вас? похоже на PW, разве PW ище кто то пользуется? для допов сойдет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты