Ir para conteúdo
  • Cadastre-se

[Freya] BR Xtreme Project


Mr.Nobre

Posts recomendados

 

Adicionei ums 10 Mods, compilei e to editando um servidor desde as 21:00 de ontem e não vi um error! :)

 

Reveja seu eclipse, java ou sei-la, svn ta normal!

Já achei o erro , Só tnha que baixar um eclipse mais atualizado então baixei o MARS e rodou normal

Um mundo de diversão no Lineage 2

https://www.primeworld.com.br

Discord: Em breve

Comunidade brasileira de Lineage. Interlude Remastered / High Five / Essence 

Classes remasterizadas, sistemas únicos, diversão garantida.

Link para o comentário
Compartilhar em outros sites


Galera eu tenho uma pequena dúvida, talvez vocês possam me ajudar.

 

Deve ter alguém que também tem essa dúvida, por exemplo , eu tenho a BrX pela SVN se eu adicionar MODS nela e vim uma nova revisão, tem como eu dar um update automatico sem perder oque eu já fiz nela. Básicamente quando eu mexia com a Frozen eu editava arquivo por arquivo e coisinha por coisinha mas existe uma forma automatica pra isso ou quando eu for dar UPDATE vou perder tudo ? Isso é uma dúvida que tenho crtz mais gente tem.

 

Sei que aqui não é area de dúvidas. Mas como é sobre o projeto brxtreme creio que da pra ser perguntada.

Um mundo de diversão no Lineage 2

https://www.primeworld.com.br

Discord: Em breve

Comunidade brasileira de Lineage. Interlude Remastered / High Five / Essence 

Classes remasterizadas, sistemas únicos, diversão garantida.

Link para o comentário
Compartilhar em outros sites

Galera eu tenho uma pequena dúvida, talvez vocês possam me ajudar.

 

Deve ter alguém que também tem essa dúvida, por exemplo , eu tenho a BrX pela SVN se eu adicionar MODS nela e vim uma nova revisão, tem como eu dar um update automatico sem perder oque eu já fiz nela. Básicamente quando eu mexia com a Frozen eu editava arquivo por arquivo e coisinha por coisinha mas existe uma forma automatica pra isso ou quando eu for dar UPDATE vou perder tudo ? Isso é uma dúvida que tenho crtz mais gente tem.

 

Sei que aqui não é area de dúvidas. Mas como é sobre o projeto brxtreme creio que da pra ser perguntada.

 

Com certeza você vai perder tudo! KKKkkKK :haha: Já aconteceu comigo varias vezes!

 

A unica saida é você adicionar a atualização manualmente, mais te garanto que da menos trabalho adicionar os mods novamente!

Link para o comentário
Compartilhar em outros sites

Galera eu tenho uma pequena dúvida, talvez vocês possam me ajudar.

 

Deve ter alguém que também tem essa dúvida, por exemplo , eu tenho a BrX pela SVN se eu adicionar MODS nela e vim uma nova revisão, tem como eu dar um update automatico sem perder oque eu já fiz nela. Básicamente quando eu mexia com a Frozen eu editava arquivo por arquivo e coisinha por coisinha mas existe uma forma automatica pra isso ou quando eu for dar UPDATE vou perder tudo ? Isso é uma dúvida que tenho crtz mais gente tem.

 

Sei que aqui não é area de dúvidas. Mas como é sobre o projeto brxtreme creio que da pra ser perguntada.

Muito fácil resolver isso mano só vc criar um novo patch da SVN antiga e add na nova no vai perder nada e é muito fácil e rápido

a minha ta cheio de mods eu sempre atualizo.

 

pode ser que der uns erros mais é melhor do que vc add os mods tudo de novo !

 

se de alguém erro vc ajeita na hora que tiver aplicando o Patch.

Editado por eriberto
Link para o comentário
Compartilhar em outros sites

 

Com certeza você vai perder tudo! KKKkkKK :haha: Já aconteceu comigo varias vezes!

 

A unica saida é você adicionar a atualização manualmente, mais te garanto que da menos trabalho adicionar os mods novamente!

 

Bah cara e.e como tu conseguiu perder varias vezes e.e HYSADHUASDHAS

 

 

