Entre para seguir isso  
Seguidores 0
Like it

Nome da carta equipada aparece como "null"

18 posts neste tópico

Olá. Fiquei horas tentando mostrar o nome da(s) carta(s) equipada(s) no(s) equipamento(s) no menu, mas não consegui... sempre é mostrado "null", esse erro chato me deu canseira.

@edit esqueci de postar o script /burro

prontera,155,161,5	script	Sample#cardremover	757,{
getinventorylist;
for( set .@i,0; .@i < @inventorylist_count; set .@i,.@i + 1 ){
	set .@card_count,0;
	for( set .@card,1; .@card <= 4; set .@card,.@card + 1 )
		if( getd( "@inventorylist_card"+.@card+"["+.@i+"]" ) )
			set .@card_count,.@card_count + 1;
	// @inventorylist_card1[.@i] + @inventorylist_card2[.@i] + @inventorylist_card3[.@i] + @inventorylist_card4[.@i];
	if( .@card_count && [email protected]_expire[.@i] ){
		set .@equip_card_count,.@equip_card_count + 1;
		set .@menu$,.@menu$ + ( ( @inventorylist_refine[.@i] )?"+"[email protected]_refine[.@i]:"" ) + " " + getitemname( @inventorylist_id[.@i] ) + "[^777777"+(.@card)+"  "+getitemname( getd( "@inventorylist_card,@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i]"+.@card+"["+.@i+"]" ))+"^000000]" + ":";
	}else{
		set .@menu$,.@menu$ + ":";
	}
}
mes "You have "+.@equip_card_count+" equipments that have card inside.";
if( .@equip_card_count ){
	do{
		next;
		set .@i,select( .@menu$ ) - 1;
		mes "You hav selected ^0055FF"+( ( @inventorylist_refine[.@i] )?"+"[email protected]_refine[.@i]:"" )+" "+getitemname( @inventorylist_id[.@i] )+"^000000";
		set .@max_slot,getitemslots( @inventorylist_id[.@i] );
		for( set .@card,1; .@card <= .@max_slot; set .@card,.@card + 1 )
			mes "^777777Card "+( .@card )+" : "+getitemname( getd( "@inventorylist_card"+.@card+"["+.@i+"]" ) )+"^000000";
	}while( select( "Remove Card","Select Another" ) == 2 );
	delitem2 @inventorylist_id[.@i],1,1,@inventorylist_refine[.@i],@inventorylist_attribute[.@i],@inventorylist_card1[.@i],@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i];
	getitem2 @inventorylist_id[.@i],1,1,@inventorylist_refine[.@i],0,0,0,0,0;
	for( set .@card,1; .@card <= .@max_slot; set .@card,.@card + 1 )
		getitem getd( "@inventorylist_card"+.@card+"["+.@i+"]" ),1;
	mes "Done...";
}
close;
}

 

Editado por Like it
0

Compartilhar este post


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

Qual seria o menu exatamente ? Não são cartas custom ?

Cara, desculpa. Eu esqueci de postar o script. Atualizei o primeiro post. O menu é o da linha 11.

Editado por Like it
0

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 horas atrás, Like it disse:

Cara, desculpa. Eu esqueci de postar o script. Atualizei o primeiro post. O menu é o da linha 11.

 

Achei o probleminha kk (deu um pouco de dor de cabeça pq quando não é algo q vc usa muito vc deixa passar batido kkk).

 

Aqui você muda o @inventorylist_card  para  @inventorylist_card1[.@i]   e problema resolvido ! na linha que você falou!

set .@menu$,.@menu$ + ( ( @inventorylist_refine[.@i] )?"+"[email protected]_refine[.@i]:"" ) + " " + getitemname( @inventorylist_id[.@i] ) + "[^777777"+(.@card)+"  "+getitemname( getd( "@inventorylist_card,@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i]"+.@card+"["+.@i+"]" ))+"^000000]" + ":";

A sequência correta seria:

"@inventorylist_card1[.@i],@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i]"

e estava assim:

"@inventorylist_card,@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i]"

 

Até mais ^^

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 2017-5-9 at 02:51, Hyroshima disse:

 

Achei o probleminha kk (deu um pouco de dor de cabeça pq quando não é algo q vc usa muito vc deixa passar batido kkk).

 

Aqui você muda o @inventorylist_card  para  @inventorylist_card1[.@i]   e problema resolvido ! na linha que você falou!


