Jump to content
  • 0

Request to be a multiple shop with option


Question

Posted (edited)
prontera,154,180,5 script Name1 911,{

set .@z, 100; // Zeny (Default: 1b)
setarray .@v, 23023,23024;  // <ItemID1>,<ItemID2>{...}
set .@n$, "[Valkyrie Helm Changer]"; // NPC Name

for ( set .@i, 0; .@i < getarraysize(.@v); set .@i, .@i + 1 )
{
set .@menu$, .@menu$ + getitemname(.@v[.@i]) + ":";
if ( countitem(.@v[.@i]) > 0 ) setarray .@tmp[getarraysize(.@tmp)], .@v[.@i];
}
mes .@n$;
mes "Which Valkyrie Helm would you like to have?";
set .@j, select ( .@menu$ ) - 1;
set .@k, 0;
if ( getarraysize(.@tmp) > 1 )
{
set .@menu$, "";
for ( set .@i, 0; .@i < getarraysize(.@tmp); set .@i, .@i + 1 )
set .@menu$, .@menu$ + getitemname(.@tmp[.@i]) + ":";
mes .@n$;
mes "There are more than one Valkyrie Helm in your inventory.";
mes "Please select one to be exchanged.";
set .@k, select ( .@menu$ ) - 1;
}
next;
mes .@n$;
if ( !.@tmp ) { mes "You need a Valkyrie Helm to use my services."; close; }
if ( Zeny < .@z ) { mes "You need " + .@z + "z to use my services."; close; }
mes "Thank you!";
close2;
delitem .@tmp[.@k], 1;
getitem .@v[.@j], 1;
set Zeny, Zeny - .@z;
end;

}

Edited by Euphy
Code tag.

4 answers to this question

Recommended Posts

Posted (edited)

prontera,156,180,5    script    Name2    100,{
   mes "[Valkyrie Helm Changer]";
   getinventorylist;
   for ( .@i = 0; .@i < @inventorylist_count; .@i++ ) {
       if ( compare( .itemidcompare$, ":"+ @inventorylist_id[.@i] +":" ) ) {
           .@menu$ = .@menu$ +( .@item_name$[.@c] = callfunc("getitemname2", @inventorylist_id[.@i], @inventorylist_identify[.@i], @inventorylist_refine[.@i], @inventorylist_attribute[.@i], @inventorylist_card1[.@i], @inventorylist_card2[.@i], @inventorylist_card3[.@i], @inventorylist_card4[.@i]) )+":";
           .@id[.@c] = @inventorylist_id[.@i];
           .@refine[.@c] = @inventorylist_refine[.@i];
           .@identify[.@c] = @inventorylist_identify[.@i];
           .@attribute[.@c] = @inventorylist_attribute[.@i];
           .@card1[.@c] = @inventorylist_card1[.@i];
           .@card2[.@c] = @inventorylist_card2[.@i];
           .@card3[.@c] = @inventorylist_card3[.@i];
           .@card4[.@c] = @inventorylist_card4[.@i];
           .@c++;
       }
   }
   if ( .@c == 0 ) {
       mes "You need a Valkyrie Helm to use my services.";
       close;
   }
   else if ( .@c > 1 ) {
       mes "There are more than one Valkyrie Helm in your inventory.";
       mes "Please select one to be exchanged.";
       next;
       .@s = select( .@menu$ ) -1;
       mes "[Valkyrie Helm Changer]";
   }
   setarray @head_exchanger, .@id[.@s], .@identify[.@s], .@refine[.@s], .@attribute[.@s], .@card1[.@s], .@card2[.@s], .@card3[.@s], .@card4[.@s];
   mes "Which Valkyrie Helm would you like to have?";
   close2;
   callshop "head_exchanger#hidden", 1;
   end;
OnBuyItem:
   mes "[Valkyrie Helm Changer]";
   if ( getarraysize( @bought_nameid ) > 1 )
       mes "Please only choose 1 headgear";
   else if ( !countitem2( @head_exchanger[0], @head_exchanger[1], @head_exchanger[2], @head_exchanger[3], @head_exchanger[4], @head_exchanger[5], @head_exchanger[6], @head_exchanger[7] ) )
       mes "You need a Valkyrie Helm to use my services.";
   else if ( zeny < .req_zeny )
       mes "You need " + .req_zeny + "z to use my services.";
   else {
       mes "Thank you!";
       zeny -= .req_zeny;
       delitem2 @head_exchanger[0], 1, @head_exchanger[1], @head_exchanger[2], @head_exchanger[3], @head_exchanger[4], @head_exchanger[5], @head_exchanger[6], @head_exchanger[7];
       getitem2 @bought_nameid, 1, @head_exchanger[1], @head_exchanger[2], @head_exchanger[3], @head_exchanger[4], @head_exchanger[5], @head_exchanger[6], @head_exchanger[7];
   }
   deletearray @head_exchanger;
   close;
OnInit:
   .req_zeny = 10000; // zeny requirement
   setarray .itemid, 5001, 5002, 5003, 5004, 5005, 5006; // put all your headgear in this list

   npcshopdelitem "head_exchanger#hidden", 501;
   .@size = getarraysize( .itemid );
   for ( .@i = 0; .@i < .@size; .@i++ ) {
       npcshopadditem "head_exchanger#hidden", .itemid[.@i], 1;
       .itemidcompare$ = .itemidcompare$ +":"+ .itemid[.@i] +":";
   }
   npcshopattach "head_exchanger#hidden";
   end;
}
-    shop    head_exchanger#hidden    -1,501:1000