Muito fácil resolver isso mano só vc criar um novo patch da SVN antiga e add na nova no vai perder nada e é muito fácil e rápido

a minha ta cheio de mods eu sempre atualizo.

 

pode ser que der uns erros mais é melhor do que vc add os mods tudo de novo !

 

se de alguém erro vc ajeita na hora que tiver aplicando o Patch.

 

Não entendi direito sua explicação. Até entender uma nova maneira de fazer isso vou adicionando manualmente, se quizer explicar seu metodo de uma forma que eu possa entender eu agradeceria muito, creio que não será só pra mim e sim pra todos que estao interessados neste tipo de assunto :c

Um mundo de diversão no Lineage 2

https://www.primeworld.com.br

Discord: Em breve

Comunidade brasileira de Lineage. Interlude Remastered / High Five / Essence 

Classes remasterizadas, sistemas únicos, diversão garantida.

Link para o comentário
Compartilhar em outros sites

 

 

Não entendi direito sua explicação. Até entender uma nova maneira de fazer isso vou adicionando manualmente, se quizer explicar seu metodo de uma forma que eu possa entender eu agradeceria muito, creio que não será só pra mim e sim pra todos que estao interessados neste tipo de assunto :c

Vou fazer um Mini tutorial .
1- baixe a nova Rev 162 .
2-segundo abra o eclipse clique com o botão direito do mouse em cima do CT25-GameServer .
3-depois em Team ao lado vá em create patch espera abrir a aba .
4- marque a opção dist e java.
5-em cima veja a opção Salva In file system e marque ela .
6- vá em browse escolha um local e aperte em salva {OBS: renomei o aquivo com final .txt}.
7- Aperte em finish pronto tudo do gameserver foi salvo todas alterações que vc fez.
8- Farsa a mesma coisa na DP.
9- Delete a rev antiga do eclipse.
10- vá em Filer depois em Import e localeze sua nova rev a 162.
11- depois de ter add a nova farsa o passo N 2 ,3 só que no 3 vc vai na opção apply patch .
12- Quando abrir a aba vá em File e localize o patch que vc salvo aperte em Next depois Finish.
Pronto todos seus mods vai pra nova rev e vc nem gasto 10 minutos .
Se de erro veja onde foi o erro e finalize assim mesmo depois vc da uma olhada onde foi o erro e ajeita .
obs: Teste os mods depois dessa modificação .
Qualquer duvida posta aqui :onda:
Editado por eriberto
Link para o comentário
Compartilhar em outros sites

3-depois em Team ao lado vá em create patch espera abrir a aba .
6- vá em browse escolha um local e aperte em salva {OBS: renomei o aquivo com final .txt}.
7- Aperte em finish pronto tudo do gameserver foi salvo todas alterações que vc fez.
11- depois de ter add a nova farsa o passo N 2 ,3 só que no 3 vc vai na opção apply patch .

 

Cê tem certeza que as atualizações continuam depois disso?

 

Não sei se entendi mal, você diz pra fazer um backup da svn antiga e upa a "162" e depois adicionar a sua por cima dando "patch"?

 

Se por ex: você tiver mod's no arquivo "L2PcInstance.java", vamos supor que ele foi atualizado, dai você e adiciona o "L2PcInstance.java" do backup por cima, tem certeza que vai continuar o atualizado?

 

Desculpe se estiver errado, mais como eu disse, não sei se entendi bem o que você quis nos dizer!

Editado por Azazyel
Link para o comentário
Compartilhar em outros sites

 

Cê tem certeza que as atualizações continuam depois disso?

 

Não sei se entendi mal, você diz pra fazer um backup da svn antiga e upa a "162" e depois adicionar a sua por cima dando "patch"?

 

Se por ex: você tiver mod's no arquivo "L2PcInstance.java", vamos supor que ele foi atualizado, dai você e adiciona o "L2PcInstance.java" do backup por cima, tem certeza que vai continuar o atualizado?

 

Desculpe se estiver errado, mais como eu disse, não sei se entendi bem o que você quis nos dizer!

Acho que vc não entendeu quando vc cria um patch pelo team ele cria uma .diff só com suas alterações .

quando vc aplica o .diif ele add só as linha que vc modifico no eclipse.

