Jump to content
  • 0
Kleber Henrique

[RESOLVIDO] Npc Buff Vip com Delay

Question

Gente tenho um NPC buff VIP aqui porem se você fica clicando direto nele acaba incomodando as pessoas que estão perto então gostaria de saber se vocês não podem adicionar um comando que ao pegar o buff o player tem que esperar 20 segundos antes de pegar outro buff,
Também gostaria que adicionasse uma fala caso o player foce level 0 "não vip" quando clicasse no NPC aparecesse uma mensagem dizendo:

Você não é VIP, apenas usuários VIP podem utilizar esse beneficio.
Aprenda com oser um membro VIP no nosso site:

(vermelho) www.exemplo.com.br

 

 

Agradeço a atenção de todos mesmo que seja apenas para ler esse tópico...

 

prontera,159,185,4	script	Buff VIP	435,{OnTouch:if (getgmlevel()<1) goto naovip;skilleffect 8,0; sc_start SC_ENDURE,360000,10;skilleffect 33,0; sc_start SC_ANGELUS,360000,10;skilleffect 74,0; sc_start SC_MAGNIFICAT,360000,5;skilleffect 75,0; sc_start SC_GLORIA,360000,5;skilleffect 66,0; sc_start SC_IMPOSITIO,360000,5;skilleffect 34,0; sc_start SC_BLESSING,360000,10;skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10;percentheal 100,100;close;}
Edited by noobsmok

Share this post


Link to post
Share on other sites

21 answers to this question

Recommended Posts

  • 0
prontera,159,185,4	script	Buff VIP	435,{if (getgmlevel()<1) goto naovip;if(@delay ==1){mes "^FF0000Buff VIP^000000"; mes "Desculpe mas lhe buffei agora a pouco."; mes "Por favor espere um instante"; close;}skilleffect 8,0; sc_start SC_ENDURE,360000,10;skilleffect 33,0; sc_start SC_ANGELUS,360000,10;skilleffect 74,0; sc_start SC_MAGNIFICAT,360000,5;skilleffect 75,0; sc_start SC_GLORIA,360000,5;skilleffect 66,0; sc_start SC_IMPOSITIO,360000,5;skilleffect 34,0; sc_start SC_BLESSING,360000,10;skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10;percentheal 100,100;set @delay,1;initnpctimer;end;OnTimer20000:set @delay,0;end;naovip:mes "Você não é VIP, apenas usuários VIP podem utilizar esse beneficio.";mes "Aprenda com oser um membro VIP no nosso site:";mes "^FF0000 www.exemplo.com.br ^000000";close;}

Share this post


Link to post
Share on other sites
  • 0

 

prontera,159,185,4	script	Buff VIP	435,{if (getgmlevel()<1) goto naovip;if(@delay ==1){mes "^FF0000Buff VIP^000000"; mes "Desculpe mas lhe buffei agora a pouco."; mes "Por favor espere um instante"; close;}skilleffect 8,0; sc_start SC_ENDURE,360000,10;skilleffect 33,0; sc_start SC_ANGELUS,360000,10;skilleffect 74,0; sc_start SC_MAGNIFICAT,360000,5;skilleffect 75,0; sc_start SC_GLORIA,360000,5;skilleffect 66,0; sc_start SC_IMPOSITIO,360000,5;skilleffect 34,0; sc_start SC_BLESSING,360000,10;skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10;percentheal 100,100;set @delay,1;initnpctimer;end;OnTimer20000:set @delay,0;end;naovip:mes "Você não é VIP, apenas usuários VIP podem utilizar esse beneficio.";mes "Aprenda com oser um membro VIP no nosso site:";mes "^FF0000 www.exemplo.com.br ^000000";close;}

 

Amigo está funcionando a parte do Não vip certinho porem o VIP ta bugado eu pego o 1 Buff e a mensagem fica lá toda vez que eu vou tentar pegar o 2 buff ou seja só conssigo pegar 1 vez depois fica só fica aparecendo a mensagem e nao da mais buff

Share this post


Link to post
Share on other sites
  • 0

Esta esperando o delay?

 

é como se o @delay não sai-se do 1

fica somente a mensagem toda vez que clico no npc

 

Eu pego o buff normal ele entra em delay porem não sai mais delay infinito

 

#edit: esse time: OnTimer20000

Realmente é 20 segundos?

não entendo de script então sei la ^^

Edited by noobsmok

Share this post