set .@menu$,.@menu$ + ( ( @inventorylist_refine[.@i] )?"+"[email protected]_refine[.@i]:"" ) + " " + getitemname( @inventorylist_id[.@i] ) + "[^777777"+(.@card)+"  "+getitemname( getd( "@inventorylist_card,@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i]"+.@card+"["+.@i+"]" ))+"^000000]" + ":";

A sequência correta seria:


"@inventorylist_card1[.@i],@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i]"

e estava assim:


"@inventorylist_card,@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i]"

 

Até mais ^^

Man, eu acho que vc não chegou a testar, pois ainda continua aparecendo o nome da carta como "null". Eu já havia testado da forma mostrada acima por vc e não deu certo, por isso troquei para o jeito que estava no script do primeiro post.

Segue aqui:

prontera,155,161,5	script	Remover Cartas	4_M_RACHOLD1,{
getinventorylist;
for( set .@i,0; .@i < @inventorylist_count; set .@i,.@i + 1 ){
	set .@card_count,0;
	for( set .@card,1; .@card <= 4; set .@card,.@card + 1 )
		if( getd( "@inventorylist_card"+.@card+"["+.@i+"]" ) )
			set .@card_count,.@card_count + 1;
	// @inventorylist_card1[.@i] + @inventorylist_card2[.@i] + @inventorylist_card3[.@i] + @inventorylist_card4[.@i];
	if( .@card_count && !@inventorylist_expire[.@i] ){
		set .@equip_card_count,.@equip_card_count + 1;
		set .@menu$,.@menu$ + ( ( @inventorylist_refine[.@i] )?"+"+@inventorylist_refine[.@i]:"" ) + " " + getitemname( @inventorylist_id[.@i] ) + "[^777777"+(.@card)+"  "+getitemname( getd( "@inventorylist_card1[.@i],@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i]"+.@card+"["+.@i+"]" ))+"^000000]" + ":";
	}else{
		set .@menu$,.@menu$ + ":";
	}
}
mes "You have "+.@equip_card_count+" equipments that have card inside.";
if( .@equip_card_count ){
	do{
		next;
		set .@i,select( .@menu$ ) - 1;
		mes "You hav selected ^0055FF"+( ( @inventorylist_refine[.@i] )?"+"+@inventorylist_refine[.@i]:"" )+" "+getitemname( @inventorylist_id[.@i] )+"^000000";
		set .@max_slot,getitemslots( @inventorylist_id[.@i] );
		for( set .@card,1; .@card <= .@max_slot; set .@card,.@card + 1 )
			mes "^777777Card "+( .@card )+" : "+getitemname( getd( "@inventorylist_card"+.@card+"["+.@i+"]" ) )+"^000000";
	}while( select( "Remove Card","Select Another" ) == 2 );
	delitem2 @inventorylist_id[.@i],1,1,@inventorylist_refine[.@i],@inventorylist_attribute[.@i],@inventorylist_card1[.@i],@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i];
	getitem2 @inventorylist_id[.@i],1,1,@inventorylist_refine[.@i],0,0,0,0,0;
	for( set .@card,1; .@card <= .@max_slot; set .@card,.@card + 1 )
		getitem getd( "@inventorylist_card"+.@card+"["+.@i+"]" ),1;
	mes "Done...";
}
close;
}

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim eu testei, e novamente posto o código!

 