Cê tem certeza que as atualizações continuam depois disso?

 

Não sei se entendi mal, você diz pra fazer um backup da svn antiga e upa a "162" e depois adicionar a sua por cima dando "patch"?

 

Se por ex: você tiver mod's no arquivo "L2PcInstance.java", vamos supor que ele foi atualizado, dai você e adiciona o "L2PcInstance.java" do backup por cima, tem certeza que vai continuar o atualizado?

 

Desculpe se estiver errado, mais como eu disse, não sei se entendi bem o que você quis nos dizer!

Imagem é melhor que palavras

 

Fiz esse Vídeo

 

 

 

 

Editado por eriberto
Link para o comentário
Compartilhar em outros sites

Acho que vc não entendeu quando vc cria um patch pelo team ele cria uma .diff só com suas alterações .

quando vc aplica o .diif ele add só as linha que vc modifico no eclipse.

 

Imagem é melhor que palavas

 

Fiz esse Vídeo

 

 

https://www.youtube.com/watch?v=nVz7Eeedboo

 

 

disbonibiliza esse balance ae ;D

Lineage 2 THE WAR ! Freya High Five PvP Server !

Em Breve Online '-'

Link para o comentário
Compartilhar em outros sites

Nem um mob ou boss esta dropando qualquer item, a unica coisa q cai é adena

Codigo do erro

Oct 02, 2015 12:39:36 PM ct25.xtreme.gameserver.model.actor.L2Attackable calculateRewards
SEVERE: 
java.lang.NullPointerException
	at ct25.xtreme.gameserver.model.actor.L2Attackable.calculateCategorizedRewardItem(L2Attackable.java:1363)
	at ct25.xtreme.gameserver.model.actor.L2Attackable.doItemDrop(L2Attackable.java:1668)
	at ct25.xtreme.gameserver.model.actor.L2Attackable.doItemDrop(L2Attackable.java:1590)
	at ct25.xtreme.gameserver.model.actor.L2Attackable.calculateRewards(L2Attackable.java:652)
	at ct25.xtreme.gameserver.model.actor.L2Character.doDie(L2Character.java:2226)
	at ct25.xtreme.gameserver.model.actor.L2Npc.doDie(L2Npc.java:1419)
	at ct25.xtreme.gameserver.model.actor.L2Attackable.doDie(L2Attackable.java:534)
	at ct25.xtreme.gameserver.model.actor.instance.L2MonsterInstance.doDie(L2MonsterInstance.java:163)
	at ct25.xtreme.gameserver.model.actor.status.CharStatus.reduceHp(CharStatus.java:189)
	at ct25.xtreme.gameserver.model.actor.status.NpcStatus.reduceHp(NpcStatus.java:51)
	at ct25.xtreme.gameserver.model.actor.status.AttackableStatus.reduceHp(AttackableStatus.java:49)
	at ct25.xtreme.gameserver.model.actor.L2Character.reduceCurrentHp(L2Character.java:6920)
	at ct25.xtreme.gameserver.model.actor.L2Attackable.reduceCurrentHp(L2Attackable.java:505)
	at ct25.xtreme.gameserver.model.actor.L2Attackable.reduceCurrentHp(L2Attackable.java:447)
	at ct25.xtreme.gameserver.model.actor.L2Character.onHitTimer(L2Character.java:5233)
	at ct25.xtreme.gameserver.model.actor.instance.L2PcInstance.onHitTimer(L2PcInstance.java:4521)
	at ct25.xtreme.gameserver.model.actor.L2Character$HitTask.run(L2Character.java:2650)
	at ct25.xtreme.gameserver.ThreadPoolManager$RunnableWrapper.run(ThreadPoolManager.java:86)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Testei a rev limpa se a proteção e mods q tinha, o erro é o msm

Editado por phantom
Link para o comentário
Compartilhar em outros sites

é realmente a um erro no mods RateDropItemsById !


Nem um mob ou boss esta dropando qualquer item, a unica coisa q cai é adena

Codigo do erro

