Перейти к содержанию
Авторизация  
Kendor

Скрипт анонсы ПВ

Рекомендуемые сообщения

Ребят привет! Подскажите пожалуйста вот есть скрипт на анонсы когда рб респается . 

package ai;


import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.quest.jython.QuestJython;
import net.sf.l2j.gameserver.Announcements;


public class NpcScriptThree extends QuestJython
{
//Ид боссов
private final static int[] BossIds = {70021,100510,100511,100512,60006,60000,51035,51034,51033,60008,50000,50001,50002,50003,50004,50005,50006,60005,60003};


public NpcScriptThree(int questId, String name, String descr)
{
super(questId, name, descr, 1);
for (int BossIds1 : BossIds)
 addSpawnId(BossIds1);
}


    public String onSpawn(L2NpcInstance raidboss)
    {
        int npcId = raidboss.getNpcId();
for (int id : BossIds)
if (npcId == id)
                 Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " появился в мире!");
        return null;
    }


public static void main(String[] args)
{
new NpcScriptThree(-1, "NpcScriptThree", "ai");
}
}

Как можно сделать что бы еще когда убиваешь моба писалось нпц такой то мертв!? Ну и что бы можно было прописать отдельно нпц на которых это будет распространяться .. попробывал добавить просто еще 1 раз тоже самое - повыбивало ошибки..

Очень прошу помогите пожалуйста! С меня лимит плюсов.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
package ai;


import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.quest.jython.QuestJython;
import net.sf.l2j.gameserver.Announcements;


public class NpcScriptThree extends QuestJython
{
//Ид боссов
private final static int[] BossIds = {70021,100510,100511,100512,60006,60000,51035,51034,51033,60008,50000,50001,50002,50003,50004,50005,50006,60005,60003};


public NpcScriptThree(int questId, String name, String descr)
{
super(questId, name, descr, 1);
for (int BossIds1 : BossIds)
 addSpawnId(BossIds1);
}


    public String onSpawn(L2NpcInstance raidboss)
    {
        int npcId = raidboss.getNpcId();
for (int id : BossIds)
if (npcId == id)
               Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " появился в мире!");
        return null;
    }

    public String onKill(L2NpcInstance raidboss)
    {
        int npcId = raidboss.getNpcId();
for (int id : BossIds)
if (npcId == id)
               Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " был повержен!");
        return null;
    }


public static void main(String[] args)
{
new NpcScriptThree(-1, "NpcScriptThree", "ai");
}
}

попробуй так, либо отдельный скрипт сделай

package ai;


import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.quest.jython.QuestJython;
import net.sf.l2j.gameserver.Announcements;


public class NpcScriptThree extends QuestJython
{
//Ид боссов
private final static int[] BossIds = {70021,100510,100511,100512,60006,60000,51035,51034,51033,60008,50000,50001,50002,50003,50004,50005,50006,60005,60003};


public NpcScriptThree(int questId, String name, String descr)
{
super(questId, name, descr, 1);
for (int BossIds1 : BossIds)
 addSpawnId(BossIds1);
}


    public String onKill(L2NpcInstance raidboss)
    {
        int npcId = raidboss.getNpcId();
for (int id : BossIds)
if (npcId == id)
                 Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " был повержен!");
        return null;
    }


public static void main(String[] args)
{
new NpcScriptThree(-1, "NpcScriptThree", "ai");
}
}
Изменено пользователем Age
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
package ai;


import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.quest.jython.QuestJython;
import net.sf.l2j.gameserver.Announcements;


public class NpcScriptThree extends QuestJython
{
//Ид боссов
private final static int[] BossIds = {70021,100510,100511,100512,60006,60000,51035,51034,51033,60008,50000,50001,50002,50003,50004,50005,50006,60005,60003};


public NpcScriptThree(int questId, String name, String descr)
{
super(questId, name, descr, 1);
for (int BossIds1 : BossIds)
 addSpawnId(BossIds1);
}


    public String onSpawn(L2NpcInstance raidboss)
    {
        int npcId = raidboss.getNpcId();
for (int id : BossIds)
if (npcId == id)
               Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " появился в мире!");
        return null;
    }

    public String onKill(L2NpcInstance raidboss)
    {
        int npcId = raidboss.getNpcId();
for (int id : BossIds)
if (npcId == id)
               Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " был повержен!");
        return null;
    }


public static void main(String[] args)
{
new NpcScriptThree(-1, "NpcScriptThree", "ai");
}
}

попробуй так, либо отдельный скрипт сделай

package ai;


import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.quest.jython.QuestJython;
import net.sf.l2j.gameserver.Announcements;