prontera,155,161,5	script	Sample#cardremover	757,{
getinventorylist;
for( set .@i,0; .@i < @inventorylist_count; set .@i,.@i + 1 ){
	set .@card_count,0;
	for( set .@card,1; .@card <= 4; set .@card,.@card + 1 )
		if( getd( "@inventorylist_card"+.@card+"["+.@i+"]" ) )
			set .@card_count,.@card_count + 1;
	// @inventorylist_card1[.@i] + @inventorylist_card2[.@i] + @inventorylist_card3[.@i] + @inventorylist_card4[.@i];
	if( .@card_count && [email protected]_expire[.@i] ){
		set .@equip_card_count,.@equip_card_count + 1;
		set .@menu$,.@menu$ + ( ( @inventorylist_refine[.@i] )?"+"[email protected]_refine[.@i]:"" ) + " " + getitemname( @inventorylist_id[.@i] ) + "[^777777"+(.@card)+"  "+getitemname( getd( "@inventorylist_card1[.@i],@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i]"+.@card+"["+.@i+"]" ))+"^000000]" + ":";
	}else{
		set .@menu$,.@menu$ + ":";
	}
}
mes "You have "+.@equip_card_count+" equipments that have card inside.";
if( .@equip_card_count ){
	do{
		next;
		set .@i,select( .@menu$ ) - 1;
		mes "You hav selected ^0055FF"+( ( @inventorylist_refine[.@i] )?"+"[email protected]_refine[.@i]:"" )+" "+getitemname( @inventorylist_id[.@i] )+"^000000";
		set .@max_slot,getitemslots( @inventorylist_id[.@i] );
		for( set .@card,1; .@card <= .@max_slot; set .@card,.@card + 1 )
			mes "^777777Card "+( .@card )+" : "+getitemname( getd( "@inventorylist_card"+.@card+"["+.@i+"]" ) )+"^000000";
	}while( select( "Remove Card","Select Another" ) == 2 );
	delitem2 @inventorylist_id[.@i],1,1,@inventorylist_refine[.@i],@inventorylist_attribute[.@i],@inventorylist_card1[.@i],@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i];
	getitem2 @inventorylist_id[.@i],1,1,@inventorylist_refine[.@i],0,0,0,0,0;
	for( set .@card,1; .@card <= .@max_slot; set .@card,.@card + 1 )
		getitem getd( "@inventorylist_card"+.@card+"["+.@i+"]" ),1;
	mes "Done...";
}
close;
}


 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

17 horas atrás, Hyroshima disse:

Sim eu testei, e novamente posto o código!

Não entendo cara, aqui persiste em ficar desse jeito, tirei até print para vc ver... A única diferença que há é que eu utilizo Hercules e vc brAthena, mas o brAthena é fork do Hercules, então não tem explicação isso.

 

screenHercules000.jpg

Editado por Like it
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

kkk então tai o problema, eu testei o código em uma rev. antiga do eAthena que uso atualmente xD. então precisamos de uma explicação de alguém dos Devs pra saber oq está acontecendo... eu acredito que seja em relação do for(), em uma situação que eu repliquei oque estava acontecendo era o seguinte:

0
0
0
ITEM_ID
0
0
0
0
ITEM_ID


isso era a relação do for armazenando os ids dos itens cards, ou seja o mesmo esta guardando valores nulos e por isso aparece os null no menu ;/

1

Compartilhar este post


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

kkk então tai o problema, eu testei o código em uma rev. antiga do eAthena que uso atualmente xD. então precisamos de uma explicação de alguém dos Devs pra saber oq está acontecendo... eu acredito que seja em relação do for(), em uma situação que eu repliquei oque estava acontecendo era o seguinte:


0
0
0
ITEM_ID
0
0
0
0
ITEM_ID


isso era a relação do for armazenando os ids dos itens cards, ou seja o mesmo esta guardando valores nulos e por isso aparece os null no menu ;/

Poxa, man :( Algo tão simples se torna tão difícil , tenso....

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
20 minutos atrás, Like it disse:

Poxa, man :( Algo tão simples se torna tão difícil , tenso....

Não prometo, mas vou tentar resolver com emulador atual herc e volto aqui.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 2017-5-11 at 14:26, Hyroshima disse:

Não prometo, mas vou tentar resolver com emulador atual herc e volto aqui.

Td bem cara, mto obrigado.

Eu tbm tenho 2 tópicos abertos que foram esquecidos, então caso vc não consiga me ajudar nesses, mas possa me ajudar nos outros, eu tbm agradeceria...

@Orce  Você poderia explicar o motivo disso, por favor?

Editado por Like it
0

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 2017-5-10 at 19:22, Hyroshima disse:

Sim eu testei, e novamente posto o código!

 


prontera,155,161,5	script	Sample#cardremover	757,{
getinventorylist;
for( set .@i,0; .@i < @inventorylist_count; set .@i,.@i + 1 ){
	set .@card_count,0;
	for( set .@card,1; .@card <= 4; set .@card,.@card + 1 )
		if( getd( "@inventorylist_card"+.@card+"["+.@i+"]" ) )
			set .@card_count,.@card_count + 1;
	// @inventorylist_card1[.@i] + @inventorylist_card2[.@i] + @inventorylist_card3[.@i] + @inventorylist_card4[.@i];
	if( .@card_count && [email protected]_expire[.@i] ){
		set .@equip_card_count,.@equip_card_count + 1;
		set .@menu$,.@menu$ + ( ( @inventorylist_refine[.@i] )?"+"[email protected]_refine[.@i]:"" ) + " " + getitemname( @inventorylist_id[.@i] ) + "[^777777"+(.@card)+"  "+getitemname( getd( "@inventorylist_card1[.@i],@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i]"+.@card+"["+.@i+"]" ))+"^000000]" + ":";
	}else{
		set .@menu$,.@menu$ + ":";
	}
}
mes "You have "+.@equip_card_count+" equipments that have card inside.";
if( .@equip_card_count ){
	do{
		next;
		set .@i,select( .@menu$ ) - 1;
		mes "You hav selected ^0055FF"+( ( @inventorylist_refine[.@i] )?"+"[email protected]_refine[.@i]:"" )+" "+getitemname( @inventorylist_id[.@i] )+"^000000";
		set .@max_slot,getitemslots( @inventorylist_id[.@i] );
		for( set .@card,1; .@card <= .@max_slot; set .@card,.@card + 1 )
			mes "^777777Card "+( .@card )+" : "+getitemname( getd( "@inventorylist_card"+.@card+"["+.@i+"]" ) )+"^000000";
	}while( select( "Remove Card","Select Another" ) == 2 );
	delitem2 @inventorylist_id[.@i],1,1,@inventorylist_refine[.@i],@inventorylist_attribute[.@i],@inventorylist_card1[.@i],@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i];
	getitem2 @inventorylist_id[.@i],1,1,@inventorylist_refine[.@i],0,0,0,0,0;
	for( set .@card,1; .@card <= .@max_slot; set .@card,.@card + 1 )
		getitem getd( "@inventorylist_card"+.@card+"["+.@i+"]" ),1;
	mes "Done...";
}
close;
}


 