Link to post
Share on other sites
  • 0

 

 prontera,159,185,4 script Buff VIP 435,{
 
OnTouch:
if (getgroupid()<1) goto naovip;
skilleffect 8,0; sc_start SC_ENDURE,360000,10;
skilleffect 33,0; sc_start SC_ANGELUS,360000,10;
skilleffect 74,0; sc_start SC_MAGNIFICAT,360000,5;
skilleffect 75,0; sc_start SC_GLORIA,360000,5;
skilleffect 66,0; sc_start SC_IMPOSITIO,360000,5;
skilleffect 34,0; sc_start SC_BLESSING,360000,10;
skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10;
percentheal 100,100;
close;
}

 

 

Testei aqui e funfou normal.

Share this post


Link to post
Share on other sites
  • 0

 

 

 prontera,159,185,4 script Buff VIP 435,{
 
OnTouch:
if (getgroupid()<1) goto naovip;
skilleffect 8,0; sc_start SC_ENDURE,360000,10;
skilleffect 33,0; sc_start SC_ANGELUS,360000,10;
skilleffect 74,0; sc_start SC_MAGNIFICAT,360000,5;
skilleffect 75,0; sc_start SC_GLORIA,360000,5;
skilleffect 66,0; sc_start SC_IMPOSITIO,360000,5;
skilleffect 34,0; sc_start SC_BLESSING,360000,10;
skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10;
percentheal 100,100;
close;
}

 

 

Testei aqui e funfou normal.

 

Mais amigo queria implementar Delay no Buff para que um player não ficace "espamando" toda hora esse NPC...

Exemplo você clica no NPC pega os bufs e se tentar pegar de novo aparece a mensagem que você já pego e que tem que esperar 20 segundos somente depois desse tempo o NPC daria o buff novamente..

Share this post


Link to post
Share on other sites
  • 0

Algo assim deve funcionar:

<header>,{	OnTouch:		if( getgroupid() < 1 ) {			mes "["+strnpcinfo(0)+"]";			mes "Você não é VIP, apenas usuários VIP podem utilizar esse benefício.";			close;		}		// Verifica se o tempo atual é maior do que o definido na variável, se sim		// é porque ainda não passou o tempo necessário para o usuário poder receber os buffs		if( gettimetick(0) < bvip_delay )			end;		// Buffs		skilleffect 8,0; sc_start SC_ENDURE,360000,10;		skilleffect 33,0; sc_start SC_ANGELUS,360000,10;		skilleffect 74,0; sc_start SC_MAGNIFICAT,360000,5;		skilleffect 75,0; sc_start SC_GLORIA,360000,5;		skilleffect 66,0; sc_start SC_IMPOSITIO,360000,5;		skilleffect 34,0; sc_start SC_BLESSING,360000,10;		skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10;		percentheal 100,100;		// Define uma variável com um tempo no futuro		// gettimetick(0) retorna o tempo em milisegundos		set bvip_delay, gettimetick(0) + 20 * 1000; // Delay de 20s		end;}
Não se esqueça de trocar <header> pelo cabeçalho do seu NPC.

Share this post


Link to post
Share on other sites
  • 0

 

Algo assim deve funcionar:

<header>,{	OnTouch:		if( getgroupid() < 1 ) {			mes "["+strnpcinfo(0)+"]";			mes "Você não é VIP, apenas usuários VIP podem utilizar esse benefício.";			close;		}		// Verifica se o tempo atual é maior do que o definido na variável, se sim		// é porque ainda não passou o tempo necessário para o usuário poder receber os buffs		if( gettimetick(0) < bvip_delay )			end;		// Buffs		skilleffect 8,0; sc_start SC_ENDURE,360000,10;		skilleffect 33,0; sc_start SC_ANGELUS,360000,10;		skilleffect 74,0; sc_start SC_MAGNIFICAT,360000,5;		skilleffect 75,0; sc_start SC_GLORIA,360000,5;		skilleffect 66,0; sc_start SC_IMPOSITIO,360000,5;		skilleffect 34,0; sc_start SC_BLESSING,360000,10;		skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10;		percentheal 100,100;		// Define uma variável com um tempo no futuro		// gettimetick(0) retorna o tempo em milisegundos		set bvip_delay, gettimetick(0) + 20 * 1000; // Delay de 20s		end;}
Não se esqueça de trocar <header> pelo cabeçalho do seu NPC.

 

@Pan

 

fico assim:

 

 

 prontera,159,185,4 script Buff VIP 435,{
OnTouch:
if( getgroupid() < 1 ) {
mes "["+strnpcinfo(0)+"]";
mes "Você não é VIP, apenas usuários VIP podem utilizar esse benefício.";
close;
}
 
// Verifica se o tempo atual é maior do que o definido na variável, se sim
// é porque ainda não passou o tempo necessário para o usuário poder receber os buffs
if( gettimetick(0) < bvip_delay )
end;
 
// Buffs
skilleffect 8,0; sc_start SC_ENDURE,360000,10;
skilleffect 33,0; sc_start SC_ANGELUS,360000,10;
skilleffect 74,0; sc_start SC_MAGNIFICAT,360000,5;
skilleffect 75,0; sc_start SC_GLORIA,360000,5;
skilleffect 66,0; sc_start SC_IMPOSITIO,360000,5;
skilleffect 34,0; sc_start SC_BLESSING,360000,10;
skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10;
percentheal 100,100;
 
// Define uma variável com um tempo no futuro
// gettimetick(0) retorna o tempo em milisegundos
set bvip_delay, gettimetick(0) + 20 * 1000; // Delay de 20s
end;
}

 

 

Porem deu erro na linha 3 

Edited by noobsmok

Share this post


Link to post
Share on other sites
  • 0

Acabei de testar, você deve ter esquecido de por algum TAB no header do NPC, pega ele aqui: http://pastebin.com/jVcBgrG8 copia e cola em um .txt

Ah, e o evento 'OnTouch' só é necessário quando você quer que o NPC funcione quando o jogador entre em alguma área, da uma olhada nesse post http://herc.ws/board/topic/3984-é-possível-utilizar-skills-via-servidor-para-efeitos-em-npcs/?p=25957 que ta explicado certinho

Share this post


Link to post
Share on other sites
  • 0

Acabei de testar, você deve ter esquecido de por algum TAB no header do NPC, pega ele aqui: http://pastebin.com/jVcBgrG8 copia e cola em um .txt

Ah, e o evento 'OnTouch' só é necessário quando você quer que o NPC funcione quando o jogador entre em alguma área, da uma olhada nesse post http://herc.ws/board/topic/3984-é-possível-utilizar-skills-via-servidor-para-efeitos-em-npcs/?p=25957 que ta explicado certinho

 

Não sei se é por causa do meu emulador ser compilção pré renovação mais aqui não pego

cópiei e adicionei nos script e ele simplesmente sumiu

coloquei em um bloco de nota e dei <TAB> para ver se ia e só apareceu o npc quando troquei 4_F_FAIRY por 436

Mais ai quando eu clico nele acontece nada '-'

 

 

Se precisar nen precisa ter as mensagem apenas o delay de 20 segundos mesmo... =/

Edited by noobsmok

Share this post


Link to post
Share on other sites
  • 0

Não sei se é por causa do meu emulador ser compilção pré renovação mais aqui não pego

cópiei e adicionei nos script e ele simplesmente sumiu

coloquei em um bloco de nota e dei <TAB> para ver se ia e só apareceu o npc quando troquei 4_F_FAIRY por 436

Mais ai quando eu clico nele acontece nada '-'

 

 

Se precisar nen precisa ter as mensagem apenas o delay de 20 segundos mesmo... =/

Melhor você atualizar sua revisão do emulador, parece que você não está usando Hercules, acabei de testar um dos SC's estava errado, aqui está a correção: http://pastebin.com/DcdMxebT só copiar e colar em um .txt

Share this post


Link to post
Share on other sites
  • 0

 

Não sei se é por causa do meu emulador ser compilção pré renovação mais aqui não pego

cópiei e adicionei nos script e ele simplesmente sumiu

coloquei em um bloco de nota e dei <TAB> para ver se ia e só apareceu o npc quando troquei 4_F_FAIRY por 436

Mais ai quando eu clico nele acontece nada '-'

 

 

Se precisar nen precisa ter as mensagem apenas o delay de 20 segundos mesmo... =/

Melhor você atualizar sua revisão do emulador, parece que você não está usando Hercules, acabei de testar um dos SC's estava errado, aqui está a correção: http://pastebin.com/DcdMxebT só copiar e colar em um .txt

 

Deu isso amigo:

http://uploaddeimagens.com.br/imagens/map_server-png

 

Estou querendo fica com essa revisão pois foi a que mais me agrado entende não queria trocar esse emulador já que eu me matei para tirar os erros e bugs dele =/

 

Obs: cronus 3140

 

 

#EDIT: achei esse buffer aqui que é mais ou menos o que eu quero.

Ele tem o Delay caso a pessoa pega acima da quantidade de buffs

pode tentar pega a base desse porem fazer com que ao selecionar a opção pegar buff você receba todos os buffs que o script que estamos tentando fazer funcionar da com os efeitos...

 

 

//Buffer v2.0//by x Twilight [Cronus-Emulator] prontera,159,185,3	script	Super Buffer	743,{  set @npc$,"[^00bfff "+strnpcinfo(1)+" ^000000]"; set .@levelvip,1;         //-- Level Vipset .@levelpremium,2;     //-- Level Premium set .@time_delay,10;     //-- Tempo de espera para se buffar novamente [em segundos] set .@limitbuff_free,1;   //-- Limite de buffs freeset .@limitbuff_vip,3;    //-- Limite de buffs vipset .@limitbuff_premium,5;//-- Limite de buffs premium          mes @npc$;        mes "Olá "+strcharinfo(0)+".";        mes "O que deseja?";        switch(select("Pegar um buff!:Informações.:Nada."))        {                case 1:                next;                mes @npc$;                if(!getgmlevel ())                {                        if(#buff == .@limitbuff_free)                        {                                mes "Você é um jogador sem Vip, seu limite de buffs é "+.@limitbuff_free+".";                                mes "Aguarde "+.@time_delay+" segundo(s) para pegar um novo buff.";                                close2;                                set #delay, gettimetick(2) + .@time_delay;                                set #buff,0;                                end;                        }                }                if(getgmlevel () == .@levelvip)                {                        if(#buff == .@limitbuff_vip)                        {                                mes "Você é um jogador Vip, seu limite de buffs são "+.@limitbuff_vip+".";                                mes "Aguarde "+.@time_delay+" segundo(s) para pegar um novo buff.";                                close2;                                set #delay, gettimetick(2) + .@time_delay;                                set #buff,0;                                end;                        }                }                if(getgmlevel () >= .@levelpremium)                {                        if(#buff == .@limitbuff_premium)                        {                                mes "Você é um jogador Premium, seu limite de buffs são "+.@limitbuff_free+".";                                mes "Aguarde "+.@time_delay+" segundo(s) para pegar um novo buff.";                                close2;                                set #delay, gettimetick(2) + .@time_delay;                                set #buff,0;                                end;                        }                }                if(#delay >= gettimetick(2))                {                        mes "Aguarde "+((#delay-gettimetick(2)))+" segundo(s) para pegar um outro buff.";                        close;                }                mes "Escolha um dos buffs:";                switch(select("^00ff00[Free]^000000 Benção:^00ff00[Free]^000000 Aumentar Agilidade:^00ff00[Free]^000000 Angelus:" + ((getgmlevel() >= .@levelvip)? "^ff0000[Vip]^000000 Kyrie Eleison:^ff0000[Vip]^000000 Glória:^ff0000[Vip]^000000 Amplificar Poder:^ff0000[Vip]^000000 Força Violenta:^ff0000[Vip]^000000 Comidas +3":"")+ ":" + ((getgmlevel() >= .@levelpremium)? "^ff9900[Premium]^000000 Manejo Perfeito:^ff9900[Premium]^000000 Concentração:^ff9900[Premium]^000000 Bloqueio:^ff9900[Premium]^000000 Assumptio:^ff9900[Premium]^000000 Comidas +4":"") + ""))                {                        case 1:                        skilleffect 34,0; sc_start SC_BLESSING,600000,10;                        set #buff,#buff + 1;                        break;                               case 2:                        skilleffect 29,0; sc_start SC_INCREASEAGI,600000,10;                        set #buff,#buff + 1;                        break;                               case 3:                        skilleffect 33,0; sc_start SC_ANGELUS,600000,10;                        set #buff,#buff + 1;                        break;                               case 4:                        skilleffect 73,0; sc_start SC_KYRIE,600000,10;                        set #buff,#buff + 1;                        break;                               case 5:                        skilleffect 75,0; sc_start SC_GLORIA,600000,5;                        set #buff,#buff + 1;                        break;                               case 6:                        skilleffect 114,0; sc_start SC_MAXIMIZEPOWER,600000,5;                        set #buff,#buff + 1;                        break;                               case 7:                        skilleffect 113,0; sc_start SC_OVERTHRUST,600000,5;                        set #buff,#buff + 1;                        break;                         case 8:                        sc_start SC_STRFood, 600000, 3;                        sc_start SC_AGIFood, 600000, 3;                        sc_start SC_VITFood, 600000, 3;                        sc_start SC_INTFood, 600000, 3;                        sc_start SC_DEXFood, 600000, 3;                        sc_start SC_LUKFood, 600000, 3;                        set #buff,#buff + 1;                        break;                         case 9:                        skilleffect 112,0; sc_start SC_WEAPONPERFECTION,600000,10;                        set #buff,#buff + 1;                        break;                         case 10:                        skilleffect 45,0; sc_start SC_CONCENTRATE,600000,10;                        set #buff,#buff + 1;                        break;                         case 11:                        skilleffect 249,0; sc_start SC_AUTOGUARD,600000,5;                        set #buff,#buff + 1;                        break;                         case 12:                        skilleffect 361,0; sc_start SC_ASSUMPTIO,600000,5;                        set #buff,#buff + 1;                        break;                         case 13:                        sc_start SC_STRFood, 600000, 4;                        sc_start SC_AGIFood, 600000, 4;                        sc_start SC_VITFood, 600000, 4;                        sc_start SC_INTFood, 600000, 4;                        sc_start SC_DEXFood, 600000, 4;                        sc_start SC_LUKFood, 600000, 4;                        set #buff,#buff + 1;                        break;                }        percentheal 100,100;        close;         case 2:        next;        mes @npc$;        mes "Aqui você poderá receber alguns buffs a escolha.";        next;        mes @npc$;        mes "Cada buff tem duração de 10.";        next;        mes @npc$;        mes "Jogadores normais poderão pegar "+.@limitbuff_free+" buffs.";        mes "Jogadores Vips poderão pegar "+.@limitbuff_vip+" buffs.";        mes "E jogadores premium poderão pegar "+.@limitbuff_premium+" buffs.";        next;        mes @npc$;        mes "Caso o jogador exceda o limite de buffs, deverá esperar "+.@time_delay+" segundo(s) para pegar novos buffs.";        close;         case 3:        next;        mes @npc$;        mes "Estarei aqui caso precisar.";        close;        }end;}
Edited by noobsmok

Share this post


Link to post
Share on other sites
  • 0

Seria melhor se você baixasse um Hercules novo e utilizasse o modo PRE-RE dele, versões antigas de emuladores são passíveis a muitos bugs, em alguns casos até exploits sérios.

Aqui está o script modificado para não dar erros em revisões mais antigas http://pastebin.com/evp2sGCk

Se quando você falar com NPC seu personagem ficar paralisado troque SC_INC_AGI para SC_INCREASEAGI

Share this post


Link to post
Share on other sites
  • 0

Seria melhor se você baixasse um Hercules novo e utilizasse o modo PRE-RE dele, versões antigas de emuladores são passíveis a muitos bugs, em alguns casos até exploits sérios.

Aqui está o script modificado para não dar erros em revisões mais antigas http://pastebin.com/evp2sGCk

Se quando você falar com NPC seu personagem ficar paralisado troque SC_INC_AGI para SC_INCREASEAGI

 

Agora funciono Tudo OK, mais eu poderia pedir só mais uma coisinha se não for incomodo amigo?

depois que você pega o 1° buff e tenta pegar outro o npc faz nada não fala não da buff tudo certinho durante 20 segundos

mais tem como implementar uma mensagem toda vez que você tentar pegar um buff durante esses 20 segundos aparece uma mensagem "no chat" dizendo ainda falta "tanto" segundos

 

 

Digo isso por que quando eu tinha um servidor a 2 anos atras tinha esse mesmo buffer vip porem com delay de 20 segundos e toda vez que eu tentava pegar buff nele antes dos 20 segundos fica aparecendo essa mensagem como se foce um cronometro..

Share this post


Link to post
Share on other sites
  • 0

 

 

 

Amigo sem palavras, fico muito lindo o NPC, Muito obrigado pela paciência e dedicação.... OBRIGADO

 

Só tirando uma dúvida se caso eu queira troca o delay para 10 segundos como eu faço? 10 , 15

 

 

Sem problema nenhum :)

Só achar a linha

set bvip_delay, gettimetick(0) + 20 * 1000; // Delay de 20s
Substitua o 20 pelo número de segundos desejado

Share this post


Link to post
Share on other sites
  • 0

 

 

 

Amigo sem palavras, fico muito lindo o NPC, Muito obrigado pela paciência e dedicação.... OBRIGADO

 

Só tirando uma dúvida se caso eu queira troca o delay para 10 segundos como eu faço? 10 , 15

 

Sem problema nenhum :)

Só achar a linha

set bvip_delay, gettimetick(0) + 20 * 1000; // Delay de 20s
Substitua o 20 pelo número de segundos desejado

 

OBRIGADO 

#Resolvido

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.