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

Проблема С Профами God!

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

Как сделать автомотическую выдачу проффесий в GOD -Tauti, не через квесты. Может есть какая то команда?

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


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

реализовуй сервис или же функцию в конфиге прописывай

А какая эта функция в конфиге?

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


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

Квесты проходи не ленись!

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


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

Квесты проходи не ленись!

Да нет, хотелось бы просто пвп поиграть

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


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

Почти в любой сборке выше хф есть конфиг:

AWAKING_FREE = otherSettings.getProperty("AwakingFree", false);

Ищите.

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


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

Как сделать автомотическую выдачу проффесий в GOD -Tauti, не через квесты. Может есть какая то команда?

ТС напишите в лс посмотрим

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


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

эхх ладно тут:

находим это:

public static void loadOtherConfig()

{

ExProperties otherSettings = load(OTHER_CONFIG_FILE);

ниже добавляем

AWAKING_FREE = otherSettings.getProperty("AwakingFree", false);

и добавляем выше этого метода public static void loadOtherConfig()

public static boolean AWAKING_FREE;

дальше идём в класс AwakingManager.java:

Обычно он лежит тут gameserver\src\main\java\org\mmocore\gameserver\instancemanager

Находим метод

public void load()

{

и добавляем

 

 

if (Config.AWAKING_FREE)

CharListenerList.addGlobal(this);

 

Идём сюда gameserver\src\main\java\org\mmocore\gameserver\network\clientpackets

открываем RequestChangeToAwakenedClass

и заменяем

 

 

package org.mmocore.gameserver.network.clientpackets;

 

import org.mmocore.commons.threading.RunnableImpl;

import org.mmocore.gameserver.Config;

import org.mmocore.gameserver.ThreadPoolManager;

import org.mmocore.gameserver.instancemanager.AwakingManager;

import org.mmocore.gameserver.model.Player;

import org.mmocore.gameserver.model.base.ProfessionRewards;

import org.mmocore.gameserver.model.base.ClassId;

import org.mmocore.gameserver.network.serverpackets.ExShowUsmVideo;

import org.mmocore.gameserver.utils.ItemFunctions;

 

public class RequestChangeToAwakenedClass extends L2GameClientPacket

{

private static final int SCROLL_OF_AFTERLIFE = 17600;

//private static final int STONE_OF_DESTINY = 17722;

private boolean change;

private int MY_CLASS_ID;

private int MY_OLD_CLASS_ID;

 

@Override

protected void readImpl() throws Exception

{

change = readD() == 1;

}

 

@Override

protected void runImpl() throws Exception

{

if(!Config.AWAKING_FREE)

{

final Player player = getClient().getActiveChar();

if(player == null)

return;

if(!change)

return;

ClassId classId = player.getClassId();

for (ClassId cid : ClassId.VALUES)

{

if(cid.childOf(classId) && cid.getClassLevel().ordinal() == classId.getClassLevel().ordinal() + 1)

{

if(player.getInventory().getCountOf(SCROLL_OF_AFTERLIFE) > 0)

{

ItemFunctions.removeItem(player, SCROLL_OF_AFTERLIFE, 1, true);

if(player.getVar("AwakenedID") != null)

{

MY_CLASS_ID = player.getVarInt("AwakenedID");

ProfessionRewards.checkedAndGiveChest(player, MY_CLASS_ID);

}

if(player.getVar("AwakenedOldIDClass") != null)

{

MY_OLD_CLASS_ID = player.getVarInt("AwakenedOldIDClass");

ProfessionRewards.checkedAndGiveWeapon(player, MY_OLD_CLASS_ID);

}

AwakingManager.getInstance().SetAwakingId(player);

ThreadPoolManager.getInstance().schedule(new RunnableImpl()

{

@Override

public void runImpl() throws Exception

{

player.sendPacket(new ExShowUsmVideo(ExShowUsmVideo.Q010));

}

}, 15000);

} /*

* else { if (player.getInventory().getCountOf(STONE_OF_DESTINY) > 0 && player.getInventory().getCountOf(SCROLL_OF_AFTERLIFE) > 0)

* { player.getInventory().removeItemByItemId(SCROLL_OF_AFTERLIFE , 1); AwakingManager.getInstance().SetAwakingId2(player);

* ThreadPoolManager.getInstance().schedule(new RunnableImpl() {

*

* @Override public void runImpl() throws Exception { player.sendPacket(new ExShowUsmVideo(ExShowUsmVideo.Q010)); } }, 15000); } }

*/// TODO

return;

}

}

}

else

{

Player player = getClient().getActiveChar();

 

if(player == null)

return;

 

if(player.getLevel() < 85)

return;

 

if(player.getClassId().level() < 3)

return;

 

if(player.isAwaking())

return;

 

AwakingManager.getInstance().SetAwakingId(player);

}

}

}

 

 

тут же открываем RequestCallToChangeClass

 

 

package org.mmocore.gameserver.network.clientpackets;

 

import org.mmocore.gameserver.Config;

import org.mmocore.gameserver.instancemanager.AwakingManager;

import org.mmocore.gameserver.model.Player;

import org.mmocore.gameserver.model.base.ClassId;

import org.mmocore.gameserver.network.serverpackets.ExCallToChangeClass;

import org.mmocore.gameserver.network.serverpackets.ExShowScreenMessage;

import org.mmocore.gameserver.network.serverpackets.components.NpcString;

 

public class RequestCallToChangeClass extends L2GameClientPacket

{

 

@Override

protected void readImpl() throws Exception

{

}

 

@Override

protected void runImpl() throws Exception

{

if (!Config.AWAKING_FREE)

{

Player player = getClient().getActiveChar();

if (player == null)

return;

if (player.getVarB("GermunkusUSM"))

return;

int _cId = 0;

for (ClassId Cl : ClassId.VALUES)

{

if (Cl.level() == 5 && player.getClassId().childOf(Cl))

{

_cId = Cl.getId();

break;

}

}

 

if (player.isDead())

{

sendPacket(new ExShowScreenMessage(NpcString.YOU_CANNOT_TELEPORT_WHILE_YOU_ARE_DEAD, 10000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, false, ExShowScreenMessage.STRING_TYPE, -1, false), new ExCallToChangeClass(_cId, false));

return;

}

if(player.isInParty())

{

sendPacket(new ExShowScreenMessage(NpcString.YOU_CANNOT_TELEPORT_IN_PARTY_STATUS, 10000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, false, ExShowScreenMessage.STRING_TYPE, -1, false), new ExCallToChangeClass(_cId, false));

return;

}

//player.processQuestEvent("_10338_SeizeYourDestiny", "MemoryOfDisaster", null);

AwakingManager.getInstance().onStartQuestAccept(player);

}

else

{

Player player = getClient().getActiveChar();

 

if (player == null)

return;

 

if (player.getLevel() < 85)

return;

 

if (player.getClassId().level() < 3)

return;

 

// TODO: Когда будет готов квест - удалить это нах

AwakingManager.getInstance().SendReqToAwaking(player);

}

}

}

 

 

P.S было бы хорошо указать сборочку и возможно оно у вас есть

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


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

реализовуй сервис или же функцию в конфиге прописывай

что это за совет? что за ересь? про прописанную функцию в конфиге

 

можно через чек кондишн(крон/шедулед ежеминутный)

if lvl = 85 & classId=3
set classId=4
else
return

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

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


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

Лааадно, щас попробуемс

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


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

Но наверное правильнее будет через класс, отвечающий за повышение уровня написать

if (levelGetted() = 85 & classId = 3)

set classId =4

 

что-то подобное, это я тривиально написал, нужно конечно проверку на совпадение 3 и 4 профы написать, что-бы не выдавал рандом профу, а только ту, что твоя

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

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


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

а руссиану - я только в 1 сборке видел авйкенинг менеджер, это новелл, не факт что у него он есть

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


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

а руссиану - я только в 1 сборке видел авйкенинг менеджер, это новелл, не факт что у него он есть

я же попросил уточнить и разве в одной? Ребелион-тим шара таути там он есть, novell, l2j-europa он практически везде есть

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


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

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

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


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

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

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

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

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

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

Войти

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

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

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

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

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