JPSings

ajuda
Check Item - Quantidade!

7 posts neste tópico

Olá, alguém sabe como aumenta a quantidade do check item?

Exemplo :

case 0: CheckItems( 20046,0,20047,0,20048,0,20049,0,20050,0,20051,0,20052,0,20053,0,20054,0,20055,0,20056,0,20012,0,20057,0,20058,0,20059,0,20060,0 );

break;



Se eu Adicionar mais ID's o meu npc ele não ler, quero que meu npc leia uma certa quantidade de itens que estiverem no inventario do jogador e queria saber se tem como Aumentar na Source isso !
Acredito que o limite estar até 20 ID's, passou de 20 ele não ler mais .

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou fazer outro check antes desse ?

Ex:

case 0:
        CheckItems( ID,VALUE,ID,VALUE,ID,VALUE... ); sleep 500;
        CheckItems( 20046,0,20047,0,20048,0,20049,0,20050,0,20051,0,20052,0,20053,0,20054,0,20055,0,20056,0,20012,0,20057,0,20058,0,20059,0,20060,0 );

?

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Hyroshima disse:

Já tentou fazer outro check antes desse ?

Ex:

case 0:
        CheckItems( ID,VALUE,ID,VALUE,ID,VALUE... ); sleep 500;
        CheckItems( 20046,0,20047,0,20048,0,20049,0,20050,0,20051,0,20052,0,20053,0,20054,0,20055,0,20056,0,20012,0,20057,0,20058,0,20059,0,20060,0 );

?

Sim, quando faço ele anula o de baixo :/

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom isso é um npc que estou tentando usar para não entrar certos players com certos itens no pvp .
Então quero por uns 50 Itens custom que no meu caso seria os donation, pois acontece de um mercador colocar os itens no carrinho e entrar e lá poder usar.

Segue o Script a Baixo !

 


-    script    Itens limitados    -1,{
function    LimitItems;
function    CheckItems;
 
OnInit:
// Nível de GM para ignorar
set .GMLevel,100;
// Verifica a cada X segundos
set .Seconds,1;
// Aplicar quais os mapas e quais Zonas
setarray .DisableMap$, // "<mapname>","<zone number>",
                "guild_vs1","0",
                "guild_vs2","1",
                "guild_vs3","2";
 
for( set .i,0; .i < getarraysize( .DisableMap$ ); set .i,.i + 2 )
    setmapflag .DisableMap$[.i],mf_loadevent;
end;
 
OnPCLoadMapEvent:
if( getgmlevel() >= .GMLevel ) end;
set @Exceed,0;
for( set [email protected],0; [email protected] < getarraysize( .DisableMap$ ); set [email protected],[email protected] + 2 )
    if( strcharinfo(3) == .DisableMap$[[email protected]] )
        LimitItems( atoi( .DisableMap$[[email protected]+1] ) );
end;
 
function    LimitItems  {
switch( getarg(0) ){
    // Case <zone>: CheckItems( <Item>,<Amount>,<Item>,<Amount>,.....,<Item>,<Amount> ); break;
    case 0:
    CheckItems( 20046,0,20047,0,20048,0,20049,0,20050,0,20051,0,20052,0,20053,0,20054,0,20055,0,20056,0,20012,0,20057,0,20058,0,20059,0,20060,0,20030,0,20031,0,20032,0 );
    break;
    case 1: CheckItems( 606,0 );    break;
    case 2: CheckItems( 20378,0 );    break;
    default:
        debugmes "[NPC : "+strnpcinfo(0)+"] - Zona inválida:"+getarg(0);
        break;
}
return;
}
 
function    CheckItems    {
for( set [email protected],0; getarg( [email protected],0 ); set [email protected],[email protected] + 2 ){
    set [email protected],0;
    for( set [email protected],0; [email protected] <= 10; set [email protected],[email protected] + 1 )
        for( set [email protected],0; [email protected] <= getequipcardcnt( [email protected] ); set [email protected],[email protected] + 1 )
            if( getequipcardid( [email protected],[email protected] ) == getarg([email protected]) )
                set [email protected],[email protected] + 1;
    set [email protected],[email protected] + countitem( getarg([email protected]) );
    if( [email protected] > getarg([email protected]+1) ){
        set @Exceed,1;
        mes "[ ^FF0000Limite : ^0000FF"+getarg([email protected]+1)+"^000000 ] "+getitemname( getarg([email protected]) );
    }
}
if( @Exceed ){
    mes "Por favor, não e permitido itens custom na arena.";
    close2;
    warp "SavePoint",0,0;
    deltimer strnpcinfo(0)+"::OnPCLoadMapEvent";
}else{
    addtimer ( .Seconds * 1000 ),strnpcinfo(0)+"::OnPCLoadMapEvent";
    end;
}
return;
}
}


Aparece esse erro quando coloco mas 1 ID 

[Erro]: run_script: infinity loop !
[Depurar]: Source (NPC): Itens limitados (invisible/not on a map)

Editado por JPSings
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por quê você não faz isso por LoadMapEvent ?

Dai vc ponha uma call nos itens que vc não quer que usem no mapa, quando o player teleportar para dentro da sala a lbl será ativada dai vc escolhe se quer tirar o player da sala e informar q os itens q ele usa não pode ser usar lao, ou simplesmente faz um desequip automatico desses itens, e na call (na coluna que chama script quando equipa o item lá no item_db) vc faz a chamada de uma lbl da qual o item só vai ser equipado caso o player não esteja em um mapa proibido.

1

Compartilhar este post


Link para o post
Compartilhar em outros sites
35 minutos atrás, Hyroshima disse:

Por quê você não faz isso por LoadMapEvent ?

Dai vc ponha uma call nos itens que vc não quer que usem no mapa, quando o player teleportar para dentro da sala a lbl será ativada dai vc escolhe se quer tirar o player da sala e informar q os itens q ele usa não pode ser usar lao, ou simplesmente faz um desequip automatico desses itens, e na call (na coluna que chama script quando equipa o item lá no item_db) vc faz a chamada de uma lbl da qual o item só vai ser equipado caso o player não esteja em um mapa proibido.

pode me da um exemplo? sou meio ruim em criar npc mas se tiver uma base consigo criar aqui, esse npc eu tinha aqui a mt tempo kk

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Hyroshima disse:

Por quê você não faz isso por LoadMapEvent ?

Dai vc ponha uma call nos itens que vc não quer que usem no mapa, quando o player teleportar para dentro da sala a lbl será ativada dai vc escolhe se quer tirar o player da sala e informar q os itens q ele usa não pode ser usar lao, ou simplesmente faz um desequip automatico desses itens, e na call (na coluna que chama script quando equipa o item lá no item_db) vc faz a chamada de uma lbl da qual o item só vai ser equipado caso o player não esteja em um mapa proibido.

Opa obrigado, tentei fazer aqui e funcionou, fiz do zero um npc, curti muito esse tipo de setagem, agora vou ver se eu posso por quantos custom eu quiser rsrs, pode fechar o tópico! 

Editado por JPSings
1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora