При ударах Антареса выдаются ошибки! - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 21.05.2010, 21:56   #1
Пользователь

Автор темы (Топик Стартер) При ударах Антареса выдаются ошибки!

Сборка L2jServer_Rev_7321 Gracia Epilogue. При ударе Антареса у меня выдается ошибки как их можно исправить?
Вот эти ошибки!!
PHP код:
C:\server\L2jServer_Rev_7321\gameserver\data\scripts\ai\individual\Antharas.java

java
.lang.NullPointerException
        at ai
.individual.Antharas.onAttack(Antharas.java:843)
        
at com.l2jserver.gameserver.model.quest.Quest.onAttack(Quest.java:658)
        
at com.l2jserver.gameserver.model.quest.Quest.notifyAttack(Quest.java:35
0
)
        
at com.l2jserver.gameserver.model.actor.L2Attackable.addDamage(L2Attacka
ble
.java:882)
        
at com.l2jserver.gameserver.model.actor.L2Attackable.reduceCurrentHp(L2A
ttackable
.java:456)
        
at com.l2jserver.gameserver.model.actor.L2Attackable.reduceCurrentHp(L2A
ttackable
.java:413)
        
at com.l2jserver.gameserver.model.actor.L2Character.onHitTimer(L2Charact
er
.java:5226)
        
at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.onHitTimer
(L2PcInstance.java:4564)
        
at com.l2jserver.gameserver.model.actor.L2Character$HitTask.run(L2Charac
ter
.java:2514)
        
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        
at java.util.concurrent.FutureTask.run(Unknown Source)
        
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(Unknown Source)
        
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(Unknown Source)
        
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
        
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        
at java.lang.Thread.run(Unknown Source)

