• 0
Chellevin

need help please ??

Question

5 answers to this question

  • 0

is there anyone here has a simple NPC QUEST so i can put my quest items thanks..

 

I believe you request in wrong section.

Share this post


Link to post
Share on other sites
  • 0

moved to script requests

on topic: you can find plenty if you search a bit

Share this post


Link to post
Share on other sites
  • 0
if you want to create another npc just rename the HeadGear_Upper also the npc name
//////////////////////////////////////////HEADGEAR UPPER//////////////////////////////////////////
-    shop    HeadGear_Upper    -1,501:50
force_1-1,21,32,5    script    Headgear Upper    405,{
set @i,0;
mes "[Shop Quest NPC]";
mes "Which item do you wish to obtain?";
mes "Select only one.";
callshop "HeadGear_Upper",1;
npcshopattach "HeadGear_Upper";
end;

OnBuyItem:
  if(.BuildQuest) {
    for(set .e,0; !compare(getarg(.e+1) + "","Zeny"); set .e,.e+2) {}
    npcshopadditem "HeadGear_Upper",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][email protected]_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i][email protected]_nameid) { set .i,@i; callsub Quest_Setup; }
  for(set @i,1; [email protected]; set @i,@i+1) if(.Shop[@i][email protected]_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 "HeadGear_Upper",0,0;
  set .BuildQuest,1;
  set .i,1;
  Quest_Setup:
  switch(.i) {
    default: set .BuildQuest,0; set .e,0; set .i,0; end;
        case 1: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20053,1,"Announce";
        case 2: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20061,1,"Announce";
        case 3: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20076,1,"Announce";
                case 4: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20082,1,"Announce";
        case 5: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20145,1,"Announce";
        case 6: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20146,1,"Announce";
                case 7: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20150,1,"Announce";
        case 8: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20153,1,"Announce";
        case 9: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20179,1,"Announce";

    

  }
}

 

Edited by beto834

Share this post


Link to post
Share on other sites
  • 0

 

//////////////////////////////////////////HEADGEAR UPPER//////////////////////////////////////////
-    shop    HeadGear_Upper    -1,501:50
force_1-1,21,32,5    script    Headgear Upper    405,{
set @i,0;
mes "[shop Quest NPC]";
mes "Which item do you wish to obtain?";
mes "Select only one.";
callshop "HeadGear_Upper",1;
npcshopattach "HeadGear_Upper";
end;
 
OnBuyItem:
  if(.BuildQuest) {
    for(set .e,0; !compare(getarg(.e+1) + "","Zeny"); set .e,.e+2) {}
    npcshopadditem "HeadGear_Upper",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][email protected]_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i][email protected]_nameid) { set .i,@i; callsub Quest_Setup; }
  for(set @i,1; [email protected]; set @i,@i+1) if(.Shop[@i][email protected]_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 "HeadGear_Upper",0,0;
  set .BuildQuest,1;
  set .i,1;
  Quest_Setup:
  switch(.i) {
    default: set .BuildQuest,0; set .e,0; set .i,0; end;
        case 1: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20053,1,"Announce";
        case 2: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20061,1,"Announce";
        case 3: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20076,1,"Announce";
                case 4: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20082,1,"Announce";
        case 5: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20145,1,"Announce";
        case 6: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20146,1,"Announce";
                case 7: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20150,1,"Announce";
        case 8: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20153,1,"Announce";
        case 9: callsub OnBuyItem,7120,250,913,200,1008,80,969,100,7227,25,10000000,"Zeny",20179,1,"Announce";
 
    
 
  }
}
 
 
 
if you want to create another npc just rename the HeadGear_Upper also the npc name

 

Please use text box. thanks.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now