Oct 02, 2015 12:39:36 PM ct25.xtreme.gameserver.model.actor.L2Attackable calculateRewards
SEVERE: 
java.lang.NullPointerException
	at ct25.xtreme.gameserver.model.actor.L2Attackable.calculateCategorizedRewardItem(L2Attackable.java:1363)
	at ct25.xtreme.gameserver.model.actor.L2Attackable.doItemDrop(L2Attackable.java:1668)
	at ct25.xtreme.gameserver.model.actor.L2Attackable.doItemDrop(L2Attackable.java:1590)
	at ct25.xtreme.gameserver.model.actor.L2Attackable.calculateRewards(L2Attackable.java:652)
	at ct25.xtreme.gameserver.model.actor.L2Character.doDie(L2Character.java:2226)
	at ct25.xtreme.gameserver.model.actor.L2Npc.doDie(L2Npc.java:1419)
	at ct25.xtreme.gameserver.model.actor.L2Attackable.doDie(L2Attackable.java:534)
	at ct25.xtreme.gameserver.model.actor.instance.L2MonsterInstance.doDie(L2MonsterInstance.java:163)
	at ct25.xtreme.gameserver.model.actor.status.CharStatus.reduceHp(CharStatus.java:189)
	at ct25.xtreme.gameserver.model.actor.status.NpcStatus.reduceHp(NpcStatus.java:51)
	at ct25.xtreme.gameserver.model.actor.status.AttackableStatus.reduceHp(AttackableStatus.java:49)
	at ct25.xtreme.gameserver.model.actor.L2Character.reduceCurrentHp(L2Character.java:6920)
	at ct25.xtreme.gameserver.model.actor.L2Attackable.reduceCurrentHp(L2Attackable.java:505)
	at ct25.xtreme.gameserver.model.actor.L2Attackable.reduceCurrentHp(L2Attackable.java:447)
	at ct25.xtreme.gameserver.model.actor.L2Character.onHitTimer(L2Character.java:5233)
	at ct25.xtreme.gameserver.model.actor.instance.L2PcInstance.onHitTimer(L2PcInstance.java:4521)
	at ct25.xtreme.gameserver.model.actor.L2Character$HitTask.run(L2Character.java:2650)
	at ct25.xtreme.gameserver.ThreadPoolManager$RunnableWrapper.run(ThreadPoolManager.java:86)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Testei a rev limpa se a proteção e mods q tinha, o erro é o msm

com esse fix não da erro no game server e o mods volta a pegar normal .
fix ---->>>>
config.java
 

+import gnu.trove.map.hash.TIntFloatHashMap;
import gnu.trove.map.hash.TIntIntHashMap;
 
 
 
 

public static float RATE_QUEST_REWARD_MATERIAL;
-public static Map<Integer, Float> RATE_DROP_ITEMS_ID;
+public static TIntFloatHashMap RATE_DROP_ITEMS_ID;
 
 

_log.warning("Error while loading Player XP percent lost");
e.printStackTrace();
}
 

- String[] propertySplit = ratesSettings.getProperty("RateDropItemsById", "").split(";");
- RATE_DROP_ITEMS_ID = new HashMap<>(propertySplit.length);
- if (!propertySplit[0].isEmpty())
- {
- for (String item : propertySplit)
- {
- String[] itemSplit = item.split(",");
- if (itemSplit.length != 2)
- _log.warning(StringUtil.concat("Config.load(): invalid config property -> RateDropItemsById \"", item, "\""));
- else
- {
- try
- {
- RATE_DROP_ITEMS_ID.put(Integer.parseInt(itemSplit[0]), Float.parseFloat(itemSplit[1]));
- }
- catch (NumberFormatException nfe)
- {
- if (!item.isEmpty())
- _log.warning(StringUtil.concat("Config.load(): invalid config property -> RateDropItemsById \"", item, "\""));
- }
- }
- }
- }
- if (RATE_DROP_ITEMS_ID.get(57) == 0f)
- {
- RATE_DROP_ITEMS_ID.put(57, RATE_DROP_ITEMS); //for Adena rate if not defined
- }
- }



