Secret Experience

Secret Experience (https://secretexperience.net/index.php)
-   [L2OFF | Admin] Tutoriais (https://secretexperience.net/forumdisplay.php?f=52)
-   -   [Tutorial] Npc Buffer AI (https://secretexperience.net/showthread.php?t=20537)

lucasxp1990 14-04-2010 12:46 AM

[Tutorial] Npc Buffer AI
 
E ae galera, sou novo aqui no forum e to parado a um tempo com L2 OFF, e to vendo que muita gente esta com duvida de como fazer(editar) npc buffer pelo AI. Vou Pegar de BASE codigo do NPC BUFFER 1.0(NASC)


Citação:

class buffer_npc : default_npc {

parameter:
string fnHi = "buffer_npc001.htm";
string fnYouAreChaotic = "buffer_npc002.htm";
string fnNotEnoughAdena = "buffer_npc003.htm";
string fnWait = "buffer_npc004.htm";
int ItemBuff = 57;
int Amount = 1000;
int Delay = 250;

handler:
EventHandler CREATED() {
myself.i_ai0 = 0;
}
EventHandler TALKED(talker) {
if (talker.karma > 0) myself->ShowPage(talker,fnYouAreChaotic); else myself->ShowPage(talker,fnHi);
}

EventHandler MENU_SELECTED(talker,ask,reply) {
if ( (ask == 1) && (myself->OwnItemCount(talker,ItemBuff) >= Amount) ) {
if( myself.i_ai0 == 0 ) {
myself.i_ai0 = 1;
myself->DeleteItem1(talker,ItemBuff,Amount);
myself->AddUseSkillDesire(talker,reply,1,1,1000000);
myself->ShowPage(talker,fnHi);
myself->AddTimerEx(1,Delay);
}
else myself->ShowPage(talker,fnWait);
}
else myself->ShowPage(talker,fnNotEnoughAdena);
}

EventHandler TIMER_FIRED_EX(timer_id) {
if( timer_id == 1 ) myself.i_ai0 = 0;
}

}
bom vou tentar explicar mais ou menos como ta funcionando esse esquema ai..
Começo

if (talker.karma > 0) myself->ShowPage(talker,fnYouAreChaotic); // ou seja se o karma estiver acima de 0 executar a pagina que ta com a string fnyouarechatic que é buffer_npc002.htm.

else myself->ShowPage(talker,fnHi); // esta usando pagina string fnhi
que é buffer_npc001.htm.

Resumindo só para vocês verem configuracoes das strings. continuando


Citação:

myself->AddUseSkillDesire(talker,reply,1,1,1000000);

Skill:

talker = talker
reply = Olhar Numero da Skill de Acordo com o skill_pch do server
1 = 1
1 = 1
1000000 = 1000000


Exemplo :

Vou Adicionar Song OF Vitality no NPC BUFFER
Skill_pch
[s_song_of_vitality] = 77825

myself->AddUseSkillDesire(talker,77825,1,1,1000000);


agora passando para o html ->


<a action="bypass -h menu_select?ask=1&reply=77825">[Song Vitality]</a><br>



então é isso ae moçadaa.. tentei resumir mais ou menos como funciona para editar ou criar.. nao sei se todo mundo vai entender.

espero que gostem...

abraços!!!

Setokaiba 14-04-2010 09:06 PM

Primeiramente seja bem-vindo.

E obrigado por compartilhar o seu conhecimento em L2oFF, que no momento no Brasil estamos precisando, sempre que quiser ajudar será bem recebido.
Abraços.

lucasxp1990 15-04-2010 12:05 AM

Vlwww setoo, e parabens pelo forum e uma grande iniciativa para a galera entender mais sobre L2 OFF...

loest 08-05-2010 03:00 AM

voce postou o codigo em nasc mas sem o compilador nao da pra fazer muita coisa :P
mas vlw o esforço

neoHaT 20-05-2010 07:12 PM

Verificado por: DS-Dazzel em 02/06/2010
 
Aproveitando o topico. (Para quem tiver problemas em compilar)
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]


LINK ALTERNATIVO POR: DS-Dazzel:
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

Arquivosbuffer_npc.COMPILED.txt
buffer_npc.NASC.txt
buffer_npc.npc_pch.txt
buffer_npc.npcdata.txt
buffer_npc001.htm
buffer_npc002.htm
buffer_npc003.htm
buffer_npc004.htm


Créditosxryskom


Estou começando a participar do forum e vou marcar uma presença no L2OFF.
Abraços.

neoHaT 02-06-2010 04:30 AM

Posso estar muito enganado, mas esse NPC não funciona buffers que devem ser em party né? Como por exemplo, dances e songs... Certo?
Fiz dois testes, Berserk e Dance of Fury, ambos como party e não target.

Se a causa for realmente o tipo de buffer, acredito que deve ser duplicado todos os buffers que forem ser usados no NPC e assim, customizando o tipo de target do buff de PARTY para TARGET.

Como eu disse, posso estar completamente enganado. Fiz apenas dois testes...

350Z 10-06-2010 05:17 PM

o código em NASC, já é o Pseudocódigo,
ele é uma sintaxe, da linguagem de Objeto que compoem o AI.OBJ
escrito em C++, lembrece ele é uma sintaxe de C++, para o arquivo de Objeto ,
quando você baixa esse NPC bufer ele já vem compilado com um Código para o AI.OBJ não precisa fazer mais nada basta adicionar as linhas corretas no HTML, que ele irá pegar os Buffers...

Citação:

<button value="Might" action="bypass -h menu_select?ask=-201&reply=273410" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"><br1>

Editar o código em vermelho pelo, número da Skill do Servidor.
[COLOR="Red"]

----------

350Z 11-06-2010 04:01 PM

não eu não entendi. :twitcy:

loest 15-08-2010 06:45 AM

c++?
ai.obj é escrito usando a linguagem nasc amigo, nao tem nada de c++.
para descompilar vc precisa de um descompilador nasc. a pra compilar um compilador nasc.

no caso do buffer, vc adiciona a lista de buffs customizada pelo html. como no exemplo do 350z.

gemeos 14-11-2010 06:00 PM

nasc
 
NASC: Npc Ai Script Compiler
N A S C .. script compilador da AI(Artificial intelligence) dos NPC's (non-player-character), código similar e compatível com C++. Mas até onde eu sei esse NASC não é uma linguagem de programação e sim um script que utiliza C++ no seu código.

Aliás, pelo que to vendo aqui, isso é utilizado somente no pack do smeli pelo que to entendendo, précompilando o server antes de utilizar, utilizando menos recursos da máquina e acho que somente por isso que roda em um pc com 1gb de ram.

Eu acredito que o arquivo OBJ em texto puro serve para que não se precise compilar, recompilar, nem editar/linkar e relinkar as libs (q são estáticas) do servidor toda vez que se quer mudar algo. Por isso usam-se DLL's, que são dinâmicas mas que consomem muito mais recursos.

Por isso que o servidor que não tem isso consome muito mais memória para gerenciar tudo.

Abraço!

Att.
GeMeOs

thedarking 19-05-2011 06:16 PM

npc buffer working in l2????
 
any npc buffer l2off working in interlude?????

gta2 16-11-2012 01:46 PM

para eu adicionar mais buufer e so colocar mais linha
myself->AddUseSkillDesire(talker,reply,1,1,1000000);
myself->AddUseSkillDesire(talker,reply,1,1,1000000);
myself->AddUseSkillDesire(talker,reply,1,1,1000000);
myself->AddUseSkillDesire(talker,reply,1,1,1000000);
myself->AddUseSkillDesire(talker,reply,1,1,1000000);
myself->AddUseSkillDesire(talker,reply,1,1,1000000);
myself->AddUseSkillDesire(talker,reply,1,1,1000000);

ou precisa compilar algo do genero ? minha duvida é para adicionar mais buufer com song e dance no ai.job ?

destrodevianne 12-03-2013 12:32 PM

350z esse em vermelho como vc disse é o id da skill isso ai eu pego ele no script skilldata ?? pq dos npc buff ou ate mesmo deste exemplo ai o might la tem outra id como pode isso estou meio em duvida

----------

Esse vermelho é depois da codificação ou algum outro id de skill que pego em algum lugar no l2 off pq eu estava vendo e realmente nao achei essas id grandes assim so achei as reais ids das skill 300z se tu puder me ajudar ai ficarei muito grato

lMorfiX 30-03-2013 05:00 PM

Não sei se é so comigo mais usando esse npc copilado eu tento adcionar uma nova linha,ate pega mais ao inves do npc me buffar ele se buffa ou seja o Efeito pega nele ao infez de pegar no player tanto gm como normal.

alguém pode dar uma luz ?


Horários baseados na GMT -3. Agora são 01:07 AM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.