GrandBossManagerUpdated Antharas(29066status to 3
RaidBossSpawnManager
Updated Fenril Hound Kerinne respawn time to Sun May 23 08
:06:16 MSD 2010
FourSepulchersManager
Entry timeFri May 21 22:55:42 MSD 2010 
Skyter вне форума Ответить с цитированием
Непрочитано 21.05.2010, 22:02   #2

По умолчанию Re: При ударах Антареса выдаются ошибки!

Видимо ошибка в коде.
Mangol вне форума Отправить сообщение для Mangol с помощью ICQ Ответить с цитированием
Сказали спасибо:
Непрочитано 21.05.2010, 22:06   #3
Пользователь

Автор темы (Топик Стартер) Re: При ударах Антареса выдаются ошибки!

Я вот тоже думаю что ошибка в коде вот тока какая и где её искать в скрипте!! Самое обидное что все такие Сборки((
Skyter вне форума Ответить с цитированием
Непрочитано 21.05.2010, 22:07   #4
Аватар для Ozzy
Администратор

По умолчанию Re: При ударах Антареса выдаются ошибки!

Цитата:
При ударе Антареса у меня выдается ошибки как их можно исправить?
Править AI антараса
Ozzy вне форума Ответить с цитированием
Непрочитано 21.05.2010, 22:09   #5
Пользователь

Автор темы (Топик Стартер) Re: При ударах Антареса выдаются ошибки!

Вот сам скрипт ткните пальцем где менять я просто пока что нуб в этом деле!!
PHP код:
/*
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 */
package ai.individual;

import gnu.trove.TIntObjectHashMap;

import java.util.Collection;
import java.util.List;
import java.util.concurrent.ScheduledFuture;

import javolution.util.FastList;
import ai.group_template.L2AttackableAIScript;

import com.l2jserver.Config;
import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.datatables.NpcTable;
import com.l2jserver.gameserver.datatables.SkillTable;
import com.l2jserver.gameserver.datatables.SpawnTable;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.model.L2CharPosition;
import com.l2jserver.gameserver.model.L2Skill;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2GrandBossInstance;
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.zone.type.L2BossZone;
import com.l2jserver.gameserver.network.serverpackets.Earthquake;
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
import com.l2jserver.gameserver.network.serverpackets.PlaySound;
import com.l2jserver.gameserver.network.serverpackets.SpecialCamera;
import com.l2jserver.gameserver.templates.StatsSet;
import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
import com.l2jserver.util.Rnd;

/**
 * 
 * This class ... control for sequence of fight against Antharas.
 * 
 * @version $Revision: $ $Date: $
 * @author L2J_JP SANDMAN
 */
public class Antharas extends L2AttackableAIScript
{
    // config
    private static final int FWA_ACTIVITYTIMEOFANTHARAS = 120;
    //private static final int FWA_APPTIMEOFANTHARAS = 1800000;
    private static final int FWA_INACTIVITYTIME = 900000;
    private static final boolean FWA_OLDANTHARAS = false;
    private static final boolean FWA_MOVEATRANDOM = true;
    private static final boolean FWA_DOSERVEREARTHQUAKE = true;
    private static final int FWA_LIMITOFWEAK = 45;
    private static final int FWA_LIMITOFNORMAL = 63;
    
    private static final int FWA_MAXMOBS = 10; // this includes Antharas itself
    private static final int FWA_INTERVALOFMOBSWEAK = 180000;
    private static final int FWA_INTERVALOFMOBSNORMAL = 150000;
    private static final int FWA_INTERVALOFMOBSSTRONG = 120000;
    private static final int FWA_PERCENTOFBEHEMOTH = 60;
    private static final int FWA_SELFDESTRUCTTIME = 15000;
    // Location of teleport cube.
    private final int _teleportCubeId = 31859;
    private final int _teleportCubeLocation[][] = { { 177615, 114941, -7709, 0 } };

    protected List<L2Spawn> _teleportCubeSpawn = new FastList<L2Spawn>();
    protected List<L2Npc> _teleportCube = new FastList<L2Npc>();

    // Spawn data of monsters.
    protected TIntObjectHashMap<L2Spawn> _monsterSpawn = new TIntObjectHashMap<L2Spawn>();

    // Instance of monsters.
    protected List<L2Npc> _monsters = new FastList<L2Npc>();
    protected L2GrandBossInstance _antharas = null;
    
    // monstersId
    private static final int ANTHARASOLDID = 29019;
    private static final int ANTHARASWEAKID = 29066;
    private static final int ANTHARASNORMALID = 29067;
    private static final int ANTHARASSTRONGID = 29068;
    
    // Tasks.
    protected ScheduledFuture<?_cubeSpawnTask null;
    protected 
ScheduledFuture<?> _monsterSpawnTask = null;
    protected ScheduledFuture<?_activityCheckTask null;
    protected 
ScheduledFuture<?> _socialTask = null;
    protected ScheduledFuture<?_mobiliseTask null;
    protected 
ScheduledFuture<?> _mobsSpawnTask = null;
    protected ScheduledFuture<?_selfDestructionTask null;
    protected 
ScheduledFuture<?> _moveAtRandomTask = null;
    protected ScheduledFuture<?_movieTask null;

    
//Antharas Status Tracking :
    
private static final byte DORMANT 0;        //Antharas is spawned and no one has entered yet. Entry is unlocked
    
private static final byte WAITING 1;        //Antharas is spawend and someone has entered, triggering a 30 minute window for additional people to enter
                                                //before he unleashes his attack. Entry is unlocked
    
private static final byte FIGHTING 2;        //Antharas is engaged in battle, annihilating his foes. Entry is locked
    
private static final byte DEAD 3;            //Antharas has been killed. Entry is locked

    
protected static long _LastAction 0;

    protected static 
L2BossZone _Zone;

    public static 
void main(String[] args)
    {
        
// now call the constructor (starts up the ai)
        
new Antharas(-1,"antharas","ai");
    }

    
// Boss: Antharas
    
public Antharas(int id,String name,String descr)
    {
        
super(id,name,descr);
        
int[] mob = {ANTHARASOLDID,ANTHARASWEAKID,ANTHARASNORMALID,ANTHARASSTRONGID,29069,29070,29071,29072,29073,29074,29075,29076};
        
this.registerMobs(mob);
        
init();
    }

    
// Initialize
    
private void init()
    {
        
// Setting spawn data of monsters.
        
try
        {
            
_Zone GrandBossManager.getInstance().getZone(179700,113800,-7709);
            
L2NpcTemplate template1;
            
L2Spawn tempSpawn;

            
// Old Antharas
            
template1 NpcTable.getInstance().getTemplate(ANTHARASOLDID);
            
tempSpawn = new L2Spawn(template1);
            
tempSpawn.setLocx(181323);
            
tempSpawn.setLocy(114850);
            
tempSpawn.setLocz(-7623);
            
tempSpawn.setHeading(32542);
            
tempSpawn.setAmount(1);
            
tempSpawn.setRespawnDelay(FWA_ACTIVITYTIMEOFANTHARAS 2);
            
SpawnTable.getInstance().addNewSpawn(tempSpawnfalse);
            
_monsterSpawn.put(29019tempSpawn);

            
// Weak Antharas
            
template1 NpcTable.getInstance().getTemplate(ANTHARASWEAKID);
            
tempSpawn = new L2Spawn(template1);
            
tempSpawn.setLocx(181323);
            
tempSpawn.setLocy(114850);
            
tempSpawn.setLocz(-7623);
            
tempSpawn.setHeading(32542);
            
tempSpawn.setAmount(1);
            
tempSpawn.setRespawnDelay(FWA_ACTIVITYTIMEOFANTHARAS 2);
            
SpawnTable.getInstance().addNewSpawn(tempSpawnfalse);
            
_monsterSpawn.put(29066tempSpawn);

            
// Normal Antharas
            
template1 NpcTable.getInstance().getTemplate(ANTHARASNORMALID);
            
tempSpawn = new L2Spawn(template1);
            
tempSpawn.setLocx(181323);
            
tempSpawn.setLocy(114850);
            
tempSpawn.setLocz(-7623);
            
tempSpawn.setHeading(32542);
            
tempSpawn.setAmount(1);
            
tempSpawn.setRespawnDelay(FWA_ACTIVITYTIMEOFANTHARAS 2);
            
SpawnTable.getInstance().addNewSpawn(tempSpawnfalse);
            
_monsterSpawn.put(29067tempSpawn);

            
// Strong Antharas
            
template1 NpcTable.getInstance().getTemplate(ANTHARASSTRONGID);
            
tempSpawn = new L2Spawn(template1);
            
tempSpawn.setLocx(181323);
            
tempSpawn.setLocy(114850);
            
tempSpawn.setLocz(-7623);
            
tempSpawn.setHeading(32542);
            
tempSpawn.setAmount(1);
            
tempSpawn.setRespawnDelay(FWA_ACTIVITYTIMEOFANTHARAS 2);
            
SpawnTable.getInstance().addNewSpawn(tempSpawnfalse);
            
_monsterSpawn.put(29068tempSpawn);
        } 
        catch (
Exception e)
        {
            
_log.warning(e.getMessage());
        }

        
// Setting spawn data of teleport cube.
        
try
        {
            
L2NpcTemplate Cube NpcTable.getInstance().getTemplate(_teleportCubeId);
            
L2Spawn spawnDat;
            for (
int[] element _teleportCubeLocation)
            {
                
spawnDat = new L2Spawn(Cube);
                
spawnDat.setAmount(1);
                
spawnDat.setLocx(element[0]);
                
spawnDat.setLocy(element[1]);
                
spawnDat.setLocz(element[2]);
                
spawnDat.setHeading(element[3]);
                
spawnDat.setRespawnDelay(60);
                
spawnDat.setLocation(0);
                
SpawnTable.getInstance().addNewSpawn(spawnDatfalse);
                
_teleportCubeSpawn.add(spawnDat);
            }
        } 
        catch (
Exception e)
        {
            
_log.warning(e.getMessage());
        }
        
int status GrandBossManager.getInstance().getBossStatus(ANTHARASOLDID);
        if (
FWA_OLDANTHARAS || status == WAITING)
        {
            
StatsSet info GrandBossManager.getInstance().getStatsSet(ANTHARASOLDID);
            
Long respawnTime info.getLong("respawn_time");
            if (
status == DEAD && respawnTime <= System.currentTimeMillis())
            {
                
// the time has already expired while the server was offline. Immediately spawn antharas in his cave.
                // also, the status needs to be changed to DORMANT
                
GrandBossManager.getInstance().setBossStatus(ANTHARASOLDID,DORMANT);
                
status DORMANT;
            }
            else if (
status == FIGHTING)
            {
                
int loc_x info.getInteger("loc_x");
                
int loc_y info.getInteger("loc_y");
                
int loc_z info.getInteger("loc_z");
                
int heading info.getInteger("heading");
                
int hp info.getInteger("currentHP");
                
int mp info.getInteger("currentMP");
                
_antharas = (L2GrandBossInstanceaddSpawn(ANTHARASOLDID,loc_x,loc_y,loc_z,heading,false,0);
                
GrandBossManager.getInstance().addBoss(_antharas);
                
_antharas.setCurrentHpMp(hp,mp);
                
_LastAction System.currentTimeMillis();
                
// Start repeating timer to check for inactivity
                
_activityCheckTask ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new CheckActivity(), 6000060000);
            }
            else if (
status == DEAD)
            {
                
ThreadPoolManager.getInstance().scheduleGeneral(new UnlockAntharas(ANTHARASOLDID), respawnTime System.currentTimeMillis());
            }
            else
            {
                
setAntharasSpawnTask();
            }
        }
        else
        {
            
int statusWeak GrandBossManager.getInstance().getBossStatus(ANTHARASWEAKID);
            
int statusNormal GrandBossManager.getInstance().getBossStatus(ANTHARASNORMALID);
            
int statusStrong GrandBossManager.getInstance().getBossStatus(ANTHARASSTRONGID);
            
int antharasId 0;
            if (
statusWeak == FIGHTING || statusWeak == DEAD)
            {
                
antharasId ANTHARASWEAKID;
                
status statusWeak;
            }
            else if (
statusNormal == FIGHTING || statusNormal == DEAD)
            {
                
antharasId ANTHARASNORMALID;
                
status statusNormal;
            }
            else if (
statusStrong == FIGHTING || statusStrong == DEAD)
            {
                
antharasId ANTHARASSTRONGID;
                
status statusStrong;
            }
            if (
antharasId != && status == FIGHTING)
            {
                
StatsSet info GrandBossManager.getInstance().getStatsSet(antharasId);
                
int loc_x info.getInteger("loc_x");
                
int loc_y info.getInteger("loc_y");
                
int loc_z info.getInteger("loc_z");
                
int heading info.getInteger("heading");
                
int hp info.getInteger("currentHP");
                
int mp info.getInteger("currentMP");
                
_antharas = (L2GrandBossInstanceaddSpawn(antharasId,loc_x,loc_y,loc_z,heading,false,0);
                
GrandBossManager.getInstance().addBoss(_antharas);
                
_antharas.setCurrentHpMp(hp,mp);
                
_LastAction System.currentTimeMillis();
                
// Start repeating timer to check for inactivity
                
_activityCheckTask ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new CheckActivity(), 6000060000);
            }
            else if (
antharasId != && status == DEAD)
            {
                
StatsSet info GrandBossManager.getInstance().getStatsSet(antharasId);
                
Long respawnTime info.getLong("respawn_time");
                if (
respawnTime <= System.currentTimeMillis())
                {
                    
// the time has already expired while the server was offline. Immediately spawn antharas in his cave.
                    // also, the status needs to be changed to DORMANT
                    
GrandBossManager.getInstance().setBossStatus(antharasId,DORMANT);
                    
status DORMANT;
                }
                else
                {
                    
ThreadPoolManager.getInstance().scheduleGeneral(new UnlockAntharas(antharasId), respawnTime System.currentTimeMillis());
                }
            }
        }
    }

    
// Do spawn teleport cube.
    
public void spawnCube()
    {
        if (
_mobsSpawnTask != null)
        {
            
_mobsSpawnTask.cancel(true);
            
_mobsSpawnTask null;
        }
        if (
_selfDestructionTask != null)
        {
            
_selfDestructionTask.cancel(true);
            
_selfDestructionTask null;
        }
        if (
_activityCheckTask != null)
        {
            
_activityCheckTask.cancel(false);
            
_activityCheckTask null;
        }

        for (
L2Spawn spawnDat _teleportCubeSpawn)
        {
            
_teleportCube.add(spawnDat.doSpawn());
        }
    }

    
// Setting Antharas spawn task.
    
public void setAntharasSpawnTask()
    {
        if (
_monsterSpawnTask == null)
        {
            
synchronized(this)
            {
                if (
_monsterSpawnTask == null)
                {
                    
GrandBossManager.getInstance().setBossStatus(ANTHARASOLDID,WAITING);
                    
_monsterSpawnTask ThreadPoolManager.getInstance().scheduleGeneral(new AntharasSpawn(1),Config.Antharas_Wait_Time);
                }
            }
        }
    }
    
    private 
void startMinionSpawns(int antharasId)
    {
        
int intervalOfMobs;

        
// Interval of minions is decided by the type of Antharas
        // that invaded the lair.
        
switch (antharasId)
        {
        case 
ANTHARASWEAKID:
            
intervalOfMobs FWA_INTERVALOFMOBSWEAK;
            break;
        case 
ANTHARASNORMALID:
            
intervalOfMobs FWA_INTERVALOFMOBSNORMAL;
            break;
        default:
            
intervalOfMobs FWA_INTERVALOFMOBSSTRONG;
            break;
        }

        
// Spawn mobs.
        
_mobsSpawnTask ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new MobsSpawn(), intervalOfMobsintervalOfMobs);
    }

    
// Do spawn Antharas.
    
private class AntharasSpawn implements Runnable
    
{
        private 
int _taskId 0;
        private 
Collection<L2Character_players _Zone.getCharactersInside().values();

        
AntharasSpawn(int taskId)
        {
            
_taskId taskId;
        }

        public 
void run()
        {
            
int npcId;
            
L2Spawn antharasSpawn null;

            switch (
_taskId)
            {
            case 
1// Spawn.
                // Strength of Antharas is decided by the number of players that
                // invaded the lair.
                
_monsterSpawnTask.cancel(false);
                
_monsterSpawnTask null;
                if (
FWA_OLDANTHARAS)
                    
npcId 29019// old
                
else if (_players.size() <= FWA_LIMITOFWEAK)
                    
npcId 29066// weak
                
else if (_players.size() > FWA_LIMITOFNORMAL)
                    
npcId 29068// strong
                
else
                    
npcId 29067// normal

                // Do spawn.
                
antharasSpawn _monsterSpawn.get(npcId);
                
_antharas = (L2GrandBossInstanceantharasSpawn.doSpawn();
                
GrandBossManager.getInstance().addBoss(_antharas);

                
_monsters.add(_antharas);
                
_antharas.setIsImmobilized(true);

                
GrandBossManager.getInstance().setBossStatus(ANTHARASOLDID,DORMANT);
                
GrandBossManager.getInstance().setBossStatus(npcId,FIGHTING);
                
_LastAction System.currentTimeMillis();
                
// Start repeating timer to check for inactivity
                
_activityCheckTask ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new CheckActivity(), 6000060000);

                
// Setting 1st time of minions spawn task.
                
if (!FWA_OLDANTHARAS)
                {
                    
startMinionSpawns(npcId);
                }

                
// Set next task.
Skyter вне форума Ответить с цитированием
Непрочитано 21.05.2010, 22:10   #6

По умолчанию Re: При ударах Антареса выдаются ошибки!

Если яву незнаеш лучьше вытяни из более старой ревы
Mangol вне форума Отправить сообщение для Mangol с помощью ICQ Ответить с цитированием
Сказали спасибо:
Непрочитано 21.05.2010, 22:13   #7
Пользователь

Автор темы (Топик Стартер) Re: При ударах Антареса выдаются ошибки!

Да у меня с Явой пока что туго думаю современен и до этого доберусь!!! А старую версию подсказать не сможете?
Просто мне не встречалась версия старая Грация Эпилог она вроде только недавно появилась!!!
Skyter вне форума Ответить с цитированием
Непрочитано 21.05.2010, 22:16   #8

По умолчанию Re: При ударах Антареса выдаются ошибки!

Ну чуть чуть ниже етой либо выше если есть
Mangol вне форума Отправить сообщение для Mangol с помощью ICQ Ответить с цитированием
Сказали спасибо:
Непрочитано 21.05.2010, 22:19   #9
Пользователь

Автор темы (Топик Стартер) Re: При ударах Антареса выдаются ошибки!

У мну их шт 10 есть у них одна этажа болезнь Я их уже столько перелопатил и толку ноль я так просто сюда не отписываюсь я сначала сто раз все проверю!!!!!

Добавлено через 15 часов 56 минут
Люди что некто не сталкивался с такой проблемой помогите решить ее спасибо будет с меня

Последний раз редактировалось Skyter; 22.05.2010 в 14:16. Причина: Добавлено сообщение
Skyter вне форума Ответить с цитированием
Непрочитано 23.05.2010, 13:27   #10
Пользователь

По умолчанию Re: При ударах Антареса выдаются ошибки!

Таже проблема=)
Anvill вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки ГС Machine Lineage II 0 21.05.2010 00:11
Ошибки чё делать....? ramsheart Создание сервера 0 24.01.2010 15:35
ошибки сервака... virus Lineage II 4 09.12.2009 23:58
Ошибки energy Lineage II 4 07.08.2009 15:22
Лог ошибки евента Unreal-Game Lineage II 1 24.06.2009 09:55


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 16:01. Часовой пояс GMT +3.

Вверх