Ir para conteúdo
  • Cadastre-se

[Tutorial] NPC BUFFER


KhayrusS

Posts recomendados

Desculpe, mas aonde eu coloco essa parte?

To usando a versao epilogue l2jOficial.

 

Desde ja agradeço

 

__all__ = [

'q3995_echo',

'q4000_ShadowWeapons',

'q6050_KetraOrcSupport',

'q6051_VarkaSilenosSupport',

'q7000_HeroItems',

'q8000_RaidbossInfo',

'q8001_NpcLocationInfo',

'911_CatMagazin',

'9999_NPCBuffer' -> aqui a pasta do seu buffer

]

print ""

print "importing custom data ..."

for name in __all__ :

try :

__import__('data.jscript.custom.'+name,globals(), locals(), ['__init__'], -1)

except:

print "failed to import quest : ",name

print "... done"

print ""

Link para o comentário
Compartilhar em outros sites


  • 1 month later...
Como eu faço pra buffar pet?

Pra buffar o player tá tranquilo, mas o pet não buffa de jeito nenhum, pode me ajudar?

 

Dá uma olhada nos Tutoriais do fórum que vc vai achar um buffer de pet.....ai é só editar o seu.

Na boa? Buffar pet não rola mais, a galera está partindo pro mano-a-mano.

banner2top.gif

Link para o comentário
Compartilhar em outros sites

Dá uma olhada nos Tutoriais do fórum que vc vai achar um buffer de pet.....ai é só editar o seu.

Na boa? Buffar pet não rola mais, a galera está partindo pro mano-a-mano.

 

Eu procurei e tentei modificar e talvez não esteja fazendo certo, por isso estou perguntando.

 

Então, assim, eu quero fazer buff pet e buffer no mesmo npc. A tela inicial buffa o player e na segunda, buffa o pet.

Eu entendo que o pessoal prefere matar, matar e matar, mas eu curto summons e gostaria de ter um buffer pra eles.

 

Eu não tenho como tirar print agora pq to no trabalho, mas assim, eu usei 2 buffers diferentes, coloquei as html no mesmo lugar, até ai blz, as telas aparecem de boa, mas só os buffs de pet não funcionam.

 

Assim, usei o npc buffer do custom "9999_NPCBuffer" (por exemplo) e peguei os html do "8888_PetBuffer" e adicionei na pasta do 1. Mesmo o html do pet se dirigindo ao init do pet mesmo, ele não buffa.

Editado por Katsumi-chan
Link para o comentário
Compartilhar em outros sites

Cria um npc e Desvia a html dele.

http://www.l2jbrasil.com/index.php?showtopic=14091

"In a way, the supernatural is what's behind the curtain. Normally, you only need to see what's happening on stage. That's how reality works. If you don't know then it's for the best. Actually, learning about the supernatural only increases the number of things you don't know."'

Link para o comentário
Compartilhar em outros sites

Como eu faço pra buffar pet?

Pra buffar o player tá tranquilo, mas o pet não buffa de jeito nenhum, pode me ajudar?

 

Bem simples amigo,

 

esse serve para o player

				SkillTable.getInstance().getInfo(1068,3).getEffects(st.getPlayer(),st.getPlayer())

 

 

Esse para Pet

  SkillTable.getInstance().getInfo(1068,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())

 

 

qualquer dúvida só perguntar

Link para o comentário
Compartilhar em outros sites

Bem simples amigo,

 

esse serve para o player

				SkillTable.getInstance().getInfo(1068,3).getEffects(st.getPlayer(),st.getPlayer())

 

 

Esse para Pet

  SkillTable.getInstance().getInfo(1068,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())

 

 

qualquer dúvida só perguntar

 

Agora está buffando, mas depois que buffa, ele não volta pra tela de buffs certa.

 

Eu buffo, volta pra a tela de buffs (um pouco diferente) e quando clico em voltar, não volta para a tela de buffs correta como está no html.