Vamos la....

 

teste com este NPC e olha o resultado:

brathena.jpg

Funcionando perfeitamente na ultima revisão do brAthena.

 

Em 2017-5-11 at 19:46, Like it disse:

Td bem cara, mto obrigado.

Eu tbm tenho 2 tópicos abertos que foram esquecidos, então caso vc não consiga me ajudar nesses, mas possa me ajudar nos outros, eu tbm agradeceria...

@Orce  Você poderia explicar o motivo disso, por favor?

Realmente somos fork do Hercules mas............. isso não significa que o código tenha que seguir da mesma forma. Quando se fala que o brAthena é fork do Hercules intende-se que seguimos suas atualizações e sua lógica de dados e programação mas não significa que a fonte esta da mesma forma. Um comando do Hercules tem o mesmo efeito no brAthena mas sua forma de tratamento e interpretação dos dados recebidos para gerar o resultado é diferente.

Não falo que vou te ajudar e ver este parâmetro em funcionamento do Hercules para te passar porque não sou MUITO fã de dar suporte para um membro que não usa o brAthena. Seria mais fácil você pedir este suporte la.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 horas atrás, Orce disse:

Vamos la....

 

teste com este NPC e olha o resultado:

brathena.jpg

Funcionando perfeitamente na ultima revisão do brAthena.

 

Realmente somos fork do Hercules mas............. isso não significa que o código tenha que seguir da mesma forma. Quando se fala que o brAthena é fork do Hercules intende-se que seguimos suas atualizações e sua lógica de dados e programação mas não significa que a fonte esta da mesma forma. Um comando do Hercules tem o mesmo efeito no brAthena mas sua forma de tratamento e interpretação dos dados recebidos para gerar o resultado é diferente.

Não falo que vou te ajudar e ver este parâmetro em funcionamento do Hercules para te passar porque não sou MUITO fã de dar suporte para um membro que não usa o brAthena. Seria mais fácil você pedir este suporte la.

Tudo bem, cara. Eu respeito sua opinião, mas não concordo. Pois se eu compartilhasse do msm pensamento que vc, então não teria porque eu contribuir com o brAthena, já que eu não o utilizo, correto? Que é uma coisa que não acontece e jamais vai acontecer, não vou deixar de contribuir. Até por que se formos analisar, há muitos membros daqui  utilizam o Hercules e outros fóruns, e nem por isso é negado suporte para os mesmos. Na minha humilde opinião, todos somos um só, independente de qual é o emulador, todos somos um emulador de Ragnarok. Imagina se todos tivessem o seu pensamento, imagina como as coisas não seriam mais difíceis para todos os membros, né?! entretanto, tudo bem, obrigado de qualquer forma.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema @Like it é que é muito difícil pra quem trabalha com o brAthena de mandar um código que funcione no Hercules, no Cronus, no rAthena, e por aí vai... Cada emulador utiliza-se de particularidades únicas que os tornam diferentes um do outro e muita coisa em um pode funcionar, pode não funcionar no outro.

