Запук евента

Sergent

Путник
Пользователь
Сообщения
8
Розыгрыши
0
Репутация
0
Реакции
0
Баллы
0
Хроники
  1. Chaotic Throne: High Five
Исходники
Присутствуют
Сборка
LRserv
Кто может подсказать как этот евент запустить, ковырялся ковырялся и что то не догоню, на сколько сам заметил в скрипте нету точек спавна или хз как он настроен.
package events.Cataclizm;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Calendar;
import java.util.concurrent.ScheduledFuture;

import l2p.commons.dbutils.DbUtils;
import l2p.commons.geometry.Polygon;
import l2p.commons.threading.RunnableImpl;
import l2p.gameserver.ThreadPoolManager;
import l2p.gameserver.data.xml.holder.NpcHolder;
import l2p.gameserver.database.DatabaseFactory;
import l2p.gameserver.idfactory.IdFactory;
import l2p.gameserver.instancemanager.ServerVariables;
import l2p.gameserver.listener.zone.OnZoneEnterLeaveListener;
import l2p.gameserver.model.Creature;
import l2p.gameserver.model.GameObjectsStorage;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.Territory;
import l2p.gameserver.model.Zone;
import l2p.gameserver.model.instances.MonsterInstance;
import l2p.gameserver.model.instances.NpcInstance;
import l2p.gameserver.serverpackets.ExShowScreenMessage;
import l2p.gameserver.templates.npc.NpcTemplate;
import l2p.gameserver.utils.Location;
import l2p.gameserver.utils.ReflectionUtils;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* @author PaInKiLlEr - Настройка евента катаклизма в Goddard городе - ВНИМАНИЕ:
* ни в коем случае не должно произойти так что бы ID гвардов и статуй совпадали
* с ID других городов - ВНИМАНИЕ: не ставить ID статуй/гвардов которые
* участвуют стандартно в спавне (гремленов сменить тоже)
*/
public class GoddardCataclizm extends Cataclizm {

private static boolean _cycle = false;
private static final Logger _log = LoggerFactory.getLogger(Cataclizm.class);
private static boolean _active = false;
private static ScheduledFuture<?> _startTask;
private static ScheduledFuture<?> _cataclizmTask;
private static ScheduledFuture<?> _cataclizm2Task;
private static ScheduledFuture<?> _cataclizmTimeTask;
private static Zone _zone1 = ReflectionUtils.getZone("[godad_peace1]");
private static ZoneListener _zoneListener = new ZoneListener();
// Если включено то город после захвата будет захвачен пока игроки не отобьют его
private boolean _cycleEnable = false;
// Через какое время город автоматически оживится (_cycleEnable должно быть выключено), по умолчанию 300 минут = 5 часов
private int _cycleTime = 300;
// Сколько времени нужно продержать в живых мирную статую что бы город не захватили монстрами (по умолчанию 5 минут)
private int _cycleZashita = 5;
// Время в которое будет происходить захват города
private String timer = "7,21,00";
// Сколько времени будет происходить захват (в минутах), по умолчанию 30 минут
private int timer_siege = 30;
// Включить захват города? true - включен захват города
public boolean isSiege = false;
// Статуя которая спавнится при захвате, по умолчанию спавнится гремлин
public int statuya1 = 36803;
// Статуя которая спавнится если город захватили мобы, по умолчанию спавнится гремлин
public int statuya2 = 36804;
// Статуя которая спавнится если убита первая статуя (на эту статую агрятся все гварды и её нужно защищать)
public int statuya3 = 36805;
// Ид,Кол-во;Ид,Кол-во (можно продолжать), по умолчанию спавнятся гремлины
public String[] guards1 = new String[]{"18342,1;18342,1"}; // Первые ворота
public String[] guards2 = new String[]{"18342,1;18342,1"}; // Вторые ворота
public String[] guards3 = new String[]{"18342,1;18342,1"}; // Третьи ворота
// 4 список пропускаем!!!
// 5 список пропускаем!!!
public String[] guards6 = new String[]{"18342,1;18342,1"}; // Возле телепорта
public String[] guards7 = new String[]{"18342,1;18342,1"}; // Возле первого КХ
public String[] guards8 = new String[]{"18342,1;18342,1"}; // Возле второго КХ
public String[] guards9 = new String[]{"18342,1;18342,1"}; // Возле третьего КХ
public String[] guards10 = new String[]{"18342,1;18342,1"}; // Возле четвертого КХ
// 11 список пропускаем!!!
// 12 список пропускаем!!!
// 13 список пропускаем!!!
public String[] guards14 = new String[]{"18342,1;18342,1"}; // Первая стенка мобов к статуе
public String[] guards15 = new String[]{"18342,1;18342,1"}; // Вторая стенка мобов к статуе
public String[] guards16 = new String[]{"18342,1;18342,1"}; // Вторая стенка мобов к статуе
public String[] guards17 = new String[]{"18342,1;18342,1"}; // Вторая стенка мобов к статуе
public String[] guards18 = new String[]{"18342,1;18342,1"}; // Вторая стенка мобов к статуе
public String[] guards19 = new String[]{"18342,1;18342,1"}; // Третья стенка мобов к статуе
public String[] guards20 = new String[]{"18342,1;18342,1"}; // Третья стенка мобов к статуе
public String[] guards21 = new String[]{"18342,1;18342,1"}; // Третья стенка мобов к статуе
public String[] guards22 = new String[]{"18342,1;18342,1"}; // Третья стенка мобов к статуе

public class CataclizmTimeTask extends RunnableImpl {

@Override
public void runImpl() {
// Мы не успели убить мирную статую
for (NpcInstance n : GameObjectsStorage.getAllNpcs()) {
if (n != null && !n.isDead() && (n.getNpcId() == getStatuya1() || n.getNpcId() == getStatuya2() || n.getNpcId() == getStatuya3())) {
n.deleteMe();
}
}

sayToAll("scripts.events.Cataclizm.AnnounceCataclysmSiegeFinishGoddard", null);
deleteTown();
life = false;
despawning(getGuardsMobs1());
despawning(getGuardsMobs2());
despawning(getGuardsMobs3());
despawning(getGuardsMobs4());
despawning(getGuardsMobs5());
despawning(getGuardsMobs6());
despawning(getGuardsMobs7());
despawning(getGuardsMobs8());
despawning(getGuardsMobs9());
despawning(getGuardsMobs10());
despawning(getGuardsMobs11());
despawning(getGuardsMobs12());
despawning(getGuardsMobs13());
despawning(getGuardsMobs14());
despawning(getGuardsMobs15());
despawning(getGuardsMobs16());
despawning(getGuardsMobs17());
despawning(getGuardsMobs18());
despawning(getGuardsMobs19());
despawning(getGuardsMobs20());
despawning(getGuardsMobs21());
despawning(getGuardsMobs22());

// Запускаем таймер евента
activate();
}
}

@Override
public void onLoad() {
_zone1.addListener(_zoneListener);

_active = ServerVariables.getString("CataclizmGoddard", "off").equalsIgnoreCase("on");
_cycle = ServerVariables.getString("CataclizmGoddardCycle", "off").equalsIgnoreCase("on");

if (_active) {
if (_cycle) {
NpcTemplate template = NpcHolder.getInstance().getTemplate(getStatuya2());
MonsterInstance statuya = new MonsterInstance(IdFactory.getInstance().getNextId(), template);
statuya.setCurrentHpMp(statuya.getMaxHp(), statuya.getMaxMp(), true);
statuya.setLoc(getStatuyaLoc(), false);
statuya.spawnMe();

if (!_cycleEnable) {
_cataclizmTimeTask = ThreadPoolManager.getInstance().schedule(new CataclizmTimeTask(), _cycleTime * 60000);
}
} else {
NpcTemplate template = NpcHolder.getInstance().getTemplate(getStatuya1());
MonsterInstance statuya = new MonsterInstance(IdFactory.getInstance().getNextId(), template);
statuya.setCurrentHpMp(statuya.getMaxHp(), statuya.getMaxMp(), true);
statuya.setLoc(getStatuyaLoc(), false);
statuya.spawnMe();

_cataclizmTask = ThreadPoolManager.getInstance().schedule(new CataclizmTask(), getTimeSiege() * 60000);
}
spawning(getGuardsMobs1(), getGuardsMobsTerritory1());
spawning(getGuardsMobs2(), getGuardsMobsTerritory2());
spawning(getGuardsMobs3(), getGuardsMobsTerritory3());
spawning(getGuardsMobs4(), getGuardsMobsTerritory4());
spawning(getGuardsMobs5(), getGuardsMobsTerritory5());
spawning(getGuardsMobs6(), getGuardsMobsTerritory6());
spawning(getGuardsMobs7(), getGuardsMobsTerritory7());
spawning(getGuardsMobs8(), getGuardsMobsTerritory8());
spawning(getGuardsMobs9(), getGuardsMobsTerritory9());
spawning(getGuardsMobs10(), getGuardsMobsTerritory10());
spawning(getGuardsMobs11(), getGuardsMobsTerritory11());
spawning(getGuardsMobs12(), getGuardsMobsTerritory12());
spawning(getGuardsMobs13(), getGuardsMobsTerritory13());
spawning(getGuardsMobs14(), getGuardsMobsTerritory14());
spawning(getGuardsMobs15(), getGuardsMobsTerritory15());
spawning(getGuardsMobs16(), getGuardsMobsTerritory16());
spawning(getGuardsMobs17(), getGuardsMobsTerritory17());
spawning(getGuardsMobs18(), getGuardsMobsTerritory18());
spawning(getGuardsMobs19(), getGuardsMobsTerritory19());
spawning(getGuardsMobs20(), getGuardsMobsTerritory20());
spawning(getGuardsMobs21(), getGuardsMobsTerritory21());
spawning(getGuardsMobs22(), getGuardsMobsTerritory22());
} else {
activate();
}

_log.info("Loaded Event: Cataclizm Goddart");
}

@Override
public void onReload() {
_zone1.removeListener(_zoneListener);
if (_startTask != null) {
_startTask.cancel(false);
_startTask = null;
}
if (_cataclizmTask != null) {
_cataclizmTask.cancel(false);
_cataclizmTask = null;
}
if (_cataclizm2Task != null) {
_cataclizm2Task.cancel(false);
_cataclizm2Task = null;
}
if (_cataclizmTimeTask != null) {
_cataclizmTimeTask.cancel(false);
_cataclizmTimeTask = null;
}
}

public class StartTask extends RunnableImpl {

@Override
public void runImpl() {
sayToAll("scripts.events.Cataclizm.AnnounceEventStartedGoddard", null);
ServerVariables.set("CataclizmGoddard", "on");

// Спавним статую
NpcTemplate template = NpcHolder.getInstance().getTemplate(getStatuya1());
MonsterInstance statuya = new MonsterInstance(IdFactory.getInstance().getNextId(), template);
statuya.setCurrentHpMp(statuya.getMaxHp(), statuya.getMaxMp(), true);
statuya.setLoc(getStatuyaLoc(), false);
statuya.spawnMe();

// Спавним охрану вокруг города
spawning(getGuardsMobs1(), getGuardsMobsTerritory1());
spawning(getGuardsMobs2(), getGuardsMobsTerritory2());
spawning(getGuardsMobs3(), getGuardsMobsTerritory3());
spawning(getGuardsMobs4(), getGuardsMobsTerritory4());
spawning(getGuardsMobs5(), getGuardsMobsTerritory5());
spawning(getGuardsMobs6(), getGuardsMobsTerritory6());
spawning(getGuardsMobs7(), getGuardsMobsTerritory7());
spawning(getGuardsMobs8(), getGuardsMobsTerritory8());
spawning(getGuardsMobs9(), getGuardsMobsTerritory9());
spawning(getGuardsMobs10(), getGuardsMobsTerritory10());
spawning(getGuardsMobs11(), getGuardsMobsTerritory11());
spawning(getGuardsMobs12(), getGuardsMobsTerritory12());
spawning(getGuardsMobs13(), getGuardsMobsTerritory13());
spawning(getGuardsMobs14(), getGuardsMobsTerritory14());
spawning(getGuardsMobs15(), getGuardsMobsTerritory15());
spawning(getGuardsMobs16(), getGuardsMobsTerritory16());
spawning(getGuardsMobs17(), getGuardsMobsTerritory17());
spawning(getGuardsMobs18(), getGuardsMobsTerritory18());
spawning(getGuardsMobs19(), getGuardsMobsTerritory19());
spawning(getGuardsMobs20(), getGuardsMobsTerritory20());
spawning(getGuardsMobs21(), getGuardsMobsTerritory21());
spawning(getGuardsMobs22(), getGuardsMobsTerritory22());

// Захват начался, запускаем таймер осады городов
_cataclizmTask = ThreadPoolManager.getInstance().schedule(new CataclizmTask(), getTimeSiege() * 60000);
}
}
private boolean life = false;

public class CataclizmTask extends RunnableImpl {

@Override
public void runImpl() {
// Мы не успели убить мирную статую
for (NpcInstance n : GameObjectsStorage.getAllNpcs()) {
if (n != null && !n.isDead() && n.getNpcId() == getStatuya1()) {
life = true;
break;
}
}

if (life) {
ServerVariables.set("CataclizmGoddardCycle", "on");
sayToAll("scripts.events.Cataclizm.AnnounceCataclysmFinishGoddard", null);
addTown();
// Спавним вторую статую
NpcTemplate template2 = NpcHolder.getInstance().getTemplate(getStatuya2());
MonsterInstance statuya2 = new MonsterInstance(IdFactory.getInstance().getNextId(), template2);
statuya2.setCurrentHpMp(statuya2.getMaxHp(), statuya2.getMaxMp(), true);
statuya2.setLoc(getStatuyaLoc(), false);
statuya2.spawnMe();

// А теперь удаляем старую охрану города
despawning(getGuardsMobs1());
despawning(getGuardsMobs2());
despawning(getGuardsMobs3());
despawning(getGuardsMobs4());
despawning(getGuardsMobs5());
despawning(getGuardsMobs6());
despawning(getGuardsMobs7());
despawning(getGuardsMobs8());
despawning(getGuardsMobs9());
despawning(getGuardsMobs10());
despawning(getGuardsMobs11());
despawning(getGuardsMobs12());
despawning(getGuardsMobs13());
despawning(getGuardsMobs14());
despawning(getGuardsMobs15());
despawning(getGuardsMobs16());
despawning(getGuardsMobs17());
despawning(getGuardsMobs18());
despawning(getGuardsMobs19());
despawning(getGuardsMobs20());
despawning(getGuardsMobs21());
despawning(getGuardsMobs22());

// И спавним заного
spawning(getGuardsMobs1(), getGuardsMobsTerritory1());
spawning(getGuardsMobs2(), getGuardsMobsTerritory2());
spawning(getGuardsMobs3(), getGuardsMobsTerritory3());
spawning(getGuardsMobs4(), getGuardsMobsTerritory4());
spawning(getGuardsMobs5(), getGuardsMobsTerritory5());
spawning(getGuardsMobs6(), getGuardsMobsTerritory6());
spawning(getGuardsMobs7(), getGuardsMobsTerritory7());
spawning(getGuardsMobs8(), getGuardsMobsTerritory8());
spawning(getGuardsMobs9(), getGuardsMobsTerritory9());
spawning(getGuardsMobs10(), getGuardsMobsTerritory10());
spawning(getGuardsMobs11(), getGuardsMobsTerritory11());
spawning(getGuardsMobs12(), getGuardsMobsTerritory12());
spawning(getGuardsMobs13(), getGuardsMobsTerritory13());
spawning(getGuardsMobs14(), getGuardsMobsTerritory14());
spawning(getGuardsMobs15(), getGuardsMobsTerritory15());
spawning(getGuardsMobs16(), getGuardsMobsTerritory16());
spawning(getGuardsMobs17(), getGuardsMobsTerritory17());
spawning(getGuardsMobs18(), getGuardsMobsTerritory18());
spawning(getGuardsMobs19(), getGuardsMobsTerritory19());
spawning(getGuardsMobs20(), getGuardsMobsTerritory20());
spawning(getGuardsMobs21(), getGuardsMobsTerritory21());
spawning(getGuardsMobs22(), getGuardsMobsTerritory22());

if (!_cycleEnable) {
_cataclizmTimeTask = ThreadPoolManager.getInstance().schedule(new CataclizmTimeTask(), _cycleTime * 60000);
}
} else {
sayToAll("scripts.events.Cataclizm.AnnounceCataclysmSiegeFinishGoddard", null);
deleteTown();
life = false;
ServerVariables.unset("CataclizmGoddard");
ServerVariables.unset("CataclizmGoddardCycle");

// Мирная статуя мертва или исчезла, удаляем всех гвардов
despawning(getGuardsMobs1());
despawning(getGuardsMobs2());
despawning(getGuardsMobs3());
despawning(getGuardsMobs4());
despawning(getGuardsMobs5());
despawning(getGuardsMobs6());
despawning(getGuardsMobs7());
despawning(getGuardsMobs8());
despawning(getGuardsMobs9());
despawning(getGuardsMobs10());
despawning(getGuardsMobs11());
despawning(getGuardsMobs12());
despawning(getGuardsMobs13());
despawning(getGuardsMobs14());
despawning(getGuardsMobs15());
despawning(getGuardsMobs16());
despawning(getGuardsMobs17());
despawning(getGuardsMobs18());
despawning(getGuardsMobs19());
despawning(getGuardsMobs20());
despawning(getGuardsMobs21());
despawning(getGuardsMobs22());

// Запускаем таймер евента
activate();
}
}
}

private void loadSql(Player player) {
Connection con = null;
PreparedStatement stmt = null;
try {
con = DatabaseFactory.getInstance().getConnection();
stmt = con.prepareStatement("UPDATE cataclysm SET player_name=? WHERE town = Goddard");
stmt.setString(1, player.getName());
stmt.setString(2, "Goddard");
stmt.execute();
} catch (Exception e) {
_log.info("Exception: " + e, e);
} finally {
DbUtils.closeQuietly(con, stmt);
}
}

public void activate() {
if (isSiege()) {
String[] time = getTimer().split(",");
Calendar c = Calendar.getInstance();
int weekDay = Integer.valueOf(time[0]) + 1;
if (weekDay == 8) {
weekDay = 1;
}

c.set(Calendar.DAY_OF_WEEK, weekDay);
c.set(Calendar.HOUR_OF_DAY, Integer.valueOf(time[1]));
c.set(Calendar.MINUTE, Integer.valueOf(time[2]));
long init = c.getTime().getTime() - System.currentTimeMillis();
long delay = 604800000;
if (init < 0) {
init = delay + init;
}

_startTask = ThreadPoolManager.getInstance().scheduleAtFixedRate(new StartTask(), init, delay);
}
}

private static class ZoneListener implements OnZoneEnterLeaveListener {

@Override
public void onZoneEnter(Zone zone, Creature cha) {
if (cha == null) {
return;
}

Player player = cha.getPlayer();

if (_cycle) {
String msg = "Город Годдард захвачен монстрами, пожалуйста покиньте город для вашей же безопасности!";
player.sendPacket(new ExShowScreenMessage(msg, 10000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true));
}
}

@Override
public void onZoneLeave(Zone zone, Creature cha) {
}
}

public String getTimer() {
return timer;
}

public int getTimeSiege() {
return timer_siege;
}

public boolean isSiege() {
return isSiege;
}

public Territory getGuardsMobsTerritory1() {
return new Territory().add(new Polygon().add(144276, -57577).setZmin(-2976).setZmax(-2876).add(144044, -57686).setZmin(-3040).setZmax(-2940).add(144329, -58147).setZmin(-3056).setZmax(-2956).add(144538, -57998).setZmin(-2976).setZmax(-2876));
}

public Territory getGuardsMobsTerritory2() {
return new Territory().add(new Polygon().add(147964, -59478).setZmin(-2976).setZmax(-2876).add(147967, -59696).setZmin(-3016).setZmax(-2916).add(147464, -59686).setZmin(-3016).setZmax(-2916).add(147505, -59441).setZmin(-2976).setZmax(-2876));
}

public Territory getGuardsMobsTerritory3() {
return new Territory().add(new Polygon().add(151075, -57569).setZmin(-2976).setZmax(-2876).add(151250, -57690).setZmin(-3000).setZmax(-2900).add(151047, -58122).setZmin(-3032).setZmax(-2932).add(150822, -57920).setZmin(-2976).setZmax(-2876));
}

public Territory getGuardsMobsTerritory4() {
return null;
}

public Territory getGuardsMobsTerritory5() {
return null;
}

public Territory getGuardsMobsTerritory6() {
return new Territory().add(new Polygon().add(147857, -55197).setZmin(-2728).setZmax(-2628).add(147864, -55357).setZmin(-2728).setZmax(-2628).add(148073, -55346).setZmin(-2728).setZmax(-2628).add(148058, -55225).setZmin(-2728).setZmax(-2628));
}

public Territory getGuardsMobsTerritory7() {
return new Territory().add(new Polygon().add(146506, -55592).setZmin(-2776).setZmax(-2676).add(146667, -55568).setZmin(-2776).setZmax(-2676).add(146656, -55401).setZmin(-2776).setZmax(-2676).add(146489, -55405).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory8() {
return new Territory().add(new Polygon().add(147043, -56376).setZmin(-2776).setZmax(-2676).add(147134, -56205).setZmin(-2776).setZmax(-2676).add(147320, -56312).setZmin(-2776).setZmax(-2676).add(147229, -56494).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory9() {
return new Territory().add(new Polygon().add(148174, -56497).setZmin(-2776).setZmax(-2676).add(148105, -56353).setZmin(-2776).setZmax(-2676).add(148304, -56240).setZmin(-2776).setZmax(-2676).add(148380, -56401).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory10() {
return new Territory().add(new Polygon().add(148908, -55617).setZmin(-2776).setZmax(-2676).add(148733, -55598).setZmin(-2776).setZmax(-2676).add(148747, -55384).setZmin(-2776).setZmax(-2676).add(148945, -55399).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory11() {
return null;
}

public Territory getGuardsMobsTerritory12() {
return null;
}

public Territory getGuardsMobsTerritory13() {
return null;
}

public Territory getGuardsMobsTerritory14() {
return new Territory().add(new Polygon().add(147540, -57052).setZmin(-2776).setZmax(-2676).add(147550, -56750).setZmin(-2776).setZmax(-2676).add(147846, -56726).setZmin(-2776).setZmax(-2676).add(147833, -57069).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory15() {
return new Territory().add(new Polygon().add(147892, -57162).setZmin(-2776).setZmax(-2676).add(147999, -57183).setZmin(-2776).setZmax(-2676).add(148008, -56640).setZmin(-2776).setZmax(-2676).add(147904, -56619).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory16() {
return new Territory().add(new Polygon().add(147971, -56705).setZmin(-2776).setZmax(-2676).add(147977, -56587).setZmin(-2776).setZmax(-2676).add(147508, -56509).setZmin(-2776).setZmax(-2676).add(147481, -56684).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory17() {
return new Territory().add(new Polygon().add(147530, -56609).setZmin(-2776).setZmax(-2676).add(147422, -56612).setZmin(-2776).setZmax(-2676).add(147389, -57124).setZmin(-2776).setZmax(-2676).add(147494, -57127).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory18() {
return new Territory().add(new Polygon().add(147419, -57056).setZmin(-2776).setZmax(-2676).add(147406, -57149).setZmin(-2776).setZmax(-2676).add(147887, -57222).setZmin(-2776).setZmax(-2676).add(147910, -57118).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory19() {
return new Territory().add(new Polygon().add(147788, -57338).setZmin(-2776).setZmax(-2676).add(147785, -57672).setZmin(-2880).setZmax(-2780).add(147642, -57676).setZmin(-2880).setZmax(-2780).add(147635, -57353).setZmin(-2784).setZmax(-2684));
}

public Territory getGuardsMobsTerritory20() {
return new Territory().add(new Polygon().add(147549, -56576).setZmin(-2776).setZmax(-2676).add(147518, -56098).setZmin(-2776).setZmax(-2676).add(147895, -56066).setZmin(-2776).setZmax(-2676).add(147887, -56437).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory21() {
return new Territory().add(new Polygon().add(147976, -56429).setZmin(-2776).setZmax(-2676).add(147908, -56108).setZmin(-2776).setZmax(-2676).add(148115, -55897).setZmin(-2776).setZmax(-2676).add(148356, -56037).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory22() {
return new Territory().add(new Polygon().add(147411, -55993).setZmin(-2776).setZmax(-2676).add(147433, -56335).setZmin(-2776).setZmax(-2676).add(147159, -56102).setZmin(-2776).setZmax(-2676).add(147212, -55863).setZmin(-2776).setZmax(-2676));
}

public String[] getGuardsMobs1() {
return guards1;
}

public String[] getGuardsMobs2() {
return guards2;
}

public String[] getGuardsMobs3() {
return guards3;
}

public String[] getGuardsMobs4() {
return null;
}

public String[] getGuardsMobs5() {
return null;
}

public String[] getGuardsMobs6() {
return guards6;
}

public String[] getGuardsMobs7() {
return guards7;
}

public String[] getGuardsMobs8() {
return guards8;
}

public String[] getGuardsMobs9() {
return guards9;
}

public String[] getGuardsMobs10() {
return guards10;
}

public String[] getGuardsMobs11() {
return null;
}

public String[] getGuardsMobs12() {
return null;
}

public String[] getGuardsMobs13() {
return null;
}

public String[] getGuardsMobs14() {
return guards14;
}

public String[] getGuardsMobs15() {
return guards15;
}

public String[] getGuardsMobs16() {
return guards16;
}

public String[] getGuardsMobs17() {
return guards17;
}

public String[] getGuardsMobs18() {
return guards18;
}

public String[] getGuardsMobs19() {
return guards19;
}

public String[] getGuardsMobs20() {
return guards20;
}

public String[] getGuardsMobs21() {
return guards21;
}

public String[] getGuardsMobs22() {
return guards22;
}

public int getStatuya1() {
return statuya1;
}

public int getStatuya2() {
return statuya2;
}

public int getStatuya3() {
return statuya3;
}

public Location getStatuyaLoc() {
return new Location(147713, -56886, -2776);
}

@Override
public void onShowChat(NpcInstance actor) {
if (life) {
if (actor.isInZone(_zone1)) {
return;
}
}
}

public class Cataclysm2Task extends RunnableImpl {

@Override
public void runImpl() {
boolean zashita = false;

// Мы не успели убить мирную статую
for (NpcInstance n : GameObjectsStorage.getAllNpcs()) {
if (n != null && !n.isDead() && n.getNpcId() == getStatuya3()) {
n.deleteMe();
zashita = true;
break;
}
}

if (zashita) {
sayToAll("scripts.events.Cataclizm.AnnounceCataclysmSiegeFinishGoddard", null);
deleteTown();
life = false;
ServerVariables.unset("CataclizmAden");
ServerVariables.unset("CataclizmAdenCycle");
despawning(getGuardsMobs1());
despawning(getGuardsMobs2());
despawning(getGuardsMobs3());
despawning(getGuardsMobs4());
despawning(getGuardsMobs5());
despawning(getGuardsMobs6());
despawning(getGuardsMobs7());
despawning(getGuardsMobs8());
despawning(getGuardsMobs9());
despawning(getGuardsMobs10());
despawning(getGuardsMobs11());
despawning(getGuardsMobs12());
despawning(getGuardsMobs13());
despawning(getGuardsMobs14());
despawning(getGuardsMobs15());
despawning(getGuardsMobs16());
despawning(getGuardsMobs17());
despawning(getGuardsMobs18());
despawning(getGuardsMobs19());
despawning(getGuardsMobs20());
despawning(getGuardsMobs21());
despawning(getGuardsMobs22());

// Запускаем таймер евента
activate();
} else {
life = true;
if (_cataclizmTask != null) {
_cataclizmTask.cancel(false);
_cataclizmTask = null;
}

_cataclizmTask = ThreadPoolManager.getInstance().schedule(new CataclizmTask(), 1000);
}
}
}

@Override
public void onDecay(NpcInstance actor) {
if (actor.getNpcId() == getStatuya1()) {
sayToAll("scripts.events.Cataclizm.AnnounceCataclysmSiegeStatuya1Goddard", null);
sayToAll("scripts.events.Cataclizm.AnnounceCataclysmSiegeStatuya3Goddard", null);

if (_cataclizmTask != null) {
_cataclizmTask.cancel(false);
_cataclizmTask = null;
}

NpcTemplate template = NpcHolder.getInstance().getTemplate(getStatuya3());
MonsterInstance statuya = new MonsterInstance(IdFactory.getInstance().getNextId(), template);
statuya.setCurrentHpMp(statuya.getMaxHp(), statuya.getMaxMp(), true);
statuya.setLoc(getStatuyaLoc(), false);
statuya.spawnMe();

_cataclizm2Task = ThreadPoolManager.getInstance().schedule(new Cataclysm2Task(), _cycleZashita * 60000);
} else if (actor.getNpcId() == getStatuya2()) {
sayToAll("scripts.events.Cataclizm.AnnounceCataclysmSiegeStatuya2Goddard", null);

if (_cataclizmTimeTask != null) {
_cataclizmTimeTask.cancel(false);
_cataclizmTimeTask = null;
}

deleteTown();
life = false;
despawning(getGuardsMobs1());
despawning(getGuardsMobs2());
despawning(getGuardsMobs3());
despawning(getGuardsMobs4());
despawning(getGuardsMobs5());
despawning(getGuardsMobs6());
despawning(getGuardsMobs7());
despawning(getGuardsMobs8());
despawning(getGuardsMobs9());
despawning(getGuardsMobs10());
despawning(getGuardsMobs11());
despawning(getGuardsMobs12());
despawning(getGuardsMobs13());
despawning(getGuardsMobs14());
despawning(getGuardsMobs15());
despawning(getGuardsMobs16());
despawning(getGuardsMobs17());
despawning(getGuardsMobs18());
despawning(getGuardsMobs19());
despawning(getGuardsMobs20());
despawning(getGuardsMobs21());
despawning(getGuardsMobs22());

// Запускаем таймер евента
activate();
}
}

@Override
public void onDeath(Creature actor, Creature killer) {
if (actor.isNpc()) {
Player player = killer.getPlayer();
if (player != null) {
if (actor.getNpcId() == rewards(getGuardsMobs14(), (NpcInstance) actor)) {
for (String str : rewards1) {
String[] str2 = str.split(";");
for (String str3 : str2) {
String[] str4 = str3.split(",");
int id = Integer.parseInt(str4[0]);
int count = Integer.parseInt(str4[1]);
player.getInventory().addItem(id, count);
}
}
} else if (actor.getNpcId() == rewards(getGuardsMobs15(), (NpcInstance) actor) || actor.getNpcId() == rewards(getGuardsMobs16(), (NpcInstance) actor) || actor.getNpcId() == rewards(getGuardsMobs17(), (NpcInstance) actor) || actor.getNpcId() == rewards(getGuardsMobs18(), (NpcInstance) actor)) {
for (String str : rewards2) {
String[] str2 = str.split(";");
for (String str3 : str2) {
String[] str4 = str3.split(",");
int id = Integer.parseInt(str4[0]);
int count = Integer.parseInt(str4[1]);
player.getInventory().addItem(id, count);
}
}
} else if (actor.getNpcId() == rewards(getGuardsMobs19(), (NpcInstance) actor) || actor.getNpcId() == rewards(getGuardsMobs20(), (NpcInstance) actor) || actor.getNpcId() == rewards(getGuardsMobs21(), (NpcInstance) actor) || actor.getNpcId() == rewards(getGuardsMobs22(), (NpcInstance) actor)) {
for (String str : rewards3) {
String[] str2 = str.split(";");
for (String str3 : str2) {
String[] str4 = str3.split(",");
int id = Integer.parseInt(str4[0]);
int count = Integer.parseInt(str4[1]);
player.getInventory().addItem(id, count);
}
}
} else if (actor.getNpcId() == getStatuya1() || actor.getNpcId() == getStatuya2()) {
for (String str : rewards4) {
String[] str2 = str.split(";");
for (String str3 : str2) {
String[] str4 = str3.split(",");
int id = Integer.parseInt(str4[0]);
int count = Integer.parseInt(str4[1]);
player.getInventory().addItem(id, count);
}
}

loadSql(player);
}
}
}
}
}
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Кто может подсказать как этот евент запустить, ковырялся ковырялся и что то не догоню, на сколько сам заметил в скрипте нету точек спавна или хз как он настроен.
package events.Cataclizm;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Calendar;
import java.util.concurrent.ScheduledFuture;

import l2p.commons.dbutils.DbUtils;
import l2p.commons.geometry.Polygon;
import l2p.commons.threading.RunnableImpl;
import l2p.gameserver.ThreadPoolManager;
import l2p.gameserver.data.xml.holder.NpcHolder;
import l2p.gameserver.database.DatabaseFactory;
import l2p.gameserver.idfactory.IdFactory;
import l2p.gameserver.instancemanager.ServerVariables;
import l2p.gameserver.listener.zone.OnZoneEnterLeaveListener;
import l2p.gameserver.model.Creature;
import l2p.gameserver.model.GameObjectsStorage;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.Territory;
import l2p.gameserver.model.Zone;
import l2p.gameserver.model.instances.MonsterInstance;
import l2p.gameserver.model.instances.NpcInstance;
import l2p.gameserver.serverpackets.ExShowScreenMessage;
import l2p.gameserver.templates.npc.NpcTemplate;
import l2p.gameserver.utils.Location;
import l2p.gameserver.utils.ReflectionUtils;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
  • @author PaInKiLlEr - Настройка евента катаклизма в Goddard городе - ВНИМАНИЕ:
  • ни в коем случае не должно произойти так что бы ID гвардов и статуй совпадали
  • с ID других городов - ВНИМАНИЕ: не ставить ID статуй/гвардов которые
  • участвуют стандартно в спавне (гремленов сменить тоже)
*/
public class GoddardCataclizm extends Cataclizm {

private static boolean _cycle = false;
private static final Logger _log = LoggerFactory.getLogger(Cataclizm.class);
private static boolean _active = false;
private static ScheduledFuture<?> _startTask;
private static ScheduledFuture<?> _cataclizmTask;
private static ScheduledFuture<?> _cataclizm2Task;
private static ScheduledFuture<?> _cataclizmTimeTask;
private static Zone _zone1 = ReflectionUtils.getZone("[godad_peace1]");
private static ZoneListener _zoneListener = new ZoneListener();
// Если включено то город после захвата будет захвачен пока игроки не отобьют его
private boolean _cycleEnable = false;
// Через какое время город автоматически оживится (_cycleEnable должно быть выключено), по умолчанию 300 минут = 5 часов
private int _cycleTime = 300;
// Сколько времени нужно продержать в живых мирную статую что бы город не захватили монстрами (по умолчанию 5 минут)
private int _cycleZashita = 5;
// Время в которое будет происходить захват города
private String timer = "7,21,00";
// Сколько времени будет происходить захват (в минутах), по умолчанию 30 минут
private int timer_siege = 30;
// Включить захват города? true - включен захват города
public boolean isSiege = false;
// Статуя которая спавнится при захвате, по умолчанию спавнится гремлин
public int statuya1 = 36803;
// Статуя которая спавнится если город захватили мобы, по умолчанию спавнится гремлин
public int statuya2 = 36804;
// Статуя которая спавнится если убита первая статуя (на эту статую агрятся все гварды и её нужно защищать)
public int statuya3 = 36805;
// Ид,Кол-во;Ид,Кол-во (можно продолжать), по умолчанию спавнятся гремлины
public String[] guards1 = new String[]{"18342,1;18342,1"}; // Первые ворота
public String[] guards2 = new String[]{"18342,1;18342,1"}; // Вторые ворота
public String[] guards3 = new String[]{"18342,1;18342,1"}; // Третьи ворота
// 4 список пропускаем!!!
// 5 список пропускаем!!!
public String[] guards6 = new String[]{"18342,1;18342,1"}; // Возле телепорта
public String[] guards7 = new String[]{"18342,1;18342,1"}; // Возле первого КХ
public String[] guards8 = new String[]{"18342,1;18342,1"}; // Возле второго КХ
public String[] guards9 = new String[]{"18342,1;18342,1"}; // Возле третьего КХ
public String[] guards10 = new String[]{"18342,1;18342,1"}; // Возле четвертого КХ
// 11 список пропускаем!!!
// 12 список пропускаем!!!
// 13 список пропускаем!!!
public String[] guards14 = new String[]{"18342,1;18342,1"}; // Первая стенка мобов к статуе
public String[] guards15 = new String[]{"18342,1;18342,1"}; // Вторая стенка мобов к статуе
public String[] guards16 = new String[]{"18342,1;18342,1"}; // Вторая стенка мобов к статуе
public String[] guards17 = new String[]{"18342,1;18342,1"}; // Вторая стенка мобов к статуе
public String[] guards18 = new String[]{"18342,1;18342,1"}; // Вторая стенка мобов к статуе
public String[] guards19 = new String[]{"18342,1;18342,1"}; // Третья стенка мобов к статуе
public String[] guards20 = new String[]{"18342,1;18342,1"}; // Третья стенка мобов к статуе
public String[] guards21 = new String[]{"18342,1;18342,1"}; // Третья стенка мобов к статуе
public String[] guards22 = new String[]{"18342,1;18342,1"}; // Третья стенка мобов к статуе

public class CataclizmTimeTask extends RunnableImpl {

@Override
public void runImpl() {
// Мы не успели убить мирную статую
for (NpcInstance n : GameObjectsStorage.getAllNpcs()) {
if (n != null && !n.isDead() && (n.getNpcId() == getStatuya1() || n.getNpcId() == getStatuya2() || n.getNpcId() == getStatuya3())) {
n.deleteMe();
}
}

sayToAll("scripts.events.Cataclizm.AnnounceCataclysmSiegeFinishGoddard", null);
deleteTown();
life = false;
despawning(getGuardsMobs1());
despawning(getGuardsMobs2());
despawning(getGuardsMobs3());
despawning(getGuardsMobs4());
despawning(getGuardsMobs5());
despawning(getGuardsMobs6());
despawning(getGuardsMobs7());
despawning(getGuardsMobs8());
despawning(getGuardsMobs9());
despawning(getGuardsMobs10());
despawning(getGuardsMobs11());
despawning(getGuardsMobs12());
despawning(getGuardsMobs13());
despawning(getGuardsMobs14());
despawning(getGuardsMobs15());
despawning(getGuardsMobs16());
despawning(getGuardsMobs17());
despawning(getGuardsMobs18());
despawning(getGuardsMobs19());
despawning(getGuardsMobs20());
despawning(getGuardsMobs21());
despawning(getGuardsMobs22());

// Запускаем таймер евента
activate();
}
}

@Override
public void onLoad() {
_zone1.addListener(_zoneListener);

_active = ServerVariables.getString("CataclizmGoddard", "off").equalsIgnoreCase("on");
_cycle = ServerVariables.getString("CataclizmGoddardCycle", "off").equalsIgnoreCase("on");

if (_active) {
if (_cycle) {
NpcTemplate template = NpcHolder.getInstance().getTemplate(getStatuya2());
MonsterInstance statuya = new MonsterInstance(IdFactory.getInstance().getNextId(), template);
statuya.setCurrentHpMp(statuya.getMaxHp(), statuya.getMaxMp(), true);
statuya.setLoc(getStatuyaLoc(), false);
statuya.spawnMe();

if (!_cycleEnable) {
_cataclizmTimeTask = ThreadPoolManager.getInstance().schedule(new CataclizmTimeTask(), _cycleTime * 60000);
}
} else {
NpcTemplate template = NpcHolder.getInstance().getTemplate(getStatuya1());
MonsterInstance statuya = new MonsterInstance(IdFactory.getInstance().getNextId(), template);
statuya.setCurrentHpMp(statuya.getMaxHp(), statuya.getMaxMp(), true);
statuya.setLoc(getStatuyaLoc(), false);
statuya.spawnMe();

_cataclizmTask = ThreadPoolManager.getInstance().schedule(new CataclizmTask(), getTimeSiege() * 60000);
}
spawning(getGuardsMobs1(), getGuardsMobsTerritory1());
spawning(getGuardsMobs2(), getGuardsMobsTerritory2());
spawning(getGuardsMobs3(), getGuardsMobsTerritory3());
spawning(getGuardsMobs4(), getGuardsMobsTerritory4());
spawning(getGuardsMobs5(), getGuardsMobsTerritory5());
spawning(getGuardsMobs6(), getGuardsMobsTerritory6());
spawning(getGuardsMobs7(), getGuardsMobsTerritory7());
spawning(getGuardsMobs8(), getGuardsMobsTerritory8());
spawning(getGuardsMobs9(), getGuardsMobsTerritory9());
spawning(getGuardsMobs10(), getGuardsMobsTerritory10());
spawning(getGuardsMobs11(), getGuardsMobsTerritory11());
spawning(getGuardsMobs12(), getGuardsMobsTerritory12());
spawning(getGuardsMobs13(), getGuardsMobsTerritory13());
spawning(getGuardsMobs14(), getGuardsMobsTerritory14());
spawning(getGuardsMobs15(), getGuardsMobsTerritory15());
spawning(getGuardsMobs16(), getGuardsMobsTerritory16());
spawning(getGuardsMobs17(), getGuardsMobsTerritory17());
spawning(getGuardsMobs18(), getGuardsMobsTerritory18());
spawning(getGuardsMobs19(), getGuardsMobsTerritory19());
spawning(getGuardsMobs20(), getGuardsMobsTerritory20());
spawning(getGuardsMobs21(), getGuardsMobsTerritory21());
spawning(getGuardsMobs22(), getGuardsMobsTerritory22());
} else {
activate();
}

_log.info("Loaded Event: Cataclizm Goddart");
}

@Override
public void onReload() {
_zone1.removeListener(_zoneListener);
if (_startTask != null) {
_startTask.cancel(false);
_startTask = null;
}
if (_cataclizmTask != null) {
_cataclizmTask.cancel(false);
_cataclizmTask = null;
}
if (_cataclizm2Task != null) {
_cataclizm2Task.cancel(false);
_cataclizm2Task = null;
}
if (_cataclizmTimeTask != null) {
_cataclizmTimeTask.cancel(false);
_cataclizmTimeTask = null;
}
}

public class StartTask extends RunnableImpl {

@Override
public void runImpl() {
sayToAll("scripts.events.Cataclizm.AnnounceEventStartedGoddard", null);
ServerVariables.set("CataclizmGoddard", "on");

// Спавним статую
NpcTemplate template = NpcHolder.getInstance().getTemplate(getStatuya1());
MonsterInstance statuya = new MonsterInstance(IdFactory.getInstance().getNextId(), template);
statuya.setCurrentHpMp(statuya.getMaxHp(), statuya.getMaxMp(), true);
statuya.setLoc(getStatuyaLoc(), false);
statuya.spawnMe();

// Спавним охрану вокруг города
spawning(getGuardsMobs1(), getGuardsMobsTerritory1());
spawning(getGuardsMobs2(), getGuardsMobsTerritory2());
spawning(getGuardsMobs3(), getGuardsMobsTerritory3());
spawning(getGuardsMobs4(), getGuardsMobsTerritory4());
spawning(getGuardsMobs5(), getGuardsMobsTerritory5());
spawning(getGuardsMobs6(), getGuardsMobsTerritory6());
spawning(getGuardsMobs7(), getGuardsMobsTerritory7());
spawning(getGuardsMobs8(), getGuardsMobsTerritory8());
spawning(getGuardsMobs9(), getGuardsMobsTerritory9());
spawning(getGuardsMobs10(), getGuardsMobsTerritory10());
spawning(getGuardsMobs11(), getGuardsMobsTerritory11());
spawning(getGuardsMobs12(), getGuardsMobsTerritory12());
spawning(getGuardsMobs13(), getGuardsMobsTerritory13());
spawning(getGuardsMobs14(), getGuardsMobsTerritory14());
spawning(getGuardsMobs15(), getGuardsMobsTerritory15());
spawning(getGuardsMobs16(), getGuardsMobsTerritory16());
spawning(getGuardsMobs17(), getGuardsMobsTerritory17());
spawning(getGuardsMobs18(), getGuardsMobsTerritory18());
spawning(getGuardsMobs19(), getGuardsMobsTerritory19());
spawning(getGuardsMobs20(), getGuardsMobsTerritory20());
spawning(getGuardsMobs21(), getGuardsMobsTerritory21());
spawning(getGuardsMobs22(), getGuardsMobsTerritory22());

// Захват начался, запускаем таймер осады городов
_cataclizmTask = ThreadPoolManager.getInstance().schedule(new CataclizmTask(), getTimeSiege() * 60000);
}
}
private boolean life = false;

public class CataclizmTask extends RunnableImpl {

@Override
public void runImpl() {
// Мы не успели убить мирную статую
for (NpcInstance n : GameObjectsStorage.getAllNpcs()) {
if (n != null && !n.isDead() && n.getNpcId() == getStatuya1()) {
life = true;
break;
}
}

if (life) {
ServerVariables.set("CataclizmGoddardCycle", "on");
sayToAll("scripts.events.Cataclizm.AnnounceCataclysmFinishGoddard", null);
addTown();
// Спавним вторую статую
NpcTemplate template2 = NpcHolder.getInstance().getTemplate(getStatuya2());
MonsterInstance statuya2 = new MonsterInstance(IdFactory.getInstance().getNextId(), template2);
statuya2.setCurrentHpMp(statuya2.getMaxHp(), statuya2.getMaxMp(), true);
statuya2.setLoc(getStatuyaLoc(), false);
statuya2.spawnMe();

// А теперь удаляем старую охрану города
despawning(getGuardsMobs1());
despawning(getGuardsMobs2());
despawning(getGuardsMobs3());
despawning(getGuardsMobs4());
despawning(getGuardsMobs5());
despawning(getGuardsMobs6());
despawning(getGuardsMobs7());
despawning(getGuardsMobs8());
despawning(getGuardsMobs9());
despawning(getGuardsMobs10());
despawning(getGuardsMobs11());
despawning(getGuardsMobs12());
despawning(getGuardsMobs13());
despawning(getGuardsMobs14());
despawning(getGuardsMobs15());
despawning(getGuardsMobs16());
despawning(getGuardsMobs17());
despawning(getGuardsMobs18());
despawning(getGuardsMobs19());
despawning(getGuardsMobs20());
despawning(getGuardsMobs21());
despawning(getGuardsMobs22());

// И спавним заного
spawning(getGuardsMobs1(), getGuardsMobsTerritory1());
spawning(getGuardsMobs2(), getGuardsMobsTerritory2());
spawning(getGuardsMobs3(), getGuardsMobsTerritory3());
spawning(getGuardsMobs4(), getGuardsMobsTerritory4());
spawning(getGuardsMobs5(), getGuardsMobsTerritory5());
spawning(getGuardsMobs6(), getGuardsMobsTerritory6());
spawning(getGuardsMobs7(), getGuardsMobsTerritory7());
spawning(getGuardsMobs8(), getGuardsMobsTerritory8());
spawning(getGuardsMobs9(), getGuardsMobsTerritory9());
spawning(getGuardsMobs10(), getGuardsMobsTerritory10());
spawning(getGuardsMobs11(), getGuardsMobsTerritory11());
spawning(getGuardsMobs12(), getGuardsMobsTerritory12());
spawning(getGuardsMobs13(), getGuardsMobsTerritory13());
spawning(getGuardsMobs14(), getGuardsMobsTerritory14());
spawning(getGuardsMobs15(), getGuardsMobsTerritory15());
spawning(getGuardsMobs16(), getGuardsMobsTerritory16());
spawning(getGuardsMobs17(), getGuardsMobsTerritory17());
spawning(getGuardsMobs18(), getGuardsMobsTerritory18());
spawning(getGuardsMobs19(), getGuardsMobsTerritory19());
spawning(getGuardsMobs20(), getGuardsMobsTerritory20());
spawning(getGuardsMobs21(), getGuardsMobsTerritory21());
spawning(getGuardsMobs22(), getGuardsMobsTerritory22());

if (!_cycleEnable) {
_cataclizmTimeTask = ThreadPoolManager.getInstance().schedule(new CataclizmTimeTask(), _cycleTime * 60000);
}
} else {
sayToAll("scripts.events.Cataclizm.AnnounceCataclysmSiegeFinishGoddard", null);
deleteTown();
life = false;
ServerVariables.unset("CataclizmGoddard");
ServerVariables.unset("CataclizmGoddardCycle");

// Мирная статуя мертва или исчезла, удаляем всех гвардов
despawning(getGuardsMobs1());
despawning(getGuardsMobs2());
despawning(getGuardsMobs3());
despawning(getGuardsMobs4());
despawning(getGuardsMobs5());
despawning(getGuardsMobs6());
despawning(getGuardsMobs7());
despawning(getGuardsMobs8());
despawning(getGuardsMobs9());
despawning(getGuardsMobs10());
despawning(getGuardsMobs11());
despawning(getGuardsMobs12());
despawning(getGuardsMobs13());
despawning(getGuardsMobs14());
despawning(getGuardsMobs15());
despawning(getGuardsMobs16());
despawning(getGuardsMobs17());
despawning(getGuardsMobs18());
despawning(getGuardsMobs19());
despawning(getGuardsMobs20());
despawning(getGuardsMobs21());
despawning(getGuardsMobs22());

// Запускаем таймер евента
activate();
}
}
}

private void loadSql(Player player) {
Connection con = null;
PreparedStatement stmt = null;
try {
con = DatabaseFactory.getInstance().getConnection();
stmt = con.prepareStatement("UPDATE cataclysm SET player_name=? WHERE town = Goddard");
stmt.setString(1, player.getName());
stmt.setString(2, "Goddard");
stmt.execute();
} catch (Exception e) {
_log.info("Exception: " + e, e);
} finally {
DbUtils.closeQuietly(con, stmt);
}
}

public void activate() {
if (isSiege()) {
String[] time = getTimer().split(",");
Calendar c = Calendar.getInstance();
int weekDay = Integer.valueOf(time[0]) + 1;
if (weekDay == 8) {
weekDay = 1;
}

c.set(Calendar.DAY_OF_WEEK, weekDay);
c.set(Calendar.HOUR_OF_DAY, Integer.valueOf(time[1]));
c.set(Calendar.MINUTE, Integer.valueOf(time[2]));
long init = c.getTime().getTime() - System.currentTimeMillis();
long delay = 604800000;
if (init < 0) {
init = delay + init;
}

_startTask = ThreadPoolManager.getInstance().scheduleAtFixedRate(new StartTask(), init, delay);
}
}

private static class ZoneListener implements OnZoneEnterLeaveListener {

@Override
public void onZoneEnter(Zone zone, Creature cha) {
if (cha == null) {
return;
}

Player player = cha.getPlayer();

if (_cycle) {
String msg = "Город Годдард захвачен монстрами, пожалуйста покиньте город для вашей же безопасности!";
player.sendPacket(new ExShowScreenMessage(msg, 10000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true));
}
}

@Override
public void onZoneLeave(Zone zone, Creature cha) {
}
}

public String getTimer() {
return timer;
}

public int getTimeSiege() {
return timer_siege;
}

public boolean isSiege() {
return isSiege;
}

public Territory getGuardsMobsTerritory1() {
return new Territory().add(new Polygon().add(144276, -57577).setZmin(-2976).setZmax(-2876).add(144044, -57686).setZmin(-3040).setZmax(-2940).add(144329, -58147).setZmin(-3056).setZmax(-2956).add(144538, -57998).setZmin(-2976).setZmax(-2876));
}

public Territory getGuardsMobsTerritory2() {
return new Territory().add(new Polygon().add(147964, -59478).setZmin(-2976).setZmax(-2876).add(147967, -59696).setZmin(-3016).setZmax(-2916).add(147464, -59686).setZmin(-3016).setZmax(-2916).add(147505, -59441).setZmin(-2976).setZmax(-2876));
}

public Territory getGuardsMobsTerritory3() {
return new Territory().add(new Polygon().add(151075, -57569).setZmin(-2976).setZmax(-2876).add(151250, -57690).setZmin(-3000).setZmax(-2900).add(151047, -58122).setZmin(-3032).setZmax(-2932).add(150822, -57920).setZmin(-2976).setZmax(-2876));
}

public Territory getGuardsMobsTerritory4() {
return null;
}

public Territory getGuardsMobsTerritory5() {
return null;
}

public Territory getGuardsMobsTerritory6() {
return new Territory().add(new Polygon().add(147857, -55197).setZmin(-2728).setZmax(-2628).add(147864, -55357).setZmin(-2728).setZmax(-2628).add(148073, -55346).setZmin(-2728).setZmax(-2628).add(148058, -55225).setZmin(-2728).setZmax(-2628));
}

public Territory getGuardsMobsTerritory7() {
return new Territory().add(new Polygon().add(146506, -55592).setZmin(-2776).setZmax(-2676).add(146667, -55568).setZmin(-2776).setZmax(-2676).add(146656, -55401).setZmin(-2776).setZmax(-2676).add(146489, -55405).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory8() {
return new Territory().add(new Polygon().add(147043, -56376).setZmin(-2776).setZmax(-2676).add(147134, -56205).setZmin(-2776).setZmax(-2676).add(147320, -56312).setZmin(-2776).setZmax(-2676).add(147229, -56494).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory9() {
return new Territory().add(new Polygon().add(148174, -56497).setZmin(-2776).setZmax(-2676).add(148105, -56353).setZmin(-2776).setZmax(-2676).add(148304, -56240).setZmin(-2776).setZmax(-2676).add(148380, -56401).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory10() {
return new Territory().add(new Polygon().add(148908, -55617).setZmin(-2776).setZmax(-2676).add(148733, -55598).setZmin(-2776).setZmax(-2676).add(148747, -55384).setZmin(-2776).setZmax(-2676).add(148945, -55399).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory11() {
return null;
}

public Territory getGuardsMobsTerritory12() {
return null;
}

public Territory getGuardsMobsTerritory13() {
return null;
}

public Territory getGuardsMobsTerritory14() {
return new Territory().add(new Polygon().add(147540, -57052).setZmin(-2776).setZmax(-2676).add(147550, -56750).setZmin(-2776).setZmax(-2676).add(147846, -56726).setZmin(-2776).setZmax(-2676).add(147833, -57069).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory15() {
return new Territory().add(new Polygon().add(147892, -57162).setZmin(-2776).setZmax(-2676).add(147999, -57183).setZmin(-2776).setZmax(-2676).add(148008, -56640).setZmin(-2776).setZmax(-2676).add(147904, -56619).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory16() {
return new Territory().add(new Polygon().add(147971, -56705).setZmin(-2776).setZmax(-2676).add(147977, -56587).setZmin(-2776).setZmax(-2676).add(147508, -56509).setZmin(-2776).setZmax(-2676).add(147481, -56684).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory17() {
return new Territory().add(new Polygon().add(147530, -56609).setZmin(-2776).setZmax(-2676).add(147422, -56612).setZmin(-2776).setZmax(-2676).add(147389, -57124).setZmin(-2776).setZmax(-2676).add(147494, -57127).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory18() {
return new Territory().add(new Polygon().add(147419, -57056).setZmin(-2776).setZmax(-2676).add(147406, -57149).setZmin(-2776).setZmax(-2676).add(147887, -57222).setZmin(-2776).setZmax(-2676).add(147910, -57118).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory19() {
return new Territory().add(new Polygon().add(147788, -57338).setZmin(-2776).setZmax(-2676).add(147785, -57672).setZmin(-2880).setZmax(-2780).add(147642, -57676).setZmin(-2880).setZmax(-2780).add(147635, -57353).setZmin(-2784).setZmax(-2684));
}

public Territory getGuardsMobsTerritory20() {
return new Territory().add(new Polygon().add(147549, -56576).setZmin(-2776).setZmax(-2676).add(147518, -56098).setZmin(-2776).setZmax(-2676).add(147895, -56066).setZmin(-2776).setZmax(-2676).add(147887, -56437).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory21() {
return new Territory().add(new Polygon().add(147976, -56429).setZmin(-2776).setZmax(-2676).add(147908, -56108).setZmin(-2776).setZmax(-2676).add(148115, -55897).setZmin(-2776).setZmax(-2676).add(148356, -56037).setZmin(-2776).setZmax(-2676));
}

public Territory getGuardsMobsTerritory22() {
return new Territory().add(new Polygon().add(147411, -55993).setZmin(-2776).setZmax(-2676).add(147433, -56335).setZmin(-2776).setZmax(-2676).add(147159, -56102).setZmin(-2776).setZmax(-2676).add(147212, -55863).setZmin(-2776).setZmax(-2676));
}

public String[] getGuardsMobs1() {
return guards1;
}

public String[] getGuardsMobs2() {
return guards2;
}

public String[] getGuardsMobs3() {
return guards3;
}

public String[] getGuardsMobs4() {
return null;
}

public String[] getGuardsMobs5() {
return null;
}

public String[] getGuardsMobs6() {
return guards6;
}

public String[] getGuardsMobs7() {
return guards7;
}

public String[] getGuardsMobs8() {
return guards8;
}

public String[] getGuardsMobs9() {
return guards9;
}

public String[] getGuardsMobs10() {
return guards10;
}

public String[] getGuardsMobs11() {
return null;
}

public String[] getGuardsMobs12() {
return null;
}

public String[] getGuardsMobs13() {
return null;
}

public String[] getGuardsMobs14() {
return guards14;
}

public String[] getGuardsMobs15() {
return guards15;
}

public String[] getGuardsMobs16() {
return guards16;
}

public String[] getGuardsMobs17() {
return guards17;
}

public String[] getGuardsMobs18() {
return guards18;
}

public String[] getGuardsMobs19() {
return guards19;
}

public String[] getGuardsMobs20() {
return guards20;
}

public String[] getGuardsMobs21() {
return guards21;
}

public String[] getGuardsMobs22() {
return guards22;
}

public int getStatuya1() {
return statuya1;
}

public int getStatuya2() {
return statuya2;
}

public int getStatuya3() {
return statuya3;
}

public Location getStatuyaLoc() {
return new Location(147713, -56886, -2776);
}

@Override
public void onShowChat(NpcInstance actor) {
if (life) {
if (actor.isInZone(_zone1)) {
return;
}
}
}

public class Cataclysm2Task extends RunnableImpl {

@Override
public void runImpl() {
boolean zashita = false;

// Мы не успели убить мирную статую
for (NpcInstance n : GameObjectsStorage.getAllNpcs()) {
if (n != null && !n.isDead() && n.getNpcId() == getStatuya3()) {
n.deleteMe();
zashita = true;
break;
}
}

if (zashita) {
sayToAll("scripts.events.Cataclizm.AnnounceCataclysmSiegeFinishGoddard", null);
deleteTown();
life = false;
ServerVariables.unset("CataclizmAden");
ServerVariables.unset("CataclizmAdenCycle");
despawning(getGuardsMobs1());
despawning(getGuardsMobs2());
despawning(getGuardsMobs3());
despawning(getGuardsMobs4());
despawning(getGuardsMobs5());
despawning(getGuardsMobs6());
despawning(getGuardsMobs7());
despawning(getGuardsMobs8());
despawning(getGuardsMobs9());
despawning(getGuardsMobs10());
despawning(getGuardsMobs11());
despawning(getGuardsMobs12());
despawning(getGuardsMobs13());
despawning(getGuardsMobs14());
despawning(getGuardsMobs15());
despawning(getGuardsMobs16());
despawning(getGuardsMobs17());
despawning(getGuardsMobs18());
despawning(getGuardsMobs19());
despawning(getGuardsMobs20());
despawning(getGuardsMobs21());
despawning(getGuardsMobs22());

// Запускаем таймер евента
activate();
} else {
life = true;
if (_cataclizmTask != null) {
_cataclizmTask.cancel(false);
_cataclizmTask = null;
}

_cataclizmTask = ThreadPoolManager.getInstance().schedule(new CataclizmTask(), 1000);
}
}
}

@Override
public void onDecay(NpcInstance actor) {
if (actor.getNpcId() == getStatuya1()) {
sayToAll("scripts.events.Cataclizm.AnnounceCataclysmSiegeStatuya1Goddard", null);
sayToAll("scripts.events.Cataclizm.AnnounceCataclysmSiegeStatuya3Goddard", null);

if (_cataclizmTask != null) {
_cataclizmTask.cancel(false);
_cataclizmTask = null;
}

NpcTemplate template = NpcHolder.getInstance().getTemplate(getStatuya3());
MonsterInstance statuya = new MonsterInstance(IdFactory.getInstance().getNextId(), template);
statuya.setCurrentHpMp(statuya.getMaxHp(), statuya.getMaxMp(), true);
statuya.setLoc(getStatuyaLoc(), false);
statuya.spawnMe();

_cataclizm2Task = ThreadPoolManager.getInstance().schedule(new Cataclysm2Task(), _cycleZashita * 60000);
} else if (actor.getNpcId() == getStatuya2()) {
sayToAll("scripts.events.Cataclizm.AnnounceCataclysmSiegeStatuya2Goddard", null);

if (_cataclizmTimeTask != null) {
_cataclizmTimeTask.cancel(false);
_cataclizmTimeTask = null;
}

deleteTown();
life = false;
despawning(getGuardsMobs1());
despawning(getGuardsMobs2());
despawning(getGuardsMobs3());
despawning(getGuardsMobs4());
despawning(getGuardsMobs5());
despawning(getGuardsMobs6());
despawning(getGuardsMobs7());
despawning(getGuardsMobs8());
despawning(getGuardsMobs9());
despawning(getGuardsMobs10());
despawning(getGuardsMobs11());
despawning(getGuardsMobs12());
despawning(getGuardsMobs13());
despawning(getGuardsMobs14());
despawning(getGuardsMobs15());
despawning(getGuardsMobs16());
despawning(getGuardsMobs17());
despawning(getGuardsMobs18());
despawning(getGuardsMobs19());
despawning(getGuardsMobs20());
despawning(getGuardsMobs21());
despawning(getGuardsMobs22());

// Запускаем таймер евента
activate();
}
}

@Override
public void onDeath(Creature actor, Creature killer) {
if (actor.isNpc()) {
Player player = killer.getPlayer();
if (player != null) {
if (actor.getNpcId() == rewards(getGuardsMobs14(), (NpcInstance) actor)) {
for (String str : rewards1) {
String[] str2 = str.split(";");
for (String str3 : str2) {
String[] str4 = str3.split(",");
int id = Integer.parseInt(str4[0]);
int count = Integer.parseInt(str4[1]);
player.getInventory().addItem(id, count);
}
}
} else if (actor.getNpcId() == rewards(getGuardsMobs15(), (NpcInstance) actor) || actor.getNpcId() == rewards(getGuardsMobs16(), (NpcInstance) actor) || actor.getNpcId() == rewards(getGuardsMobs17(), (NpcInstance) actor) || actor.getNpcId() == rewards(getGuardsMobs18(), (NpcInstance) actor)) {
for (String str : rewards2) {
String[] str2 = str.split(";");
for (String str3 : str2) {
String[] str4 = str3.split(",");
int id = Integer.parseInt(str4[0]);
int count = Integer.parseInt(str4[1]);
player.getInventory().addItem(id, count);
}
}
} else if (actor.getNpcId() == rewards(getGuardsMobs19(), (NpcInstance) actor) || actor.getNpcId() == rewards(getGuardsMobs20(), (NpcInstance) actor) || actor.getNpcId() == rewards(getGuardsMobs21(), (NpcInstance) actor) || actor.getNpcId() == rewards(getGuardsMobs22(), (NpcInstance) actor)) {
for (String str : rewards3) {
String[] str2 = str.split(";");
for (String str3 : str2) {
String[] str4 = str3.split(",");
int id = Integer.parseInt(str4[0]);
int count = Integer.parseInt(str4[1]);
player.getInventory().addItem(id, count);
}
}
} else if (actor.getNpcId() == getStatuya1() || actor.getNpcId() == getStatuya2()) {
for (String str : rewards4) {
String[] str2 = str.split(";");
for (String str3 : str2) {
String[] str4 = str3.split(",");
int id = Integer.parseInt(str4[0]);
int count = Integer.parseInt(str4[1]);
player.getInventory().addItem(id, count);
}
}

loadSql(player);
}
}
}
}
}
ты не точки спавна ищи , а смотри в конфигах(event) запуск ивента
 
В том то и проблема что конфига нет такого
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Java:
// Включить захват города? true - включен захват города
public boolean isSiege = true;

либо бд > ServerVariables > CataclizmGoddard = on
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
ты не точки спавна ищи , а смотри в конфигах(event) запуск ивента
Эту сборку сам лично изучал,поковырял там ничего особенного нету.И эти эвенты нерабочие,их не запустите
 
Оффтоп:
чет проорал с названия трида...
 
Назад
Сверху Снизу