Jump to content
  • 0

how to add quest item on script


dennis259

Question


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  73
  • Reputation:   1
  • Joined:  07/18/13
  • Last Seen:  

my quest shop is empty

 




- shop quest_shop -1,501:50
prontera,141,181,5 script Quest Shop 899,{
set @i,0;
mes "[Shop Quest NPC]";
mes "Which item do you wish to obtain?";
mes "Select only one.";
callshop "quest_shop",1;
npcshopattach "quest_shop";
end;

OnBuyItem:
if(.BuildQuest) {
for(set .e,0; !compare(getarg(.e+1)+"", "Zeny"); set .e,.e+2) {}
npcshopadditem "quest_shop",getarg(.e+2),getarg(.e)*compare(getarg(.e+1),"SZeny");
setarray .Shop[.i],getarg(.e+2);
set .i,.i+1;
goto Quest_Setup;
}
if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Quest_Setup; }
for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Quest_Setup; }
mes "[Shop Quest NPC]";
mes "I require the following:";
for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) mes "^FF0000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^00FF00":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]";
if(getarg(@i)) mes "^FF0000" + ((Zeny>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Zeny";
mes "^000000In exchange, I will give you:^0000FF";
for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i));
switch(select("Exchange:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Preview Item":"") + ":No thanks")) {
case 1:
for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) {
next;
mes "You have " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", while I require " + getarg(@i+1) + ".";
mes "Please obtain ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + " more " + getitemname(getarg(@i)) + "^000000.";
close;
}
if(Zeny < getarg(@i)) {
next;
mes "You do not have enough Zeny.";
mes "Please obtain ^FF0000" + (getarg(@i)-Zeny) + " more Zeny^000000.";
close;
}
for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1);
set Zeny,Zeny-getarg(@i);
for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1);
if (compare(getarg(@i,0),"announce")) announce strcharinfo(0) + " has just obtained " + getitemname(@bought_nameid) + "!",bc_all;
close;
case 2:
set @bottomview, getlook(3);
set @topview, getlook(4);
set @midview, getlook(5);
addtimer 1000, strnpcinfo(3)+"::On_Leave";
set @equip,getiteminfo(@bought_nameid, 5);
set @view, getiteminfo(@bought_nameid, 11);
if(@equip != -1 && @view > 0) {
if(@equip & 1) atcommand "@changelook 3 " + @view;
if(@equip & 256) atcommand "@changelook 1 " + @view;
if(@equip & 512) atcommand "@changelook 2 " + @view;
}
next;
goto OnBuyItem;
case 3:
close;
}
On_Leave:
atcommand "@changelook 1 " + @topview;
atcommand "@changelook 2 " + @midview;
atcommand "@changelook 3 " + @bottomview;
set @equip,0;
set @view,0;
set @topview,0;
set @midview,0;
set @bottomview,0;
end;
OnInit:
npcshopitem "quest_shop",0,0;
set .BuildQuest,1;
set .i,1;
Quest_Setup:
// THEESE ARE JUST A FEW EXAMPLES;WHICH I MADE,YOU HAVE TO PUT IN YOUR OWN ITEM ID'S HERE!
switch(.i) {
default: set .BuildQuest,0; set .e,0; set .i,0; end;
case 1: callsub OnBuyItem,30517,10,1000,"Zeny",6647,1,"announce";
case 2: callsub OnBuyItem,30518,10,6647,1,1000,"Zeny",6641,1,"announce";
case 3: callsub OnBuyItem,30519,10,6647,1,1000,"Zeny",6636,1,"announce";
case 4: callsub OnBuyItem,21037,10,6647,1,1000,"Zeny",6762,1,"announce";
case 5: callsub OnBuyItem,21037,10,6647,1,1000,"Zeny",6655,1,"announce";
case 6: callsub OnBuyItem,21037,10,6647,1,1000,"Zeny",5934,1,"announce";
case 7: callsub OnBuyItem,21037,10,6647,1,1000,"Zeny",6797,1,"announce";
case 8: callsub OnBuyItem,21037,10,6647,1,1000,"Zeny",6763,1,"announce";
case 9: callsub OnBuyItem,21037,10,6641,1,6636,1,1000,"Zeny",6825,1,"announce";
case 10: callsub OnBuyItem,21037,10,6641,1,6655,1,1000,"Zeny",6836,1,"announce";
case 11: callsub OnBuyItem,21037,10,6641,1,5933,1,1000,"Zeny",6833,1,"announce";
case 12: callsub OnBuyItem,21037,10,6641,1,5934,1,1000,"Zeny",6871,1,"announce";
}
}

Link to comment
Share on other sites

1 answer to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  73
  • Reputation:   1
  • Joined:  07/18/13
  • Last Seen:  