Não estou dizendo que não deve contribuir a comunidade por não utilizar o emulador, pois eu mesmo uso o RagEmu com servidor de teste, e não deixo de responder os tópicos. Mas quando preciso de scripts, npcs, mobs, itens, eu procuro no Hercules já que ele é um herc apenas com o renewal. Quando eu usava o rAthena eu usava apenas o forum rAthena para achar scripts e source codes.

0

Compartilhar este post


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

O problema @Like it é que é muito difícil pra quem trabalha com o brAthena de mandar um código que funcione no Hercules, no Cronus, no rAthena, e por aí vai... Cada emulador utiliza-se de particularidades únicas que os tornam diferentes um do outro e muita coisa em um pode funcionar, pode não funcionar no outro.

Não estou dizendo que não deve contribuir a comunidade por não utilizar o emulador, pois eu mesmo uso o RagEmu com servidor de teste, e não deixo de responder os tópicos. Mas quando preciso de scripts, npcs, mobs, itens, eu procuro no Hercules já que ele é um herc apenas com o renewal. Quando eu usava o rAthena eu usava apenas o forum rAthena para achar scripts e source codes.

Bom, @fxfreitas, em casos de códigos (source), como você citou, eu realmente concordo. Dificilmente vamos ter compatibilidade perfeita. Porém, em caso de scripts, que pode ser considerado como uma "linguagem universal" para todos os emuladores, eu já discordo. Eu tenho muitos scripts em meu emulador de teste, e quando eu digo muitos é muitos mesmo, e eles foram juntados com muitas pesquisas em TODOS os emuladores, não somente um, nem no outro. e nem por isso deixam de funcionar. O problema é que mesmo tendo a mesma linguagem, não temos 100% de compatibilidade, ou seja, de vez em quando sempre vamos ter um problema ou outro, isso é normal. Agora no caso do Orce, ele deixou bem claro que só não me ajudaria, pois eu utilizo outro emulador. Então não tem como levantar a hipótese, e se todos tivessem o mesmo pensamento que ele, como seria de nós?!

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho desnecessário o conteúdo fora de contexto mas em fim, eu compreendo o Orce tanto que eu sou assim, eu ajudo pq gosto, mas a comunidade foi criada com um proposito, e se ouros vem aqui somente para pedir suporte o projeto não vai crescer, pq se os membros não usam o emulador do projeto e vem pedir suporte de erros que não existe no emulador (não que seja o caso aqui) mas muitas pessoas vinham (ainda possivelmente que venham) pedir suporte de problemas que não existia no brA se é q me entende. então isso era chato, quem me conhece sabe que eu tinha uma raiva do cronus por causa de seus frequentadores e até membros da equipe mas não vou me profundar aqui.

Então, pelo que parece o problema está no método usado no hercules para tratar um conjunto de funções lógicas, que no qual o emulador que uso para testes e além de ser um projeto antigo funciona assim como no brA.

0

Compartilhar este post


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

Acho desnecessário o conteúdo fora de contexto mas em fim, eu compreendo o Orce tanto que eu sou assim, eu ajudo pq gosto, mas a comunidade foi criada com um proposito, e se ouros vem aqui somente para pedir suporte o projeto não vai crescer, pq se os membros não usam o emulador do projeto e vem pedir suporte de erros que não existe no emulador (não que seja o caso aqui) mas muitas pessoas vinham (ainda possivelmente que venham) pedir suporte de problemas que não existia no brA se é q me entende. então isso era chato, quem me conhece sabe que eu tinha uma raiva do cronus por causa de seus frequentadores e até membros da equipe mas não vou me profundar aqui.

Então, pelo que parece o problema está no método usado no hercules para tratar um conjunto de funções lógicas, que no qual o emulador que uso para testes e além de ser um projeto antigo funciona assim como no brA.

Obrigado pela ajuda, @Hyroshima.

Favor encerrarem o tópico, obrigado!

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um cara que tem conta no banco do Brasil não pede suporte no banco Itaú ou Caixa. E se o fórum do emulador que você USA não puder te ajudar nessa questão... pode esquecer não!!?!!

Tópico fechado. Caso o autor ache necessário sua re-abertura envie uma mensagem particular para algum moderador solicitando o mesmo. Evite abrir tópicos múltiplos com o mesmo assunto.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
Seguidores 0