Jump to content
  • 0

[NPC] Veding. Formula. HELP!


Kassio Felix

Question


  • Group:  Members
  • Topic Count:  8
  • Topics Per Day:  0.01
  • Content Count:  20
  • Reputation:   1
  • Joined:  10/24/20
  • Last Seen:  

Salve pessoal estou com duvida pois n consigo acerta a formula

estou usando esse script do Emistry  Porem eu não estou conseguindo colocar as placas uma ao lado da outra com 1 espaço de diferença  para o lado e para baixo, e quando consigo fica 5 a 10 uma em cima da outra, alguém pode me ensinar essa formula de posicionamento ?

Na imagem abaixo consigo colocar quatro com essa configuração do set .map$ porem quando adiciono mais fica tudo em cima uma placa da outra

set .map$,"quiz_00";
setcell .map$,0,0,300,300,cell_novending,1;
// x and y horizone ..
setarray .x_line,50,54,0,0,0,0,0;
setarray .y_line,27,17,0,0,0,0,0;

image.thumb.png.26ad24e5b8a0b4078fbb639302b97d10.png

Spoiler

quiz_00,62,34,4	script	Vending Helper	757,{
for( set .@i,1; .@i <= .count; set .@i,.@i + 1 ){
	getmapxy( .@map$,.@x,.@y,1,"#vend_slot"+.@i );
	if( !getareausers( .map$,.@x,.@y,.@x,.@y ) && .@x > 1 && .@y > 1 ){
		set .@available,.@available + 1;
		set .@menu$,.@menu$ + "Slot - "+.@i+":";
	}else{
		set .@menu$,.@menu$ + ":";
	}
}

if( !.@available ){
	mes "Dont have any available slot.";
}else if( !getskilllv("MC_VENDING") ){
	mes "You dont have ^0055FFVending Skill^000000.";
}else{
	mes "Available Slot : "+.@available;
	mes "Please select a slot to vending.";
	set .@i,select( .@menu$ );
	getmapxy( .@map$,.@x,.@y,1,"#vend_slot"+.@i );
	if( .@x == 1 || .@y == 1 ){
		mes "This NPC at invalid location...";
	}else{
		warp .@map$,.@x,.@y;
		hideonnpc "#vend_slot"+.@i;
	}
}
close;

OnInit:
sleep 1000;
// Map for vending
set .map$,"quiz_00";
setcell .map$,0,0,300,300,cell_novending,1;



// x and y horizone ..

setarray .x_line,50,54,0,0,0,0,0;

setarray .y_line,27,17,0,0,0,0,0;

set .x_line_size,getarraysize( .x_line );
set .y_line_size,getarraysize( .y_line );
set .count,1;
for( set .@x,0; .@x < .x_line_size; set .@x,.@x + 1 )
	for( set .@y,0; .@y < .y_line_size; set .@y,.@y + 1 )
		if( checkcell( .map$,.x_line[.@x],.y_line[.@y],cell_chkpass ) ){
			movenpc "#vend_slot"+.count,.x_line[.@x],.y_line[.@y];
			setcell .map$,.x_line[.@x],.y_line[.@y],.x_line[.@x],.y_line[.@y],cell_novending,0;
			set .count,.count + 1;
		}
npctalk "Vending Spot : "+.count;
donpcevent "::OnSetup";
end;
}

-	script	vend_slot	-1,{
getmapxy( .@map$,.@x,.@y,1 );
if( !getskilllv("MC_VENDING") ){
	mes "You dont have ^0055FFVending Skill^000000.";
}else if( getareausers( .@map$,.@x,.@y,.@x,.@y ) ){
	mes "Someone already selected this spot.";
}else{
	mes "Spot : ^777777Available^000000";
	mes "^0055FF[ Vending Area Rules ]^000000";
	mes "^FF0000 ~ Use proper Shop Name.^000000";
	mes "^FF0000 ~ Never sell Junk/Gifts.^000000";
	mes " ";
	mes "^777777Player will failed to follow these will be punished.^000000";
	if( select( "Select this Spot","Cancel" ) == 1 ){
		warp .@map$,.@x,.@y;
		hideonnpc strnpcinfo(0);
	}
}
close;

OnSetup:
getmapxy( .@map$,.@x,.@y,1 );
set .@npcname$,strnpcinfo(0);
while( .@map$ != "" ){
	if( getareausers( .@map$,.@x,.@y,.@x,.@y ) ){
		hideonnpc .@npcname$;
	}else{
		hideoffnpc .@npcname$;
		// specialeffect 313;
	}
	sleep 5000;
}
end;
}

// Add more if needed.
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot1	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot2	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot3	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot4	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot5	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot6	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot7	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot8	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot9	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot10	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot11	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot12	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot13	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot14	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot15	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot16	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot17	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot18	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot19	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot20	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot21	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot22	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot23	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot24	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot25	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot26	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot27	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot28	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot29	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot30	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot31	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot32	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot33	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot34	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot35	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot36	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot37	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot38	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot39	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot40	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot41	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot42	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot43	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot44	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot45	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot46	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot47	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot48	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot49	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot50	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot51	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot52	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot53	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot54	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot55	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot56	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot57	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot58	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot59	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot60	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot70	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot71	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot72	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot73	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot74	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot75	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot76	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot77	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot78	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot79	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot80	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot90	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot91	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot92	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot93	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot94	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot95	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot96	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot97	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot98	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot99	858
quiz_00,1,1,4	duplicate(vend_slot)	#vend_slot100	858

 

Salveeeeee.. Eu entendi o npc, ele é baseado num sistema criado por René Descartes.  Sistema de coordenadas cartesiano. Ele vai funcionar da seguinte maneira. 

x baixo. y reto o npc vai criar 1 placa  na celula 118 e 129 vai ser a direção que vou criar as placas então para fazer uma fila de placa eu vou por as celulas 129 em diante 130,131,132 etc.

para criar uma novafileira eu vou seleciona a direção por exemplo  122 ai vai ficar assim :

setarray .x_line,118,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0;

setarray .y_line,129,0,0,0,0,0,0,0;  

qualquer duvida podem perguntar que eu ajudo tbm, Moderadores, podem fechar o tópico e se puder levar essa explicação para a area adequada de suporte.

 

Edited by Kassio Felix
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

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.   Paste as plain text instead

  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.

×
×
  • Create New...