public class NpcScriptThree extends QuestJython
{
//Ид боссов
private final static int[] BossIds = {70021,100510,100511,100512,60006,60000,51035,51034,51033,60008,50000,50001,50002,50003,50004,50005,50006,60005,60003};


public NpcScriptThree(int questId, String name, String descr)
{
super(questId, name, descr, 1);
for (int BossIds1 : BossIds)
 addSpawnId(BossIds1);
}


    public String onKill(L2NpcInstance raidboss)
    {
        int npcId = raidboss.getNpcId();
for (int id : BossIds)
if (npcId == id)
                 Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " был повержен!");
        return null;
    }


public static void main(String[] args)
{
new NpcScriptThree(-1, "NpcScriptThree", "ai");
}
}

А где же прописывать тогда айди нпц??? Ты текст то добавил новый а айди куда вписывать то)))

Изменено пользователем Kendor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где же прописывать тогда айди нпц??? Ты текст то добавил новый а айди куда вписывать то)))

for (int id : BossIds)

берет от туда же от куда и ид возрождения, ну должен брать по идее

Изменено пользователем Age

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
for (int id : BossIds)

берет от туда же от куда и ид возрождения, ну должен брать по идее

 

Я сейчас напортачу)))

Во всяком случае не пишет анонс про убийство почему то .....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделайте метод onSpawn

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

onSpawn это на анонс респа

 

а,все,завтыкал,простите:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

onSpawn это на анонс респа

Помогите пож :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тю... допиши ид своих нпс)

//Ид боссов
private final static int[] BossIds = {70021,100510,100511,100512,60006,60000,51035,51034,51033,60008,50000,50001,50002,50003,50004,50005,50006,60005,60003};

если я не ошибаюсь это простой массив где хранятся ид

 

или добавь новый массив и поменяй ид

 

for (int id : BossIds)
if (npcId == id)
               Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " появился в мире!");
        return null;
    }

Изменено пользователем KotBegemot

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тю... допиши ид своих нпс)

//Ид боссов

private final static int[] BossIds = {70021,100510,100511,100512,60006,60000,51035,51034,51033,60008,50000,50001,50002,50003,50004,50005,50006,60005,60003};

если я не ошибаюсь это простой массив где хранятся ид

 

или добавь новый массив и поменяй ид

 

for (int id : BossIds)

if (npcId == id)

               Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " появился в мире!");

        return null;

    }

Да мне не нпц нужно дописать.. Если я допишу своих нпц то будеи писать ЭпикБосс появился в мире и все.. А мне надо что бы и на епик писалдо и на нпц отдельно которых я выставлю.. Подскажешь ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да мне не нпц нужно дописать.. Если я допишу своих нпц то будеи писать ЭпикБосс появился в мире и все.. А мне надо что бы и на епик писалдо и на нпц отдельно которых я выставлю.. Подскажешь ?

//Ид боссов

private final static int[] BossIds = {70021,100510,100511,100512,60006,60000,51035,51034,51033,60008,50000,50001,50002,50003,50004,50005,50006,60005,60003};

private final static int[] BossIds2 = {1231,3212,1111};

 

 

for (int id : BossIds)

{

if (npcId == id)

{

Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " появился в мире!");

return null;

}

}

 

for (int id : BossIds2)

{

if (npcId == id)

{

Announcements.getInstance().announceToAll("Мобы : " + raidboss2.getName() + " появился в мире!");

return null;

}

}

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

//Ид боссов

private final static int[] BossIds = {70021,100510,100511,100512,60006,60000,51035,51034,51033,60008,50000,50001,50002,50003,50004,50005,50006,60005,60003};

private final static int[] BossIds2 = {1231,3212,1111};

 

 

for (int id : BossIds)

{

if (npcId == id)

{

Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " появился в мире!");

return null;

}

}

 

for (int id : BossIds2)

{

if (npcId == id)

{

Announcements.getInstance().announceToAll("Мобы : " + raidboss2.getName() + " появился в мире!");

return null;

}

}

Спасибо попробую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

//Ид боссов

private final static int[] BossIds = {70021,100510,100511,100512,60006,60000,51035,51034,51033,60008,50000,50001,50002,50003,50004,50005,50006,60005,60003};

private final static int[] BossIds2 = {1231,3212,1111};

 

 

for (int id : BossIds)

{

if (npcId == id)

{

Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " появился в мире!");

return null;

}

}

 

for (int id : BossIds2)

{

if (npcId == id)

{

Announcements.getInstance().announceToAll("Мобы : " + raidboss2.getName() + " появился в мире!");

return null;

}

}