Posted · Hidden by Emistry, August 11, 2014 - Merged + Hidden duplicated contents.
Hidden by Emistry, August 11, 2014 - Merged + Hidden duplicated contents.
my quest shop is empty

 

 

- shop quest_shop -1,501:50

prontera,141,181,5 script Quest Shop 899,{

set @i,0;

mes "[shop Quest NPC]";

mes "Which item do you wish to obtain?";

mes "Select only one.";

callshop "quest_shop",1;

npcshopattach "quest_shop";

end;

 

OnBuyItem:

if(.BuildQuest) {

for(set .e,0; !compare(getarg(.e+1)+"", "Zeny"); set .e,.e+2) {}

npcshopadditem "quest_shop",getarg(.e+2),getarg(.e)*compare(getarg(.e+1),"SZeny");

setarray .Shop[.i],getarg(.e+2);

set .i,.i+1;

goto Quest_Setup;

}

if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Quest_Setup; }

for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Quest_Setup; }

mes "[shop Quest NPC]";

mes "I require the following:";

for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) mes "^FF0000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^00FF00":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]";

if(getarg(@i)) mes "^FF0000" + ((Zeny>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Zeny";

mes "^000000In exchange, I will give you:^0000FF";

for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i));

switch(select("Exchange:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Preview Item":"") + ":No thanks")) {

case 1:

for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) {

next;

mes "You have " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", while I require " + getarg(@i+1) + ".";

mes "Please obtain ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + " more " + getitemname(getarg(@i)) + "^000000.";

close;

}

if(Zeny < getarg(@i)) {

next;

mes "You do not have enough Zeny.";

mes "Please obtain ^FF0000" + (getarg(@i)-Zeny) + " more Zeny^000000.";

close;

}

for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1);

set Zeny,Zeny-getarg(@i);

for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1);

if (compare(getarg(@i,0),"announce")) announce strcharinfo(0) + " has just obtained " + getitemname(@bought_nameid) + "!",bc_all;

close;

case 2:

set @bottomview, getlook(3);

set @topview, getlook(4);

set @midview, getlook(5);

addtimer 1000, strnpcinfo(3)+"::On_Leave";

set @equip,getiteminfo(@bought_nameid, 5);

set @view, getiteminfo(@bought_nameid, 11);

if(@equip != -1 && @view > 0) {

if(@equip & 1) atcommand "@changelook 3 " + @view;

if(@equip & 256) atcommand "@changelook 1 " + @view;

if(@equip & 512) atcommand "@changelook 2 " + @view;

}

next;

goto OnBuyItem;

case 3:

close;

}

On_Leave:

atcommand "@changelook 1 " + @topview;

atcommand "@changelook 2 " + @midview;

atcommand "@changelook 3 " + @bottomview;

set @equip,0;

set @view,0;

set @topview,0;

set @midview,0;

set @bottomview,0;

end;

OnInit:

npcshopitem "quest_shop",0,0;

set .BuildQuest,1;

set .i,1;

Quest_Setup:

// THEESE ARE JUST A FEW EXAMPLES;WHICH I MADE,YOU HAVE TO PUT IN YOUR OWN ITEM ID'S HERE!

switch(.i) {

default: set .BuildQuest,0; set .e,0; set .i,0; end;

case 1: callsub OnBuyItem,30517,10,1000,"Zeny",6647,1,"announce";

case 2: callsub OnBuyItem,30518,10,6647,1,1000,"Zeny",6641,1,"announce";

case 3: callsub OnBuyItem,30519,10,6647,1,1000,"Zeny",6636,1,"announce";

case 4: callsub OnBuyItem,21037,10,6647,1,1000,"Zeny",6762,1,"announce";

case 5: callsub OnBuyItem,21037,10,6647,1,1000,"Zeny",6655,1,"announce";

case 6: callsub OnBuyItem,21037,10,6647,1,1000,"Zeny",5934,1,"announce";

case 7: callsub OnBuyItem,21037,10,6647,1,1000,"Zeny",6797,1,"announce";

case 8: callsub OnBuyItem,21037,10,6647,1,1000,"Zeny",6763,1,"announce";

case 9: callsub OnBuyItem,21037,10,6641,1,6636,1,1000,"Zeny",6825,1,"announce";

case 10: callsub OnBuyItem,21037,10,6641,1,6655,1,1000,"Zeny",6836,1,"announce";

case 11: callsub OnBuyItem,21037,10,6641,1,5933,1,1000,"Zeny",6833,1,"announce";

case 12: callsub OnBuyItem,21037,10,6641,1,5934,1,1000,"Zeny",6871,1,"announce";

}

}

Link to comment

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...