+ String[] propertySplit = ratesSettings.getProperty("RateDropItemsById", "").split(";");
+ RATE_DROP_ITEMS_ID = new TIntFloatHashMap(propertySplit.length);
+ if (!propertySplit[0].isEmpty())
+ {
+ for (String item : propertySplit)
+ {
+ String[] itemSplit = item.split(",");
+ if (itemSplit.length != 2)
+ _log.warning(StringUtil.concat("Config.load(): invalid config property -> RateDropItemsById \"", item, "\""));
+ else
+ {
+ try
+ {
+ RATE_DROP_ITEMS_ID.put(Integer.parseInt(itemSplit[0]), Float.parseFloat(itemSplit[1]));
+ }
+ catch (NumberFormatException nfe)
+ {
+ if (!item.isEmpty())
+ _log.warning(StringUtil.concat("Config.load(): invalid config property -> RateDropItemsById \"", item, "\""));
+ }
+ }
+ }
+ }
+ if (RATE_DROP_ITEMS_ID.get(57) == 0f)
+ {
+ RATE_DROP_ITEMS_ID.put(57, RATE_DROP_ITEMS); //for Adena rate if not defined
+ }
+ }

Editado por Leonardo Holanda
Link para o comentário
Compartilhar em outros sites

@Leonardo Holanda tem que fazer uma revisão na config.java

 

Outro erro em DUALBOX_CHECK_WHITELIST

 

GukNh01.png?1

 

 

ajeitei e testei com o fix pega 100%

 

 

fix ----->>

 

config.java

 

+import gnu.trove.TIntIntHashMap;

import gnu.trove.map.hash.TIntFloatHashMap;

import info.tak11.subnet.Subnet;

 

-public static Map<Integer, Integer> DUALBOX_CHECK_WHITELIST;

+public static TIntIntHashMap DUALBOX_CHECK_WHITELIST;

 

 

+DUALBOX_CHECK_WHITELIST = new TIntIntHashMap(propertySplit.length);

-DUALBOX_CHECK_WHITELIST = new HashMap<>(propertySplit.length);

Editado por eriberto
Link para o comentário
Compartilhar em outros sites

quem tiver com MercenaryCaptain budago só modificar essa linha

 

 

data\scripts\ai\individual\npc\MercenaryCaptain\MercenaryCaptain.java

 

- super(-1, MercenaryCaptain.class.getSimpleName(), "ai/npc");

+ super(-1, MercenaryCaptain.class.getSimpleName(), "ai/individual/npc");