Editado por Katsumi-chan
Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Karaka, meu celebro ta latejando de tanta informação muito show esse tutu, testei em casa to na metade do procedimento pq n tenho muito tempo, e perdi o tutu =( mas voltei aki pra pega dnv e to levando pra casa pra finaliza, ótimo tutu cara parabéns e obrigado.

rodapez.jpg

javaxd.gif

Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...

Era só lê...

 

<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->#Restore

if event == "665":

st.getPlayer().setCurrentHpMp(st.getPlayer().getMaxHp(), st.getPlayer().getMaxMp())

st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp())

return "cancel.htm"

st.setState(COMPLETED)<!--QuoteEnd--></div><!--QuoteEEnd-->

 

 

Ae KhaurusS Quero saber como faz pra por... tipo se e como skill ou pelo navicat...

um tutorial seria otimo... ou pelo menos me informa como faz mais detalhado isso ae.!

 

vlws

Link para o comentário
Compartilhar em outros sites

Venho aqui postar esse tuto que acho que estava faltando aqui no forúm. Sem mais bla bla vamos começar .....

 

opa, blz??

ola soh, eu qro colocar um botão pra dar mais de um buff, como devo fazer isso

pode me ajudar?

tipo peguei um sv do kelvim jah pronto

mais ele colocou na tele inicial do npc 3 botões de buffs pre-edit e

eu quero mudar os buffs escolhendo as skills, porém ele colocou por template (se não me engano)

pode me en ajudar a colocar por template?

 

<center><img src="L2UI_CH3.herotower_deco" width=256 height=32></img></center><br>

<button value="Show Me" action="bypass -h npc_%objectId%_Quest 9999_NPCBuffer" width=150 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">

<br><br><br><br><br><br><br><br><br><br>

</center>

<table>

<tr>

<td><font color="00FFFF"><center>Mage:</center></font></td>

<td><font color="00FF00"><center>Archer:</center></font></td>

<td><font color="FF0066"><center>Tunker:</center></font></td>

</tr>

<tr>

<td><button value="Buffar" action="bypass -h npc_%objectId%_MakeBuffs Robe" width=89 height=17 back="sek.cbui94" fore="sek.cbui92"></td>

<td><button value="Buffar" action="bypass -h npc_%objectId%_MakeBuffs Light" width=89 height=17 back="sek.cbui94" fore="sek.cbui92"></td>

<td><button value="Buffar" action="bypass -h npc_%objectId%_MakeBuffs Heavy" width=89 height=17 back="sek.cbui94" fore="sek.cbui92"></td>

</tr>

</table><br>

<center><font color="FFFF00">verbal Server</font></center>

</body>

</html>

 

*Se fosse por sript saberia mudar, vc jah esplicou isso

*lembrando q essa eh uma parte da html dele, a parte dos botões, e que essa html tah na pasta $Data\html\Defaut e os scripts estão na pasta $data\scripts\custom\9999_NPCBuffer por isso não fraguei como mudar...

*eh o l2jfree q uso, não sei a versão

*tipo, tem como eu direcionar algum html na pasta da quest lah?

Se eu fizer isso...

WindWalkbyUsweer, AcumenkbyUsweer, EmpowerkbyUsweer, ect"

Dará certo?

 

obigado, desde jah!!

 

abraço! Deus Abençoes, mano!

Link para o comentário
Compartilhar em outros sites

Tira uma Screen da sua tabela e posta aqui, geralmente é a tabela buff template

 

man eu acabei descobrindo, usei sua ideia depois dei uma olha nos comands do script

dae fiz o q vc disse de colocar soh as actions das skills no arquivo _init_.py

 

fiz assim:

<td><button value="Mage" action="bypass -h Quest 9999_NPCBuffer 84" width=89 height=17 back="sek.cbui94" fore="sek.cbui92"></td>

era assim

<td><button value="Buffar" action="bypass -h npc_%objectId%_MakeBuffs Light" width=89 height=17 back="sek.cbui94" fore="sek.cbui92"></td>

 

mais mtu obrigado, vc ajudou mtu, se não fosse eu ter visto vc esplicar pro outro ali em cima =D

 

flw abraços!

Link para o comentário
Compartilhar em outros sites

Ae KhayrusS queria te peeguntar se tem como eu por a healada no NPC bufer por template pq vc encina so pelo jscript....

se tiver como por no bufer por template posta ae...

vlws =D

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

  • 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.