my getitemname2 function

LOL Mootie spoiled my fun XD

Edited by AnnieRuru
  • Upvote 1
Posted

prontera,156,180,5	script	Name2	100,{
mes "[Valkyrie Helm Changer]";
getinventorylist;
for ( .@i = 0; .@i < @inventorylist_count; .@i++ ) {
	if ( compare( .itemidcompare$, ":"+ @inventorylist_id[.@i] +":" ) ) {
		.@menu$ = .@menu$ +( .@item_name$[.@c] = callfunc("getitemname2", @inventorylist_id[.@i], @inventorylist_identify[.@i], @inventorylist_refine[.@i], @inventorylist_attribute[.@i], @inventorylist_card1[.@i], @inventorylist_card2[.@i], @inventorylist_card3[.@i], @inventorylist_card4[.@i]) )+":";
		.@id[.@c] = @inventorylist_id[.@i];
		.@refine[.@c] = @inventorylist_refine[.@i];
		.@identify[.@c] = @inventorylist_identify[.@i];
		.@attribute[.@c] = @inventorylist_attribute[.@i];
		.@card1[.@c] = @inventorylist_card1[.@i];
		.@card2[.@c] = @inventorylist_card2[.@i];
		.@card3[.@c] = @inventorylist_card3[.@i];
		.@card4[.@c] = @inventorylist_card4[.@i];
		.@c++;
	}
}
if ( .@c == 0 ) {
	mes "You need a Valkyrie Helm to use my services.";
	close;
}
else if ( .@c > 1 ) {
	mes "There are more than one Valkyrie Helm in your inventory.";
	mes "Please select one to be exchanged.";
	next;
	.@s = select( .@menu$ ) -1;
	mes "[Valkyrie Helm Changer]";
}
setarray @head_exchanger, .@id[.@s], .@identify[.@s], .@refine[.@s], .@attribute[.@s], .@card1[.@s], .@card2[.@s], .@card3[.@s], .@card4[.@s];
mes "Which Valkyrie Helm would you like to have?";
close2;
callshop "head_exchanger#hidden", 1;
end;
OnBuyItem:
mes "[Valkyrie Helm Changer]";
if ( getarraysize( @bought_nameid ) > 1 )
	mes "Please only choose 1 headgear";
else if ( !countitem2( @head_exchanger[0], @head_exchanger[1], @head_exchanger[2], @head_exchanger[3], @head_exchanger[4], @head_exchanger[5], @head_exchanger[6], @head_exchanger[7] ) )
	mes "You need a Valkyrie Helm to use my services.";
else if ( zeny < .req_zeny )
	mes "You need " + .req_zeny + "z to use my services.";
else {
	mes "Thank you!";
	zeny -= .req_zeny;
	delitem2 @head_exchanger[0], 1, @head_exchanger[1], @head_exchanger[2], @head_exchanger[3], @head_exchanger[4], @head_exchanger[5], @head_exchanger[6], @head_exchanger[7];
	getitem2 @bought_nameid, 1, @head_exchanger[1], @head_exchanger[2], @head_exchanger[3], @head_exchanger[4], @head_exchanger[5], @head_exchanger[6], @head_exchanger[7];
}
deletearray @head_exchanger;
close;
OnInit:
.req_zeny = 10000; // zeny requirement
setarray .itemid, 5001, 5002, 5003, 5004, 5005, 5006; // put all your headgear in this list

npcshopdelitem "head_exchanger#hidden", 501;
.@size = getarraysize( .itemid );
for ( .@i = 0; .@i < .@size; .@i++ ) {
	npcshopadditem "head_exchanger#hidden", .itemid[.@i], 1;
	.itemidcompare$ = .itemidcompare$ +":"+ .itemid[.@i] +":";
}
npcshopattach "head_exchanger#hidden";
end;
}
-	shop	head_exchanger#hidden	-1,501:1000

my getitemname2 function

LOL Mootie spoiled my fun XD

oh sorry o.o my mentor :o

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...