Editado por eriberto
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Registre-se

    Faça parte da maior e  mais antigas comunidades sobre Lineage2 da América Latina.






  • Patrocinadores

  • Quem Está Navegando

    • Nenhum usuário registrado visualizando esta página.
  • Posts

    • Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?    
    • muchas gracias muy lindos NPC 🙂
    • relaxa jovem gafanhoto, testa as quests. e posTa os erros indesejaveis.  
    • Se alguém pudesse me ensinar como codificar as missões, eu ficaria feliz em fazer isso sozinho ou pelo menos ajudar. Eu realmente quero jogar em um servidor onde todas as quests funcionem bem e melhor ainda se você puder fazer quests customizadas!
    • mas no interlude, nem todas as quests de class,  vai mostrar onde tem que ir, ate o reborn nao mostrava quando era interlude, só mostrou depois que eles colocaram client classic pra rodar, e ficou melhor ainda quando virou hellbound em diante, mas ha sim alguma chance de modificar isso direto no script para fazer igualmente, só basta te um pouco de paciencia e persistencia exato
    • 408_PathToElvenwizard dá Orion eu tive que mexer tbm, até modifiquei e consegui deixar ela igual do Classic, com a seta e a marcação no mapa. (não retail IL) Dá pra importar py de várias revs, o foda é que não da regular as quest py através do debug em tempo real, pelo menos eu não consegui rsrs
    • Hasta el momento todas las QUESTS son completables si te guias con un tutorial de youtube. El problema es que tienen bugs de locacion y de subquests que no avanzan o no te marcan correctamente a donde ir en el mapa, cosa que en Retail si se ve como corresponde.
    • estranho, mas pelo menos a galera nunca reclamo das quests quando tinha aberto 5x, geral fez class primeira e segunda job, poucos que compraram a class
    • en RUSaCis-3.5 data pack, las Quests estan en formato .java y son diferentes a como estan redactadas en jOrion y jFrozen 1.5 (ProyectX) package net.sf.l2j.gameserver.scripting.quest; import net.sf.l2j.commons.random.Rnd; import net.sf.l2j.gameserver.enums.Paperdoll; import net.sf.l2j.gameserver.enums.QuestStatus; import net.sf.l2j.gameserver.enums.actors.ClassId; import net.sf.l2j.gameserver.model.actor.Creature; import net.sf.l2j.gameserver.model.actor.Npc; import net.sf.l2j.gameserver.model.actor.Player; import net.sf.l2j.gameserver.network.serverpackets.SocialAction; import net.sf.l2j.gameserver.scripting.QuestState; public class Q224_TestOfSagittarius extends SecondClassQuest { private static final String QUEST_NAME = "Q224_TestOfSagittarius"; // Items private static final int BERNARD_INTRODUCTION = 3294; private static final int HAMIL_LETTER_1 = 3295; private static final int HAMIL_LETTER_2 = 3296; private static final int HAMIL_LETTER_3 = 3297; private static final int HUNTER_RUNE_1 = 3298; private static final int HUNTER_RUNE_2 = 3299; private static final int TALISMAN_OF_KADESH = 3300; private static final int TALISMAN_OF_SNAKE = 3301; private static final int MITHRIL_CLIP = 3302; private static final int STAKATO_CHITIN = 3303; private static final int REINFORCED_BOWSTRING = 3304; private static final int MANASHEN_HORN = 3305; private static final int BLOOD_OF_LIZARDMAN = 3306; private static final int CRESCENT_MOON_BOW = 3028; private static final int WOODEN_ARROW = 17; // Rewards private static final int MARK_OF_SAGITTARIUS = 3293; // NPCs private static final int BERNARD = 30702; private static final int HAMIL = 30626; private static final int SIR_ARON_TANFORD = 30653; private static final int VOKIAN = 30514; private static final int GAUEN = 30717; // Monsters private static final int ANT = 20079; private static final int ANT_CAPTAIN = 20080; private static final int ANT_OVERSEER = 20081; private static final int ANT_RECRUIT = 20082; private static final int ANT_PATROL = 20084; private static final int ANT_GUARD = 20086; private static final int NOBLE_ANT = 20089; private static final int NOBLE_ANT_LEADER = 20090; private static final int BREKA_ORC_SHAMAN = 20269; private static final int BREKA_ORC_OVERLORD = 20270; private static final int MARSH_STAKATO_WORKER = 20230; private static final int MARSH_STAKATO_SOLDIER = 20232; private static final int MARSH_STAKATO_DRONE = 20234; private static final int MARSH_SPIDER = 20233; private static final int ROAD_SCAVENGER = 20551; private static final int MANASHEN_GARGOYLE = 20563; private static final int LETO_LIZARDMAN = 20577; private static final int LETO_LIZARDMAN_ARCHER = 20578; private static final int LETO_LIZARDMAN_SOLDIER = 20579; private static final int LETO_LIZARDMAN_WARRIOR = 20580; private static final int LETO_LIZARDMAN_SHAMAN = 20581; private static final int LETO_LIZARDMAN_OVERLORD = 20582; private static final int SERPENT_DEMON_KADESH = 27090; public Q224_TestOfSagittarius() { super(224, "Test Of Sagittarius"); setItemsIds(BERNARD_INTRODUCTION, HAMIL_LETTER_1, HAMIL_LETTER_2, HAMIL_LETTER_3, HUNTER_RUNE_1, HUNTER_RUNE_2, TALISMAN_OF_KADESH, TALISMAN_OF_SNAKE, MITHRIL_CLIP, STAKATO_CHITIN, REINFORCED_BOWSTRING, MANASHEN_HORN, BLOOD_OF_LIZARDMAN, CRESCENT_MOON_BOW); addQuestStart(BERNARD); addTalkId(BERNARD, HAMIL, SIR_ARON_TANFORD, VOKIAN, GAUEN); addMyDying(ANT, ANT_CAPTAIN, ANT_OVERSEER, ANT_RECRUIT, ANT_PATROL, ANT_GUARD, NOBLE_ANT, NOBLE_ANT_LEADER, BREKA_ORC_SHAMAN, BREKA_ORC_OVERLORD, MARSH_STAKATO_WORKER, MARSH_STAKATO_SOLDIER, MARSH_STAKATO_DRONE, MARSH_SPIDER, ROAD_SCAVENGER, MANASHEN_GARGOYLE, LETO_LIZARDMAN, LETO_LIZARDMAN_ARCHER, LETO_LIZARDMAN_SOLDIER, LETO_LIZARDMAN_WARRIOR, LETO_LIZARDMAN_SHAMAN, LETO_LIZARDMAN_OVERLORD, SERPENT_DEMON_KADESH); } @Override public String onAdvEvent(String event, Npc npc, Player player) { String htmltext = event; QuestState st = player.getQuestList().getQuestState(QUEST_NAME); if (st == null) return htmltext; // BERNARD if (event.equalsIgnoreCase("30702-04.htm")) { st.setState(QuestStatus.STARTED); st.setCond(1); playSound(player, SOUND_ACCEPT); giveItems(player, BERNARD_INTRODUCTION, 1); if (giveDimensionalDiamonds39(player)) htmltext = "30702-04a.htm"; } // HAMIL else if (event.equalsIgnoreCase("30626-03.htm")) { st.setCond(2); playSound(player, SOUND_MIDDLE); takeItems(player, BERNARD_INTRODUCTION, 1); giveItems(player, HAMIL_LETTER_1, 1); } else if (event.equalsIgnoreCase("30626-07.htm")) { st.setCond(5); playSound(player, SOUND_MIDDLE); takeItems(player, HUNTER_RUNE_1, 10); giveItems(player, HAMIL_LETTER_2, 1); } // SIR_ARON_TANFORD else if (event.equalsIgnoreCase("30653-02.htm")) { st.setCond(3); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_1, 1); } // VOKIAN else if (event.equalsIgnoreCase("30514-02.htm")) { st.setCond(6); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_2, 1); } return htmltext; } @Override public String onTalk(Npc npc, Player player) { String htmltext = getNoQuestMsg(); QuestState st = player.getQuestList().getQuestState(QUEST_NAME); if (st == null) return htmltext; switch (st.getState()) { case CREATED: if (player.getClassId() != ClassId.ROGUE && player.getClassId() != ClassId.ELVEN_SCOUT && player.getClassId() != ClassId.ASSASSIN) htmltext = "30702-02.htm"; else if (player.getStatus().getLevel() < 39) htmltext = "30702-01.htm"; else htmltext = "30702-03.htm"; break; case STARTED: int cond = st.getCond(); switch (npc.getNpcId()) { case BERNARD: htmltext = "30702-05.htm"; break; case HAMIL: if (cond == 1) htmltext = "30626-01.htm"; else if (cond == 2 || cond == 3) htmltext = "30626-04.htm"; else if (cond == 4) htmltext = "30626-05.htm"; else if (cond > 4 && cond < 8) htmltext = "30626-08.htm"; else if (cond == 8) { htmltext = "30626-09.htm"; st.setCond(9); playSound(player, SOUND_MIDDLE); takeItems(player, HUNTER_RUNE_2, 10); giveItems(player, HAMIL_LETTER_3, 1); } else if (cond > 8 && cond < 12) htmltext = "30626-10.htm"; else if (cond == 12) { htmltext = "30626-11.htm"; st.setCond(13); playSound(player, SOUND_MIDDLE); } else if (cond == 13) htmltext = "30626-12.htm"; else if (cond == 14) { htmltext = "30626-13.htm"; takeItems(player, BLOOD_OF_LIZARDMAN, -1); takeItems(player, CRESCENT_MOON_BOW, 1); takeItems(player, TALISMAN_OF_KADESH, 1); giveItems(player, MARK_OF_SAGITTARIUS, 1); rewardExpAndSp(player, 54726, 20250); player.broadcastPacket(new SocialAction(player, 3)); playSound(player, SOUND_FINISH); st.exitQuest(false); } break; case SIR_ARON_TANFORD: if (cond == 2) htmltext = "30653-01.htm"; else if (cond > 2) htmltext = "30653-03.htm"; break; case VOKIAN: if (cond == 5) htmltext = "30514-01.htm"; else if (cond == 6) htmltext = "30514-03.htm"; else if (cond == 7) { htmltext = "30514-04.htm"; st.setCond(8); playSound(player, SOUND_MIDDLE); takeItems(player, TALISMAN_OF_SNAKE, 1); } else if (cond > 7) htmltext = "30514-05.htm"; break; case GAUEN: if (cond == 9) { htmltext = "30717-01.htm"; st.setCond(10); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_3, 1); } else if (cond == 10) htmltext = "30717-03.htm"; else if (cond == 11) { htmltext = "30717-02.htm"; st.setCond(12); playSound(player, SOUND_MIDDLE); takeItems(player, MANASHEN_HORN, 1); takeItems(player, MITHRIL_CLIP, 1); takeItems(player, REINFORCED_BOWSTRING, 1); takeItems(player, STAKATO_CHITIN, 1); giveItems(player, CRESCENT_MOON_BOW, 1); giveItems(player, WOODEN_ARROW, 10); } else if (cond > 11) htmltext = "30717-04.htm"; break; } break; case COMPLETED: htmltext = getAlreadyCompletedMsg(); break; } return htmltext; } @Override public void onMyDying(Npc npc, Creature killer) { final Player player = killer.getActingPlayer(); final QuestState st = checkPlayerState(player, npc, QuestStatus.STARTED); if (st == null) return; switch (npc.getNpcId()) { case ANT: case ANT_CAPTAIN: case ANT_OVERSEER: case ANT_RECRUIT: case ANT_PATROL: case ANT_GUARD: case NOBLE_ANT: case NOBLE_ANT_LEADER: if (st.getCond() == 3 && dropItems(player, HUNTER_RUNE_1, 1, 10, 500000)) st.setCond(4); break; case BREKA_ORC_SHAMAN: case BREKA_ORC_OVERLORD: if (st.getCond() == 6 && dropItems(player, HUNTER_RUNE_2, 1, 10, 500000)) { st.setCond(7); giveItems(player, TALISMAN_OF_SNAKE, 1); } break; case MARSH_STAKATO_WORKER: case MARSH_STAKATO_SOLDIER: case MARSH_STAKATO_DRONE: if (st.getCond() == 10 && dropItems(player, STAKATO_CHITIN, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, MITHRIL_CLIP, REINFORCED_BOWSTRING)) st.setCond(11); break; case MARSH_SPIDER: if (st.getCond() == 10 && dropItems(player, REINFORCED_BOWSTRING, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, MITHRIL_CLIP, STAKATO_CHITIN)) st.setCond(11); break; case ROAD_SCAVENGER: if (st.getCond() == 10 && dropItems(player, MITHRIL_CLIP, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, REINFORCED_BOWSTRING, STAKATO_CHITIN)) st.setCond(11); break; case MANASHEN_GARGOYLE: if (st.getCond() == 10 && dropItems(player, MANASHEN_HORN, 1, 1, 100000) && player.getInventory().hasItems(REINFORCED_BOWSTRING, MITHRIL_CLIP, STAKATO_CHITIN)) st.setCond(11); break; case LETO_LIZARDMAN: case LETO_LIZARDMAN_ARCHER: case LETO_LIZARDMAN_SOLDIER: case LETO_LIZARDMAN_WARRIOR: case LETO_LIZARDMAN_SHAMAN: case LETO_LIZARDMAN_OVERLORD: if (st.getCond() == 13) { if (((player.getInventory().getItemCount(BLOOD_OF_LIZARDMAN) - 120) * 5) > Rnd.get(100)) { playSound(player, SOUND_BEFORE_BATTLE); takeItems(player, BLOOD_OF_LIZARDMAN, -1); addSpawn(SERPENT_DEMON_KADESH, player, false, 300000, true); } else dropItemsAlways(player, BLOOD_OF_LIZARDMAN, 1, 0); } break; case SERPENT_DEMON_KADESH: if (st.getCond() == 13) { if (player.getInventory().getItemIdFrom(Paperdoll.RHAND) == CRESCENT_MOON_BOW) { st.setCond(14); playSound(player, SOUND_MIDDLE); giveItems(player, TALISMAN_OF_KADESH, 1); } else addSpawn(SERPENT_DEMON_KADESH, player, false, 300000, true); } break; } } }  
×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.