Не подошло. Куча ошибок летит.....

Вот весь скрипт

package ai;


import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.quest.jython.QuestJython;
import net.sf.l2j.gameserver.Announcements;


public class NpcScriptThree extends QuestJython
{
//Ид боссов
private final static int[] BossIds = {70021,100510,100511,100512,60006,60000,51035,51034,51033,60008,50000,50001,50002,50003,50004,50005,50006,60005,60003};
private final static int[] BossIds2 = {1231,3212,1111};


public NpcScriptThree(int questId, String name, String descr)
{
super(questId, name, descr, 1);
for (int BossIds1 : BossIds)
 addSpawnId(BossIds1);
}


    public String onSpawn(L2NpcInstance raidboss)
    {
        int npcId = raidboss.getNpcId();
for (int id : BossIds)
if (npcId == id)
                 Announcements.getInstance().announceToAll("РейдБосс : " + raidboss.getName() + " появился в мире!");
        return null;
    }for (int id : BossIds)
{
if (npcId == id)
{
Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " появился в мире!");
return null;
}
}


for (int id : BossIds2)
{
if (npcId == id)
{
Announcements.getInstance().announceToAll("Мобы : " + raidboss2.getName() + " появился в мире!");
return null;
}
} 


public static void main(String[] args)
{
new NpcScriptThree(-1, "NpcScriptThree", "ai");
}
}
Изменено пользователем Kendor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я конечно не силён в яве но думаю дело в BossIdsв int можно вроде только буквы хранить

или нужно добавить импорты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Не подошло. Куча ошибок летит.....

Вот весь скрипт

package ai;


import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.quest.jython.QuestJython;
import net.sf.l2j.gameserver.Announcements;


public class NpcScriptThree extends QuestJython
{
//Ид боссов
private final static int[] BossIds = {70021,100510,100511,100512,60006,60000,51035,51034,51033,60008,50000,50001,50002,50003,50004,50005,50006,60005,60003};
private final static int[] BossIds2 = {1231,3212,1111};


public NpcScriptThree(int questId, String name, String descr)
{
super(questId, name, descr, 1);
for (int BossIds1 : BossIds)
 addSpawnId(BossIds1);
}


    public String onSpawn(L2NpcInstance raidboss)
    {
        int npcId = raidboss.getNpcId();
for (int id : BossIds)
if (npcId == id)
                 Announcements.getInstance().announceToAll("РейдБосс : " + raidboss.getName() + " появился в мире!");
        return null;
    }for (int id : BossIds)
{
if (npcId == id)
{
Announcements.getInstance().announceToAll("ЭпикБосс : " + raidboss.getName() + " появился в мире!");
return null;
}
}


for (int id : BossIds2)
{
if (npcId == id)
{
Announcements.getInstance().announceToAll("Мобы : " + raidboss2.getName() + " появился в мире!");
return null;
}
} 


public static void main(String[] args)
{
new NpcScriptThree(-1, "NpcScriptThree", "ai");
}
}

 

Ошибки потому что deadcode

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ошибки потому что deadcode

Потому что какой-то молодец додумался добавить в addSpawNID 1 масив а не 2

и поставил return null; в место break; а не в конце return null;

Изменено пользователем ncsSpawN

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потому что какой-то молодец додумался добавить в addSpawNID 1 масив а не 2

и поставил return null; в место break; а не в конце return null;

Отредактируй пожалуйста как нужно сделать полный скрипт) С меня +++++++ ))

Буду благодарен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я конечно не силён в яве но думаю дело в BossIdsв int можно вроде только буквы хранить

или нужно добавить импорты

Строго наоборот. в инте хранятся целые числа. не путай со стрингом.

 

По сабжу - ответ в посте Спауна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я же скинул 2 рабочих скрипта один на смерть один на рес. у меня на последней шаровой пв под 8 яве все норм пашет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я же скинул 2 рабочих скрипта один на смерть один на рес. у меня на последней шаровой пв под 8 яве все норм пашет

мне надо что бы на респ был один для обычных РБ другой для Епика.. и все. НУ и желательно что бы писало что осталось до респа там 5 минут..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На пв для эпика есть в конфиге настройки, а за 5 минут в шаре нету. Если только за денежку кто-то запилит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На пв для эпика есть в конфиге настройки, а за 5 минут в шаре нету. Если только за денежку кто-то запилит.

Печалька... НА многих серверах такое видел.. И все пилили одно и тоже за деньги? Сомниваюсь..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорее это одна и таже сборка или вообще один и тот же человек))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...